summaryrefslogtreecommitdiff
path: root/src/cpu/k8/earlymtrr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/k8/earlymtrr.c')
-rw-r--r--src/cpu/k8/earlymtrr.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/cpu/k8/earlymtrr.c b/src/cpu/k8/earlymtrr.c
index 5fb63d2e7d..2138e3fefe 100644
--- a/src/cpu/k8/earlymtrr.c
+++ b/src/cpu/k8/earlymtrr.c
@@ -27,13 +27,24 @@ static void early_mtrr_init(void)
msr_t msr;
const unsigned long *msr_addr;
+ /* Enable the access to AMD RdDram and WrDram extension bits */
+ msr = rdmsr(SYSCFG_MSR);
+ msr.lo |= SYSCFG_MSR_MtrrFixDramModEn;
+ wrmsr(msr);
+
/* Inialize all of the relevant msrs to 0 */
msr.lo = 0;
msr.hi = 0;
- for(msr_addr = mtrr_msrs; *msr_addr; msr_addr++) {
+
+ for (msr_addr = mtrr_msrs; *msr_addr; msr_addr++) {
wrmsr(*msr_addr, msr);
}
+ /* Disable the access to AMD RdDram and WrDram extension bits */
+ msr = rdmsr(SYSCFG_MSR);
+ msr.lo &= ~SYSCFG_MSR_MtrrFixDramModEn;
+ wrmsr(msr);
+
/* Enable memory access for 0 - 1MB using top_mem */
msr.hi = 0;
msr.lo = ((CONFIG_LB_MEM_TOPK << 10) + TOP_MEM_MASK) & ~TOP_MEM_MASK;