From 47d7e8e4527c663dd1a0c04a4ea5624589464895 Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 31 Aug 2018 11:49:07 +0200 Subject: various improvmenets * added debugging symbols to nasm output * started implementing an unified interrupt interface * moved smp entry point to kernel image! --- mp/mp.asm | 84 --------------------------------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 mp/mp.asm (limited to 'mp') diff --git a/mp/mp.asm b/mp/mp.asm deleted file mode 100644 index 740a1a0..0000000 --- a/mp/mp.asm +++ /dev/null @@ -1,84 +0,0 @@ -; master boot record for application processors - -[org 0x7000] -[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] - - -LLOCK: dd 0 - -init_pm: - - mov ax, 0x10 - mov ds, ax - mov ss, ax - mov es, ax - mov fs, ax - mov gs, ax - - mov ebp, 0x8000 - mov esp, ebp - - call boot_32_pm ;continue booting in 32-bit protected mode - -boot_32_pm: - - mov eax, 1 ; semaphore - xchg eax, [LLOCK] - cmp eax,1 - je $ - - call [0x8010] ;kernel_ap ;jump into our Kernel! - jmp $ ; should never be reached - - -gdt_start: - -gdt_null: ;null descriptor (2 x 4 bytes) - dd 0x0 - dd 0x0 - -gdt_code: - ; flags: - ; present: 1 / privilege: 00 / type: 1 - ; code: 1 / conforming: 0 / readable: 1 / accessed: 0 - ; granularity: 1 / 16-bit default: 1 / 64-bit seg: 0 / AVL: 0 - dw 0xffff ;limit - dw 0x0 ;base - db 0x0 ;base - db 10011010b ;flags - db 11001111b ;flags & seg.limit - db 0x0 ;base - -gdt_data: - ; flags: - ; code: 0 / expand down: 0 / writable: 1 / accessed: 0 - dw 0xffff - dw 0x0 - db 0x0 - db 10010010b - db 11001111b - db 0x0 - -gdt_end: - -gdt_descriptor: - dw gdt_end-gdt_start-1 - dd gdt_start - -CODE_SEG equ gdt_code - gdt_start -DATA_SEG equ gdt_data - gdt_start - -- cgit v1.2.3