VirtIO-drivers-rs
VirtIO guest drivers in Rust. For no_std environment.
Support status
Device types
Device |
Supported |
Block |
โ
|
Net |
โ
|
GPU |
โ
|
Input |
โ
|
Console |
โ
|
Socket |
โ
|
... |
โ |
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.