mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
Kernel: Expand the kernel memory slot from 16 MiB to 32 MiB
Like in 8cd5477e54
, we need to expand the
kernel slot again to be able to boot again.
This commit is contained in:
parent
7078119c58
commit
dac129e10b
Notes:
sideshowbarker
2024-07-18 18:00:44 +09:00
Author: https://github.com/supercomputer7 Commit: https://github.com/SerenityOS/serenity/commit/dac129e10bd Pull-request: https://github.com/SerenityOS/serenity/pull/6277 Reviewed-by: https://github.com/ElectrodeYT Reviewed-by: https://github.com/awesomekling
@ -51,7 +51,7 @@ boot_pd0_pt0:
|
|||||||
.skip 4096 * 4
|
.skip 4096 * 4
|
||||||
.global boot_pd3_pts
|
.global boot_pd3_pts
|
||||||
boot_pd3_pts:
|
boot_pd3_pts:
|
||||||
.skip 4096 * 8
|
.skip 4096 * 16
|
||||||
.global boot_pd3_pt1023
|
.global boot_pd3_pt1023
|
||||||
boot_pd3_pt1023:
|
boot_pd3_pt1023:
|
||||||
.skip 4096
|
.skip 4096
|
||||||
@ -91,7 +91,17 @@ boot_pd3 : 512 pde's
|
|||||||
5: boot_pd3_pts[5] (3082-3084MB) (pseudo 512 4KB pages)
|
5: boot_pd3_pts[5] (3082-3084MB) (pseudo 512 4KB pages)
|
||||||
6: boot_pd3_pts[6] (3084-3086MB) (pseudo 512 4KB pages)
|
6: boot_pd3_pts[6] (3084-3086MB) (pseudo 512 4KB pages)
|
||||||
7: boot_pd3_pts[7] (3086-3088MB) (pseudo 512 4KB pages)
|
7: boot_pd3_pts[7] (3086-3088MB) (pseudo 512 4KB pages)
|
||||||
8: boot_pd3_pt1023 (4094-4096MB) (for page table mappings)
|
|
||||||
|
8: boot_pd3_pts[8] (3088-3090MB) (pseudo 512 4KB pages)
|
||||||
|
9: boot_pd3_pts[9] (3090-3076MB) (pseudo 512 4KB pages)
|
||||||
|
10: boot_pd3_pts[10] (3092-3094MB) (pseudo 512 4KB pages)
|
||||||
|
11: boot_pd3_pts[11] (3094-3096MB) (pseudo 512 4KB pages)
|
||||||
|
12: boot_pd3_pts[12] (3096-3098MB) (pseudo 512 4KB pages)
|
||||||
|
13: boot_pd3_pts[13] (3098-3100MB) (pseudo 512 4KB pages)
|
||||||
|
14: boot_pd3_pts[14] (3100-3102MB) (pseudo 512 4KB pages)
|
||||||
|
15: boot_pd3_pts[15] (3102-3104MB) (pseudo 512 4KB pages)
|
||||||
|
|
||||||
|
16: boot_pd3_pt1023 (4094-4096MB) (for page table mappings)
|
||||||
|
|
||||||
the 9 page tables each contain 512 pte's that map individual 4KB pages
|
the 9 page tables each contain 512 pte's that map individual 4KB pages
|
||||||
|
|
||||||
@ -145,7 +155,7 @@ start:
|
|||||||
|
|
||||||
/* clear pd3's pt's */
|
/* clear pd3's pt's */
|
||||||
movl $(boot_pd3_pts - 0xc0000000), %edi
|
movl $(boot_pd3_pts - 0xc0000000), %edi
|
||||||
movl $(1024 * 9), %ecx
|
movl $(1024 * 17), %ecx
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
rep stosl
|
rep stosl
|
||||||
|
|
||||||
@ -157,7 +167,7 @@ start:
|
|||||||
orl $0x3, 0(%edi)
|
orl $0x3, 0(%edi)
|
||||||
|
|
||||||
/* add boot_pd3_pts to boot_pd3 */
|
/* add boot_pd3_pts to boot_pd3 */
|
||||||
movl $8, %ecx
|
movl $16, %ecx
|
||||||
movl $(boot_pd3 - 0xc0000000), %edi
|
movl $(boot_pd3 - 0xc0000000), %edi
|
||||||
movl $(boot_pd3_pts - 0xc0000000), %eax
|
movl $(boot_pd3_pts - 0xc0000000), %eax
|
||||||
|
|
||||||
@ -182,8 +192,8 @@ start:
|
|||||||
addl $4096, %eax
|
addl $4096, %eax
|
||||||
loop 1b
|
loop 1b
|
||||||
|
|
||||||
/* pseudo identity map the 3072-3090MB range */
|
/* pseudo identity map the 3072-3102MB range */
|
||||||
movl $(512 * 8), %ecx
|
movl $(512 * 16), %ecx
|
||||||
movl $(boot_pd3_pts - 0xc0000000), %edi
|
movl $(boot_pd3_pts - 0xc0000000), %edi
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ extern "C" PageDirectoryEntry boot_pd3[1024];
|
|||||||
|
|
||||||
UNMAP_AFTER_INIT PageDirectory::PageDirectory()
|
UNMAP_AFTER_INIT PageDirectory::PageDirectory()
|
||||||
{
|
{
|
||||||
m_range_allocator.initialize_with_range(VirtualAddress(0xc1000000), 0x30800000);
|
m_range_allocator.initialize_with_range(VirtualAddress(0xc2000000), 0x2f000000);
|
||||||
m_identity_range_allocator.initialize_with_range(VirtualAddress(FlatPtr(0x00000000)), 0x00200000);
|
m_identity_range_allocator.initialize_with_range(VirtualAddress(FlatPtr(0x00000000)), 0x00200000);
|
||||||
|
|
||||||
// Adopt the page tables already set up by boot.S
|
// Adopt the page tables already set up by boot.S
|
||||||
|
@ -104,7 +104,7 @@ static Processor s_bsp_processor; // global but let's keep it "private"
|
|||||||
|
|
||||||
extern "C" UNMAP_AFTER_INIT [[noreturn]] void init()
|
extern "C" UNMAP_AFTER_INIT [[noreturn]] void init()
|
||||||
{
|
{
|
||||||
if ((FlatPtr)&end_of_kernel_image >= 0xc1000000u) {
|
if ((FlatPtr)&end_of_kernel_image >= 0xc2000000u) {
|
||||||
// The kernel has grown too large again!
|
// The kernel has grown too large again!
|
||||||
asm volatile("cli;hlt");
|
asm volatile("cli;hlt");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user