HiFive Unleashed: Difference between revisions

From ALT Linux Wiki
No edit summary
No edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[ru:HiFive Unleashed]]
{{Stub}}
{{Stub}}


[https://www.sifive.com SiFive] [https://www.sifive.com/boards/hifive-unleashed HiFive Unleashed] is a RISC‑V development board featuring the Freedom U540 SoC. Its production is discontinued, but it's still supported by [[Ports/riscv64|Sisyphus riscv64 port]].
[https://www.sifive.com SiFive] [https://www.sifive.com/boards/hifive-unleashed HiFive Unleashed] is a RISC‑V development board featuring the Freedom U540 SoC. Its production is discontinued, but it's still supported by [[Ports/riscv64|Sisyphus riscv64 port]].


[[Regular/riscv64|Regular Images]] and [[Simply Linux 9]] were released for this board.
[[Regular/riscv64|Regular Images]] and [[Simply Linux 10]] were released for this board.


== Quick start ==
== Quick start ==


TBD.
TBD.
== Setup with alt-rootfs-installer ==
Regular images starting from 20220120 cannot be written with the following command because they use U-Boot 2022.01. You can use the version of alt-rootfs-installer from the branch [https://git.altlinux.org/people/antohami/packages/alt-rootfs-installer.git?p=alt-rootfs-installer.git;a=shortlog;h=refs/heads/devel devel] by specifying <code>--target=sifive_unleashed</code>, or install manually.
You need alt-roofs-installer version 0.5.2 or higher.
<source lang="shell">
root# alt-rootfs-installer --target=sifive_unleashed --image-in=/path/to/<image>-riscv64.img.xz --media=/dev/sdX
</source>
In case of problems with older images, try using <tt>--target=HiFive-Unleashed-opensbi</tt>.


== Manual setup ==
== Manual setup ==
Starting with U-Boot 2022.01, a U-Boot SPL for Unleashed has been made (file <code>/usr/share/u-boot/sifive_unleashed/u-boot-spl.bin</code>), which is recommended to be used instead of FSBL.
When using this U-Boot, installing an image for Unleashed is similar to Unmatched and can be done as described in [[HiFive_Unmatched#Installing_images_manually]].
All references to the <code>usr/share/u-boot/sifive_unmatched</code> directory should be replaced with <code>usr/share/u-boot/sifive_unleashed</code>.
=== Disk image  ===
To run images on SiFive HiFive Unleashed (FU540) SoC, follow these steps:
'''Step 0.''' Image write-in and mounting:
<source lang="shell">
root# xzcat /path/to/<image>-riscv64.img.xz | dd of=/dev/sdx bs=4M status=progress
root# udiskctl mount /dev/sdX2
</source>
The root partition will be mounted in /run/media/root/<UUID>
'''Step 1.''' Adding partitions for First Stage BootLoader (FSBL) and U-Boot :
<source lang="shell">
root# sgdisk -a 1 \
        --new=3::+32K    --change-name=3:'fsbl'          --typecode=3:5B193300-FC78-40CD-8002-E86C45580B47 \
        --new=4::+8M:    --change-name=4:'opensbi-uboot' --typecode=4:2E54B353-1271-4842-806F-E436D6AF6985 \
/dev/sdX
</source>
'''Step 2.a.''' First Stage BootLoader (FSBL) and OpenSBI binaries are located on the root partition of the image.
Write them into partitions 3 and 4, respectively:
<source lang="shell">
root# dd if=/run/media/root/<UUID>/usr/share/fu540_boot/fsbl.bin of=/dev/sdX3 bs=1M
root# dd if=/run/media/root/<UUID>/usr/share/opensbi/sifive/fu540/firmware/fw_payload.bin of=/dev/sdX4 bs=1M
root# sync
</source>
'''Step 2.b.''' Alternative: download and install packages with FSBL and OpenSBI, then write down in partitions 3 and 4. For example, like this:
<source lang="shell">
root# curl -O http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/fu540-bootloaders-0-alt1.git54bfc90.noarch.rpm
root# curl -O http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/opensbi-firmware-fu540-0.6-alt1.noarch.rpm
root# rpm -i fu540-bootloaders-0-alt1.git54bfc90.noarch.rpm
root# rpm -i opensbi-firmware-fu540-0.6-alt1.noarch.rpm
root# dd if=/usr/share/fu540_boot/fsbl.bin of=/dev/sdX3 bs=1M
root# dd if=/usr/share/opensbi/sifive/fu540/firmware/fw_payload.bin of=/dev/sdX4 bs=1M
root# sync
</source>
'''Step 3.''' Switch boot mode from EFI to extlinux.conf. To do this, we need to remove the boot toggle from the fat32 partition:
<source lang="shell">
root# parted /dev/sdX set 1 boot off
</source>
=== Root filesystem image  ===


To run the SiFive HiFive Unleashed (FU540) SoC with one of the rootfs images one could proceed through the following steps:
To run the SiFive HiFive Unleashed (FU540) SoC with one of the rootfs images one could proceed through the following steps:
Line 27: Line 96:
</source>
</source>


'''Step 1.а.''' The First Stage BootLoader (FSBL) and OpenSBI are placed inside the unpacked /mnt tree.
'''Step 1.a.''' The First Stage BootLoader (FSBL) and OpenSBI are placed inside the unpacked /mnt tree.
Let us write them to the 2 and 3 partitions respectively, and then unmount /mnt partition.
Let us write them to the 2 and 3 partitions respectively, and then unmount /mnt partition.


Line 36: Line 105:
</source>
</source>


'''Step 1.б.''' Alternative option: [http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/ download]
'''Step 1.b.''' Alternative option: [http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/ download]
and install the First Stage BootLoader (FSBL) and OpenSBI for FU540.
and install the First Stage BootLoader (FSBL) and OpenSBI for FU540.


Line 53: Line 122:
'''Step 3.''' System at microSD is ready to boot. For a graphical system, the system setup is performed through [[Regular/riscv64#VNC|VNC]].
'''Step 3.''' System at microSD is ready to boot. For a graphical system, the system setup is performed through [[Regular/riscv64#VNC|VNC]].


{{Category:RISC-V}}
[[Category:RISC-V]]

Latest revision as of 00:26, 3 July 2024

Stub.png
Under construction.
This page is not finished yet and may lack substantial information.


SiFive HiFive Unleashed is a RISC‑V development board featuring the Freedom U540 SoC. Its production is discontinued, but it's still supported by Sisyphus riscv64 port.

Regular Images and Simply Linux 10 were released for this board.

Quick start

TBD.

Setup with alt-rootfs-installer

Regular images starting from 20220120 cannot be written with the following command because they use U-Boot 2022.01. You can use the version of alt-rootfs-installer from the branch devel by specifying --target=sifive_unleashed, or install manually.

You need alt-roofs-installer version 0.5.2 or higher.

root# alt-rootfs-installer --target=sifive_unleashed --image-in=/path/to/<image>-riscv64.img.xz --media=/dev/sdX

In case of problems with older images, try using --target=HiFive-Unleashed-opensbi.

Manual setup

Starting with U-Boot 2022.01, a U-Boot SPL for Unleashed has been made (file /usr/share/u-boot/sifive_unleashed/u-boot-spl.bin), which is recommended to be used instead of FSBL.

When using this U-Boot, installing an image for Unleashed is similar to Unmatched and can be done as described in HiFive_Unmatched#Installing_images_manually.

All references to the usr/share/u-boot/sifive_unmatched directory should be replaced with usr/share/u-boot/sifive_unleashed.

Disk image

To run images on SiFive HiFive Unleashed (FU540) SoC, follow these steps:

Step 0. Image write-in and mounting:

root# xzcat /path/to/<image>-riscv64.img.xz | dd of=/dev/sdx bs=4M status=progress 
root# udiskctl mount /dev/sdX2

The root partition will be mounted in /run/media/root/<UUID>

Step 1. Adding partitions for First Stage BootLoader (FSBL) and U-Boot :

root# sgdisk -a 1 \
        --new=3::+32K    --change-name=3:'fsbl'          --typecode=3:5B193300-FC78-40CD-8002-E86C45580B47 \
        --new=4::+8M:    --change-name=4:'opensbi-uboot' --typecode=4:2E54B353-1271-4842-806F-E436D6AF6985 \
/dev/sdX

Step 2.a. First Stage BootLoader (FSBL) and OpenSBI binaries are located on the root partition of the image. Write them into partitions 3 and 4, respectively:

root# dd if=/run/media/root/<UUID>/usr/share/fu540_boot/fsbl.bin of=/dev/sdX3 bs=1M
root# dd if=/run/media/root/<UUID>/usr/share/opensbi/sifive/fu540/firmware/fw_payload.bin of=/dev/sdX4 bs=1M
root# sync

Step 2.b. Alternative: download and install packages with FSBL and OpenSBI, then write down in partitions 3 and 4. For example, like this:

root# curl -O http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/fu540-bootloaders-0-alt1.git54bfc90.noarch.rpm
root# curl -O http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/opensbi-firmware-fu540-0.6-alt1.noarch.rpm
root# rpm -i fu540-bootloaders-0-alt1.git54bfc90.noarch.rpm
root# rpm -i opensbi-firmware-fu540-0.6-alt1.noarch.rpm
root# dd if=/usr/share/fu540_boot/fsbl.bin of=/dev/sdX3 bs=1M
root# dd if=/usr/share/opensbi/sifive/fu540/firmware/fw_payload.bin of=/dev/sdX4 bs=1M
root# sync

Step 3. Switch boot mode from EFI to extlinux.conf. To do this, we need to remove the boot toggle from the fat32 partition:

root# parted /dev/sdX set 1 boot off

Root filesystem image

To run the SiFive HiFive Unleashed (FU540) SoC with one of the rootfs images one could proceed through the following steps:

Step 0. Through this manual it is assumed that microSD card is at /dev/sdb. Let us create file systems at the microSD:

root$ sgdisk -g --clear \
        --new=2::+32K    --change-name=2:'fsbl'          --typecode=2:5B193300-FC78-40CD-8002-E86C45580B47 \
        --new=3::+8M:    --change-name=3:'opensbi-uboot' --typecode=3:2E54B353-1271-4842-806F-E436D6AF6985 \
        --new=1::-0      --change-name=1:'root'          --typecode=1:0FC63DAF-8483-4772-8E79-3D69D8477DE4 \
        /dev/sdb
root$ mkfs.ext4 /dev/sdb1
root$ mount /dev/sdb1 /mnt
root$ tar -xpvf hifive-unleashed-riscv64.tar.xz -C /mnt

Step 1.a. The First Stage BootLoader (FSBL) and OpenSBI are placed inside the unpacked /mnt tree. Let us write them to the 2 and 3 partitions respectively, and then unmount /mnt partition.

root$ dd if=/mnt/usr/share/fu540_boot/fsbl.bin of=/dev/sdb2 bs=1M
root$ dd if=/mnt/usr/share/opensbi/sifive/fu540/firmware/fw_payload.bin of=/dev/sdb3 bs=1M
root$ sync; umount /mnt

Step 1.b. Alternative option: download and install the First Stage BootLoader (FSBL) and OpenSBI for FU540.

For example:

root$ curl -O http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/fu540-bootloaders-0-alt1.git54bfc90.noarch.rpm
root$ curl -O http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/opensbi-firmware-fu540-0.6-alt1.noarch.rpm
root$ rpm -i fu540-bootloaders-0-alt1.git54bfc90.noarch.rpm
root$ rpm -i opensbi-firmware-fu540-0.6-alt1.noarch.rpm
root$ dd if=/usr/share/fu540_boot/fsbl.bin of=/dev/sdb2 bs=1M
root$ dd if=/usr/share/opensbi/sifive/fu540/firmware/fw_payload.bin of=/dev/sdb3 bs=1M
root$ sync; umount /mnt

Step 3. System at microSD is ready to boot. For a graphical system, the system setup is performed through VNC.