Ghost Kernel

ACPI, APIC & I/O APIC 2014/10/13, 16:00:00

Today I started implementing multiprocessor support for Ghost. I'm switching from the older 8259 PIC to the new APIC and its counterpart, the I/O APIC. This included writing some logic to read the ACPI tables and get the necessary information from there - bad luck by now if you don't have a computer with ACPI tables or an APIC. I'll have to check if a PIC fallback makes sense.

The BSP's APIC and its timer are already working fine and the I/O APIC setup information is stored. Next I'll configure the I/O APIC so that it lets keyboard/mouse interrupts through, once this is done theres only the wonderful step of making the entire kernel reentrancy-safe left to actually get multiprocessor support. That's gonna be interesting!