RISC-V Supervisor Binary Interface (RISC-V SBI) library in Rust; runs on M or HS mode; good support for embedded Rust ecosystem. For binary download see https://github.com/rustsbi/standalone.
This release version bumps RISC-V SBI specification version to 2.0-rc1. It will include debug console extension and minor SBI 2.0 modifications. Debug Console extension will allow developers to print debug information before their kernel's driver system has initialized; this extension should not be used anymore after drivers loaded.
Developers should note that after RustSBI 0.4.0 release, legacy SBI extensions will no longer be supported. Minor fixes and patches to this version should be applied based on v0.3.2 branch.
Special thanks to @YdrMaster, @duskmoon314 and @luojia65 and other individuals for their contributions to this release.
Details to this release are as follows:
sbi_2_0
and gate pmu read_hiimpl<T: Console> Console for &T
This minor release version fixes issue on dependency riscv
, it chooses riscv
0.10.1 other than yanked version 0.9.0. For further information on this issue, refer to https://github.com/rust-embedded/riscv/pull/121.
Special thanks to @YdrMaster, @tfx2001 and @luojia65 and other individuals for their contributions to this release.
Details to this minor release are as follows:
riscv
to version 0.10.1We are proud to release RustSBI version 0.3.0. In this version, we improved developement experience on bare-metal RustSBI bootloader implementation, introduce RustSBI to hypervisor and emulator development, remove dependency on heap memory, make RustSBI build on stable Rust, and improve documents and comments on RustSBI project. Now you may run RustSBI on not only bare-metal RISC-V machine, but also virtualized systems and hardware accelerated RISC-V emulation environments.
A wide range of RustSBI ecosystem projects have also received upgrades, see Awesome RustSBI for details.
Special thanks to @duskmoon314, @orangecms, @YdrMaster, @luojia65 and more individuals, OSFW community and TUNA Embedded community for contribution to this release.
Detailed changelog as follows:
MachineInfo
for non-machine environment, e.g. cross-architecture emulatorlegacy
to gate SBI legacy extensioninit_*
functions on instance based RustSBI implementationriscv
crate 0.9.0, sbi-spec crate version 0.0.4send_ipi_many
to send_ipi
This update adapts RustSBI to ratified RISC-V SBI v1.0.0 specification. To use ratified v1.0.0 SBI features, it's recommended to update RustSBI library dependency to latest version.
embedded-hal
to v0.2.7Important: this update fixes a severe bug on IPI module. The previous version of RustSBI did not follow the SBI definition of IPI module on SBI v0.3 format. Users are encouraged to use 0.2.1 and newer version instead of yanked 0.2.0 version.
From this version and on, RustSBI is split into a library and multiple implementation repositories. Further releases only include project library other than RustSBI implementation binaries for all platforms.
rustsbi::ecall
now require a0
-a5
input parametersSbiRet
valueglobal_asm
and llvm_asm
in test kernelriscv
crate dependency for QEMU platformmtval
to read instruction on QEMU; still need to be kept on K210 as 1.9.1 does not define this register behaviorenter_privileged
to opaque
other than dtb_pa
embedded-hal
dependency version 0.2.6
num_counters
returns usize
and its SBI call must return SBI_SUCCESS
lazy_static
and spin
println
line is finishedThis is a preview version of RustSBI 0.2.0.
rustsbi::ecall
now require 5 input parametersSbiRet
valueglobal_asm
and llvm_asm
in test kernelriscv
crate dependency for QEMU platformmtval
to read instruction on QEMU; still need to be kept on K210 as 1.9.1 does not define this register behaviorenter_privileged
to opaque
other than dtb_pa
println
line is finishedEach release zip file contains an ELF file and a binary file. Install the binary into target, and use the ELF to help debugging if needed.
init_hsm
function which is not exported beforeRustSBI is adapted to SBI standard with implementation number 4.
0x0A000004
definedEach release zip file contains an ELF file and a binary file. Install the binary into target, and use the ELF to help debugging if needed.
This release has:
Each release zip file contains an ELF file and a binary file. Install the binary into target, and use the ELF to help debugging if needed.