Re: [PATCH 1/1] Proposal to assign SBI Implementation ID 5 to Diosix

Anup Patel

-----Original Message-----
From: tech-unixplatformspec@... <tech-
unixplatformspec@...> On Behalf Of Chris Williams
Sent: 29 October 2020 15:39
To: tech-unixplatformspec@...
Subject: [RISC-V] [tech-unixplatformspec] [PATCH 1/1] Proposal to assign SBI
Implementation ID 5 to Diosix

Hello all,

This is a proposal to request SBI Implementation ID 5 for the open-source
Diosix project:

Diosix is a bare-metal hypervisor written in Rust for 32- and 64-bit RISC-V-
compatible systems. It uses the RISC-V privileged architecture's physical
memory protection (PMP) functionality to isolate and context-switch
between individual guest environments. As the RISC-V hypervisor extension
approaches ratification, Diosix will also support that functionality to manage
guest environments, if available. Diosix can start RISC-V Linux kernels in
separate guest environments, and service their SBI calls, such as early boot
message output. The ultimate goal of the project is to provide a fully fledged
native hypervisor for RISC-V that can multiplex a mix of guest operating
systems on one or more processors, and handle their SBI calls as per the API

Diosix runs within Qemu, and the project is containerized, allowing
developers to spin up an instance of the hypervisor using Docker or Google
Cloud Run. Work is underway to verify the software runs on hardware, such
as SiFive's HiFive Unleashed board, which is in the project's possession. Diosix
parses and generates Device Tree structures, in memory-safe Rust, allowing
it to start on pretty much any compatible system, and describe configurable
virtual environments to guests.

I believe Diosix is an important and unique project in the RISC-V ecosystem
as it is specifically targeted at RISC-V features and is written from the ground
up in Rust, a systems programming language focused on security and speed.
The hypervisor is designed to run not just guest operating system and
applications in isolated virtual environments but also system services, such as
network filters, graphical user interfaces, filing systems, and so on, as
required. It is for this reason that I respectfully request an implementation ID
for the Diosix project so that not only can it be identified by guest-level
software, but also provide functionality via the firmware specific extension
space as well as implementing the SBI specification.

Below is a patch to assign implementation ID 5 to Diosix. Thank you for your

Signed-off-by: Chris Williams <diodesign@...>
riscv-sbi.adoc | 1 +
1 file changed, 1 insertion(+)

diff --git a/riscv-sbi.adoc b/riscv-sbi.adoc index a339f43..d021891 100644
--- a/riscv-sbi.adoc
+++ b/riscv-sbi.adoc
@@ -184,6 +184,7 @@ value for any of these CSRs.
| 2 | Xvisor
| 3 | KVM
| 4 | RustSBI
+| 5 | Diosix

== Legacy SBI Extension, Extension IDs 0x00 through 0x0F

Looks good to me.

Reviewed-by: Anup Patel <anup.patel@...>


Join to automatically receive all group messages.