diff options
author | Andreas Kling <kling@serenityos.org> | 2021-02-23 21:50:18 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-02-23 21:50:18 +0100 |
commit | 8cd5477e54a19d5476e9a31d0677e58c9a4ce12d (patch) | |
tree | 68834143fb70bf518d787d9ed4c2a38772c75e83 /Kernel/Arch | |
parent | 4ba36c6a49bf078bb60ae3eb5dc2161fb26553f9 (diff) | |
download | serenity-8cd5477e54a19d5476e9a31d0677e58c9a4ce12d.zip |
Kernel: Expand the kernel memory slot from 8 MiB to 16 MiB
We were only 448 KiB away from filling up the old slot size we reserve
for the kernel above the 3 GiB mark. This expands the slot to 16 MiB,
which allows us to continue booting the kernel until somebody takes
the time to improve our loader.
Diffstat (limited to 'Kernel/Arch')
-rw-r--r-- | Kernel/Arch/i386/Boot/boot.S | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Kernel/Arch/i386/Boot/boot.S b/Kernel/Arch/i386/Boot/boot.S index e068815a60..18cbd6b7ec 100644 --- a/Kernel/Arch/i386/Boot/boot.S +++ b/Kernel/Arch/i386/Boot/boot.S @@ -51,7 +51,7 @@ boot_pd0_pt0: .skip 4096 * 4 .global boot_pd3_pts boot_pd3_pts: -.skip 4096 * 4 +.skip 4096 * 8 .global boot_pd3_pt1023 boot_pd3_pt1023: .skip 4096 @@ -87,7 +87,11 @@ boot_pd3 : 512 pde's 1: boot_pd3_pts[1] (3074-3076MB) (pseudo 512 4KB pages) 2: boot_pd3_pts[2] (3076-3078MB) (pseudo 512 4KB pages) 3: boot_pd3_pts[3] (3078-3080MB) (pseudo 512 4KB pages) - 4: boot_pd3_pt1023 (4094-4096MB) (for page table mappings) + 4: boot_pd3_pts[4] (3082-3084MB) (pseudo 512 4KB pages) + 5: boot_pd3_pts[5] (3084-3086MB) (pseudo 512 4KB pages) + 6: boot_pd3_pts[6] (3086-3088MB) (pseudo 512 4KB pages) + 7: boot_pd3_pts[7] (3088-3090MB) (pseudo 512 4KB pages) + 8: boot_pd3_pt1023 (4094-4096MB) (for page table mappings) the 9 page tables each contain 512 pte's that map individual 4KB pages @@ -141,7 +145,7 @@ start: /* clear pd3's pt's */ movl $(boot_pd3_pts - 0xc0000000), %edi - movl $(1024 * 5), %ecx + movl $(1024 * 9), %ecx xorl %eax, %eax rep stosl @@ -153,7 +157,7 @@ start: orl $0x3, 0(%edi) /* add boot_pd3_pts to boot_pd3 */ - movl $4, %ecx + movl $8, %ecx movl $(boot_pd3 - 0xc0000000), %edi movl $(boot_pd3_pts - 0xc0000000), %eax @@ -178,8 +182,8 @@ start: addl $4096, %eax loop 1b - /* pseudo identity map the 3072-3080MB range */ - movl $(512 * 4), %ecx + /* pseudo identity map the 3072-3090MB range */ + movl $(512 * 8), %ecx movl $(boot_pd3_pts - 0xc0000000), %edi xorl %eax, %eax |