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
Reviewed-on: http://review.coreboot.org/8698
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins)
This commit is contained in:
Timothy Pearson 2015-03-16 11:47:45 -05:00 committed by Aaron Durbin
parent 87200e2aa3
commit 447240808c
2 changed files with 11 additions and 2 deletions

View File

@ -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

View File

@ -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