VirtIO guest drivers in Rust. For no_std environment.
| Device | Supported | | ------- | --------- | | Block | ✅ | | Net | ✅ | | GPU | ✅ | | Input | ✅ | | Console | ✅ | | ... | ❌ |
| Transport | Supported | | | ----------- | --------- | ------------------------------------------------- | | Legacy MMIO | ✅ | version 1 | | MMIO | ✅ | version 2 | | PCI | ✅ | Memory-mapped CAM only, e.g. aarch64 or PCIe ECAM |
| 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 |
bash
cd examples/aarch64
make qemu
bash
cd examples/riscv
make qemu
You will see device info & GUI Window in qemu.