diff options
Diffstat (limited to 'kernel/src/apic/madt.c')
| -rw-r--r-- | kernel/src/apic/madt.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/kernel/src/apic/madt.c b/kernel/src/apic/madt.c index 654182a..d133f2d 100644 --- a/kernel/src/apic/madt.c +++ b/kernel/src/apic/madt.c @@ -145,6 +145,16 @@ void parse_madt() } kfree(madt); + + uint8_t bspid = curr_cpu_apic_id(); + + map_addr(lapic_addr, lapic_addr, FLAG_PRESENT); + map_addr(ioapic_addr, ioapic_addr, FLAG_PRESENT); + // irq is 2 because of gsi remap + ioapic_set_irq(0x2, bspid, 0x20); // timer + ioapic_set_irq(0x1, bspid, 0x21); // keyboard + __asm__ volatile ("sti;"); + /* for(size_t i = 0; i < numcores; i++) { // do not start BSP, that's already running this code @@ -168,13 +178,4 @@ void parse_madt() } } */ - - uint8_t bspid = curr_cpu_apic_id(); - - map_addr(lapic_addr, lapic_addr, FLAG_PRESENT); - map_addr(ioapic_addr, ioapic_addr, FLAG_PRESENT); - // irq is 2 because of gsi remap - ioapic_set_irq(0x2, bspid, 0x20); // timer - ioapic_set_irq(0x1, bspid, 0x21); // keyboard - __asm__ volatile ("sti;"); } |
