An S-mode RISC-V kernel for on-device or "remote" hardware introspection. When loaded on device, the kernel presents either an interactive shell or connects to a companion program, both over UART. The companion program is the primary user target and is more featureful consequentially.
Features available in at least one method of interaction include:
This list is proactive an not all features are implemented yet.
- Devicetree exploration
- Downloading to a host computer
- Viewing as DTS or graph
- Inspecting individual devices
- Device interaction
- Writing and reading from MMIO devices (with included drivers if available)
- Benchmarking
- TODO
The kernel does not have satp enabled and does not allow for arbitrary code execution.
The below resource were either referenced or intend to be referenced in the development of the project.
- Uros Popovic's Blog
- Specifically his articles on RISC-V programming.
- Served as the "push" to start this project.
- RISC-V OS using Rust
- OSDev.org
- The RISC-V Instruction Set Manual Volume I & II
- RISC-V Assembly Programmer's Manual
- RISC-V Supervisor Binary Interface Documentation
- RISC-V Resource Collection
This project is licensed under the MIT License.
You are free to use, modify, and distribute this software under the terms of the MIT license.
See the LICENSE file for full details.