...
(Virtual) Device | Explanation | Champion | Completeness / Applicability evaluation
| Comments and discussion |
---|---|---|---|---|
Block Storage | Flash/Disk/persistent storage | Kai | ||
Network | Access to (shared) physical ethernet and guest-to-guest communication | Nikola | ||
Console | Text terminal input | Gunnar | ||
crypto | Access to cryptographic services (hardware accelerated) | Sang-bum | ||
GPU | Graphics hardware | Matti/Dmitry | ||
Input | Traditionally keyboard/mouse/etc - for automotive = expanded? | Matti | ||
vsock | Communication between guest (VM) and host (hypervisor) | |||
9pfs | 9P = protocol to expose host (hypervisor) file systems to the guest. FS=filesystem. | Gunnar | ||
vIOMMU | IOMMU coordinates of DMA devices' | |||
Audio | Matti | |||
Sensors | Automotive sensors: | Automotive sensors? Radar/LiDAR/? (or are they separate ECUs?) Standard embedded sensor (ambient light... examples) Some OS have requirements - eg. Android requires orientation sensor. | ||
Media Acceleration (VPUP, IPU, CODEC) | Hardware support for codec/processing Abstraction of SoC specifics DSPs Tensor processors | VPU = "AI" CPU optimized for visual recognition...explain this | ||
USB | Franz | |||
Other Serial devices? (Where does LIN, etc. fit in?) | ||||
CANplease | Franz | check here in GITHub: https://github.com/ork/ virtio-can: VIRTIO-based CAN driver | ||
Ethernet (AVBincl. AvB/TSN) | Nikola | |||
Bluetooth | Sang-bum +OpenSynergy with BT experience | Is it possible? Needed? | ||
Memory Balloon Device | Applicable? |
VIRTIO-defined devices
The VIRTIO 1.0 specification is organized a bit differently, and more generic than our detailed list above. Here is a much abbreviated table of contents for VIRTIO 1.0, just to give an overview on the most important parts. Consider, especially, the limited types of devices. All defined devices are under these categories only for the 1.0 version.
...
B Creating New Device Types
Criteria:
- Availability?
- Is it accepted in VIRTIO?
- Is there a proposal for standard (specification)?
- Is it a de-facto standard?
- Implementation status
- In QEMU/Linux kernel?
- FOSSS in a GitHub Repo
- Commercial/closed-source implementation
- Number of implementations?
-
- Complexity estimation?
-- e.g. CAN Device class, vs GPU (need to consider large User-space
library, complex HALs,
-
- Performance?
-- mostly implementation dependent
- Code Maturity?
-- implementation dependent
Importance for automotive use-case
- n
- Mainly applicable for all-use cases or for a specialized use-case