summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/asm_mp.asm15
-rw-r--r--asm/asm_start.s1
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