diff options
author | Timothy Pearson <tpearson@raptorengineeringinc.com> | 2015-02-14 16:15:31 -0600 |
---|---|---|
committer | Alexandru Gagniuc <mr.nuke.me@gmail.com> | 2015-02-16 08:36:37 +0100 |
commit | f20c6e81fe2c12c1ff896f803cdc16849856a5c3 (patch) | |
tree | d9f19e6172bb44f405b161111c0d847c3af36c7f /src | |
parent | 5fc1ad101cd69fa91e2c33761aa45b69d535ef85 (diff) | |
download | coreboot-f20c6e81fe2c12c1ff896f803cdc16849856a5c3.tar.xz |
nvram: Add option to reset NVRAM to default parameters on every boot
In specific configurations, such as homogeneous supercomputing systems,
changeable NVRAM parameters are more of a liability than a useful tool.
This patch allows a coreboot image to be compiled that will always set
the NVRAM parameters to their default values, reducing maintainance
overhead on large clusters.
Change-Id: Ic03e34211d4a58cd60740f2d9a6b50e11fe85822
Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Reviewed-on: http://review.coreboot.org/8446
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/Kconfig | 9 | ||||
-rw-r--r-- | src/arch/x86/include/bootblock_common.h | 2 | ||||
-rw-r--r-- | src/drivers/pc80/mc146818rtc.c | 3 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/Kconfig b/src/Kconfig index 4c80f34573..a0758bcf22 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -116,6 +116,15 @@ config USE_OPTION_TABLE Enable this option if coreboot shall read options from the "CMOS" NVRAM instead of using hard-coded values. +config STATIC_OPTION_TABLE + bool "Load default configuration values into CMOS on each boot" + default n + depends on USE_OPTION_TABLE + help + Enable this option to reset "CMOS" NVRAM values to default on + every boot. Use this if you want the NVRAM configuration to + never be modified from its default values. + config COMPRESS_RAMSTAGE bool "Compress ramstage with LZMA" default y diff --git a/src/arch/x86/include/bootblock_common.h b/src/arch/x86/include/bootblock_common.h index 276b514b31..b4100b73a2 100644 --- a/src/arch/x86/include/bootblock_common.h +++ b/src/arch/x86/include/bootblock_common.h @@ -32,7 +32,7 @@ static void bootblock_mainboard_init(void) #if CONFIG_USE_OPTION_TABLE static void sanitize_cmos(void) { - if (cmos_error() || !cmos_chksum_valid()) { + if (cmos_error() || !cmos_chksum_valid() || IS_ENABLED(CONFIG_STATIC_OPTION_TABLE)) { unsigned char *cmos_default = (unsigned char*)walkcbfs("cmos.default"); if (cmos_default) { int i; diff --git a/src/drivers/pc80/mc146818rtc.c b/src/drivers/pc80/mc146818rtc.c index b18f22f43d..fe669caa98 100644 --- a/src/drivers/pc80/mc146818rtc.c +++ b/src/drivers/pc80/mc146818rtc.c @@ -56,6 +56,9 @@ static void cmos_reset_date(void) static int cmos_checksum_valid(int range_start, int range_end, int cks_loc) { + if (IS_ENABLED(CONFIG_STATIC_OPTION_TABLE)) + return 1; + int i; u16 sum, old_sum; sum = 0; |