Punch list §25 item 4.3.5d complete. New apic_spi_enable(intid) generalizes item 0.6's PPI-only sequence to one explicit SPI (IPRIORITYR/ISENABLER/ITARGETSR, ICFGR read-checked not written). Verified via a software-pended SPI (GICD_ISPENDR, no device needed) through the existing generic IRQ dispatch, which needed no changes. Found and fixed a real bug during verification: PSTATE.I is still set at apic_init()'s point in boot, so the first self-test run correctly latched but never took the interrupt. Self-test code reverted after capturing evidence -- interrupts.c has zero net diff, only apic_spi_enable() remains, unused until 4.3.5e. Three-arch acceptance boot clean. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
src/starkernel/arch/aarch64/
AArch64 architecture support for LithosAnanke.
arch.c— architecture init entry point.apic.c— GIC (Generic Interrupt Controller) stub, namedapic.cto match the shared per-arch file-naming convention across amd64/aarch64/riscv64. Satisfies the commonapic_init()/apic_eoi()call sites without real GIC bring-up yet; deferred to a later milestone.timer.c— architected timer setup (heartbeat tick source).interrupts.c— exception vector table setup and interrupt dispatch.boot.S— early boot assembly.isr.S— interrupt service routine stubs.
No kernel_entry.S — aarch64 uses a different UEFI loader entry path
(clang/lld-link COFF target, since GCC cannot produce an aarch64 PE
image; see Makefile.starkernel).