From e6a7666bcdd4d3efe7098805da1add8e7422b08f Mon Sep 17 00:00:00 2001 From: Pranava Y N Date: Wed, 14 May 2025 13:22:02 +0530 Subject: [PATCH] cpu/intel/car: Skip EC software sync in common code When `VBOOT_EC_SYNC_ESOL` config is enabled, the EC sync must be performed later from the SoC code (mainboard_romstage_entry() function) in order to display the eSOL screen. AP log during EC firmware update in romstage without eSOL enabled: ``` [DEBUG] Google Chrome EC: version: [DEBUG] ro: pujjo-15217.861.0 [DEBUG] rw: pujjo-15217.861.0 [DEBUG] running image: 1 [DEBUG] FMAP: area FW_MAIN_A found @ 3a2000 (2312128 bytes) [INFO ] MMAP window: SPI flash base=0x3a0000, Host base=0xff3a0000, Size=0xc60000 [INFO ] CBFS: Found 'ecrw.hash' @0x7f8c0 size 0x20 in mcache @0xfef97708 [INFO ] VB2:vb2_digest_init() 32 bytes, hash algo 2, HW acceleration enabled [INFO ] VB2:check_ec_hash() Hexp RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0 [INFO ] VB2:check_ec_hash() Hmir: 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0 [INFO ] EC took 1124us to calculate image hash [INFO ] VB2:check_ec_hash() Heff RW(active): 8d111297eb53ba2289d256a769409bcbba4cf5b488fea97e40edcc9342a0f77f [INFO ] VB2:check_ec_hash() Heff != Hexp. Schedule update [INFO ] VB2:sync_ec() select_rw=RW(active) [INFO ] VB2:update_ec() Updating RW(active)... [INFO ] CBFS: Found 'ecrw' @0x1a9f80 size 0x40000 in mcache @0xfef97a9c [INFO ] VB2:vb2_digest_init() 262144 bytes, hash algo 2, HW acceleration enabled [INFO ] CBFS: Found 'ecrw.hash' @0x7f8c0 size 0x20 in mcache @0xfef97708 [INFO ] VB2:vb2_digest_init() 32 bytes, hash algo 2, HW acceleration enabled [INFO ] VB2:check_ec_hash() Hexp RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0 [INFO ] VB2:check_ec_hash() Hmir: 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0 [WARN ] ec_hash_image: No valid hash (status=0 size=0). Computing... [INFO ] EC took 482169us to calculate image hash [INFO ] VB2:check_ec_hash() Heff RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0 [INFO ] VB2:update_ec() Updated RW(active) successfully [INFO ] VB2:sync_ec() Rebooting to jump to new EC-RW [INFO ] VB2:vb2api_ec_sync() ec_sync_phase2(ctx) returned 0x1004 [INFO ] EC Reboot requested. Doing cold reboot ``` BUG=b:412210635 TEST=Verify successful EC sync when `VBOOT_EARLY_EC_SYNC` is enabled and `VBOOT_EC_SYNC_ESOL` is disabled. Change-Id: Ib8958710bfbf01fb80405121af1c8dd43b4ed893 Signed-off-by: Pranava Y N Reviewed-on: https://review.coreboot.org/c/coreboot/+/87669 Tested-by: build bot (Jenkins) Reviewed-by: Subrata Banik --- src/cpu/intel/car/romstage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpu/intel/car/romstage.c b/src/cpu/intel/car/romstage.c index 63a83abbd7..285c2f48b2 100644 --- a/src/cpu/intel/car/romstage.c +++ b/src/cpu/intel/car/romstage.c @@ -56,7 +56,7 @@ void __noreturn romstage_main(void) stack_canary_breakpoint_init(); - if (CONFIG(VBOOT_EARLY_EC_SYNC)) + if (CONFIG(VBOOT_EARLY_EC_SYNC) && !CONFIG(VBOOT_EC_SYNC_ESOL)) vboot_sync_ec(); /*