Angel Pons has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/48614 )
Change subject: nb/intel/sandybridge: Allow to ignore XMP voltage ......................................................................
nb/intel/sandybridge: Allow to ignore XMP voltage
Native raminit only supports 1.5V operation, but there are DIMMs which request 1.65V operation in XMP profiles. Add an option to force XMP to be used when the requested voltage isn't supported, which will run the DIMMs at 1.5V with XMP timings. Consider this to be overclocking.
Change-Id: I64bfac8f72dadf662ceadfc7998daf26edf5a710 Signed-off-by: Angel Pons th3fanbus@gmail.com --- M src/northbridge/intel/sandybridge/Kconfig M src/northbridge/intel/sandybridge/raminit.c 2 files changed, 19 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/14/48614/1
diff --git a/src/northbridge/intel/sandybridge/Kconfig b/src/northbridge/intel/sandybridge/Kconfig index 9cd522f..1388b87 100644 --- a/src/northbridge/intel/sandybridge/Kconfig +++ b/src/northbridge/intel/sandybridge/Kconfig @@ -64,6 +64,19 @@ Disabled by default as it might cause system instability. Handle with care!
+config NATIVE_RAMINIT_IGNORE_XMP_REQUESTED_VOLTAGE + bool "Ignore XMP profile requested voltage" + default n + depends on USE_NATIVE_RAMINIT + help + Native raminit only supports 1.5V operation, but there are DIMMs + which request 1.65V operation in XMP profiles. This option allows + raminit to use these XMP profiles anyway, instead of falling back + to non-XMP settings. + Disabled by default because it allows forcing memory to run out of + specification. Consider this to be an overclocking option. + Handle with care! + config CBFS_SIZE hex default 0x100000 diff --git a/src/northbridge/intel/sandybridge/raminit.c b/src/northbridge/intel/sandybridge/raminit.c index 3077c0a..8acfb98 100644 --- a/src/northbridge/intel/sandybridge/raminit.c +++ b/src/northbridge/intel/sandybridge/raminit.c @@ -200,7 +200,12 @@ /* TODO: Support DDR3 voltages other than 1500mV */ printram("XMP profile's requested %u mV is unsupported.\n", dimm->voltage); - spd_decode_ddr3(dimm, spd[spd_slot]); + + if (CONFIG(NATIVE_RAMINIT_IGNORE_XMP_REQUESTED_VOLTAGE)) + printk(BIOS_WARNING, + "XMP requested voltage will be ignored.\n"); + else + spd_decode_ddr3(dimm, spd[spd_slot]); }
/* Fill in CRC16 for MRC cache */