aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBernhard Kaindl <bk@suse.de>2007-05-02 13:27:17 -0400
committerAndi Kleen <andi@basil.nowhere.org>2007-05-02 13:27:17 -0400
commitde938c51d5fec4ae03af64b06beb15d4423ec611 (patch)
treeaabb457fda132a7d88e771427aa3da04c7944d4b /include
parent3ebad5905609476a4ff1151a66b21d9794009961 (diff)
[PATCH] i386: Enable support for fixed-range IORRs to keep RdMem & WrMem in sync
If our copy of the MTRRs of the BSP has RdMem or WrMem set, and we are running on an AMD64/K8 system, the boot CPU must have had MtrrFixDramEn and MtrrFixDramModEn set (otherwise our RDMSR would have copied these bits cleared), so we set them on this CPU as well. This allows us to keep the AMD64/K8 RdMem and WrMem bits in sync across the CPUs of SMP systems in order to fullfill the duty of system software to "initialize and maintain MTRR consistency across all processors." as written in the AMD and Intel manuals. If an WRMSR instruction fails because MtrrFixDramModEn is not set, I expect that also the Intel-style MTRR bits are not updated. AK: minor cleanup, moved MSR defines around Signed-off-by: Bernhard Kaindl <bk@suse.de> Signed-off-by: Andi Kleen <ak@suse.de> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Andi Kleen <ak@suse.de> Cc: Dave Jones <davej@codemonkey.org.uk>
Diffstat (limited to 'include')
-rw-r--r--include/asm-i386/msr-index.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/asm-i386/msr-index.h b/include/asm-i386/msr-index.h
index f1190802283d..a02eb2991349 100644
--- a/include/asm-i386/msr-index.h
+++ b/include/asm-i386/msr-index.h
@@ -87,6 +87,11 @@
87#define MSR_K7_CLK_CTL 0xc001001b 87#define MSR_K7_CLK_CTL 0xc001001b
88#define MSR_K8_TOP_MEM2 0xc001001d 88#define MSR_K8_TOP_MEM2 0xc001001d
89#define MSR_K8_SYSCFG 0xc0010010 89#define MSR_K8_SYSCFG 0xc0010010
90
91#define K8_MTRRFIXRANGE_DRAM_ENABLE 0x00040000 /* MtrrFixDramEn bit */
92#define K8_MTRRFIXRANGE_DRAM_MODIFY 0x00080000 /* MtrrFixDramModEn bit */
93#define K8_MTRR_RDMEM_WRMEM_MASK 0x18181818 /* Mask: RdMem|WrMem */
94
90#define MSR_K7_HWCR 0xc0010015 95#define MSR_K7_HWCR 0xc0010015
91#define MSR_K8_HWCR 0xc0010015 96#define MSR_K8_HWCR 0xc0010015
92#define MSR_K7_FID_VID_CTL 0xc0010041 97#define MSR_K7_FID_VID_CTL 0xc0010041