summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-01-19 01:42:25 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-01-19 01:42:25 +0100
commit8d30c12342c1cafa7c02ecc00244f57cb39eb148 (patch)
tree6c032f3a5718b8324b7d792735e80cb1148792d1
parent2029728ed6d2a88350be945a892d325aebc2eb8d (diff)
Fix i386 PAE boot
-rw-r--r--i386/intel/pmap.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 63f372a9..199f824e 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
-#if !defined(MACH_HYP) || defined(MACH_PV_PAGETABLES)
+#if (defined(__x86_64__) && !defined(MACH_HYP)) || defined(MACH_PV_PAGETABLES)
| INTEL_PTE_WRITE
#endif
);
@@ -1298,8 +1298,11 @@ 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
-#if !defined(MACH_HYP) || defined(MACH_PV_PAGETABLES)
- | INTEL_PTE_WRITE | INTEL_PTE_USER
+#if (defined(__x86_64__) && !defined(MACH_HYP)) || defined(MACH_PV_PAGETABLES)
+ | INTEL_PTE_WRITE
+#ifdef __x86_64__
+ | INTEL_PTE_USER
+#endif
#endif
);
}