linux/arch/i386/kernel/cpu/mtrr
Bernhard Kaindl de938c51d5 [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>
2007-05-02 19:27:17 +02:00
..
amd.c [PATCH] i386: fix MTRR code 2006-12-07 02:14:09 +01:00
centaur.c [PATCH] i386: fix MTRR code 2006-12-07 02:14:09 +01:00
cyrix.c [PATCH] i386: fix MTRR code 2006-12-07 02:14:09 +01:00
generic.c [PATCH] i386: Enable support for fixed-range IORRs to keep RdMem & WrMem in sync 2007-05-02 19:27:17 +02:00
if.c [PATCH] i386: fix 32-bit ioctls on x64_32 2007-02-13 13:26:26 +01:00
main.c [PATCH] x86: Save the MTRRs of the BSP before booting an AP 2007-05-02 19:27:17 +02:00
Makefile [PATCH] i386: conditionalize inclusion of some MTRR flavors 2006-12-07 02:14:09 +01:00
mtrr.h [PATCH] i386: fix size_or_mask and size_and_mask 2007-02-13 13:26:23 +01:00
state.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00