SMP Work (APs now start, just seem to lock up on lgdt, or whatever is at that address)
[tpg/acess2.git] / Kernel / arch / x86 / desctab.asm
index 969752c..b5d060d 100644 (file)
@@ -3,10 +3,10 @@
 ; desctab.asm
 [BITS 32]
 
-%if ARCH == "i386"
-MAX_CPUS       equ     1
-%else
+%if USE_MP
 MAX_CPUS       equ     8
+%else
+MAX_CPUS       equ     1
 %endif
 GDT_SIZE       equ     (1+2*2+1+MAX_CPUS)*8
 
@@ -21,24 +21,27 @@ gGDT:
        dd 0x0000FFFF, 0x00CF9200       ; 10 PL0 Data
        dd 0x0000FFFF, 0x00CFFA00       ; 18 PL3 Code
        dd 0x0000FFFF, 0x00CFF200       ; 20 PL3 Data
-       dd 0, 0 ; Double Fault TSS
-       times MAX_CPUS  dd 0, 0
-gGDTptr:
+       dd 26*4-1, 0x00408900   ; Double Fault TSS
+       times MAX_CPUS  dd 26*4-1, 0x00408900
+[global gGDTPtr]
+gGDTPtr:
        dw      GDT_SIZE-1
        dd      gGDT
 ; IDT
 ALIGN 8
 gIDT:
        times   256     dd      0x00080000,0x00000F00
+[global gIDTPtr]
 gIDTPtr:
        dw      256 * 16 - 1    ; Limit
        dd      gIDT            ; Base
 
 [section .text]
+
 [global Desctab_Install]
 Desctab_Install:
        ; Set GDT
-       lgdt [gGDTptr]
+       lgdt [gGDTPtr]
        mov ax, 0x10    ; PL0 Data
        mov ss, ax
        mov ds, ax

UCC git Repository :: git.ucc.asn.au