RustSBI
RISC-V Supervisor Binary Interface implementation in Rust; runs on M-mode.

Binary downloads
See releases.
Binaries are available for platforms which can be found on
platform support page.
Features
- Functional operating system runtime
- Adapted to RISC-V SBI specification v0.2
- Good support for unix-like operating systems
- Written in Rust
- Alternative to OpenSBI with most of its function
- Supports QEMU emulator (priv. spec v1.11)
- Backward compatible to privileged spec v1.9
- Supports Kendryte K210 with MMU and S-Mode
Talks and documents
This project is originally a part of rCore Summer of Code 2020 activities, now it is
capable of running rCore-Tutorial and other OS kernels on wide supported RISC-V devices.
Blog article (Chinese):
Slides (Chinese):
Notes on platform implementation
- RustSBI can be used as a library. Under normal circumstances, RustSBI platform can be implemented
with embedded Rust's
embedded-hal
libraries.
- On both QEMU and K210 platform, we supports CLINT and PLIC peripherals. Embedded Rust's community
still need more SoCs taped out to discuss on common libraries on RISC-V ecosystem. After these works
are done, we may use crates then to implement QEMU, without the
hal
module we have now.
- Contributions are welcomed! We welcome to implement RustSBI for both FPGA cores and real cores.
Implementations for emulators are also welcomed. Fire a pull request if you are ready!
License
This project is licensed under either of