Booting, a plea to SiFive on the HiFive Unmatched

SiFive, please do NOT make the same mistake you made on the HiFive unleashed.

I was reading through the u-boot FU540 docs here:

You have to:

  1. Create a GPT partition table with some random new UUID’s
  2. put various u-boot blobs within the partitions (but, without a filesystem)

This is echoing the miserable mess ARM is for OS developers. Needless embedded complication on a platform which can (and should!) also target desktop / developer markets creates a LOT more work.

Please keep it simple on non-embedded (aka non-RV32) chipsets…

  1. Reduce the complexity around providing MMC / USB / Disk media and getting u-boot running.
  2. Stick to standards which exist today like UEFI

I know UEFI sucks, and PE sucks… but it does already have standards built around bootable media, and already has some momentum from the HPE engineers on the RISC-V architecture. (also, you can boot EFI binaries with u-boot now)

BIOS services make development easier, and will rapidly widen the ecosystem of operating systems and distributions your silicon can benefit from.

1 Like

I personally put together the infrastructure for Haiku having “generic arm” bootable media… a fun JSON exists here showing all of the weird and wacky way some various ARM SOC’s boot:

  • A URL means the file is placed onto the first FAT32 filesystem within the sd card.
  • A number before the URL means the file is written at an offset on the sd card.

We have to have users “post-process” our ARM generic images on their desktops before writing it out for the device given the huge array of random requirements SOC’s have.

1 Like