summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/mp_machdep.c8
-rw-r--r--sys/amd64/amd64/mptable.c8
-rw-r--r--sys/amd64/include/mptable.h8
-rw-r--r--sys/i386/i386/mp_machdep.c8
-rw-r--r--sys/i386/i386/mptable.c8
-rw-r--r--sys/i386/include/mptable.h8
-rw-r--r--sys/kern/subr_smp.c8
7 files changed, 56 insertions, 0 deletions
diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c
index 79ff79d25cea..2927ace3a983 100644
--- a/sys/amd64/amd64/mp_machdep.c
+++ b/sys/amd64/amd64/mp_machdep.c
@@ -2036,6 +2036,14 @@ void
putfmtrr() {
if (cpu_class == CPUCLASS_686) {
wbinvd();
+ /*
+ * Set memory between 0-640K to be WB
+ */
+ wrmsr(0x250, 0x0606060606060606LL);
+ wrmsr(0x258, 0x0606060606060606LL);
+ /*
+ * Set normal, PC video memory to be WC
+ */
wrmsr(0x259, 0x0101010101010101LL);
}
}
diff --git a/sys/amd64/amd64/mptable.c b/sys/amd64/amd64/mptable.c
index 79ff79d25cea..2927ace3a983 100644
--- a/sys/amd64/amd64/mptable.c
+++ b/sys/amd64/amd64/mptable.c
@@ -2036,6 +2036,14 @@ void
putfmtrr() {
if (cpu_class == CPUCLASS_686) {
wbinvd();
+ /*
+ * Set memory between 0-640K to be WB
+ */
+ wrmsr(0x250, 0x0606060606060606LL);
+ wrmsr(0x258, 0x0606060606060606LL);
+ /*
+ * Set normal, PC video memory to be WC
+ */
wrmsr(0x259, 0x0101010101010101LL);
}
}
diff --git a/sys/amd64/include/mptable.h b/sys/amd64/include/mptable.h
index 79ff79d25cea..2927ace3a983 100644
--- a/sys/amd64/include/mptable.h
+++ b/sys/amd64/include/mptable.h
@@ -2036,6 +2036,14 @@ void
putfmtrr() {
if (cpu_class == CPUCLASS_686) {
wbinvd();
+ /*
+ * Set memory between 0-640K to be WB
+ */
+ wrmsr(0x250, 0x0606060606060606LL);
+ wrmsr(0x258, 0x0606060606060606LL);
+ /*
+ * Set normal, PC video memory to be WC
+ */
wrmsr(0x259, 0x0101010101010101LL);
}
}
diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c
index 79ff79d25cea..2927ace3a983 100644
--- a/sys/i386/i386/mp_machdep.c
+++ b/sys/i386/i386/mp_machdep.c
@@ -2036,6 +2036,14 @@ void
putfmtrr() {
if (cpu_class == CPUCLASS_686) {
wbinvd();
+ /*
+ * Set memory between 0-640K to be WB
+ */
+ wrmsr(0x250, 0x0606060606060606LL);
+ wrmsr(0x258, 0x0606060606060606LL);
+ /*
+ * Set normal, PC video memory to be WC
+ */
wrmsr(0x259, 0x0101010101010101LL);
}
}
diff --git a/sys/i386/i386/mptable.c b/sys/i386/i386/mptable.c
index 79ff79d25cea..2927ace3a983 100644
--- a/sys/i386/i386/mptable.c
+++ b/sys/i386/i386/mptable.c
@@ -2036,6 +2036,14 @@ void
putfmtrr() {
if (cpu_class == CPUCLASS_686) {
wbinvd();
+ /*
+ * Set memory between 0-640K to be WB
+ */
+ wrmsr(0x250, 0x0606060606060606LL);
+ wrmsr(0x258, 0x0606060606060606LL);
+ /*
+ * Set normal, PC video memory to be WC
+ */
wrmsr(0x259, 0x0101010101010101LL);
}
}
diff --git a/sys/i386/include/mptable.h b/sys/i386/include/mptable.h
index 79ff79d25cea..2927ace3a983 100644
--- a/sys/i386/include/mptable.h
+++ b/sys/i386/include/mptable.h
@@ -2036,6 +2036,14 @@ void
putfmtrr() {
if (cpu_class == CPUCLASS_686) {
wbinvd();
+ /*
+ * Set memory between 0-640K to be WB
+ */
+ wrmsr(0x250, 0x0606060606060606LL);
+ wrmsr(0x258, 0x0606060606060606LL);
+ /*
+ * Set normal, PC video memory to be WC
+ */
wrmsr(0x259, 0x0101010101010101LL);
}
}
diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c
index 79ff79d25cea..2927ace3a983 100644
--- a/sys/kern/subr_smp.c
+++ b/sys/kern/subr_smp.c
@@ -2036,6 +2036,14 @@ void
putfmtrr() {
if (cpu_class == CPUCLASS_686) {
wbinvd();
+ /*
+ * Set memory between 0-640K to be WB
+ */
+ wrmsr(0x250, 0x0606060606060606LL);
+ wrmsr(0x258, 0x0606060606060606LL);
+ /*
+ * Set normal, PC video memory to be WC
+ */
wrmsr(0x259, 0x0101010101010101LL);
}
}