aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/northbridge/intel/sandybridge/Kconfig9
-rw-r--r--src/northbridge/intel/sandybridge/raminit.c5
2 files changed, 13 insertions, 1 deletions
diff --git a/src/northbridge/intel/sandybridge/Kconfig b/src/northbridge/intel/sandybridge/Kconfig
index 1a47f0db7e..043e8dee79 100644
--- a/src/northbridge/intel/sandybridge/Kconfig
+++ b/src/northbridge/intel/sandybridge/Kconfig
@@ -54,6 +54,15 @@ config NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES
Disabled by default as it might causes system instability.
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
hex
default 0x100000
diff --git a/src/northbridge/intel/sandybridge/raminit.c b/src/northbridge/intel/sandybridge/raminit.c
index bdba7489c0..12384b4cae 100644
--- a/src/northbridge/intel/sandybridge/raminit.c
+++ b/src/northbridge/intel/sandybridge/raminit.c
@@ -234,7 +234,10 @@ 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",
dimm->dimm[channel][slot].dimms_per_channel,
dimms_on_channel);
- spd_decode_ddr3(&dimm->dimm[channel][slot], spd[spd_slot]);
+ 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]);
} else if (dimm->dimm[channel][slot].voltage != 1500) {
/* TODO: support other DDR3 voltage than 1500mV */
printram("XMP profile's requested %u mV is unsupported.\n",