aboutsummaryrefslogtreecommitdiff
path: root/x86_64/Makefrag.am
diff options
context:
space:
mode:
authorLuca Dariz <luca@orpolo.org>2023-02-12 18:28:18 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-12 19:20:31 +0100
commit6a46db9fe035c26ab549bc0b681469fc650141d6 (patch)
tree18168863abbfbb4e1850c995269a20b86e748d31 /x86_64/Makefrag.am
parenteef53f7a1309e52012babc62da81a2ac750a7e9f (diff)
downloadgnumach-6a46db9fe035c26ab549bc0b681469fc650141d6.tar.gz
gnumach-6a46db9fe035c26ab549bc0b681469fc650141d6.tar.bz2
gnumach-6a46db9fe035c26ab549bc0b681469fc650141d6.zip
move kernel virtual address space to upper addresses
* i386/i386/vm_param.h: adjust constants to the new kernel map - the boothdr.S code already sets up a temporary map to higher addresses, so we can use INIT_VM_MIN_KERNEL_ADDRESS as in xen - increase the kernel map size to accomodate for bigger structures and more memory - adjust kernel max address and directmap limit * i386/i386at/biosmem.c: enable directmap check also on x86_64 * i386/include/mach/i386/vm_param.h: increase user virtual memory limit as it's not conflicting with the kernel's anymore * i386/intel/pmap.h: adjust lin2pdenum_cont() and INTEL_PTE_PFN to the new kernel map * x86_64/Makefrag.am: change KERNEL_MAP_BASE to be above 4G, and according to mcmodel=kernel. This will allow to use the full memory address space. Message-Id: <20230212172818.1511405-10-luca@orpolo.org>
Diffstat (limited to 'x86_64/Makefrag.am')
-rw-r--r--x86_64/Makefrag.am12
1 files changed, 6 insertions, 6 deletions
diff --git a/x86_64/Makefrag.am b/x86_64/Makefrag.am
index 03b1eca7..d3735890 100644
--- a/x86_64/Makefrag.am
+++ b/x86_64/Makefrag.am
@@ -186,12 +186,12 @@ include_mach_x86_64_HEADERS = \
#
if PLATFORM_at
-# This should probably be 0xffffffff80000000 for mcmodel=kernel, but let's try
-# to stay in the first 8G first, otherwise we have to fix the pmap module to
-# actually use the l4 page level
-#KERNEL_MAP_BASE=0x100000000
-# but for nor try with < 4G, otherwise we have linker errors
-KERNEL_MAP_BASE=0x40000000
+# For now simply keep all the kernel virtual space in the last 2G.
+# We could use a more elaborate schema if needed (e.g. reserving a
+# larger area for directmap or the kernel heap)), I think only the
+# test/bss/data sections need to be placed here kere because of
+# -mcmodel=kernel
+KERNEL_MAP_BASE=0xffffffff80000000
gnumach_LINKFLAGS += \
--defsym _START_MAP=$(_START_MAP) \
--defsym _START=$(_START_MAP) \