Bug: 256624101

Clone this repo:
  1. 9033314 Add alloc dependency for #[no_std] use in the trusty kernel am: 4494fd2edc by Khyber Sen · 3 months ago main master
  2. 4494fd2 Add alloc dependency for #[no_std] use in the trusty kernel by Khyber Sen · 3 months ago
  3. d0dc724 Generate rules.mk for virtio-drivers crate am: f8f5b80082 by Khyber Sen · 3 months ago
  4. f8f5b80 Generate rules.mk for virtio-drivers crate by Khyber Sen · 3 months ago
  5. 4e8029b Migrate to cargo_embargo. am: 12b3ac2f82 am: e3437f388a am: ac975363a3 by Andrew Walbran · 6 months ago

VirtIO-drivers-rs

crates.io page docs.rs page CI

VirtIO guest drivers in Rust. For no_std environment.

Support status

Device types

DeviceSupported
Block
Net
GPU
Input
Console
Socket
...

Transports

TransportSupported
Legacy MMIOversion 1
MMIOversion 2
PCIMemory-mapped CAM only, e.g. aarch64 or PCIe ECAM

Device-independent features

Feature flagSupported
VIRTIO_F_INDIRECT_DESCIndirect descriptors
VIRTIO_F_EVENT_IDXavail_event and used_event fields
VIRTIO_F_VERSION_1TODOVirtIO version 1 compliance
VIRTIO_F_ACCESS_PLATFORMLimited device access to memory
VIRTIO_F_RING_PACKEDPacked virtqueue layout
VIRTIO_F_IN_ORDEROptimisations for in-order buffer usage
VIRTIO_F_ORDER_PLATFORMPlatform ordering for memory access
VIRTIO_F_SR_IOVSingle root I/O virtualization
VIRTIO_F_NOTIFICATION_DATAExtra data in device notifications

Examples & Tests

x86_64

cd examples/x86_64
make qemu

aarch64

cd examples/aarch64
make qemu

RISCV

cd examples/riscv
make qemu

You will see device info & GUI Window in qemu.