From 60c8496afe6e43901c774ac180965125c805fbc4 Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Fri, 9 Jan 2026 18:33:32 -0600 Subject: [PATCH] ec/starlabs/merlin: Add retry to get_ec_version() Occasionally when reading the EC version from ECRAM, the major version fails to read and returns zero. To avoid having an incorrect version reported, retry up to 10x with a 10ms delay between retries. TEST=build/boot various Starlabs hardware, update the EC firmware, verify the EC version is reported correctly every time. Change-Id: I78d921e7230e8e180041097672661e744f70dde2 Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/90834 Reviewed-by: Sean Rhodes Tested-by: build bot (Jenkins) --- src/ec/starlabs/merlin/ite.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ec/starlabs/merlin/ite.c b/src/ec/starlabs/merlin/ite.c index 953c9e3de6..ec4c9a65ab 100644 --- a/src/ec/starlabs/merlin/ite.c +++ b/src/ec/starlabs/merlin/ite.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include +#include #include #include #include @@ -17,6 +18,9 @@ uint16_t ec_get_version(void) { + for (int i = 0; i < 10 && ec_read(ECRAM_MAJOR_VERSION) == 0; i++) + mdelay(10); + return (ec_read(ECRAM_MAJOR_VERSION) << 8) | ec_read(ECRAM_MINOR_VERSION); }