Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: 9PFS info / verdicts

...

The key challenge for defining a shared virtual platform definition is to first identify the various device driver types such a platform must provide, and to evaluate if existing work so far (e.g. VIRTIO) covers what the automotive industry needs: 

(Virtual) DeviceExplanation

Champion
+ interested people

Completeness / Applicability evaluation

(tick) (warning) (error)

Comments and discussion
Block StorageFlash/Disk/persistent storage

Kai



Network

Access to (shared) physical ethernet

and guest-to-guest communication

Nikola

ConsoleText terminal inputGunnar(warning) WIP

Done initial browsing of the specification. Opinions still pending.

cryptoAccess to cryptographic services
(hardware accelerated)
Sang-bum

GPUGraphics hardwareMatti/Dmitry

InputTraditionally keyboard/mouse/etc
- for automotive = expanded?
Matti

vsockCommunication between guest (VM)
and host (hypervisor)



9pfs9P = protocol to expose host (hypervisor)
file systems to the guest. FS=filesystem.
Gunnar

Use-cases: ?

Completeness: Protocol: (tick), VIRTIO spec: (warning) (see comment)

Need in Embedded/Automotive: (error) None? Can we find a use-case?

Applicability: (tick)(warning)(error) For what it does, seems ok. But might not be really needed and therefore "not applicable". Is there something else/more needed?

(warning) WIP

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 is a minimalistic network file-system protocol. It seems apt for the task. Understandably, other network protocols like NFS, SMB/SAMBA etc. would have been 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.

vIOMMU

IOMMU coordinates of DMA devices'
connection to memory.

Dmitry

Audio
Matti

Sensors

Automotive sensors:



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

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?


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.

...