ACRN v1.3 (Sep 2019)

We are pleased to announce the release of ACRN version 1.3.

ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind, optimized to streamline embedded development through an open source platform. Check out the What Is ACRN 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 v1.3 GitHub release page) or use Git clone and checkout commands:

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

The project’s online technical documentation is also tagged to correspond with a specific release: generated v1.3 documents can be found at https://projectacrn.github.io/1.3/. Documentation for the latest (master) branch is found at https://projectacrn.github.io/latest/. ACRN v1.3 requires Clear Linux* OS version 31080.

Version 1.3 Major Features

What’s New in v1.3

  • OVMF supports Graphics Output Protocol (GOP), allowing Windows logo at guest VM boot time.

  • Platform-level coordinated graceful shutdown (S5) for User VMs.

  • Virtual UART (vUART) for inter-VM communication.

  • Introduced acrn-config tool to configure VM and hypervisor from a XML configuration file at build time.

  • Ethernet mediator now supports prioritization per VM.

  • Features for real-time determinism, e.g. Cache Allocation Technology (CAT, only supported on Apollo Lake).

New Features Details

  • 3624 - Virtualization supports Windows Guest Bootup Logo

  • 3623 - Platform Configuration Tool

  • 3602 - Hypervisor Tools

  • 3624 - Virtualization supports Windows Guest Bootup Logo

  • 3564 - Power Management: S5

  • 3413 - Support NV storage writeback of OVMF

  • 3327 - Cleanup vIOAPIC and vPIC for RT VM

  • 3484 - tools: support force stop VM

  • 3446 - Rename board name of nuc7i7bnh to nuc7i7dnb

  • 3497 - Inject exception for invalid vmcall

  • 3498 - Return extended info in vCPUID leaf 0x40000001

  • 2934 - Use virtual APIC IDs for Pre-launched VMs

  • 3459 - dm: support VMs communication with virtio-console

  • 3190 - DM: handle SIGPIPE signal

Fixed Issues Details

  • 3533 - NUC hang while repeating the cold boot

  • 3572 - Check guest cr3 before loading pdptrs

  • 3576 - Expand default memory from 2G to 4G for WaaG

  • 3593 - Makefile change which add isd build

  • 3594 - UOS have no response After ignore/poweroff/suspend with pressing power key

  • 3609 - Sometimes fail to boot os while repeating the cold boot operation

  • 3610 - LaaG hang while run some workloads loop with zephyr idle

  • 3611 - OVMF launch UOS fail for Hybrid and industry scenario

  • 3612 - Potential Null pointer be dereferenced in ‘usb_dev_request()’

  • 3626 - hv: vtd: fix MACRO typos

  • 3644 - hv boot hang on some KBL platform

  • 3648 - UOS hang when booting UOS with acrnlog running with mem loglevel=6

  • 3708 - Properly reset pCPUs with LAPIC PT enabled during VM shutdown/reset

Known Issues

  • 3598 - SEP/SOCWATCH fixes for following coding guidelines

  • 3622 - Kernel PANIC while rebased acrngt patches to mainline kernel

  • 3630 - Clean up the code on drm/i915/gvt

  • 3636 - tsc_deadline incorrect issue

  • 3673 - Incorrect reference to OVMF.fd in sample UOS startup script

  • 3675 - cbm length calculation,Extended model judge, print info error

  • 3681 - Data lose in vuart communication

  • 3686 - The documentation build system creates artefacts in the

  • 3697 - Secure timer check failed in trusty which would cause unlock failure after resume from S3

  • 3721 - [Compiling Issue] Error implicit declaration with VIRTIO_PCI_CONFIG_OFF

  • 3723 - CODEOWNERS folder names are incorrect

  • 3729 - Cannot auto boot 2 VMs with acrnd

Change Log

These commits have been added to the acrn-hypervisor repo since the v1.2 release in Aug 2019 (click on the CommitID link to see details):

  • fe74464a - doc: content updates for using SBL on UP2 board file

  • 860f7b89 - doc: minor edits to using celadon as user os file

  • bb6d2acb - doc: content updates to GSG for the Intel NUC

  • 32614324 - doc: Add document of RT performance tuning.

  • ca27f8ed - update using_sbl_on_up2 doc and create-up2-images.sh

  • 36d52c71 - doc: Add note to use a stable Celadon source tree

  • 72c99c08 - doc: update gsg and acrn_quick_setup.sh

  • e7d048b9 - doc: tweak vUART tutorial for improved rendering

  • 8be09779 - Doc: Update image and text in Virtio-i2c doc

  • 58a093de - Doc: Initial vuart configuration doc and images–4979

  • 6677add9 - Initial virtio i2c doc and images.

  • 4692db8a - New tutorials for running deb or ubunt as user vms

  • f2a32b48 - Intitial doc for Running Debian as a Service VM

  • d853c52d - Language edits to the Building ACRN in Docker tutorial

  • 68975ba7 - doc: add build acrn in docker tutorial

  • 456709c6 - Makefile: build default acrn.efi with nuc6cayh

  • 3e9f2aa3 - acrn-config: remove hvlog support for generic board

  • bd3a686d - acrn-config: add apl-up2-n3350 config xmls

  • ac003623 - acrn-config: update board xml of apl-up2

  • 55fbe8fb - acrn-config: update README for acrn-config

  • 77fa8650 - acrn-config: reserve 16M memory for hv start

  • f776cfd2 - acrn-config: fix parameter error in launch script

  • c15beff4 - Makefile: add build tag for acrn-config tool in version.h

  • c33a2c29 - Makefile: generate config patch in hypervisor/Makefile

  • 571b30dc - dm: switch to launch RT_LaaG with OVMF by default

  • bf971d75 - OVMF release v1.3

  • e5f733fb - hv: vm: properly reset pCPUs with LAPIC PT enabled during VM shutdown/reset

  • bad75329 - acrn-config: add launch sample xmls for acrn-config

  • 3c621ccc - acrn-config: generate launch script file and apply to the souce file

  • bc31dc00 - acrn-config: modify rootfs tag in board information

  • f50f92cc - Makefile: override .config with specified scenario

  • 42b864b1 - DM: update launch scripts to use OVMF.fd directly from the rootfs

  • bfc92308 - DM: make LaaG launch script use the OVMF.fd from the Service VM

  • e0006883 - acrn-config: add memmap param for hvlog in xmls

  • b3ff3cdf - HV: add memmap param for hvlog in sos cmdline

  • a348be73 - Misc: lifemngr-daemon-on-UOS

  • d2290076 - makefile: enable xml config to build hypervisor

  • 6e122870 - acrn-config: add xmls for acrn-config tools

  • 8a16d8b6 - acrn-config: generate a scenario patch and apply to acrn-hypervisor

  • 77c17ab4 - acrn-config: enhance the target config

  • a95a88c5 - doc: Remove “or newer/higher” descriptions for other release notes and some tutorials.

  • 12db54af - doc: update CODEOWNER for rst

  • 6b6aa806 - hv: pm: fix coding style issue

  • f039d759 - hv: pm: enhencement platform S5 entering operation

  • ce937587 - hv: pm: correct the function name

  • f41f9307 - DOC: add –pm_by_vuart setting guide.

  • 3d23c90a - DM: to avoid RTVM shutdown forcely by acrn-dm

  • 8578125f - DM: add power off by vuart setting to launch script

  • eb5a57b7 - DM: add guest vm power manager by vuart

  • 00401a1e - DM: separate pty vuart operation from IOC

  • d188afbc - HV: add acpi info header for nuc7i7dnb

  • 00da5a99 - acrn-config: web UI app for acrn-config tool

  • 476e9a2e - doc: Update document for –pm_notify_channel

  • e38e0263 - script: launch_uos: Give right pm notify channel

  • b36d80ea - dm: pm: add dm option to select guest notify method

  • 10413849 - dm: pm: move host power button related code out of pm.c

  • ca51cc9d - hv: vPCI: vPCI device should use its virtual configure space to access its BAR

  • 6ebc2221 - hv: vPCI: cache PCI BAR physical base address

  • 5083aba3 - doc: review edits for config tool doc

  • ede59885 - doc: add ‘logger_setting’ parameter information to acrn-dm documentation

  • ff91d073 - doc: update .gitignore to reflect the new location of the tools

  • 9bb21aca - dm: remove ‘-p’ option from the embedded help

  • 8b9aa110 - hv: mmu: remove strict check for deleting page table mapping

  • 127c73c3 - hv: mmu: add strict check for adding page table mapping

  • c691c5bd - hv:add volatile keyword for some variables

  • be0c2a81 - doc: update CODEOWNERS for doc, misc reviews

  • 26642543 - Merge pull request #3660 from deb-intel/3632_GCC

  • 96d51a52 - Add URL to GCC 7.3 Manual, Section 6

  • 639c6986 - dm: reserve 16M hole for gvt in e820 table

  • 32d85105 - hv: remove pr_dbg between stac/clac

  • 8d27c1e1 - Merge pull request #3632 from shiqingg/doc-lang-ext

  • 19e9c4ca - Merge pull request #3613 from gvancuts/acrnctl-force-arg

  • 67f3da2e - Merge pull request #3567 from ClaudZhang1995/zy4

  • 876d3112 - Merge pull request #3640 from lirui34/add_new_glossary

  • ceec4d80 - Merge pull request #3649 from gvancuts/zlib1g-dev-debian

  • 1b48773f - Merge pull request #3653 from deb-intel/remove_newerRef

  • edbec46d - doc: Add ACRN configuration tool tutorial

  • 1e3da9f2 - Merge pull request #3658 from deb-intel/USBMed

  • fd60bb07 - Add supported USB devices for WaaG and LaaG OSs

  • 5d284c08 - doc: Add three new glossaries

  • 81435f55 - vm reset: refine platform reset

  • add89b51 - Remove “or newer” reference to ensure that users know ACRN 1.2 requires ONLY Clear Linux OS version 30690.

  • 4041275f - doc: update Build ACRN from Source

  • d324f79a - doc: add ‘zlib1g-dev’ to list of dependencies in Debian

  • cd40980d - hv:change function parameter for invept

  • 1547a4cb - efi-stub: fix stack memory free issue

  • cd1ae7a8 - hv: cat: isolate hypervisor from rtvm

  • 38ca8db1 - hv:tiny cleanup

  • f15a3600 - hv: fix tsc_deadline correctness issue

  • 3f84acda - hv: add “invariant TSC” cap detection

  • be0a4b69 - DM USB: fix enumeration related issues

  • e7179aa7 - dm: support VM running with more than 4 vcpus

  • adf3a593 - Makefile: Refine Makefile to generate both industry and sdc images

  • 3729fa94 - doc: update Language Extensions in coding guidelines

  • f9945484 - hv: vtd: fix MACRO typos

  • 295701cc - hv: remove mptable code for pre-launched VMs

  • b447ce3d - hv: add ACPI support for pre-launched VMs

  • 96b422ce - hv: create 8-bit sum function

  • 81e2152a - hv: cosmetic fixes in acpi.h

  • 216c19f4 - hv: use __packed for all ACPI related structs

  • a1ef0ab9 - hv: move ACPI related defines/structs to acpi.h

  • 6ca4095d - Update pages with missing links

  • cc1dd6da - doc: add “-f/–force’ optional arg to ‘acrnctl’ documentation

  • 2d57c5fe - dm: virtio-console: add subclass

  • 66056c1a - dm: bzimage loader: get linux bzimage setup_sects from header

  • fc3d19be - DM USB: fix potential crash risk due to null pointer

  • 4a71a16a - hv: vtd: remove global cache invalidation per vm

  • 5c816597 - hv: ept: flush cache for modified ept entries

  • 2abd8b34 - hv: vtd: export iommu_flush_cache

  • 826aaf7b - version: 1.3-unstable