1
0
Fork 0
mirror of https://github.com/hermitcore/libhermit.git synced 2025-03-09 00:00:03 +01:00

unmap temporary 1:1 mapping of the kernel

This commit is contained in:
Stefan Lankes 2015-05-24 11:23:10 +02:00
parent f2f9a3cbf0
commit 48d0383d40

View file

@ -210,6 +210,9 @@ Lno_mbinfo:
or eax, 0x183
mov DWORD [edi], eax
cmp ebp, kernel_start
je Lno_remap
; map kernel 1:1, use a page size of 2MB
mov eax, ebp
and eax, 0xFFE00000
@ -220,6 +223,7 @@ Lno_mbinfo:
add edi, ebp
or eax, 0x183
mov DWORD [edi], eax
Lno_remap:
pop edi
@ -301,6 +305,16 @@ start64:
mov fs, ax
mov gs, ax
cmp ebp, kernel_start
je Lno_unmap
; unmap temporary 1:1 mapping of the kernel
mov edi, ebp
shr edi, 18 ; (edi >> 21) * 8 (index for boot_pgd)
add edi, boot_pgd
mov DWORD [edi], 0
xor rdi, rdi
Lno_unmap:
; set default stack pointer
mov rsp, boot_stack
add rsp, KERNEL_STACK_SIZE-16