Timothy Pearson (tpearson@raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8698
-gerrit
commit 10c37f72d7151158787ec8c147d6a980efe6152c Author: Timothy Pearson tpearson@raptorengineeringinc.com Date: Mon Mar 16 11:47:45 2015 -0500
lib: Add Kconfig option to enable/disable auto fallback control
Under certain conditions, e.g. automated testing, it is useful to have the payload (e.g. Linux) reset the reboot_bits CMOS value. This allows automated recovery in the case of coreboot starting properly but the payload failing to start due to bad configuration data provided by the coreboot image under test.
Signed-off-by: Timothy Pearson tpearson@raptorengineeringinc.com Change-Id: Ifc8f565f8292941d90b2e520cc9c5993b41e9cdd --- src/Kconfig | 8 ++++++++ src/lib/fallback_boot.c | 5 +++-- 2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig index a0758bc..6cabc70 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -236,6 +236,14 @@ config BOOTBLOCK_SOURCE default "bootblock_simple.c" if BOOTBLOCK_SIMPLE default "bootblock_normal.c" if BOOTBLOCK_NORMAL
+config SKIP_MAX_REBOOT_CNT_CLEAR + bool "Do not clear reboot count after successful boot" + default n + depends on EXPERT + help + Do not clear the reboot count immediately after successful boot. + Set to allow the payload to control normal/fallback image recovery. + config UPDATE_IMAGE bool "Update existing coreboot.rom image" default n diff --git a/src/lib/fallback_boot.c b/src/lib/fallback_boot.c index b956c94..74572df 100644 --- a/src/lib/fallback_boot.c +++ b/src/lib/fallback_boot.c @@ -22,8 +22,9 @@ static void set_boot_successful(void) byte |= (byte & (1 << 1)) >> 1;
/* If we are in normal mode set the boot count to 0 */ - if(byte & 1) - byte &= 0x0f; + if (!IS_ENABLED(CONFIG_SKIP_MAX_REBOOT_CNT_CLEAR)) + if(byte & 1) + byte &= 0x0f; outb(byte, RTC_PORT(1)); } #else