seL4 for SpacemiT K3
The QSOE 0.3 notes say the K3 is QSOE/N only. That was true of the release set and, for the three days before it, false of the lab: on the evening of 14 September seL4 16.0.0 booted to user space on the SpacemiT K3 — 16 harts, at the first attempt — and by the small hours of the 16th QSOE/L was logged in on it, over the serial line and on the screen, with the NVMe, the USB keyboard and the network attached and, once up, nothing from the kernel on the console at all. The kernel is k3sel4 , version 16.0.0-qsoe-k3-0.2 . This post is about what it took, because seL4 16.0.0 could not have booted on this board: the SoC has none of the things the RISC-V kernel assumes, and one thing it does not expect. seL4 16.0.0 assumes the K3 has k3sel4 does a PLIC no PLIC anywhere: an S-mode APLIC in MSI delivery mode feeding 16 IMSIC interrup files (the RISC-V AIA) a driver for both, behind the kernel’s six-function interrupt-controller contract the SBI v0.1 legacy calls, for everything ...