summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--i386/intel/pmap.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 06ad58f..2aea8b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-07-04 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * i386/intel/pmap.c (pmap_enter): Use INTEL_PTE_NCACHE|INTEL_PTE_WTHRU
+ when cpu >= 486 and physical address is after memory end.
+
2007-06-23 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/i386/trap.c (user_trap): Read faulting linear address before
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 1043daa..7746c61 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -1506,6 +1506,9 @@ Retry:
template |= INTEL_PTE_USER;
if (prot & VM_PROT_WRITE)
template |= INTEL_PTE_WRITE;
+ if (machine_slot[cpu_number()].cpu_type >= CPU_TYPE_I486
+ && pa >= phys_last_addr)
+ template |= INTEL_PTE_NCACHE|INTEL_PTE_WTHRU;
if (wired)
template |= INTEL_PTE_WIRED;
PMAP_UPDATE_TLBS(pmap, v, v + PAGE_SIZE);
@@ -1615,6 +1618,9 @@ Retry:
template |= INTEL_PTE_USER;
if (prot & VM_PROT_WRITE)
template |= INTEL_PTE_WRITE;
+ if (machine_slot[cpu_number()].cpu_type >= CPU_TYPE_I486
+ && pa >= phys_last_addr)
+ template |= INTEL_PTE_NCACHE|INTEL_PTE_WTHRU;
if (wired)
template |= INTEL_PTE_WIRED;
i = ptes_per_vm_page;