I’m one of the people working on Haiku running on the SiFive Unmatched! (X512 being the lead)
I have a short plea to everyone working on various operating system distributions for the SiFive Unmatched. Given the slow transfer speeds of the bit-banged SD Card on the SiFive Unmatched, and the general complexity of writing the u-boot loader to the SD Card… I have the following proposal / best practice:
- Encourage users to create a “firmware SD card”
What I mean by this, is don’t place your operating systems on the SD card. As an example, Haiku creates such a “firmware sd card” via the script here:
Note: I have a fix for upstream u-boot to properly scan USB media for EFI bootloaders here: config/sifive_unmatched: add preboot commands - Patchwork
- Release generic OS images, started via a RISCV64 EFI bootloader.
The model above means the SiFive unmatched can have a “firmware SD card” you don’t need to worry about, and all distros only need to release a generic “EFI-started rv64gc” image (much like how x86 works) that can be booted via USB flash. That image can even have an installer to write to the NVMe under a standard EFI model and function just like an x86 desktop.
u-boot compiled for the unmatched, providing EFI bios services, will pass a pre-configured FDT image for the Unmatched into EFI via a hook.
This helps to sidestep the whole complex “customized arm board image” model that has plagued the arm world for years.