Skip to content

VirtIO guest drivers in Rust adapted for use with sel4

License

Notifications You must be signed in to change notification settings

BDUG/virtio-drivers-sel4

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VirtIO-drivers-rs

crates.io page docs.rs page CI

VirtIO guest drivers in Rust.

For no_std environment using the SeL4 kernel with its Rust extension.

Primary difference is that the paging and DMA happens outside this framework.

Support status

Device types

Device Supported
Block
Net
GPU
Input
Console
Socket
Sound
...

Transports

Transport Supported
Legacy MMIO version 1
MMIO version 2
PCI Memory-mapped CAM only, e.g. aarch64 or PCIe ECAM

Device-independent features

Feature flag Supported
VIRTIO_F_INDIRECT_DESC Indirect descriptors
VIRTIO_F_EVENT_IDX avail_event and used_event fields
VIRTIO_F_VERSION_1 TODO VirtIO version 1 compliance
VIRTIO_F_ACCESS_PLATFORM Limited device access to memory
VIRTIO_F_RING_PACKED Packed virtqueue layout
VIRTIO_F_IN_ORDER Optimisations for in-order buffer usage
VIRTIO_F_ORDER_PLATFORM Platform ordering for memory access
VIRTIO_F_SR_IOV Single root I/O virtualization
VIRTIO_F_NOTIFICATION_DATA Extra data in device notifications

Examples & Tests

cd examples/x86_64
make qemu
cd examples/aarch64
make qemu
cd examples/riscv
make qemu

You will see device info & GUI Window in qemu.

About

VirtIO guest drivers in Rust adapted for use with sel4

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%