aboutsummaryrefslogtreecommitdiff
path: root/i386
diff options
context:
space:
mode:
Diffstat (limited to 'i386')
-rw-r--r--i386/configfrag.ac2
-rw-r--r--i386/i386/i386asm.sym1
-rw-r--r--i386/i386/vm_param.h2
-rw-r--r--i386/intel/pmap.c4
-rw-r--r--i386/intel/pmap.h1
5 files changed, 7 insertions, 3 deletions
diff --git a/i386/configfrag.ac b/i386/configfrag.ac
index f697e277..f07a98ca 100644
--- a/i386/configfrag.ac
+++ b/i386/configfrag.ac
@@ -106,6 +106,8 @@ AC_ARG_ENABLE([apic],
enable_pae=${enable_pae-yes};;
*:i?86)
:;;
+ *:x86_64)
+ enable_pae=${enable_pae-yes};;
*)
if [ x"$enable_pae" = xyes ]; then]
AC_MSG_ERROR([can only enable the `PAE' feature on ix86.])
diff --git a/i386/i386/i386asm.sym b/i386/i386/i386asm.sym
index 0662aea0..9e1d13d7 100644
--- a/i386/i386/i386asm.sym
+++ b/i386/i386/i386asm.sym
@@ -122,6 +122,7 @@ expr sizeof(pt_entry_t) PTE_SIZE
expr INTEL_PTE_PFN PTE_PFN
expr INTEL_PTE_VALID PTE_V
expr INTEL_PTE_WRITE PTE_W
+expr INTEL_PTE_PS PTE_S
expr ~INTEL_PTE_VALID PTE_INVALID
expr NPTES PTES_PER_PAGE
expr INTEL_PTE_VALID|INTEL_PTE_WRITE INTEL_PTE_KERNEL
diff --git a/i386/i386/vm_param.h b/i386/i386/vm_param.h
index edd9522c..314fdb35 100644
--- a/i386/i386/vm_param.h
+++ b/i386/i386/vm_param.h
@@ -36,7 +36,7 @@
* for better trace support in kdb; the _START symbol has to be offset by the
* same amount. */
#ifdef __x86_64__
-#define VM_MIN_KERNEL_ADDRESS 0x40000000UL
+#define VM_MIN_KERNEL_ADDRESS KERNEL_MAP_BASE
#else
#define VM_MIN_KERNEL_ADDRESS 0xC0000000UL
#endif
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 5302b092..57c18a0d 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -655,7 +655,7 @@ void pmap_bootstrap(void)
pa_to_pte(_kvtophys((void *) kernel_page_dir
+ i * INTEL_PGBYTES))
| INTEL_PTE_VALID
-#ifdef MACH_PV_PAGETABLES
+#if !defined(MACH_HYP) || defined(MACH_PV_PAGETABLES)
| INTEL_PTE_WRITE
#endif
);
@@ -1298,7 +1298,7 @@ pmap_t pmap_create(vm_size_t size)
WRITE_PTE(&p->pdpbase[i],
pa_to_pte(kvtophys((vm_offset_t) page_dir[i]))
| INTEL_PTE_VALID
-#ifdef MACH_PV_PAGETABLES
+#if !defined(MACH_HYP) || defined(MACH_PV_PAGETABLES)
| INTEL_PTE_WRITE
#endif
);
diff --git a/i386/intel/pmap.h b/i386/intel/pmap.h
index 63683bc5..bad640c1 100644
--- a/i386/intel/pmap.h
+++ b/i386/intel/pmap.h
@@ -148,6 +148,7 @@ typedef phys_addr_t pt_entry_t;
#define INTEL_PTE_NCACHE 0x00000010
#define INTEL_PTE_REF 0x00000020
#define INTEL_PTE_MOD 0x00000040
+#define INTEL_PTE_PS 0x00000080
#ifdef MACH_PV_PAGETABLES
/* Not supported */
#define INTEL_PTE_GLOBAL 0x00000000