.. _release_notes_2.5: ACRN v2.5 (Jun 2021) #################### We are pleased to announce the release of the Project ACRN hypervisor version 2.5. 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 :ref:`introduction` 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.5 GitHub release page `_) or use Git ``clone`` and ``checkout`` commands:: git clone https://github.com/projectacrn/acrn-hypervisor cd acrn-hypervisor git checkout v2.5 The project's online technical documentation is also tagged to correspond with a specific release: generated v2.5 documents can be found at https://projectacrn.github.io/2.5/. Documentation for the latest under-development branch is found at https://projectacrn.github.io/latest/. ACRN v2.5 requires Ubuntu 18.04. Follow the instructions in the :ref:`gsg` to get started with ACRN. What's New in v2.5 ****************** Nested Virtualization Technology Preview A brand-new concept, nested virtualization, is introduced as a preview in this v2.5 release. Nested virtualization lets you run virtual machine instances inside of a guest VM that's running on the ACRN hypervisor. It's designed to leverage the KVM/QEMU community's rich feature set while keeping ACRN's unique advantages in partition mode and hybrid mode. Read more in the :ref:`nested_virt` advanced guide. Secure Boot Using EFI Stub EFI stub, previously retired in favor of using direct boot, returns as an alternative to end-to-end secure boot with Grub. The hypervisor, Service VM kernel, and prelaunched VM kernel are packaged into a single ``acrn.efi`` blob as an EFI application that can then be verified by the EFI BIOS. Read more in the :ref:`how-to-enable-acrn-secure-boot-with-efi-stub` and :ref:`how-to-enable-acrn-secure-boot-with-grub` advanced guides. Modularization Improvements :ref:`ACRN hypervisor modularization ` has been improved to be more scalable, including change to multiboot, interrupt handling, paging and memory management, and timers, with more to come in future releases. Configuration and Build Process Improvements The ACRN configuration and build process continues to evolve from the changes made in the previous releases. For instructions using the build system, refer to :ref:`getting-started-building`. For an introduction on the concepts and workflow of the configuration tools and processes, refer to :ref:`acrn_configuration_tool`. Upgrading to v2.5 From Previous Releases **************************************** We highly recommended that you follow these instructions to upgrade to v2.5 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.5 extends the schema of board XMLs to summarize board information more systematically. You must regenerate your board XML file using the new board inspector when you upgrade to ACRN v2.5 to get the additional information needed for configuration. Before using the new board inspector, ensure you have Python >= 3.6 on the target board and install the ``lxml`` PyPI package. Refer to :ref:`upgrade_python` for detailed steps to check and upgrade your Python version. The ``lxml`` package can be installed by executing the following command: .. code-block:: bash sudo pip3 install lxml .. note:: Refer to :ref:`acrn_config_workflow` for a complete list of tools required to run the board inspector. With the prerequisites done, copy the entire board inspector folder from ``misc/config_tools/board_inspector`` to the target board, ``cd`` to that directory on the target, and run the board inspector tool using:: sudo python3 cli.py This will generate ``.xml`` in the current working directory. You'll need to copy that XML file back to the host system to continue development. Add New Configuration Options ============================= In v2.5, the following elements are added to scenario XML files: - :option:`hv.FEATURES.NVMX_ENABLED` - :option:`vm.PTM` The following element is renamed: - :option:`hv.FEATURES.SSRAM.SSRAM_ENABLED` (was ``hv.FEATURES.PSRAM.PSRAM_ENABLED`` in v2.4) Constraints on values of the following element have changed: - :option:`vm.guest_flags.guest_flag` no longer accepts an empty text. For VMs with no guest flag set, set the value to ``0``. Document Updates **************** With the changes to ACRN configuration, we made updates to the ACRN documentation around configuration, options, and parameters: .. rst-class:: rst-columns2 * :ref:`acrn_configuration_tool` * :ref:`scenario-config-options` * :ref:`acrn-dm_parameters` * :ref:`kernel-parameters` New capabilities are documented here: * :ref:`nested_virt` We've also made edits throughout the documentation to improve clarity, formatting, and presentation throughout the ACRN documentation: .. rst-class:: rst-columns2 * :ref:`contribute_guidelines` * :ref:`doc_guidelines` * :ref:`ahci-hld` * :ref:`hv-device-passthrough` * :ref:`hv-hypercall` * :ref:`timer-hld` * :ref:`l1tf` * :ref:`modularity` * :ref:`sw_design_guidelines` * :ref:`trusty_tee` * :ref:`getting-started-building` * :ref:`gsg` * :ref:`hardware` * :ref:`acrn_on_qemu` * :ref:`acrn_doc` * :ref:`enable_ivshmem` * :ref:`running_deb_as_serv_vm` * :ref:`trusty-security-services` * :ref:`using_hybrid_mode_on_nuc` * :ref:`connect_serial_port` Fixed Issues Details ******************** .. comment example item - :acrn-issue:`5626` - [CFL][industry] Host Call Trace once detected - :acrn-issue:`5626` - [CFL][industry] Host Call Trace once detected - :acrn-issue:`5879` - hybrid_rt scenario does not work with large initrd in pre-launched VM - :acrn-issue:`6015` - HV and DM: Obsolete terms cleanup for SSRAM - :acrn-issue:`6024` - config-tools: generate board_info.h and pci_dev.c using xslt - :acrn-issue:`6034` - dm: add allow_trigger_s5 mode to pm_notify_channel uart - :acrn-issue:`6038` - [REG][RAMDISK] Fail to launch pre RTVM while config ramdisk - :acrn-issue:`6056` - dm: a minor bug fix of unregister_mem_int - :acrn-issue:`6072` - [WHL][WAAG]use config tool to passthru Audio,will not display GOP - :acrn-issue:`6075` - [config_tools][regression][v2.5_rc1] config tool failed to save industry.xml with GuestFlagsOptionsType check - :acrn-issue:`6078` - Make ACRN HV with hybrid_rt bootable without GRUB on UEFI BIOS - :acrn-issue:`6100` - virtio_net_ping_rxq SEGV on read from NULL - :acrn-issue:`6102` - Build failure for BOARD=qemu SCENARIO=sdc on release_2.5 - :acrn-issue:`6104` - [acrn-configuration-tool] Need update tgl-rvp.xml to the latest BIOS info - :acrn-issue:`6113` - [config_tools][ADL-S]generated board xml parse error on ADL-S - :acrn-issue:`6120` - [acrn-configuration-tool] shall we add CLOS_MASK elements into tgl scenario files as default configuration - :acrn-issue:`6126` - TPM do not support dynamic GPA - :acrn-issue:`6129` - virtio: NULL deref in hw/pci/virtio/virtio.c:664 in vq_endchains - :acrn-issue:`6131` - guest/vlapic fatal assertion reachable from guest - DoS - :acrn-issue:`6134` - [acrn-configuration-tool] lxml module not found when get board xml following doc - :acrn-issue:`6138` - config-tools: support of launch script to generate the "allow_trigger_s5" automatically - :acrn-issue:`6147` - ASAN reports UAF + SEGV when fuzzing exposed PIO with Hypercube guest VM. - :acrn-issue:`6157` - coding style fix on v2.5 branch - :acrn-issue:`6162` - [REG][EHL][SBL] Fail to boot sos - :acrn-issue:`6168` - SOS failed to boot with nest enabled - :acrn-issue:`6172` - member access within null pointer of type 'struct xhci_trb' - :acrn-issue:`6178` - config-tools: adding an empty node for a pre-launched VM causing check_pt_intx throw out an error - :acrn-issue:`6185` - [TGL][Industry]yaag can't get ip after SRIVO VF passthru - :acrn-issue:`6186` - [acrn-configuration-tool] CONFIG_MAX_MSIX_TABLE_NUM value is auto set as 64 when generate an new scenario xml - :acrn-issue:`6199` - [doc][buildSource] can not pass SCENARIO parameter into hypervisor/build/.config with "make defconfig" Known Issues ************ - :acrn-issue:`6256` - [TGL][qemu] Cannot launch qemu on TGL - :acrn-issue:`6257` - [S5]S5 fails on post-launched RTVM