diff --git a/Kernel/Prekernel/Prekernel.h b/Kernel/Prekernel/Prekernel.h index f237286e2fcc30..7c0176fc12ec00 100644 --- a/Kernel/Prekernel/Prekernel.h +++ b/Kernel/Prekernel/Prekernel.h @@ -15,6 +15,10 @@ #define MAX_KERNEL_SIZE 0x4000000 #define KERNEL_PD_SIZE 0x31000000 +// FIXME: This should be using the define from Sections.h, but that currently is not possible +// and causes linker errors, because Sections.h includes BootInfo.h. +#define KERNEL_MAPPING_BASE 0x2000000000 + #ifdef __cplusplus namespace Kernel { diff --git a/Kernel/Prekernel/init.cpp b/Kernel/Prekernel/init.cpp index 1f95655941653b..b7ad0e96ec3d1b 100644 --- a/Kernel/Prekernel/init.cpp +++ b/Kernel/Prekernel/init.cpp @@ -90,7 +90,7 @@ extern "C" [[noreturn]] void init() __builtin_memcpy(kernel_program_headers, kernel_image + kernel_elf_header.e_phoff, sizeof(ElfW(Phdr)) * kernel_elf_header.e_phnum); FlatPtr kernel_physical_base = 0x200000; - FlatPtr default_kernel_load_base = 0x2000200000; + FlatPtr default_kernel_load_base = KERNEL_MAPPING_BASE + 0x200000; FlatPtr kernel_load_base = default_kernel_load_base; diff --git a/Kernel/Sections.h b/Kernel/Sections.h index 9142dc6ccc39c4..37593b1acaa687 100644 --- a/Kernel/Sections.h +++ b/Kernel/Sections.h @@ -15,6 +15,8 @@ #define READONLY_AFTER_INIT __attribute__((section(".ro_after_init"))) #define UNMAP_AFTER_INIT NEVER_INLINE __attribute__((section(".unmap_after_init"))) +#define KERNEL_MAPPING_BASE 0x2000000000 + #define KERNEL_PD_END (kernel_mapping_base + KERNEL_PD_SIZE) #define KERNEL_PT1024_BASE (kernel_mapping_base + 0x3FE00000)