diff options
Diffstat (limited to 'asm')
| -rw-r--r-- | asm/asm_mp.asm | 15 | ||||
| -rw-r--r-- | asm/asm_start.s | 1 |
2 files changed, 5 insertions, 11 deletions
diff --git a/asm/asm_mp.asm b/asm/asm_mp.asm index f0eb9c0..c4eb4a9 100644 --- a/asm/asm_mp.asm +++ b/asm/asm_mp.asm @@ -29,23 +29,18 @@ init_pm: mov fs, ax mov gs, ax - mov ebp, 0x8000 + mov ebp, 0x7000 mov esp, ebp call boot_32_pm ;continue booting in 32-bit protected mode boot_32_pm: - hlt - jmp boot_32_pm - ;mov eax, 1 ; semaphore - ;xchg eax, [LLOCK] - ;cmp eax,1 - ;hlt - ;je $ - ;jmp $ ; loop forever here + mov eax,1 + xchg eax, [LLOCK] + cmp eax,1 + je boot_32_pm - ;call [0x8010] ;kernel_ap ;jump into our Kernel! call smp_main jmp $ ; should never be reached diff --git a/asm/asm_start.s b/asm/asm_start.s index ca99c20..e961ef6 100644 --- a/asm/asm_start.s +++ b/asm/asm_start.s @@ -22,7 +22,6 @@ _start_smp: call smp_start # TODO: align later before going C - # Declare a header as in the Multiboot Standard. We put this into a special # section so we can force the header to be in the start of the final program. # You don't need to understand all these details as it is just magic values that |
