...
(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 | Done initial browsing of the specification. Opinions still pending. | |
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 | Use-cases: ? Completeness: Protocol: Need in Embedded/Automotive: Applicability: |
Essentially used for "shared folder" capability between host & guest, as in desktop (or maybe some server) usage. Its applicability to embedded hypervisor usage, in which the "host" is not really being used by itself) seems questionable. What's the use-case? In VIRTIO spec: A PCI type device can indicate that it is going to use the 9P protocol. The specification also has 9P as a specific separate device type. Other than that, I found no further description of such a device type. The protocol is specified elsewhere and complemented by scattered information regarding the specific implementations (Xen, KVM, QEMU, ...) The protocol seems proven and supposedly OK for what it does. Possibly more security features needed, depending on use-case. VIRTIO however seems to defer the definition completely to "somewhere else"? At least a reference to a canonical specification would seem appropriate. Overall it It is a minimalistic network file-system protocol. It seems apt for the task. Understandably, other Other network protocols like NFS, SMB/SAMBA etc. would have been be too heavy. It feels a bit esoteric, and while "reinventing" is bad, in this simple case would not be the worst ever, if VIRTIO had defined something else. Flexibility and security features seem somewhat glossed over. There's basically only "fixed user" or "pass-through" for mapping ownership on files in guest/host. Links: Virtio 1.0 spec : {PCI-9P, 9P device type}. A note on its documentation/definition not being very precise A set of man pages seemingly defining P9? intro, others QEMU instruction how to set up a VirtFS (P9). |
Example how to set up in Linux system | ||||
vIOMMU | IOMMU coordinates of DMA devices' | Dmitry | ||
Audio | Matti | |||
Sensors | Automotive sensors: | Artem | Automotive sensors? Radar/LiDAR/? (or are they separate ECUs?) Standard embedded sensor (ambient light...) 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 | Artem | VPU = "AI" CPU optimized for visual recognition | |
USB | Franz | |||
Other Serial devices? (Where does LIN, etc. fit in?) | ||||
CAN | Franz | virtio-can: VIRTIO-based CAN driver | ||
Ethernet (incl. AvB/TSN) | Nikola | |||
Bluetooth | Sang-bum +OpenSynergy with BT experience | Is it possible? Needed? | ||
Memory Balloon Device | Applicable? |
...
B Creating New Device Types
...
When looking at a particular proposed device standard, evaluate characteristics/criteria:
Criteria (brainstorm):
- Availability?
- Is it accepted in VIRTIO?
- Is there a proposal for standard (specification)?
- Is it accepted in VIRTIO?
- Is it a de-facto standard?
- Implementation status
- ...In QEMU/Linux kernel?
- FOSSS ...FOSS in a GitHub Repo?
- ...Commercial/closed-source implementationimplementations?
- ... 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
- Evaluate: Security aspects
- Evaluate: Functional Safety aspects
Importance for automotive use-case
- n
- Mainly ...Is it generally applicable for all-many use cases or for a specialized use-special case?