UPSTREAM: lib/bootblock: Sanitize CMOS after bootblock_*_early_init()
CMOS isn't used that early, but the chipset initialization may be
required to access it.
In one instance, Intel Apollo Lake, the sanitize_cmos() function
seems to hang if called before bootblock_soc_early_init(). The
missing step is fast_spi_early_init(). But even without, one might
expect sanitize_cmos() to return eventually (it didn't within
about 20min).
BUG=none
BRANCH=none
TEST=none
Change-Id: If762c375e4f34653f33c7251c18dd8a19483af61
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Original-Commit-Id: e0b9aea7be96f1d724a6c794dd617122125f1ba6
Original-Change-Id: I6e1a029e4be7e109be43a3dad944bd7e05ea1f02
Original-Signed-off-by: Nico Huber <nico.huber@secunet.com>
Original-Reviewed-on: https://review.coreboot.org/c/coreboot/+/31349
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Alex Thiessen <alex.thiessen.de+coreboot@gmail.com>
Reviewed-on: https://chromium-review.googlesource.com/1627611
Commit-Ready: Patrick Georgi <pgeorgi@chromium.org>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
diff --git a/src/lib/bootblock.c b/src/lib/bootblock.c
index 43674ef..c28a67a 100644
--- a/src/lib/bootblock.c
+++ b/src/lib/bootblock.c
@@ -42,12 +42,12 @@
timestamps[i].entry_stamp);
}
- sanitize_cmos();
- cmos_post_init();
-
bootblock_soc_early_init();
bootblock_mainboard_early_init();
+ sanitize_cmos();
+ cmos_post_init();
+
if (CONFIG(BOOTBLOCK_CONSOLE)) {
console_init();
exception_init();