编译OpenSBI
OpenSBI全称为Open-source Supervisor Binary Interface,是一套RISC-V开源实现。它提供了RISC-V runtime服务,通常应用于ROM和LOADER后的启动阶段。典型的启动流程如下图所示:
请参考以下步骤编译OpenSBI:
步骤:
- 进入到您将用来存放OpenSBI文件的文件夹,如home directory(主目录):
示例:
cd ~ # home directory
-
下载OpenSBI所需的源代码:
git clone https://github.com/riscv/opensbi.git
- 执行以下命令,编译OpenSBI:
cd opensbi make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=generic FW_PAYLOAD_PATH={U-BOOT_PATH}/u-boot.bin FW_FDT_PATH={U-BOOT_PATH}/u-boot.dtb
注:结果:将{U-BOOT_PATH}修改为此前存放u-boot文件的路径。
编译后,在opensbi/build/platform/generic/firmware路径下,将生成大于2M的fw_payload.bin文件。
-
进入到fw_payload.bin所在文件夹。
cd opensbi/build/platform/generic/firmware
-
复制fw_payload.bin到另一文件夹。
cp fw_payload.bin ~/Desktop/payload/
-
进入到上一步复制fw_payload.bin的文件夹,并执行以下命令,安装镜像转换工具:
cd ~ /Desktop/payload/ sudo apt install subversion svn export https://github.com/starfive-tech/freelight-u-sdk.git/branches/starfive/fsz.sh
注:点击此处可下载源代码。
- 改变工具的用户权限:
chmod 777 fsz.sh
-
将fw_payload.bin转换为fw_payload.bin.out。
./fsz.sh fw_payload.bin fw_payload.bin.out
注:系统将生成fw_payload.bin.out文件。若需要烧录u-boot,请参考《昉·星光单板计算机快速参考手册》中“5 附录 B:更新固件及 U-Boot”章节。