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-verityas 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.
New and updated reference documents are available, including:
- Security Advisory
- GVT-g Enabling and Porting Guide
- VBS-K Framework Virtualization Overhead Analysis
- Assembly Language Coding Guidelines
- C Programming Language Coding Guidelines
- Contribution Guidelines
- Documentation Guidelines
- Device Model high-level design
- ACRN high-level design overview
- Power Management high-level design
- Security high-level design
- Tracing and Logging high-level design
- Virtio devices high-level design
- ACRN Shared Memory Based Inter-VM Communication
- L1 Terminal Fault Mitigation
- ACRN Hypervisor: Modular Design
- Software Design Guidelines
- Getting Started Guide for ACRN Industry Scenario with Ubuntu Service VM
- What is ACRN
- ACRN v2.3 (Dec 2020)
- ACRN Configuration Tool
- Enable ACRN over QEMU/KVM
- ACRN Debugging Tools
- ACRN documentation generation
- Enable Inter-VM Communication Based on ivshmem
- Enable S5 in ACRN
- Enable RDT Configuration
- ACRN Real-time (RT) Performance Analysis
- ACRN Real-time VM Performance Tips
- Run Kata Containers on a Service VM
- Run Debian as the Service VM
- Run Debian as the User VM
- Run Ubuntu as the User VM
- Configure ACRN using OpenStack and libvirt
- Enable SGX Virtualization
- Enable SR-IOV Virtualization
- Using GRUB to boot ACRN
- Getting Started Guide for ACRN hybrid mode
- Getting Started Guide for ACRN logical partition mode
- Launch Windows as the Guest VM on ACRN
- Run Zephyr as the User VM
- Enable vUART Configurations
- Enable Secure Boot in Windows
- Device Model Parameters
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