Files
LithosAnanke/src/starkernel/arch/riscv64
Robert Allan JamesandClaude Sonnet 5 8251aebcf8 riscv64: virtio-keyboard-pci, interrupt-driven keyboard input (item 4.3.5c)
Punch list §25 item 4.3.5c complete.

Amended from a nonexistent MMIO transport to PCI (matching the board's
actual virtio-blk-pci precedent). New virtio-input driver: eventq with
pre-posted buffers, PLIC source computed at runtime from PCI slot/pin
(derived live from this host's QEMU riscv64 DTB), mandatory ISR-status
read, PCI interrupt-disable-bit check. New VKBD-EVENT/VKBD-DEBUG FORTH
words. Verified with a real QEMU sendkey keypress: exact KEY_A/press
match, two real interrupts serviced, zero exceptions. Three-arch
acceptance boot clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-08 11:51:07 -04:00
..
2026-08-01 07:49:56 -04:00

src/starkernel/arch/riscv64/

RISC-V 64-bit architecture support for LithosAnanke.

  • arch.c — architecture init entry point.
  • apic.c — PLIC (Platform-Level Interrupt Controller) stub, named apic.c to match the shared per-arch file-naming convention across amd64/aarch64/riscv64 (RISC-V has no Local APIC). Satisfies the common apic_init()/EOI call sites without real PLIC bring-up yet; deferred to a later milestone.
  • timer.c — timer setup (heartbeat tick source).
  • interrupts.c — trap vector setup and interrupt dispatch.
  • boot.S — early boot assembly.
  • isr.S — interrupt service routine stubs.

No kernel_entry.S — see Makefile.starkernel for how the riscv64 loader image is produced (ELF → scripts/gen_pe_reloc.py-patched relocations → objcopy → PE).