summaryrefslogtreecommitdiffstats
path: root/src/southbridge/via/k8t890/k8x8xx.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/southbridge/via/k8t890/k8x8xx.h')
-rw-r--r--src/southbridge/via/k8t890/k8x8xx.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/southbridge/via/k8t890/k8x8xx.h b/src/southbridge/via/k8t890/k8x8xx.h
index a0fb57ab3c16..425aaeb5e85c 100644
--- a/src/southbridge/via/k8t890/k8x8xx.h
+++ b/src/southbridge/via/k8t890/k8x8xx.h
@@ -21,6 +21,31 @@
#ifndef SOUTHBRIDGE_VIA_K8T890_K8X8XX_H
#define SOUTHBRIDGE_VIA_K8T890_K8X8XX_H
+#include <cpu/x86/msr.h>
+#include <cpu/amd/mtrr.h>
#include "k8t890.h"
+struct k8x8xx_vt8237_mirrored_regs {
+ u16 low_top_address;
+ u8 rom_shadow_ctrl_pg_c,
+ rom_shadow_ctrl_pg_d,
+ rom_shadow_ctrl_pg_e_memhole_smi_decoding,
+ rom_shadow_ctrl_pg_f_memhole,
+ smm_apic_decoding,
+ shadow_mem_ctrl;
+};
+
+static inline void k8x8xx_vt8237_mirrored_regs_fill(struct k8x8xx_vt8237_mirrored_regs *regs){
+ msr_t msr;
+
+ regs->rom_shadow_ctrl_pg_c = 0xff;
+ regs->rom_shadow_ctrl_pg_d = 0xff;
+ regs->rom_shadow_ctrl_pg_e_memhole_smi_decoding = 0xff;
+ regs->rom_shadow_ctrl_pg_f_memhole = 0x30;
+ regs->smm_apic_decoding = 0x19;
+ msr = rdmsr(TOP_MEM);
+ regs->shadow_mem_ctrl = msr.lo >> 24;
+ regs->low_top_address = msr.lo >> 16;
+}
+
#endif /* SOUTHBRIDGE_VIA_K8T890_K8X8XX_H */