pc, pc64: extend initial memory map for qemu multiboot data

qemu puts multiboot data after the end of the kernel image, so
to be able to KADDR() that memory early, we extend the initial
identity mapping by 16K. right now we just got lucky with
the pc kernel as it rounds the map to 4MB pages.
This commit is contained in:
cinap_lenrek 2015-04-08 02:50:09 +02:00
parent 853823f435
commit fba26da490
2 changed files with 6 additions and 0 deletions

View file

@ -186,6 +186,9 @@ TEXT mode32bit(SB), $0
MOVL $PADDR(CPU0PTE), AX /* first page of page table */
MOVL $end-KZERO(SB), CX
ADDL $(16*1024), CX /* qemu puts multiboot data after the kernel */
ADDL $(BY2XPG-1), CX
ANDL $~(BY2XPG-1), CX /* round to 4MB */
MOVL CX, MemMin-KZERO(SB) /* see memory.c */

View file

@ -149,6 +149,9 @@ TEXT _warp64<>(SB), 1, $-4
*/
ADDL $PDO(KZERO), AX
MOVL $end-KZERO(SB), CX
ADDL $(16*1024), CX /* qemu puts multiboot data after the kernel */
ADDL $(PGLSZ(1)-1), CX
ANDL $~(PGLSZ(1)-1), CX
MOVL CX, MemMin-KZERO(SB) /* see memory.c */