VirtIO guest drivers in Rust. For no_std environment.
Device
Supported
Block
✅
Net
✅
GPU
✅
Input
✅
Console
✅
Socket
✅
Sound
✅
...
❌
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
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.