No Description

luojia65 6f98a3fd36 Reform RustSBI project into a library 3 years ago
src 6f98a3fd36 Reform RustSBI project into a library 3 years ago
.gitignore 2a8cf673e7 Filter out `.idea` folder for all platforms 4 years ago
CHANGELOG.md 6f98a3fd36 Reform RustSBI project into a library 3 years ago
Cargo.toml 6f98a3fd36 Reform RustSBI project into a library 3 years ago
LICENSE-MIT 183f19ea5e Update licence; update readme 4 years ago
LICENSE-MULAN 183f19ea5e Update licence; update readme 4 years ago
README.md 6f98a3fd36 Reform RustSBI project into a library 3 years ago

README.md

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 or RustSBI-K210 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 unix-like operating systems
  • Written in Rust
  • Competitive to OpenSBI with most of its function
  • Bundled with a test framework for SBI implementations
  • Supports QEMU emulator (priv. spec v1.11)
  • Backward compatible to Kendryte K210 with spec v1.9, MMU and S-Mode

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