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>
This commit is contained in:
Timothy Pearson 2015-02-14 16:15:31 -06:00 committed by Alexandru Gagniuc
parent 5fc1ad101c
commit f20c6e81fe
3 changed files with 13 additions and 1 deletions

View File

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

View File

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

View File

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