summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-04 01:39:10 +0200
committerMiguel <m.i@gmx.at>2018-09-04 01:39:10 +0200
commitf67ad595650954195ef064a8b91038dbd0e16842 (patch)
treef954239e0b9125df4ca44cdc6bb85090a1cfbe51 /asm
parent7eb87bf3f3fa6226657a7106eb255cbfa97758d2 (diff)
ioapic & lapic
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