HiFive Unleashed: различия между версиями
(исправлены две орфографические ошибки) |
K0tran (обсуждение | вклад) мНет описания правки |
||
(не показано 13 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
{{Stub}} | {{Stub}} | ||
[[en:HiFive Unleashed]] | |||
[https://www.sifive.com SiFive] [https://www.sifive.com/boards/hifive-unleashed HiFive Unleashed] -- плата с SoC Freedom U540 на архитектуре RISCV64GC. На данный момент снята с производства, но всё ещё поддерживается [[Ports/riscv64|портом Sisyphus на riscv64]]. | [https://www.sifive.com SiFive] [https://www.sifive.com/boards/hifive-unleashed HiFive Unleashed] -- плата с SoC Freedom U540 на архитектуре RISCV64GC. На данный момент снята с производства, но всё ещё поддерживается [[Ports/riscv64|портом Sisyphus на riscv64]]. | ||
Строка 5: | Строка 6: | ||
== Образы ALT == | == Образы ALT == | ||
На текущий момент еженедельно собираются регулярные сборки: [[ Regular/riscv64 ]]. | |||
На основе <tt>sisyphus_riscv64</tt> была выпущена экспериментальная сборка [https://getalt.org/ru/simply/ Simply Linux], также поддерживающая Unleashed. | |||
Образы требуется записать через alt-rootfs-installer или вручную. | |||
=== Запись с помощью alt-rootfs-installer === | |||
Регулярные сборки, начиная с 20220120, нельзя записать указанной ниже командой, поскольку в них использован U-Boot 2022.01. Можно использовать версию alt-rootfs-installer из ветки [https://git.altlinux.org/people/antohami/packages/alt-rootfs-installer.git?p=alt-rootfs-installer.git;a=shortlog;h=refs/heads/devel devel], указав <code>--target=sifive_unleashed</code>, или установить вручную. | |||
Требуется установить alt-roofs-installer версии не ниже 0.5.3. | |||
<source lang="shell"> | <source lang="shell"> | ||
root# alt-rootfs-installer --target=sifive_unleashed --image-in=/path/to/<image>-riscv64.img.xz --media=/dev/sdX | |||
</source> | </source> | ||
Опцию --vnc=1 добавлять не требуется, режим vnc для alterator-setup включается по дефолту. | |||
Про режим vnc подробнее написано в: [[ Regular/riscv64#VNC ]]. | |||
Для более старых образов может понадобится использовать <tt>--target=HiFive-Unleashed-opensbi</tt>. | |||
=== Установка образов вручную === | |||
Начиная с версии U-Boot 2022.01 собрается U-Boot SPL для Unleashed (файл <code>/usr/share/u-boot/sifive_unleashed/u-boot-spl.bin</code>), который рекомендуется использовать вместо FSBL. | |||
При использовании такого U-Boot установка образа для Unleashed аналогична Unmatched и может быть сделана, как описано в статье [[HiFive_Unmatched#Установка_образов_вручную]]. | |||
Все упоминания каталога <code>usr/share/u-boot/sifive_unmatched</code> нужно заменить на <code>usr/share/u-boot/sifive_unleashed</code>. | |||
Для запуска образов на SiFive HiFive Unleashed (FU540) SoC необходимо выполнить следующие шаги: | Для запуска образов на SiFive HiFive Unleashed (FU540) SoC необходимо выполнить следующие шаги: | ||
'''Шаг 0.''' | '''Шаг 0.''' Запись образа и монтирование: | ||
<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> | |||
Корневой раздел будет примонтирован в /run/media/root/<UUID> | |||
'''Шаг 1.''' Добавляем разделы для записи First Stage BootLoader (FSBL) и U-Boot : | |||
<source lang="shell"> | <source lang="shell"> | ||
root | root# sgdisk -a 1 \ | ||
--new= | --new=3::+32K --change-name=3:'fsbl' --typecode=3:5B193300-FC78-40CD-8002-E86C45580B47 \ | ||
--new= | --new=4::+8M: --change-name=4:'opensbi-uboot' --typecode=4:2E54B353-1271-4842-806F-E436D6AF6985 \ | ||
/dev/sdX | |||
</source> | </source> | ||
'''Шаг | '''Шаг 2.а.''' First Stage BootLoader (FSBL) и OpenSBI находятся в корневом разделе записанного образа. | ||
Запишем их на разделы | Запишем их на разделы 3 и 4 соответственно: | ||
<source lang="shell"> | <source lang="shell"> | ||
root | root# dd if=/run/media/root/<UUID>/usr/share/fu540_boot/fsbl.bin of=/dev/sdX3 bs=1M | ||
root | root# dd if=/run/media/root/<UUID>/usr/share/opensbi/sifive/fu540/firmware/fw_payload.bin of=/dev/sdX4 bs=1M | ||
root | root# sync | ||
</source> | </source> | ||
'''Шаг | '''Шаг 2.б.''' Альтернативный вариант: [http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/ загрузить] и установить First Stage BootLoader (FSBL) и OpenSBI для FU540. | ||
Например: | Например: | ||
<source lang="shell"> | <source lang="shell"> | ||
root | root# curl -O http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/fu540-bootloaders-0-alt1.git54bfc90.noarch.rpm | ||
root | 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 | root# rpm -i fu540-bootloaders-0-alt1.git54bfc90.noarch.rpm | ||
root | root# rpm -i opensbi-firmware-fu540-0.6-alt1.noarch.rpm | ||
root | root# dd if=/usr/share/fu540_boot/fsbl.bin of=/dev/sdX3 bs=1M | ||
root | root# dd if=/usr/share/opensbi/sifive/fu540/firmware/fw_payload.bin of=/dev/sdX4 bs=1M | ||
root | root# sync | ||
</source> | </source> | ||
'''Шаг | '''Шаг 3.''' Переключить режим загрузки с EFI на extlinux.conf. Для этого необходимо убрать флаг boot с раздела fat32: | ||
<source lang="shell"> | |||
root# parted /dev/sdX set 1 boot off | |||
</source> | |||
== Обновление U-Boot на SD-карте == | |||
На данный момент в ALT u-boot (SPL и proper) автоматически никак не обновляется. Если после обновления пакета u-boot-sifive в репозитории хочется обновить U-Boot на SD-карте, это можно сделать, выполнив следующие команды от рута: | |||
cd /usr/share/u-boot/sifive_unleashed | |||
dd if=u-boot-spl.bin of=/dev/disk/by-partlabel/spl bs=1M | |||
dd if=u-boot.itb of=/dev/disk/by-partlabel/uboot | |||
sync | |||
Если вместо label хочется использовать uuid (/dev/disk/by-partuuid) или сам девайс (/dev/sdX), то найти нужный элемент можно при помощи команды <code>lsblk -o +PARTLABEL,PARTTYPE,PARTUUID</code>. | |||
Для загрузки с SD-карты установите переключатели MSEL[3:0] в положение 1011 (единица ближе к процессору). | |||
{{Category navigation|title=RISC-V|category=RISC-V|sortkey=*}} | {{Category navigation|title=RISC-V|category=RISC-V|sortkey=*}} |
Текущая версия от 09:47, 31 октября 2024
SiFive HiFive Unleashed -- плата с SoC Freedom U540 на архитектуре RISCV64GC. На данный момент снята с производства, но всё ещё поддерживается портом Sisyphus на riscv64.
Образы ALT
На текущий момент еженедельно собираются регулярные сборки: Regular/riscv64 .
На основе sisyphus_riscv64 была выпущена экспериментальная сборка Simply Linux, также поддерживающая Unleashed.
Образы требуется записать через alt-rootfs-installer или вручную.
Запись с помощью alt-rootfs-installer
Регулярные сборки, начиная с 20220120, нельзя записать указанной ниже командой, поскольку в них использован U-Boot 2022.01. Можно использовать версию alt-rootfs-installer из ветки devel, указав --target=sifive_unleashed
, или установить вручную.
Требуется установить alt-roofs-installer версии не ниже 0.5.3.
root# alt-rootfs-installer --target=sifive_unleashed --image-in=/path/to/<image>-riscv64.img.xz --media=/dev/sdX
Опцию --vnc=1 добавлять не требуется, режим vnc для alterator-setup включается по дефолту. Про режим vnc подробнее написано в: Regular/riscv64#VNC .
Для более старых образов может понадобится использовать --target=HiFive-Unleashed-opensbi.
Установка образов вручную
Начиная с версии U-Boot 2022.01 собрается U-Boot SPL для Unleashed (файл /usr/share/u-boot/sifive_unleashed/u-boot-spl.bin
), который рекомендуется использовать вместо FSBL.
При использовании такого U-Boot установка образа для Unleashed аналогична Unmatched и может быть сделана, как описано в статье HiFive_Unmatched#Установка_образов_вручную.
Все упоминания каталога usr/share/u-boot/sifive_unmatched
нужно заменить на usr/share/u-boot/sifive_unleashed
.
Для запуска образов на SiFive HiFive Unleashed (FU540) SoC необходимо выполнить следующие шаги:
Шаг 0. Запись образа и монтирование:
root# xzcat /path/to/<image>-riscv64.img.xz | dd of=/dev/sdx bs=4M status=progress
root# udiskctl mount /dev/sdX2
Корневой раздел будет примонтирован в /run/media/root/<UUID>
Шаг 1. Добавляем разделы для записи First Stage BootLoader (FSBL) и 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
Шаг 2.а. First Stage BootLoader (FSBL) и OpenSBI находятся в корневом разделе записанного образа. Запишем их на разделы 3 и 4 соответственно:
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
Шаг 2.б. Альтернативный вариант: загрузить и установить First Stage BootLoader (FSBL) и OpenSBI для FU540.
Например:
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
Шаг 3. Переключить режим загрузки с EFI на extlinux.conf. Для этого необходимо убрать флаг boot с раздела fat32:
root# parted /dev/sdX set 1 boot off
Обновление U-Boot на SD-карте
На данный момент в ALT u-boot (SPL и proper) автоматически никак не обновляется. Если после обновления пакета u-boot-sifive в репозитории хочется обновить U-Boot на SD-карте, это можно сделать, выполнив следующие команды от рута:
cd /usr/share/u-boot/sifive_unleashed dd if=u-boot-spl.bin of=/dev/disk/by-partlabel/spl bs=1M dd if=u-boot.itb of=/dev/disk/by-partlabel/uboot sync
Если вместо label хочется использовать uuid (/dev/disk/by-partuuid) или сам девайс (/dev/sdX), то найти нужный элемент можно при помощи команды lsblk -o +PARTLABEL,PARTTYPE,PARTUUID
.
Для загрузки с SD-карты установите переключатели MSEL[3:0] в положение 1011 (единица ближе к процессору).