X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86_64%2Fstart32.asm;h=d38c993ee52f109bbdb2af49594bb001908902d3;hb=463074dd4899f1cc851bff9c74356f5c6def1bb2;hp=e1db2c5c5dec62532622a6b1916f3dd9ba431a95;hpb=d1d3bfa26bd78e298ad2431c4f86e2ea94515aab;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86_64/start32.asm b/Kernel/arch/x86_64/start32.asm index e1db2c5c..d38c993e 100644 --- a/Kernel/arch/x86_64/start32.asm +++ b/Kernel/arch/x86_64/start32.asm @@ -1,3 +1,8 @@ +; +; Acess2 x86_64 port +; + +%include "arch/x86_64/include/common.inc.asm" [BITS 32] @@ -65,7 +70,7 @@ start: ; Enable paging mov eax, cr0 - or eax, 0x80000000 + or eax, 0x80010000 ; PG & WP mov cr0, eax ; Load GDT @@ -94,10 +99,10 @@ gGDT: dd 0,0 dd 0x00000000, 0x00209A00 ; 0x08: 64-bit Code dd 0x00000000, 0x00009200 ; 0x10: 64-bit Data - dd 0x00000000, 0x0020FA00 ; 0x18: 64-bit User Code - dd 0x00000000, 0x0000F200 ; 0x20: 64-bit User Data - dd 0x00000000, 0x0040FA00 ; 0x28: 32-bit User Code - dd 0x00000000, 0x0040F200 ; 0x30: 32-bit User Data + dd 0x00000000, 0x0040FA00 ; 0x18: 32-bit User Code + dd 0x00000000, 0x0040F200 ; 0x20: User Data + dd 0x00000000, 0x0020FA00 ; 0x28: 64-bit User Code + dd 0x00000000, 0x0000F200 ; 0x30: User Data (64 version) times MAX_CPUS dd 0, 0x00008900, 0, 0 ; 0x38+16*n: TSS 0 gGDTPtr: dw $-gGDT-1 @@ -150,11 +155,11 @@ gKStackPT: ; Covers 2 MiB ; Initial stack - 64KiB dq 0 %assign i 0 - %rep 16-1 + %rep INITIAL_KSTACK_SIZE-1 dd gInitialKernelStack - KERNEL_BASE + i*0x1000 + 0x103, 0 %assign i i+1 %endrep - times 512-16 dq 0 + times 512-INITIAL_KSTACK_SIZE dq 0 gInitialPT1: ; 2 MiB %assign i 0 %rep 512 @@ -171,8 +176,10 @@ gInitialPT2: ; 2 MiB [section .padata] [global gInitialKernelStack] gInitialKernelStack: - times 0x1000*(16-1) db 0 ; 16 Pages + times 0x1000*(INITIAL_KSTACK_SIZE-1) db 0 ; 8 Pages [section .rodata] csNot64BitCapable: db "Not 64-bit Capable",0 + +; vim: ft=nasm