newer Plan 9 (9 and 9k) kernels,
including for RISC-V RV64GC systems, in
9k-pf.tgz
(10 Jun 2026).
It also includes Plan 9 on the PC
and 9k on the AMD64,
which copes with arbitrarily large memories.
This is a source distribution, not a bootable installer, so you will
need an existing Plan 9 installation to install these.
9k-riscv.pdf
describes the current RISC-V port.
-
These RISC-V systems are supported:
our modified tinyemu emulator,
Polarfire Icicle,
Beagle V,
Starfive Visionfive 2,
HiFive Unmatched,
Milk-V Jupiter,
HiFive Premier P550.
I'm waiting for lower prices and better documentation for the
Spacemit K3 and Milk-V Titan and Jupiter 2,
plus evidence that they can boot with u-boot, not EFI.
-
The HiFive Premier P550 and Milk-V Jupiter now work,
despite their incoherent DMA.
Their CPUs are pretty fast (and Jupiter has 8!)
but they take more elapsed time than I think they should;
this may be the cost of incoherent DMA.
-
39-bit virtual addresses are supported (and verified) on all systems,
48-bit addresses on tinyemu and P550,
and
57-bit addresses on tinyemu.
-
This snapshot includes working PCI-E support on the P550,
for some devices.
PCI-E devices in the single PCI-E slot are now seen by software
and assigned BAR addresses.
Existing drivers for PCI-E devices require changes to add
cache maintenance operations to cope with the lack of coherent DMA.
An Intel i226-LM PCI-E Ethernet card is now working
but not the Samsung 990 NVME SSD yet, apparently due to some whacko required
IOMMU/SMMU/IATU mappings for PCI-E data accesses via the Synopsys controller.
Speaking of EFI, it's becoming harder to avoid,
but one hope is the
BOOTBOOT
project, which provides EFI programs
that act as normal non-EFI boot loaders, and run on several architectures.
I'm again trying to minimise 9 and 9k differences
and results should be in the next snapshot.
There is now just one directory for each of
boot and ip
and a single copy of more device drivers
shared between 9/pc and 9k/k10 than before.
I'm also taking another run at simpler (though larger) and perhaps
more flexible bootstraps:
a full PC kernel with user mode and a few commands bundled into it.
The result is a lot bigger than the current 9boot
and 9load, but the lzipped binary fits in 640K for PXE loading.