ACRN v2.6 (Sep 2021)

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

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. See 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 download this source code either as a zip or tar.gz file (see the ACRN v2.6 GitHub release page) or use Git clone and checkout commands:

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

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

ACRN v2.6 requires Ubuntu 18.04. Follow the instructions in the Getting Started Guide to get started with ACRN.

What’s New in v2.6

Nested Virtualization Technology Performance Tuning

The performance of nested virtualization, a feature first introduced as a preview in the v2.5 release, was improved. CPU and I/O performance of level 2 virtual machines (for example, a VM running on a KVM/QEMU VM that itself is a VM on ACRN hypervisor) is now on par with a VM running on KVM on bare metal. Read more in the Enable Nested Virtualization tutorial.

Support loading OSs in ELF format

ACRN hypervisor now can load OS images packed in ELF (Executable and Linkable Format). This adds flexibility to OSs such as Zephyr running in pre-launched VMs.

Upgrading to v2.6 From Previous Releases

We highly recommended that you follow these instructions to upgrade to v2.6 from previous ACRN releases.

Generate New Board XML

Board XML files, generated by ACRN board inspector, contain board information that is essential to build ACRN. Compared to previous versions, ACRN v2.6 adds the following hardware information to board XMLs to support new features and fixes.

  • Maximum width of physical and linear addresses

  • Device objects in the ACPI namespace

  • Routing of PCI interrupt pins

  • Number of requested vectors of MSI-capable PCI devices

The new board XML can be generated using the ACRN board inspector in the same way as ACRN v2.5. Refer to Using ACRN Configuration Toolset for a complete list of steps to deploy and run the tool.

Add New Configuration Options

In v2.6, the following elements are added to scenario XML files.

Fixed Issues Details

  • 6012 - [Mainline][PTCM] [ConfigTool]Obsolete terms cleanup for SSRAM

  • 6284 - [v2.6] vulnerable coding style in hypervisor and DM

  • 6340 - [EF]Invalid LPC entry prevents GOP driver from working properly in WaaG for DP3

  • 6342 - [v2.6] vulnerable coding style in config tool python source

  • 6360 - ACRN Makefile missing dependencies

  • 6366 - TPM pass-thru shall be able to support start method 6, not only support Start Method of 7

  • 6388 - [hypercube][tgl][ADL]AddressSanitizer: SEGV virtio_console

  • 6389 - [hv ivshmem] map SHM BAR with PAT ignored

  • 6405 - [ADL-S][Industry][Yocto] WaaG BSOD in startup when run reboot or create/destroy stability test.

  • 6417 - ACRN ConfigTool improvement from DX view

  • 6423 - ACPI NVS region might not be mapped on prelaunched-VM

  • 6428 - [acrn-configuration-tool] Fail to generate launch script when disable CPU sharing

  • 6431 - virtio_console use-after-free

  • 6434 - HV panic when SOS VM boot 5.4 kernel

  • 6442 - [EF]Post-launched VMs do not boot with “EFI Network” enabled

  • 6461 - [config_tools] kernel load addr/entry addr should not be configurable for kernel type KERNEL_ELF

  • 6473 - [HV]HV can’t be used after dumpreg rtvm vcpu

  • 6476 - [hypercube][TGL][ADL]pci_xhci_insert_event SEGV on read from NULL

  • 6481 - ACRN on QEMU can’t boot up with v2.6 branch

  • 6482 - [ADL-S][RTVM]rtvm poweroff causes sos to crash

  • 6502 - [ADL][HV][UC lock] SoS kernel panic when #GP for UC lock enabled

  • 6507 - [TGL][HV][hybrid] during boot zephyr64.elf find HV error: “Unable to copy HPA 0x100000 to GPA 0x7fe00000 in VM0”

  • 6508 - [HV]Refine pass-thru device PIO BAR handling

  • 6510 - [ICX-RVP][SSRAM] No SSRAM entries in guest PTCT

  • 6518 - [hypercube][ADL]acrn-dm program crash during hypercube testing

  • 6528 - [TGL][HV][hybrid_rt] dmidecode Fail on pre-launched RTVM

  • 6530 - [ADL-S][EHL][Hybrid]Path of sos rootfs in hybrid.xml is wrong

  • 6533 - [hypercube][tgl][ADL] mem leak while poweroff in guest

  • 6592 - [doc] failed to make hvdiffconfig

Known Issues

  • 6630 - Fail to enable 7 PCI based VUART on 5.10.56 RTVM

  • 6631 - [KATA][5.10 Kernel]failed to start docker with Service VM 5.10 kernel