KERNEL: Pre-kernel sets up the physical memory manager.

* BUG: allocated blocks is possibly incorrect!
* prekernel no longer gets compiled as being in physical memory
This commit is contained in:
2022-09-03 01:00:17 +02:00
parent 01fcb0aa15
commit 656ca0baa8
9 changed files with 193 additions and 237 deletions

View File

@ -27,17 +27,10 @@ multiboot_page_table:
# Entry point
.section .multiboot.text, "a"
.global _start
.globl _start
.type _start, @function
_start:
/* push the pointer to the Multiboot information structure*/
pushl %ebx
/* push the magic value */
pushl %eax
call prekernelSetup
# Get physical address of the boot_page_table
movl $(boot_page_table - 0xC0000000), %edi
# Map address 0
@ -82,8 +75,15 @@ _start:
4:
# At this point, paging is fully set up and enabled
isPaging:
/* push the pointer to the Multiboot information structure*/
pushl %ebx
/* push the magic value */
pushl %eax
call prekernelSetup
# Unmap the identity mapping as it is now unnecessary
//movl $0, boot_page_directory + 0
movl $0, boot_page_directory + 0
# Reload cr3 to force tlb flush
movl %cr3, %ecx
@ -97,6 +97,7 @@ isPaging:
pushl $0
popf
call early_main
cli