nb/sandybridge: Add a kconfig option to ignore XMP max DIMMs
XMP profiles can have a restriction on max supported DIMMs per channel, but many configurations work with more DIMMs. This is relevant on mainboards with 2 DIMM slots per channel (usually 4 in total). Populating both slots with DIMMs that support XMP profiles only with 1 DIMM per channel turns off said XMP profiles. TEST=On a system with two DIMM slots per channel populate both slots on one channel and ensure that DIMMs run with XMP profiles enabled. Change-Id: I1f22d981afcef0ee73785823b0a943cf3d3564e3 Signed-off-by: Vagiz Trakhanov <rakkin@autistici.org> Reviewed-on: https://review.coreboot.org/21841 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
parent
15cb5be5b0
commit
771be480a6
|
@ -54,6 +54,15 @@ config NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES
|
||||||
Disabled by default as it might causes system instability.
|
Disabled by default as it might causes system instability.
|
||||||
Handle with care!
|
Handle with care!
|
||||||
|
|
||||||
|
config NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS
|
||||||
|
bool "Ignore XMP profile max DIMMs per channel"
|
||||||
|
default n
|
||||||
|
depends on USE_NATIVE_RAMINIT
|
||||||
|
help
|
||||||
|
Ignore the max DIMMs per channel restriciton defined in XMP profiles.
|
||||||
|
Disabled by default as it might cause system instability.
|
||||||
|
Handle with care!
|
||||||
|
|
||||||
config CBFS_SIZE
|
config CBFS_SIZE
|
||||||
hex
|
hex
|
||||||
default 0x100000
|
default 0x100000
|
||||||
|
|
|
@ -234,6 +234,9 @@ static void dram_find_spds_ddr3(spd_raw_data *spd, ramctr_timing *ctrl)
|
||||||
printram("XMP profile supports %u DIMMs, but %u DIMMs are installed.\n",
|
printram("XMP profile supports %u DIMMs, but %u DIMMs are installed.\n",
|
||||||
dimm->dimm[channel][slot].dimms_per_channel,
|
dimm->dimm[channel][slot].dimms_per_channel,
|
||||||
dimms_on_channel);
|
dimms_on_channel);
|
||||||
|
if (IS_ENABLED(CONFIG_NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS))
|
||||||
|
printk(BIOS_WARNING, "XMP maximum DIMMs will be ignored.\n");
|
||||||
|
else
|
||||||
spd_decode_ddr3(&dimm->dimm[channel][slot], spd[spd_slot]);
|
spd_decode_ddr3(&dimm->dimm[channel][slot], spd[spd_slot]);
|
||||||
} else if (dimm->dimm[channel][slot].voltage != 1500) {
|
} else if (dimm->dimm[channel][slot].voltage != 1500) {
|
||||||
/* TODO: support other DDR3 voltage than 1500mV */
|
/* TODO: support other DDR3 voltage than 1500mV */
|
||||||
|
|
Loading…
Reference in New Issue