Running 64-bit RISC-V Linux on SiFive HiFive Unleashed
SiFive’s HiFive Unleashed is a Linux capable development board featuring the Freedom U540, the industry’s first commercially available Linux-capable RISC-V SoC.
It’s a very good starting point if you want to get Linux running on a physical chip/board. Just like with the HiFive1, SiFive provides open source schematics, an Altium Designer PCB project, BOM, and - of course - tooling for the HiFive Unleashed.
Note
This chapter targets Debian-based Linux flavors, and has been tested on Ubuntu 18.04.
Prerequisites
Running Linux on the HiFive Unleashed board requires you to install some prerequisites.
sudo apt install autoconf automake autotools-dev bc bison build-essential curl flex \
gawk gdisk git gperf libgmp-dev libmpc-dev libmpfr-dev libncurses-dev \
libssl-dev libtool patchutils python screen texinfo unzip zlib1g-dev
Getting the sources
Clone the official Freedom Unleashed SDK repository and checkout to appropriate version:
git clone --recursive https://github.com/sifive/freedom-u-sdk.git
cd freedom-u-sdk
git checkout hifive-unleashed
cd buildroot
git checkout sifive
cd ..
Note
Recursively cloning the Freedom Unleashed SDK repository may take a while. Should it fail, use git submodule update --init --recursive
inside the freedom-u-sdk
folder to make sure you have all the relevant files.
Building
Simply run:
make -j $(nproc)
Note
The build process may take some time, do not be discouraged by the wait.
Flashing
Insert an empty SD card and run the following commands:
umount /dev/sdx # change "x" hereinafter with a letter corresponding to your SD card!
sgdisk --clear \
--new=1:2048:67583 --change-name=1:bootloader --typecode=1:2E54B353-1271-4842-806F-E436D6AF6985 \
--new=2:264192: --change-name=2:root --typecode=2:0FC63DAF-8483-4772-8E79-3D69D8477DE4 \
/dev/sdx
dd if=freedom-u-sdk/work/bbl.bin of=/dev/sdx1 bs=4096
mke2fs -t ext3 /dev/sdx2
Running
Connect HiFive’s USB serial console to your PC. On the PC, open your favourite serial terminal and connect to the board’s serial console using e.g picocom:
picocom -b 115200 /dev/ttyUSBX
# where X is the device number - this can be obtained from e.g. your system log
Note
The UART connection parameters are: baud rate 115200 bps, no flow control, 8bit words, no parity bits. The /dev/ttyX device may not appear in the system until the HiFive board is powered.
Power up the board and wait until Linux boots. The default Linux credentials are:
- username
root
- password
sifive