rustsbi 0.2.0-alpha.4

Minimal RISC-V's SBI implementation library in Rust
Documentation

RustSBI

RISC-V Supervisor Binary Interface (SBI) implementation in Rust; runs on M-mode.

crates.io Documentation License

Binary downloads

From version 0.2.0, RustSBI is reformed into a library, thus no longer provides binary downloads for specific platforms. You may visit RustSBI-QEMU, RustSBI-K210 or other projects depending on the platforms you need.

Features

  • Functional and extensible operating system runtime
  • Fully support to RISC-V SBI specification v0.2
  • Adapted for operating system kernel models on your choice
  • Written in Rust
  • Competitive to OpenSBI with most of its function
  • Bundled with a test framework for SBI implementations
  • Empower support, compatibility for different platforms

Frequently asked questions

  1. Can I use RustSBI on C based kernels?

Yes, you can! RustSBI strictly follows RISC-V SBI standard. All features are prepares for all programming languages, as long as they support RISC-V SBI defined calling convention.

If your kernel language supports other SBI implementations, typically it will support RustSBI in the same way.

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

  1. RustSBI can be used as a library. Under normal circumstances, RustSBI platform can be implemented with embedded Rust's embedded-hal libraries.
  2. 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 & Copyright

This project is licensed under either of

Documents from RISC-V SBI Specification are used in this project. These documents are (C) RISC-V Founcation under Creative Commons Attribution 4.0 International License (CC-BY 4.0). The full license text is available at https://creativecommons.org/licenses/by/4.0/.