Attention is currently required from: Angel Pons, Intel coreboot Reviewers, Patrick Rudolph, Riku Viitanen.
Hello Angel Pons, Intel coreboot Reviewers, build bot (Jenkins),
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/85793?usp=email
to look at the new patch set (#12).
The following approvals got outdated and were removed: Code-Review+1 by Angel Pons, Verified+1 by build bot (Jenkins)
Change subject: nb/sandybridge: Implement adjustable DRAM voltages ......................................................................
nb/sandybridge: Implement adjustable DRAM voltages
Many mainboards implement adjustable voltage rails for DRAM and other components. For example, on cold start, ASRock Z77 Extreme4's DRAM voltage regulator defaults to 1.6V and an SMBus connected current DAC is used to offset this to achieve the desired operating voltage.
Sensible default limits of 1.25V-1.65V are implemented. Mainboards define their hardware's limits in Kconfig. Users can choose between the default automatic selection mode and select upper and lower limits or set a voltage manually in Kconfig, within mainboard hardware limits.
Automatic voltage selection takes into account both SPD and XMP data. Care is taken to not undervolt or overvolt any modules according to their own reported specifications. Current choice favours higher performance. Still, if no XMP profile is used due to their requested voltages being too high for any other DIMM or the system, or XMP data simply not existing, the lowest supported voltage is used instead.
This strategy is similar enough to at least two OEM firmwares observed: ASRock Z77 Extreme4 and ASUS P8H67-I DELUXE. ASRock was tested with i7-3770K and DDR3 XMP and non-XMP DIMMs in various combinations. ASUS was tested with i5-2500K and various DDR3 and DDR3L SO-DIMMs.
Since hardware implementations differ, once suitable voltage is selected, a callback "set_dram_voltage()" is called to do the actual voltage setting. Mainboards need to implement this in romstage, or use a driver like CB:85887.
Change-Id: I1a8857deee85fd635429afd3cbf93cad7a7d589b Signed-off-by: Riku Viitanen riku.viitanen@protonmail.com --- M src/northbridge/intel/sandybridge/Kconfig M src/northbridge/intel/sandybridge/raminit.c M src/northbridge/intel/sandybridge/raminit_common.h M src/northbridge/intel/sandybridge/raminit_native.c M src/northbridge/intel/sandybridge/sandybridge.h 5 files changed, 130 insertions(+), 5 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/93/85793/12