summaryrefslogtreecommitdiff
path: root/xxx/boot2/mp.asm
diff options
context:
space:
mode:
Diffstat (limited to 'xxx/boot2/mp.asm')
-rw-r--r--xxx/boot2/mp.asm37
1 files changed, 37 insertions, 0 deletions
diff --git a/xxx/boot2/mp.asm b/xxx/boot2/mp.asm
new file mode 100644
index 0000000..b6efd04
--- /dev/null
+++ b/xxx/boot2/mp.asm
@@ -0,0 +1,37 @@
+; other processors will enter here!
+[org 0x7000] ; here the binary will be loaded
+
+[bits 16]
+
+ cli ;switch off interrupts!
+ lgdt [gdt_descriptor] ;load descriptor table!
+
+ ;switch on 32-bit protected mode
+ mov eax, cr0
+ or eax,0x1
+ mov cr0, eax
+
+ jmp 0x8:init_pm
+
+[bits 32]
+init_pm:
+
+ mov ax, 0x10
+ mov ds, ax
+ mov ss, ax
+ mov es, ax
+ mov fs, ax
+ mov gs, ax
+
+ mov ebp, 0x95000
+ mov esp, ebp
+
+ call boot_32_pm ;continue booting in 32-bit protected mode
+
+boot_32_pm:
+
+ mov eax,1
+;
+ call 0x18000 ;jump into our Kernel!
+
+%include "GDT.asm"