ACRN v2.3 (Dec 2020)

We are pleased to announce the release of the Project ACRN hypervisor version 2.3.

ACRN is a flexible, lightweight reference hypervisor that is built with real-time and safety-criticality in mind. It is optimized to streamline embedded development through an open source platform. Check out the What is ACRN introduction for more information. All project ACRN source code is maintained in the https://github.com/projectacrn/acrn-hypervisor repository and includes folders for the ACRN hypervisor, the ACRN device model, tools, and documentation. You can either download this source code as a zip or tar.gz file (see the ACRN v2.3 GitHub release page) or use Git clone and checkout commands:

git clone https://github.com/projectacrn/acrn-hypervisor
cd acrn-hypervisor
git checkout v2.3

The project’s online technical documentation is also tagged to correspond with a specific release: generated v2.3 documents can be found at https://projectacrn.github.io/2.3/. Documentation for the latest under-development branch is found at https://projectacrn.github.io/latest/.

ACRN v2.3 requires Ubuntu 18.04. Follow the instructions in the Getting Started Guide for ACRN Industry Scenario with Ubuntu Service VM to get started with ACRN.

What’s New in v2.3

Enhanced GPU passthru (GVT-d)
GPU passthru (GVT-d) to Windows as a guest is now enabled for 11th Gen Intel® Core™ processors (codenamed Tiger Lake-UP3).
Shared memory based inter-VM communication (ivshmem) is extended
ivshmem now supports interrupts (See ACRN Shared Memory Based Inter-VM Communication).
Enhanced vUART support
Added PCI vUART (up to 8) for VM-to-VM communication. Legacy vUART (0x3F8-like) is available for console (debugging) support.
End-to-end secure boot improvement
OVMF can be loaded now as two blobs, one for code and the other for data. The code blob can be verified by the Service VM’s dm-verity as a step in the end-to-end secure boot.
Enhanced system shutdown
The pre-launched VM may now initiate a system shutdown or reset.
Removed deprivileged boot mode support
ACRN has supported deprivileged boot mode to ease the integration of Linux distributions such as Clear Linux. Unfortunately, deprivileged boot mode limits ACRN’s scalability and is unsuitable for ACRN’s hybrid hypervisor mode. In ACRN v2.2, deprivileged boot mode was no longer the default and completely removed in ACRN v2.3. We’re focusing instead on using the simpler and more scalable multiboot2 boot (via Grub). Multiboot2 is not supported in Clear Linux so we have chosen Ubuntu (and Yocto Project) as the preferred Service VM OSs moving forward.

Document updates

New and updated reference documents are available, including:

Because we’re dropped deprivileged boot mode support, we’re also switching our Service VM of choice away from Clear Linux and have removed Clear Linux-specific tutorials. Deleted documents are still available in the version-specific v2.1 documentation.

Fixed Issues Details

  • 4958 - clean up spin lock for hypervisor
  • 5316 - add default BAR GPA for vmsi over msi
  • 5346 - Hide PCI bridge 00:1c.0 from SOS
  • 5411 - Supporting power off for pre-launched VMs
  • 5461 - DM: gvt: Identical mapping for GPU DSM
  • 5463 - WaaG hang in boot loading screen in cold boot test.
  • 5482 - acrn-config: insert vbdf in hex format and vuart vbdf logic
  • 5490 - Unhandled Exception happened in HV console when shutdown YaaG with shm device enabled
  • 5491 - TGL can’t setup 6 pci-vuarts
  • 5498 - Hide IO 0x3f8 for SOS
  • 5501 - [WHL][Yocto][Hybrid] in hybrid mode ACRN HV env, can not shutdown pre-launched RTVM
  • 5506 - [EHL][SBL][hybrid_rt] in hybrid_rt, TPM can not work in pre-launched RTVM
  • 5508 - hv-bugfix-for-hv-emulated-device-de-init_v2.3
  • 5514 - Coding style issue for xhci.c

Known Issues

  • 5151 - [WHL][VxWorks] Launch VxWorks fails due to no suitable video mode found
  • 5369 - [TGL][qemu] Cannot launch qemu on TGL
  • 5572 - [WHL][Hybrid_rt] build hybrid_rt hv from source, boot RTVM fail
  • 5573 - [EHL][logical_partition] build EHL logical_partition hv from source Fail