ACRN v1.1 (Jun 2019)

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

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.1 GitHub release page) or use Git clone and checkout commands:

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

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

Version 1.1 Major Features

Hybrid Mode Introduced

In hybrid mode, a Zephyr OS is launched by the hypervisor even before the Service OS is launched (pre-launched), with dedicated resources to achieve highest level of isolation. This is designed to meet the needs of a FuSa certifiable safety OS.

Support for New Guest Operating Systems

  • The Zephyr RTOS can be a pre-launched Safety OS in hybrid mode. It can also be a post-launched (launched by Service OS, not the hypervisor) as a guest OS.

  • VxWorks as a post-launched RTOS for industrial usages.

  • Windows as a post-launched OS

Document Updates

We have many reference documents available, including:

New Features Details

  • 2538 - Add new hypercall to fetch platform configurations.

  • 2587 - ACRN HV: allow pre-launched VMs have different memory size and use > 2GB memory

  • 2621 - refine code in vlapic_trigger_lvt.

  • 2635 - OVS/vlan 802.1Q support for ACRN ISD

  • 2902 - Completely remove enable_bar()/disable_bar() functions

  • 2962 - Enabling WaaG on ACRN

  • 3069 - Virtualization will support VxWorks7 64-bit as a GuestVM

  • 3099 - WaaG: Add WaaG support in launch_uos.sh

  • 3116 - Get max vcpu per vm from HV instead of hardcode

  • 3158 - Power Management: Guest control

  • 3179 - Hypervisor CPU SGX

  • 3214 - Hypervisor Hybrid Mode

  • 3222 - Virtual boot loader: Required Optimization and Configuration

  • 3237 - Enable polling mode for virtio devices

  • 3257 - Audio devices can be passed through to WaaG

Fixed Issues Details

  • 1262 - acrnctl tool should not only gives RC 0

  • 1551 - Samples: Kernel bootchart generation using cmdline.

  • 1844 - Establish a @return keyword for functions not returning any value (void function())

  • 1917 - Documentation: What does ‘,b’ flag do with virtio-blk?

  • 2378 - Getting started guide for NUC is not working

  • 2457 - Compilation on Fedora 29 (for UEFI platforms) is broken

  • 2515 - Display corruption in SOS on KBL

  • 2518 - Service OS kernel parameters for i915 need a clean-up (EFI platforms)

  • 2526 - Hypervisor crash when booting UOS with acrnlog running with mem loglevel=6

  • 2527 - [KBLNUC][HV]System will crash when run crashme (SOS/UOS)

  • 2584 - acrn-dm segfaults if virtio-gvt enabled but not enabled in kernel

  • 2737 - Build ACRN failed in Ubuntu 16.04

  • 2782 - Wifi Firmware initialization failed happened on Reboot

  • 2794 - Difficult to use make oldconfig

  • 2806 - hv: minor issue in sbl_init_vm_boot_info()

  • 2834 - isolate the MSR IA32_MISC_ENABLE between guest and host.

  • 2848 - Cannot boot SOS kernel outside of ACRN

  • 2857 - FAQs for ACRN’s memory usage need to be updated

  • 2971 - PCIE ECFG support for AcrnGT

  • 2976 - [GVT]don’t register memory for gvt in acrn-dm

  • 2984 - HV will crash if launch two UOS with same UUID

  • 2991 - Failed to boot normal vm on the pcpu which ever run lapic_pt vm

  • 3009 - When running new workload on weston, the last workload animation not disappeared and screen flashed badly.

  • 3028 - virtio gpio line fd not release

  • 3032 - Dump stack of mem allocation in irq_disabled after using mempool for ACRN VHM

  • 3050 - FYI: Kconfiglib major version bumped to 11

  • 3051 - Storage: Support rescan feature for virtio-blk

  • 3053 - Emulated USB controller Vendor ID and Device ID are swapped

  • 3054 - USB webcam not working in UOS

  • 3073 - HV: hotfix for acpi.c compile error

  • 3081 - add -w option for uos launch sh

  • 3085 - Can’t set tsc frequency through option -f/–frequency of acrnalyze.py

  • 3096 - Add one workaround to fix build issue with latest gcc.

  • 3118 - virtio gpio static variable keeps increasing

  • 3123 - Remove unused functions in hypervisor and device model.

  • 3127 - refine the passthrough devices with dictionary

  • 3128 - Undefined CONFIG_REMAIN_1G_PAGES

  • 3136 - distinguish between LAPIC_PASSTHROUGH configured vs enabled

  • 3138 - Increase kernel boot args and VM Name length

  • 3142 - fix cpu family calculation

  • 3145 - Only certain guests should be granted the privilege to reset host

  • 3152 - Use virtio-blk instead passthru devices to boot RT

  • 3160 - There is a logic bug when set iommu page walk coherent

  • 3181 - [auto][sit][daily]Case “Hypervisor_Launch_RTVM_on_SATA_Storage” sata disk can not passthru

  • 3182 - run command “echo c > /proc/sysrq-trigger” can’t trigger AaaG warm reboot

  • 3184 - fail to locate ACPI RSDP table on some EFI platforms

  • 3188 - dm: update uos patch in launch_hard_rt_vm.sh

Known Issues

1773 - USB Mediator: Can’t find all devices when multiple USB devices connected

After booting UOS with multiple USB devices plugged in, there’s a 60% chance that one or more devices are not discovered.

Impact: Cannot use multiple USB devices at same time.

Workaround: Unplug and plug-in the unrecognized device after booting.


1991 - Input not accepted in UART Console for corner case

Input is useless in UART Console for a corner case, demonstrated with these steps:

  1. Boot to SOS

  2. ssh into the SOS.

  3. use ./launch_uos.sh to boot UOS.

  4. On the host, use minicom -D /dev/ttyUSB0.

  5. Use sos_console 0 to launch SOS.

Impact: Fails to use UART for input.

Workaround: Enter other keys before typing Enter.


2267 - [APLUP2][LaaG] LaaG can’t detect 4k monitor

After launching UOS on APL UP2 , 4k monitor cannot be detected.

Impact: UOS can’t display on a 4k monitor.

Workaround: Use a monitor with less than 4k resolution.


2279 - [APLNUC] After exiting UOS, SOS can’t use USB keyboard and mouse

After exiting UOS with mediator Usb_KeyBoard and Mouse, SOS cannot use the USB keyboard and mouse.

These steps reproduce the issue:

  1. Insert USB keyboard and mouse in standard A port (USB3.0 port)

  2. Boot UOS by sharing the USB keyboard and mouse in cmd line:

    -s n,xhci,1-1:1-2:1-3:1-4:2-1:2-2:2-3:2-4 \

  3. UOS access USB keyboard and mouse.

  4. Exit UOS.

  5. SOS tries to access USB keyboard and mouse, and fails.

Impact: SOS cannot use USB keyboard and mouse in such case.

Workaround: Unplug and plug-in the USB keyboard and mouse after exiting UOS.


2753 - UOS cannot resume after suspend by pressing power key

UOS cannot resume after suspend by pressing power key

Impact: UOS may failed to resume after suspend by pressing the power key.

Workaround: None


2974 - Launching Zephyr RTOS as a real-time UOS takes too long

Launching Zephyr RTOS as a real-time UOS takes too long

These steps reproduce the issue:

  1. Build Zephyr image by follow the guide.

  2. Copy the “Zephyr.img”, “OVMF.fd” and “launch_zephyr.sh” to NUC.

  3. Execute the launch_zephyr.sh script.

This is not reproducible with the stock launch_zephyr.sh script in our repo, it only happens when trying to launch an RTVM.

Impact: Launching Zephyr RTOS as a real-time UOS takes too long

Workaround: A different version of Grub is known to work correctly


3268 - dm: add virtio-rnd device to command line

LaaG’s network is unreachable with UOS kernel

These steps reproduce the issue:

  1. Download Clear Linux OS

  2. Decompress Clear Linux

  3. Replace above kvm.img with default kernel in UOS

  4. Launch UOS

  5. Try to ping UOS from another host.

  6. UOS network is unreachable.

Impact: LaaG’s network is unreachable with UOS kernel

Workaround: Add -s 7,virtio-rnd \ to the launch_uos.sh script


3280 - AcrnGT holding forcewake lock causes high CPU usage in gvt workload thread.

The i915 forcewake mechanism is to keep the GPU from its low power state, in order to access some specific registers. However, in the path of GVT-g scheduler submission, there’s no need to acquire the i915 forcewake.

Impact: AcrnGT holding forcewake lock cause high cpu usage gvt workload thread

Workaround: None


3279 - AcrnGT causes display flicker in some situations.

In current scaler ownership assignment logic, there’s an issue that when SOS disables a plane, it will disable corresponding plane scalers; however, there’s no scaler ownership checking there. So the scalers owned by UOS may be disabled by SOS by accident.

Impact: AcrnGT causes display flicker in some situations

Workaround: None


Change Log

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

  • c1e23f1a - hv:Fix MISRA-C violations for static inline

  • 93b4cf57 - dm: clean up assert in virtio.c

  • c265bd55 - dm: clean up assert in virtio_audio.c

  • 14a93f74 - dm: clean up assert in virtio_input.c

  • 0a6baaf4 - dm: samples: use stdio as vxworks console by default

  • e3ee9cf2 - HV: fix expression is not boolean

  • 5cbda22d - dm: virtio_gpio: clean up assert

  • 1e23c4dc - dm: ioc: clean up assert

  • 8740232a - HV: Allow pause RTVM when its state is VM_CREATED

  • db7e7f1c - dm: platform: clean up assert() for some platform devices

  • 1b799538 - dm: pcidev: clean up assert() for some pci devices

  • 2b3dedfb - dm: pci: clean up assert() in pci core

  • f8934df3 - HV: implement wbinvd instruction emulation

  • ea699af8 - HV: Add has_rt_vm API

  • 7018a13c - HV: Add ept_flush_leaf_page API

  • f320130d - HV: Add walk_ept_table and get_ept_entry APIs

  • f81585eb - HV: Add flush_address_space API.

  • 6fd397e8 - HV: Add CLFLUSHOPT instruction.

  • d0e08712 - dm: virtio-block: clean up assert

  • 3ef385d6 - dm: ahci: clean up assert

  • 4145b8af - dm: block: clean up assert

  • 13228d91 - dm: refine ‘assert’ usage in irq.c and wdt_i6300esb.c

  • e6eef9b6 - dm: refine ‘assert’ usage in pm.c and acpi.c

  • 885d503a - dm: refine ‘assert’ in hugetlb.c and mem.c

  • 65d7d83b - refine ‘assert’ usage in vmmapi.c and main.c

  • dedf9bef - dm: refine ‘assert’ in inout.c and post.c

  • a2332b15 - dm: refine ‘assert’ usage in timer.c and rtc.c

  • ec626482 - dm: cleanup ‘assert’ for guest software loading module

  • 0e046c7a - hv: vlapic: clear which access type we support for APIC-Access VM Exit

  • f145cd49 - doc: Instruction of enabling ACRN-DM QoS.

  • fd9eb2a5 - HV: Fix OVMF hang issue when boot with lapic_pt

  • cdc5f120 - dm: virtio-net: clean up assert

  • b0015963 - dm: fix some potential memory leaks

  • 0620980f - dm: use strnlen to replace strlen

  • 1e1244c3 - dm: use strncpy to replace strcpy

  • 0ea788b4 - dm: passthru: remove the use of assert()

  • efccdd22 - dm: add virtio-rnd device to command line

  • 030e7683 - doc: add systemd-networkd-autostart bundle in APL GSG

  • 86d3065d - doc: tweak doxygen precondition label

  • 48877362 - ACRN: DM: Add new options for NUC launch_uos script.

  • f7f2a6ee - hv: Rename tables member of vPCI msix struct pci_msix

  • 22f24c22 - DM: Samples: Enable VxWorks as hard-rt VM

  • 9960ff98 - hv: ept: unify EPT API name to verb-object style

  • 4add4059 - hv:build system initialization to sys_init_mod.a

  • 5abca947 - hv: build virtual platform hypercall to vp_hcall_mod.a

  • 02bf362d - hv:build virtual platform trusty to vp_trusty_mod.a

  • e67f0eab - hv:build virtual platform DM to vp_dm_mod.a

  • 4d646c02 - hv:build virtual platform base to vp_base_mod.a

  • 83e2a873 - hv:build hardware layer to hw_mod.a

  • 76f21e97 - hv: build boot module to boot_mod.a

  • 9c81f4c3 - hv:build library to lib_mod.a

  • 8338cd46 - hv: move 3 files to lib & arch folder

  • 7d44cd5c - hv: Introduce check_vm_vlapic_state API

  • f3627d48 - hv: Add update_vm_vlapic_state API to sync the VM vLAPIC state

  • a3fdc7a4 - hv: Add is_xapic_enabled API to check vLAPIC moe

  • 7cb71a31 - hv: Make is_x2apic_enabled API visible across source code

  • 1026f175 - hv: Shuffle logic in vlapic_set_apicbase API implementation

  • 8426db93 - DM: vrpmb: replace assert() with return false

  • 66943be3 - dm: enable audio passthrough device.

  • cf6d6f16 - doc: remove (outdated) primer documents

  • ed7f64d7 - DM: add deinit API for loggers

  • d05349d7 - DM: use pr_dbg in vrtc instead of printf

  • 5ab098ea - DM: add disk-logger configure in launch script

  • c04949d9 - DM: add disk-logger to write log into file system

  • 6fa41eee - DM: add static for local variables

  • 5a9627ce - DM USB: xHCI: refine the emulation of Stop Endpoint Command

  • 1be719c6 - DM USB: clean-up: change name of function usb_dev_comp_req

  • 7dbde276 - DM USB: xHCI: use new isoch transfer implementation

  • b57f6f92 - DM USB: clean-up: give shorter names to libusb_xfer and req

  • adaed5c0 - DM USB: xHCI: add ‘chained’ field in struct usb_data_xfer_block

  • f2e35ab7 - DM USB: save MaxPacketSize value in endpoint descriptor

  • 296b649a - ACRN/HV: emulated pcicfg uses the aligned offset to fix the unaligned pci_cfg access

  • 2321fcdf - HV:Modularize vpic code to remove usage of acrn_vm

  • c91a5488 - doc: improve clarity of build-from-source intro

  • 32239cf5 - hv: reduce cyclomatic complexity of create_vm()

  • 771f15cd - dm: don’t present ioapic and pic to RT VM

  • ac6c5dce - HV: Clean vpic and vioapic logic when lapic is pt

  • f83ddd39 - HV: introduce relative vm id for hcall api

  • 3d3de6bd - HV: specify dispatch hypercall for sos or trusty

  • 8c70871f - doc: add an introduction for building hypervisor

  • 6b723344 - xsave: inject GP when guest tries to write 1 to XCR0 reserved bit

  • d145ac65 - doc: fix typo in the “Build ACRN from Source” guide

  • 8dd471b3 - hv: fix possible null pointer dereference

  • 509af784 - dm: Solve the problem of repeat mount hugetblfs

  • e5a25749 - doc: add multiboot module string parameter

  • e63d32ac - hv: delay enabling SMEP/SMAP until the end of PCPU initialization

  • 9e91f14b - hv: correctly grant DRHD register access rights to hypervisor

  • c71cf753 - ACRN/HV: Add one new board configuration for ACRN-hypervisor

  • 115ba0e3 - Added recommended BIOS settings for better real-time performance.

  • 7c45f3b5 - doc: remove ‘reboot’ command from ACRN shell user guide

  • 04d82e5c - HV: return virtual lapic id in vcpuid 0b leaf

  • 0a748fed - HV: add hybrid scenario

  • a2c6b116 - HV: change nuc7i7bnh ram start to 0x60000000

  • 31aa37d3 - HV: remove unused INVALID_VM_ID

  • 50e09c41 - HV: remove cpu_num from vm configurations

  • f4e976ab - HV: return -1 with invalid vcpuid in pt icr access

  • ae7dcf44 - HV: fix wrong log when vlapic process init sipi

  • 765669ee - dm: support VMs communication with virtio-console

  • c0bffc2f - dm: virtio: refine console options parse code

  • ce6e663f - OVMF release v1.1

  • 0baf537a - HV: misra fix for patch set of Zephyr enabling

  • 1906def2 - HV: enable load zephyr kernel

  • 6940cabd - HV: modify ve820 to enable low mem at 0x100000

  • ea7ca859 - HV: use tag to specify multiboot module

  • d0fa83b2 - HV: move sos bootargs to vm configurations

  • 8256ba20 - HV: add board specific config header

  • bb55489e - HV: make vm kernel type configurable

  • ae8893cb - HV: use api to get kernel load addr

  • 1c006113 - HV: separate linux loader from direct boot sw loader

  • 0f00a4b0 - HV: refine sw_linux struct

  • 475b05da - doc: fix formatting in partition doc

  • 76346fd2 - doc: setup logical partition scenario on nuc

  • 6f61aa7d - doc: add instruction of Open vSwitch

  • a6bba6bc - doc: update prefix format in coding guidelines

  • a4e28213 - DM: handle SIGPIPE signal

  • 19366458 - DM: handle virtio-console writes when no socket backend is connected

  • 376fcddf - HV: vuart: add vuart_deinit during vm shutdown

  • 81cbc636 - HV: vuart: Bugfix for no interrupts on THRE

  • 857e6c04 - dm: passthrough: allow not page-aligned sized bar to be mapped

  • b98096ea - dm: pci: fix the MMIO regions overlap when getting bar size

  • 011134d5 - doc: Update Using PREEMPT_RT-Linux for real-time UOS

  • 5533263e - tools:acrn-crashlog: fix error logs writing to server

  • 286dd180 - dm: virtio: bugfix for polling mode

  • 4c09051c - hv: Remove unused variable in ptirq_msi_info

  • 34f12219 - hv: use 64bit FACS table address only beyond ACPI2.0

  • 811d1fe9 - dm: pci: update MMIO EPT mapping when update BAR address

  • cee2f8b2 - ACRN/HV: Refine the function of init_vboot to initialize the depriv_boot env correctly

  • 1c36508e - ACRN/HV: Assign the parsed RSDP to acpi_rsdp to avoid multiple RSDP parsing

  • c5d43657 - hv: vmcs: don’t trap when setting reserved bit in cr0/cr4

  • f2c53a98 - hv: vmcs: trap CR4.SMAP/SMEP/PKE setting

  • a7389686 - hv: Precondition checks for vcpu_from_vid for lapic passthrough ICR access

  • 7f648d75 - Doc: Cleanup vmcfg in user guides

  • 9aa06c6e - Doc: Cleanup vmcfg in HLD

  • 50f50872 - DM: Cleanup vmcfg

  • 7315515c - DM: Cleanup vmcfg APIs usage for removing the entire vmcfg

  • a3073175 - dm: e820: reserve memory range for EPC resource

  • 7a915dc3 - hv: vmsr: present sgx related msr to guest

  • 1724996b - hv: vcpuid: present sgx capabilities to guest

  • 65d43728 - hv: vm: build ept for sgx epc resource

  • c078f90d - hv: vm_config: add epc info in vm config

  • 245a7320 - hv: sgx: add basic support to init sgx resource for vm

  • c5cfd7c2 - vm state: reset vm state to VM_CREATED when reset_vm is called

  • 610ad0ce - dm: update uos path in launch_hard_rt_vm.sh

  • b27360fd - doc: update function naming convention

  • b833e2f9 - hv: vtd: fix a logic error when set iommu page walk coherent

  • 517707de - DM/HV: Increase VM name len

  • f010f99d - DM: Decouple and increase kernel boot args length

  • f2fe3547 - HV: remove mptable in vm_config

  • 26c7e372 - Doc: Add tutorial about using VxWorks as uos

  • b10ad4b3 - DM USB: xHCI: refine the logic of CCS bit of PORTSC register

  • ae066689 - DM USB: xHCI: re-implement the emulation of extended capabilities

  • 5f9cd253 - Revert “DM: Get max vcpu per vm from HV instead of hardcode”

  • 8bca0b1a - DM: remove unused function mptable_add_oemtbl

  • bd3f34e9 - DM: remove unused function vm_get_device_fd

  • 9224277b - DM: remove unused function vm_setup_ptdev_msi

  • bb8584dd - DM: remove unused function vm_apicid2vcpu

  • ec924385 - DM: remove unused function vm_create_devmem

  • 75ef7e84 - DM: remove unused function vm_set_lowmem_limit

  • 683e2416 - DM: remove unused function console_ptr_event

  • 12f55d13 - DM: remove unused function console_key_event

  • aacc6e59 - DM: remove unused function console_refresh

  • 2711e553 - DM: remove unused function console_fb_register

  • d19d0e26 - DM: remove unused function gc_init

  • 43c01f8e - DM: remove unused function console_init

  • e6360b9b - DM: remove unused function gc_resize

  • d153bb86 - DM: remove unused function gc_set_fbaddr

  • 475c51e5 - DM: remove unused function console_set_fbaddr

  • 4e770316 - DM: remove unused function swtpm_reset_tpm_established_flag

  • 2a33d52e - DM: remove unused function vrtc_reset

  • 1a726ce0 - DM: remove unused function vrtc_get_time

  • 8cb64cc7 - DM: remove unused function vrtc_nvram_read

  • dcd6d8b5 - DM: remove unused function virtio_pci_modern_cfgread and virtio_pci_modern_cfgwrite

  • 62f14bb1 - DM: remove unused function virtio_dev_error

  • 2d6e6ca3 - DM: remove unused function usb_native_is_ss_port

  • 7e80a6ee - hv: vm: enable iommu after vpci init

  • bfc08c28 - hv: move msr_bitmap from acrn_vm to acrn_vcpu_arch

  • f96ae3f1 - HV: enforce Cx of apl nuc with SPACE_SYSTEM_IO

  • 1fe57111 - HV: validate pstate by checking px ctl range

  • 57275a58 - HV: add px cx data for kbl nuc refresh

  • 3d459dfd - DM: Fix minor issue of USB vendor ID

  • 7e520675 - doc: update coding guidelines

  • 04ccaacb - hv:not allow SOS to access prelaunched vm memory

  • 0a461a45 - tools:acrn-crashlog: fix potential memory corruption

  • 5a23f7b6 - hv: initial host reset implementation

  • 321e4f13 - DM: add virtual hostbridge in launch script for RTVM

  • d0fe1820 - HV: call function is_prelaunched_vm() instead to reduce code

  • a6503c6a - HV: remove function pci_pdev_foreach()

  • 536c69b9 - hv: distinguish between LAPIC_PASSTHROUGH configured vs enabled

  • cb6a3e8f - doc: prepare for sphinx 2.0 upgrade

  • 474496fc - doc: remove hard-coded interfaces in .rst files

  • ffb92454 - doc: add note to indicate that vSBL is only supported on APL platforms

  • c561f2d6 - doc: add <vm_id> parameter to the “vm_console” command description

  • 214eb5e9 - doc: Update clearlinux os installation guide link.

  • fe4fcf49 - xHV: remove unused function is_dbg_uart_enabled

  • 36568ff5 - HV: remove unused function sbuf_is_empty and sbuf_get

  • c5391d25 - HV: remove unused function vcpu_inject_ac

  • 26de86d7 - HV: remove unused function copy_to_gva

  • 163c63d2 - HV: remove unused function resume_vm

  • c68c6e4a - HV: remove unused function shutdown_vcpu

  • 83012a5a - HV: remove unused function disable_iommu

  • 9b7dee90 - HV: remove one lock for ctx->flags operation.

  • fc1cbebe - HV: remove vcpu arch lock, not needed.

  • 9876138b - HV: add spinlock to dmar_enable/disable_qi

  • 90f3ce44 - HV: remove unused UNDEFINED_VM

  • 73cff9ef - HV: predefine pci vbar’s base address for pre-launched VMs in vm_config

  • 4cdaa519 - HV: rename vdev_pt_cfgwrite_bar to vdev_pt_write_vbar and some misra-c fix

  • aba357dd - 1. fix cpu family calculation 2. Modify the parameter ‘fl’ order

  • 238d8bba - reshuffle init_vm_boot_info

  • 0018da41 - HV: add missing @pre for some functions

  • b9578021 - HV: unify the sharing_mode_cfgwrite and partition_mode_cfgwrite code

  • 7635a68f - HV: unify the sharing_mode_cfgread and partition_mode_cfgread code

  • 19af3bc8 - HV: unify the sharing_mode_vpci_deinit and partition_mode_vpci_deinit code

  • 3a6c63f2 - HV: unify the sharing_mode_vpci_init and partition_mode_vpci_init code

  • f873b843 - HV: cosmetic fix for pci_pt.c

  • cf48b9c3 - HV: use is_prelaunched_vm/is_hostbridge to check if the code is only for pre-launched VMs

  • a97e6e64 - HV: rename sharing_mode_find_vdev_sos to find_vdev_for_sos

  • 32d1a9da - HV: move bar emulation initialization code to pci_pt.c

  • 67b2e2b8 - HV: Remove undefined CONFIG_REMAIN_1G_PAGES

  • bb48a66b - dm: refine the passthrough devices with dictionary

  • 517cff1b - hv:remove some unnecessary includes

  • 49350634 - DM: virtio-gpio: fixed static variable keeps increasing issue

  • 865ee295 - hv: emulate ACPI reset register for Service OS guest

  • 26f08680 - hv: shutdown guest VM upon triple fault exceptions

  • 9aa3fe64 - hv: emulate reset register 0xcf9 and 0x64

  • 8ad0fd98 - hv: implement NEED_SHUTDOWN_VM request to idle thread

  • db952315 - HV: fix MISRA violation of host_pm.h

  • 1aac0dff - HV: hot fix on usage of CONFIG_ACPI_PARSE_ENABLED

  • 356bf184 - DM: Get max vcpu per vm from HV instead of hardcode

  • 86f5993b - hv: vlapic: fix tpr virtualization when VID is not enabled.

  • a68dadb7 - hv: vm: minor fix about vRTC

  • 8afbdb75 - HV: enable Kconfig of ACPI_PARSE_ENABLED

  • 86fe2e03 - HV: split acpi.c

  • cbab1f83 - HV: remove acpi_priv.h

  • 565f3cb7 - HV: move dmar parse code to acpi parser folder

  • 39798691 - hv:merge static_checks.c

  • d9717967 - dm:add grep -w option for uos launch sh

  • 4c28a374 - dm: add sample script to launch Windows as guest

  • bdae8efb - hv: instr_emul: fix movzx return memory opsize wrong

  • 795d6de0 - hv:move several files related X86 for lib

  • 350d6a9e - hv:Move BUS_LOCK to atomic.h

  • eff44fb0 - build fix: fix build issue with latest gcc for blkrescan

  • c7da3976 - Dockerfile: update Ubuntu 16.04 Dockerfile to include all deps

  • 7b8abe15 - hv: refine ‘init_percpu_lapic_id’

  • dbb41575 - hv: remove dynamic memory allocation APIs

  • 773889bb - hv: dmar_parse: remove dynamic memory allocation

  • 5629ade9 - hv: add default DRHD MACROs in template platform acpi info

  • 5d192288 - Doc: virtio-blk: add description of boot device option

  • d9e6cdb5 - dm: not register/unregister gvt bar memory

  • a581f506 - hv: vmsr: enable msr ia32_misc_enable emulation

  • 8e310e6e - hv: vcpuid: modify vcpuid according to msr ia32_misc_enable

  • ef19ed89 - hv: vcpuid: reduce the cyclomatic complexity of function guest_cpuid

  • f0d06165 - hv: vmsr: handle guest msr ia32_misc_enable read/write

  • a0a6eb43 - hv: msr: use UL since ia32_misc_enable is 64bit

  • 7494ed27 - Clean up MISRA C violation

  • d364d352 - reshuffle struct vboot_candidates

  • 41ac9e5d - rename function & definition from firmware to guest boot

  • 20f97f75 - restruct boot and bsp dir for firmware stuff