VirtIO

From FriendOS Wiki
Revision as of 01:21, 19 December 2024 by TheCatgirls (talk | contribs) (List all device types, TODO fill a description)
Jump to navigation Jump to search

VirtIO is a standard for performant virtualized hardware for use within virtual machines, created and managed by the OASIS Open Virtual I/O Device TC. VirtIO supports a variety of devices, such as, but not limited to: block (e.g. hard drive), network card, GPU, etc. Each of these devices have their own specific configuration and features, but all use the same underlying VirtIO queue structure for relaying data and commands to & from the device.

Device Types

VirtIO Device Types
Device ID Device Name Description
0 reserved (invalid) TODO
1 network card TODO
2 block device TODO
3 console TODO
4 entropy source TODO
5 memory ballooning (traditional) TODO
6 ioMemory TODO
7 rpmsg TODO
8 SCSI host TODO
9 9P transport TODO
10 mac80211 wlan TODO
11 rproc serial TODO
12 virtio CAIF TODO
13 memory balloon TODO
16 GPU device TODO
17 Timer/Clock device TODO
18 Input device TODO
19 Socket device TODO
20 Crypto device TODO
21 Signal Distribution Module TODO
22 pstore device TODO
23 IOMMU device TODO
24 Memory device TODO
25 Audio device TODO
26 file system device TODO
27 PMEM device TODO
28 RPMB device TODO
29 mac80211 hwsim wireless simulation device TODO
30 Video encoder device TODO
31 Video decoder device TODO
32 SCMI device TODO
33 NitroSecureModule TODO
34 I2C adapter TODO
35 Watchdog TODO
36 CAN device TODO
38 Parameter Server TODO
39 Audio policy device TODO
40 Bluetooth device TODO
41 GPIO device TODO
42 RDMA device TODO

Device Transports

VirtIO supports three different types of device transports: PCI Bus, MMIO, and Channel I/O. The PCIe transport is configured via the normal PCIe configuration mechanisms, while the MMIO transport is configured strictly via MMIO reads and writes.