Who should buy the HiFive Unleashed

(Mark Wylde) #1


First congratulations on the massive achievement, getting the HiFive Unleashed built and into the hands of developers. Thank you for all of the hard work and dedication to open source.

The Unleashed looks amazing and I’m very tempted to buy one, but I’m not sure how “low level” you will need to be to actually use the board.

When they get shipped out at the end of June, we open the package and plug in the USB (or other power source) what do we actually get?

  1. Is the board like other SoC where there is a ROM (that can be flashed?) that contains a bootloader, which reads a drive (SD/emmc/whatever) containing an operating system?

  2. Will the ROM be flashable? As in can we create our own firmware for the SoC? Will this use Freedom Studio?

  3. Is there any documentation (or will there be) on the boot process?

  4. Will this work with riscv-linux, or will you be providing a working linux operating system?

I guess my main question is probably what level of developer should you be to use the Unleased? If you are a hobbyist will there be documentation for building the bootloader, linux and flashing everything. Or will the board just come with everything ready for us to start writing c/c++ code inside a linux shell?

Thanks again for all the hard work!

(Bruce Hoult) #2

I don’t know the answer yet. I’ve ordered one of those shipping at the end of March. I certainly hope that, like with Raspberry Pi or Odroid or other ARM boards you’ll be able to download a disk image from a web site, copy it onto an SD card on your PC using dd, pop it into the Unleashed, and it’ll boot right up.

(Megan A. Wachs) #3

Easier than that, the SDcard will already be programmed and installed.

(Bruce Hoult) #4


And dhcp enabled and sshd listening?

(Wesley W. Terpstra) #5
  1. There is a bootloader capable of booting from, amongst other things, SPI/flash and SD card.

  2. The bootloader is multiple stages, the first two are unflashable ROM in the chip itself. The first stage bootloader (FSBL) which configures DDR and PLLs lives by default on SPI/flash and can be modified. bbl+linux live by default on the SD card and are chain loader from the FSBL.

  3. Yes, there will be a Freedom/U manual.

  4. Yes, it works with riscv-linux. Currently the needed drivers are on the riscv-linux-4.15 branch. The board ships with a preprogrammed SD card.

  5. The board starts DHCP+SSH on boot.

  6. There is no compiler on the SD card; you will either need to cross-compile your own code or the gcc.

(Wesley W. Terpstra) #6

Also, I should mention that both bbl+linux are still a bit of a work-in-progress, so there will likely be firmware updates that need to be written to the SD card as time goes on.

(Mark Wylde) #7

@terpstra thank you so much for your answers. Is there any documentation on the bootloader process, specifically what the unflashable ROM’s in the chip do? I presume it does the bare minimum needed to read the SPI/flash into memory then start execution. Would be nice (if not now but when the chips go out) if we had a full end to end picture of how we get from power to Linux.

(Wesley W. Terpstra) #8

The first ROM is like 5 assembler instructions. We will release the second ROM’s contents at some point, though it is not very interesting. It’s a bit ackward to extract code from our larger repository’s build flow for both the FSBL in SPI and the 2nd-stage ROM, but we will do it.

(Mark Wylde) #9

That’s awesome Wesley! Thanks for the information. That’ll be excellent to have that information and make the Unlimited one of the very few chips out there that we know the complete end to end journey from power on the os. Best of luck!

(Mark Wylde) #10

Hi @terpstra

Now that the first unleashed boards have been in the hands of developers for a few months now, has there been any documentation on the entire boot process yet? Right from the ZSBL to BBL? I have seen an article [1] that explains the last stage bootloader, but it seems to entirely missed out the first stage and second stage bootloader.

  1. https://www.sifive.com/blog/2017/10/09/all-aboard-part-6-booting-a-risc-v-linux-kernel/

(Wesley W. Terpstra) #11

Have you checked out the documentation? https://www.sifive.com/documentation/chips/freedom-u540-c000-manual/ Chapter 6 “Boot Process”. If you want more detail than is described there, there is someone working on open-sourcing the code for the ZSBL and FSBL right now. Hopefully that will be available soon.

(Mark Wylde) #12

Thanks for your reply @terpstra.

The documentation is lovely for SiFive and it’s a great read so thanks for that link.

Again I feel the ZSBL is very small and it would be great to see exactly everything it is responsible for. The open source code for ZSBL and FSBL would be awesome.