Booting our RISC-V images
Thanks in large part to the hard work by X512 and everyone developing on Haiku, our nightly RISCV64 images are now functional.
RISC-V marks Haiku’s first functional non-Intel/x86 port!
What is RISC-V?
RISC-V is a modern, fully open CPU instruction set which can be implemented, customized, extended, and sold without royalties. Designs exist for a 32-bit, 64-bit, and even a 128-bit processor design.
You can emulate RISC-V in qemu, design your own CPU and synthesize it for an FPGA, or you can purchase a commercially built and designed computer with a RISC-V processor.
Why not ARM?
Haiku developers are continuing to work on ARM and ARM64 ports of Haiku, RISC-V just finished first :-)
Running nightly RISCV64 images in qemu
Beware of bugs
There are multiple lingering bugs (#17379, #17380) in RISCV64 Haiku running under QEMU. If you don’t make it to the desktop, try again.
To boot Haiku in qemu (qemu-system-riscv64), you’ll need the following:
- qemu 6.0.0 or later
- Nightly riscv64 Haiku image (hrev55624 or later)
- u-boot binary for qemu riscv64
Once you have the above two items, then booting Haiku is as easy as running the following command:
qemu-system-riscv64 -M virt -m 1G -device ati-vga -kernel u-boot.bin \
-drive file=haiku-mmc.image,format=raw,if=virtio \
-usb -device usb-ehci,id=echi -device usb-kbd -device usb-tablet
- You can watch technical serial output via
view->serial0
- The eventual Haiku desktop will be available via
view->ati-vga
Running nightly RISCV64 images on the SiFive Unmatched
Update: Working versions
riscv64 was broken after our merge of GCC 11. hrev55697 is currently the last image to boot to a desktop until this regression is repaired.
To boot Haiku on the SiFive unmatched, you will need the following:
- SiFive Unmatched board
- A Radeon HD graphics card which works with our radeon_hd driver
- SD Card prepared as a “u-boot uefi bios”
- Nightly riscv64 Haiku image (between hrev55624 and hrev55697) written to a USB Flash drive
dd if=haiku-mmc.image of=/dev/sdXX bs=4M
Serial Debugging
In the event of trouble, attaching a Micro-USB cable to the Unmatched allows you to see serial output during startup. (minicom, 115200 8N1, no flow control)
Once you have all of the requirements above, the following process will get you booted into Haiku:
- Plug the SD Card into the SiFive Unmatched
- Plug the USB Flash drive into the SiFive Unmatched
- Power on the SiFive Unmatched. You should be greeted with a desktop within a minute or two
Wrapup
Overall, RISC-V offers an exciting opportunity for us to grow our non-x86 architecture support. A lot of work still remains on RISC-V including support for SMP (multi-processor), however this is a massive first step.