With the VIRTIO 1.4 specification for I/O devices expected to be published soon, here are the most prominent changes. For more fine-grained changes like the latest offloading capabilities in virtio-net devices, please refer to the draft specification.
New device types
The most exciting changes are new device types that allow for entirely new I/O devices to be built with VIRTIO. In 1.4 there are new device types that are especially relevant for automotive and embedded systems.
- The Controller Area Network (CAN) device provides access to the CAN bus that is popular in automotive systems.
- The Serial Peripheral Interface (SPI) Controller device provides access to the SPI bus that a large number of devices in embedded systems support. This will make low-level control of SD cards, flash memory, sensors, displays, and more possible via VIRTIO.
- The Media (V4L2) device exposes Video4Linux over VIRTIO so that webcams and related devices can be supported.
- The Real Time Clock (RTC) provides clock and alarm functionality.
Infrastructure
In addition to the new devices, VIRTIO itself has evolved to provide new functionality across device types:
- Device suspend is now supported. Previously a running device could only be reset but not suspended.
- The Device parts mechanism has been introduced in order to save and restore device state for live migration and snapshot save/load use cases.
This is a nice step forward for VIRTIO. Congratulations to everyone who contributed to VIRTIO 1.4!