这个项目的目的是在SiFive HiFive Unmatched主板上支持RustSBI。 RustSBI是一个引导程序环境;主板上电时,RustSBI将会先行启动,而后,它将会找到一个可引导的操作系统,引导启动这个操作系统。 在启动后,RustSBI仍然常驻后台,提供操作系统需要的功能。 RustSBI的设计完全符合RISC-V SBI规范标准,只要支持此标准的操作系统,都可以使用RustSBI引导启动。
这个项目使用xtask框架,可以使用以下指令来编译:
cargo image
(如果增加--release参数,说明编译的是不带调试符号的release版本)
这时候编译产生一个elf文件和一个img镜像。注意,产生的中间数据bin文件不可以直接用于烧录。
使用以下操作来烧录img格式的镜像到sd卡分区。(危险!必须先备份数据)
sudo dd if=target/sd-card-partition-2.img of=\\?\Device\Harddisk????\Partition2 --progress
烧录完成后,就可以使用RustSBI引导启动了。
编译这个项目至少需要rustc 1.59.0-nightly (c5ecc1570 2021-12-15)
的Rust版本。
请参考项目Wiki来获取完整的文档。
项目中仍然需要完善的部分也被记录在文档中,详见这里。
HiFive Unmatched主板板载SiFive Freedom U740处理器。FU740是异构的多核处理器,它总共有五个核。 它的五个核分别为四个U74应用处理器内核,以及一个S7嵌入式处理器内核。
作为RustSBI的软件实现开发者,我们注意到S7管理小核将有广泛的用途。 因此,RustSBI在HiFive Unmatched上不屏蔽任何的核,以供操作系统选择和使用。
查看汇编代码
cargo asm