ACRN v0.2 (Sep 2018)

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

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, and documentation. You can either download this source code as a zip or tar.gz file (see the ACRN v0.2 GitHub release page or use Git clone and checkout commands:

git clone https://github.com/projectacrn/acrn-hypervisor
cd acrn-hypervisor
git checkout v0.2

The project’s online technical documentation is also tagged to correspond with a specific release: generated v0.2 documents can be found at https://projectacrn.github.io/0.2/. Documentation for the latest (master) branch is found at https://projectacrn.github.io/latest/.

Version 0.2 New Features

VT-x, VT-d

Based on Intel VT-x virtualization technology, ACRN emulates a virtual CPU with core partition and simple schedule. VT-d provides hardware support for isolating and restricting device accesses to the owner of the partition managing the device. It allows assigning I/O devices to a VM, and extending the protection and isolation properties of VMs for I/O operations.

PIC/IOAPIC/MSI/MSI-X/PCI/LAPIC

ACRN hypervisor supports virtualized APIC-V/EPT/IOAPIC/LAPIC functionality.

Ethernet

ACRN hypervisor supports virtualized Ethernet functionality. Ethernet Mediator is executed in the Service OS and provides packet forwarding between the physical networking devices (Ethernet, Wi-Fi, etc.) and virtual devices in the Guest VMs(also called “User OS”). Virtual Ethernet device could be shared by Linux, Android, and Service OS guests for regular (i.e. non-AVB) traffic. All hypervisor para-virtualized I/O is implemented using the VirtIO specification Ethernet pass-through.

Storage (eMMC)

ACRN hypervisor supports virtualized non-volatile R/W storage for the Service OS and Guest OS instances, supporting VM private storage and/or storage shared between Guest OS instances.

USB (xDCI)

ACRN hypervisor supports virtualized assignment of all USB xHCI and/or xDCI controllers to a Guest OS from the platform.

USB Mediator (xHCI and DRD)

ACRN hypervisor supports a virtualized USB Mediator.

CSME

ACRN hypervisor supports a CSME to a single Linux, Android, or RTOS guest or the Service OS even when in a virtualized environment.

WiFi

ACRN hypervisor supports the passthrough assignment of the WiFi subsystem to the IVI, enables control of the WiFi as an in-vehicle hotspot for 3rd party devices, provides 3rd party device applications access to the vehicle, and provides access of 3rd party devices to the TCU provided connectivity.

IPU (MIPI-CS2, HDMI-In)

ACRN hypervisor supports passthrough IPU assignment to Service OS or guest OS, without sharing.

Bluetooth

ACRN hypervisor supports bluetooth controller passthrough to a single Guest OS (IVI).

GPU - Preemption

GPU Preemption is one typical automotive use case which requires the system to preempt GPU resources occupied by lower priority workloads. This is done to ensure performance of the most critical workload can be achieved. Three different schedulers for the GPU are involved: i915 UOS scheduler, Mediator GVT scheduler, and i915 SOS scheduler.

GPU - Display Surface Sharing via Hyper DMA

Surface sharing is one typical automotive use case which requires that the SOS accesses an individual surface or a set of surfaces from the UOS without having to access the entire frame buffer of the UOS. Hyper DMA Buffer sharing extends the Linux DMA buffer sharing mechanism where one driver is able to share its pages with another driver within one domain.

S3

ACRN hypervisor supports S3 feature, partially enabled in LaaG.

Fixed Issues

  • 663 - Black screen displayed after booting SOS/UOS

  • 676 - Hypervisor and DM version numbers incorrect

  • 1126 - VPCI coding style and bugs fixes for partition mode

  • 1125 - VPCI coding style and bugs fixes found in integration testing for partition mode

  • 1101 - missing acrn_mngr.h

  • 1071 - hypervisor cannot boot on skylake i5-6500

  • 1003 - CPU: cpu info is not correct

  • 971 - acrncrashlog functions need to be enhance

  • 843 - ACRN boot failure

  • 721 - DM for IPU mediation

  • 707 - Issues found with instructions for using Ubuntu as SOS

  • 706 - Invisible mouse cursor in UOS

  • 424 - Clear Linux OS desktop GUI of SOS fails to launch

Known Issues

677 - SSD Disk ID not consistent between SOS/UOS

The SSD disk ID in the UOS is not the same as in the SOS when the SSD device is passed-through to the UOS (it should be). The ID is also changing after a reboot (it shouldn’t). Impact: There is no impact to functionality. Workaround: None. The issues will be fixed in the next release.

1268 - GPU hangs when running GfxBench Car Chase in SOS and UOS.

A “GPU HANG” log messages is printed in the dmesg log in SOS and UOS and is fails to load GfxBench Car Chase animation in HDMI and VGA monitors. Impact: Car Chase may stop running after the GPU hangs, but does not block other Gfx apps. Workaround: None. The issue will be fixed in the next release.

1270 - SOS and UOS play video but don’t display video animation output on monitor.

Video does not display in SOS and UOS. Animation is not displayed with the running timer. Impact: There is no video animation on monitor screen when playing video in SOS or UOS. Workaround: None. The issue will be fixed in the next release.

1319 - SD card pass-through: UOS can’t see SD card after UOS reboot.

SD card could not be found after UOS reboot in pass-through mode. Impact: There is no SD card after UOS reboot. Workaround: None. The issue will be fixed in the next release.

Change Log

These commits have been added to the acrn-hypervisor repo since the v0.1 release in July 2018 (click on the CommitID link to see details):

  • 7dd3207 doc: fix typo in network virt hld

  • 01ce3b6 doc: sort title in developer HLD section

  • dae98a0 doc: add network virtualization hld

  • 55a71e4 doc: add watchdog high-level design

  • 31285a9 doc: add security hld document

  • 8c9e0d1 hv: init_iommu rework to enable IOMMU for partition mode ACRN

  • 5373190 dm: passthru: enable NHLT table for audio passthru

  • 33acca5 tools: acrn-crashlog: exclude crashlog tool for release version

  • 9817eb3 Add a comment for switch fallthrough to quiet lint warning

  • 0306bb4 Removed dead funcs in EFI stub module

  • 1d15b98 Replace the call to emalloc() to uefi pool allocation

  • 951a24c allocate boot related struct right after hypervisor memory

  • 6085781 Replace __emalloc() with a call to uefi allocate_page()

  • fea102e Remove emalloc_for_low_mem() routine in EFI boot code of HV

  • ccf5624 hv:irq: avoid out-of-range access to irq_alloc_bitmap[]

  • 4a038d1 dm: workaround for DM crash when doing fastboot reboot

  • 688cdda DM USB: xHCI: enable USB xHCI emulation in LaaG and AaaG.

  • d4afddc Revert “hv: init_iommu rework to enable IOMMU for partition mode ACRN”

  • 40dfd3f doc: edit 0.2 release notes

  • 737c29f doc: Add known issues in v0.2 release note.

  • 994a375 HV:fix potential buffer overflow issues

  • b501ce4 HV: remove dead APIC info MACROs in bsp

  • 2197f43 HV: Add acpi_fixup api to override acpi on needs

  • 0d5ad8a HV: add simple parser for ACPI data table

  • a1e9fdc HV: add Kconfig of CONSTANT_ACPI

  • eb8c4fb hv:Fix Implicit conversion:actual to formal param

  • 8f0cb56 HV: trusty: refine version checking when initializing trusty

  • 9d60220 hv: remove unused MACROs

  • bb0a2bc HV:Hypercall:Remove redundant error checking

  • d8508e4 hv: init_iommu rework to enable IOMMU for partition mode ACRN

  • 2af08d9 HV: refine ‘struct lapic_regs’ definition.

  • 5329ced hv: vtd: fix potential buffer overflow in suspend/resume

  • f355cdf Revert “DM USB: xHCI: enable USB xHCI emulation in LaaG and AaaG.”

  • 83d1ddc hv:Delete the dead code

  • c307e1b hv: long and long long is same for printf within x86_64

  • a47f5d4 doc: fix Makefile to address multiple publishers

  • 41a1714 doc: fix spaces in release notes

  • 3c8157b doc: Add new feature in v0.2 release note

  • c03ea2d DM USB: xHCI: enable USB xHCI emulation in LaaG and AaaG.

  • b4755cd DM USB: xHCI: enable ‘cold plug’ mode

  • 612037e DM USB: xHCI: enable Flat Mode Hub emulation support.

  • d886375 hv: clean up spinlock

  • 8858634 HV: update opcode when decode_two_byte_opcode()

  • 5023937 hv: merge pgtable_types.h and pgtable.h

  • 83e7995 hv: clean up some header files

  • 5a996ce hv:irq: correct the size of irq_alloc_bitmap

  • 4fd5102 hv:treewide:fix multiple MISRAC violations

  • 00edd83 hypercall: no need check HV memory overlap for MR_DEL

  • 876cc68 tools:acrn-crashlog: Change the algorithm of generating event key

  • b1ba12a hv: clean up spinlock wrappers

  • 44a2d77 hv: add SMAP/SMEP check during guest page walking

  • d958d31 hv: fix the issue of movs emulation

  • d84f7a4 hv: clean up udelay/mdelay related code

  • 7cab77d hv: clean up div related code

  • 1d2ed1a hv: vioapic/vpic: clean up spinlock wrappers

  • 4f20c44 dm: passthru: fix a bug in msix read/write

  • 60c05ac hv:Replace vlapic pointer with instance in vcpu_arch

  • f744762 hv:Remove redundancy ‘vlapic’ in ‘struct vcpu’

  • aae5018 hv:Move vlapic structure to vlapic.h

  • fdb6409 hv:Replace dynamic memory allocation for apic access address

  • 887ebf0 hv: Replace dynamic memory allocation for MSR bitmap

  • 02e7edc hv: Replace dynamic memory allocation for I/O bitmaps

  • eada04b hv:Replace dynamic memory allocation for vmcs region

  • ca75d50 IOC mediator: add RTC feature

  • 42d9b24 doc: allow overriding displayed doc version

  • dbcbe7d HV: change wake vector to accommodate abl 1820HF1release

  • bca43b5 hv: avoid memory leak in trampoline code preparing

  • 9e76cf4 doc: Add fixed issues in v0.2 release note

  • f1e87f6 dm: vrtc: use signalfd to poll signal from timer

  • bcaede0 hv: treewide: fix ‘Use of function like macro’

  • d72e65c trusty: do not destroy secure world if it’s not created

  • 8773dfb vlapic: unmap vlapic base only for SOS

  • 457ac74 vcpu: replace start_vcpu with run_vcpu

  • 2978c01 io: tiny fix for error message

  • bfcf546 Doc: add interrupt storm mitigation explanation.

  • d8c4619 HV: change wake vector info to accommodate abl

  • 4ae88bb tools: acrn-manager: fix acrnctl reset issue

  • f42209c tools: acrn-manager: remove unnecessary “current” field

  • 0ca90ba tools: acrn-manager: rework acrnd resume flow

  • 26b8b3b tool: acrn-manager: do not wakeup SOS in advance

  • c6b7940 samples: Add AliOS as guest launch option

  • a7de5a1 samples: Add tap name as launch function parameter

  • bcfe447 DM: deinit initialized pci device when failed

  • 99285f8 HV: improve pass-thru device interrupt process

  • b4e03f2 hv: virq: make irq_window_enabled useful

  • 8e29615 hv: apicv: enable interrupt-window if any pending external interrupts

  • 46c3276 hv: apicv: avoid enable interrupt window if interrupt delivery enabled

  • f5ca189 dm: bios: update vsbl to v0.9

  • 047f4e9 Documentation: update to AcrnGT official name

  • 97aeb7f hv: pgtable: fix ‘Use of function like macro’

  • 6ee9321 security: Enable ‘-fpie -pie’ options

  • 5c5aed6 hv:Change several VMX APIs to void type

  • e4e38e1 hv:Check if VMX capability is locked with incorrect value

  • 6593080 hv: Replace dynamic allocation with static memory for vmxon_region

  • 4360235 hv: treewide: fix ‘Macro parameter not in brackets’

  • 30b77ab DM: unmap ptdev BAR when deinit

  • 1b334ec hv: replace ‘return’ with ‘panic’ in bsp_boot_post

  • bad8d81 IOC mediator: add new signal for VBUS control

  • f2f719c hv: fix ‘Procedure is not called or referenced in code analyzed’

  • 3718177 hv:Replace dynamic allocation with static memory for shell

  • c045442 DM: watchdog: correct 2 MACRO define

  • 198c6e9 DM: coding style: replace tab with space

  • d32ef9b doc: fix doc misspellings

  • 5103002 doc: prepare for versioned release notes

  • 5c3e4d1 tools: acrntrace: fix a variable uninitialized issue

  • 56f2c1a tools: acrn-crashlog: correct usercrash-wrapper path

  • 6703879 hv: treewide: convert some MACROs to inline functions

  • 37fd387 tools: acrn-crashlog: add usercrash_c in the pipe of core_pattern

  • a4cb391 hv: fixup format of log message in vm_load.c

  • 96809c4 DM NPK: enable the NPK virtualization for AaaG

  • 9a27659 DM NPK: use a slice (8 masters) as the minimal unit for NPK virt

  • d8c97c1 hv: fix broken relocation feature

  • 36c4a27 HV: Fix VPCI bugs found in integration testing for partition mode

  • 308910e HV: Updated vm description table for partition mode

  • c9ea890 HV: VPCI coding style fix

  • 54439ec hv: treewide: fix ‘Expression is not Boolean’

  • f611012 HV: Refine two log info about vcpu and instr_emul

  • 96dba0d hv: fix MISRA-C issues related to space or newline

  • d67eefb hv: mmu: use get/set_pgentry to get/set page table entry

  • 7f9befb hv: ept: remove find_next_table

  • 9257ecf hv: mmu: cleanup mmu.h

  • 06ab2b8 hv: mmu: add 1GB page capability check when CPU boot

  • 58fffcd hv: mmu: rename PTT_HOST to PTT_PRIMARY

  • c102c44 hv: Device MSIs in partition mode ACRN

  • ef1a730 Documentation: correct URL pointing at sample ‘acrn.conf’ file

  • 25dacc5 security: Enable ‘-fpie, -pie’ options

  • 10c64a5 hv: fix MISRA-C issues related to for loop

  • 852f613 samples: remove extra option for dm

  • dba52ba IOC mediator: fix no CBC signals after resuming

  • 43741ba hv: Leave interrupts disabled during vmexit - ACRN partition mode

  • 348422d doc: fix graphviz scanning and processing

  • e49c42d Documentation: update GVT-G-porting-image1.png for AcrnGT official name

  • a8ac452 dm: cmos: move cmos storage out of vmctx

  • fa7eb1f tools:acrn-crashlog: Document of configuration file

  • 12c1687 hv:No need to create inverted page tables for trusty memory

  • 2a184f3 hv: code clean up regarding to guest_msrs

  • 947e86d HV: restore correct gpa for guest normal world

  • da4c95b tools: acrn-manager: fix several warnings

  • 4e8798e hv:Replace vioapic pointer with instance in structure vm

  • 29dbd10 hv:Replace vuart pointer with instance in structure vm

  • 0b54946 hv:Replace vpic pointer with instance in structure vm

  • de53964 HV: Removed the unused parameters and union from gdt

  • 8d35f4e HV: wrap and enable hkdf_sha256 key derivation based on mbedtls

  • 12aa2a4 HV: crypto lib code clean up

  • 71577f6 HV: extract hkdf key derivation files from mbedtls

  • 925503c hv: Build fix - ACRN partition mode

  • c5dcb34 DM USB: xHCI: fix a potential issue of crash

  • 7bc1a3f HV: Refine APICv capabilities detection

  • f95d07d hv: vtd: use EPT as translation table for PTDev in SOS

  • 4579e57 hv: add gva check for the case gva is from instruction decode

  • 7dde0df hv: add GVA validation for MOVS

  • b01a812 hv: add new function to get gva for MOVS/STO instruction

  • 8480c98 hv: move check out of vie_calculate_gla

  • 54c2541 hv: remove unnecessary check for gva

  • 5663dd7 hv: extend the decode_modrm

  • 3b6ccf0 HV: remove callbacks registration for APICv functions

  • 93c1b07 hv: mmu: remove old map_mem

  • f3b825d hv: trusty: use ept_add_mr to add memory region

  • 4bb8456 hv: ept: refine ept_add_mr base on mmu_add

  • da57284 hv: ptdev: simplify struct ptdev_msi_info

  • 2371839 hv: ptdev: remove vector index from structure ptdev_msi_info

  • d8cc29b hv: ptdev: check whether phys_pin is valid in add_intx_remapping

  • e8c0763 hv: ptdev: add source_id for ptdev to identify source

  • 6367650 hv: debug: add the hypervisor NPK log

  • 3c6df9b hv: add mmio functions for 64bit values

  • dcae438 hv: add a hypercall for the hypervisor NPK log

  • f4eef97 hv: ptdev: simplify ptdev_intx_pin_remap logic

  • a6c2065 hv: apicv: change the name of vapic to apicv

  • a0c625b hv: apicv: change the apicv related API with vlapic_apicv prefix

  • 74ff712 hv: vlapic: local APIC ID related code cleaning up

  • c43d0e4 hv:Changed several APIs to void type

  • b75a7df hv: vcpuid: disable some features in cpuid

  • 42aaf5d hv: code clean up regarding to % and / operations

  • 0c630d9 dm: cmos: fix a logic error for read to clear range

  • 3e598eb hv: fix ‘No definition in system for prototyped procedure’

  • 65e01a0 hv: pirq: use a bitmap to maintain irq use status

  • e0d40fe HV:refine ‘apic_page’ & ‘pir_desc’ in ‘struct acrn_vlapic’

  • 17ef507 ipu: virtio-ipu4 as default IPU DM

  • 8924f6d hv: vmx: fix ‘Array has no bounds specified’

  • 6988a17 DM USB: xHCI: Change the default USB xHCI support to pass through.

  • 1017d91 hv: treewide: fix ‘Empty parameter list to procedure/function’

  • 7a4dcfc hv: treewide: fix ‘Function prototype/defn param type mismatch’

  • 752e311 hv:fixed MISRA-C return value violations

  • 431ef57 hv: vioapic: fix ‘No definition in system for prototyped procedure’

  • b17de6a hv: Support HV console for multiple VMs - ACRN partition mode

  • b8c1fd6 dm: pass vrpmb key via cmos interface

  • c8c0e10 HV: enlarge the CMA size for uos trusty

  • 40fd889 hv:fixed several return value violations

  • b37008d HV: check secure/normal world for EPTP in gpa2hpa

  • 10a4c6c samples: let nuc uos only start with 1 cpu

  • 709cd57 hv: lib: add ffz64_ex

  • 5381738 hv: pirq: change the order of functions within irq.c

  • a8cd692 hv: pirq: clean up irq handlers

  • 2c044e0 hv: pirq: refactor vector allocation/free

  • 1bf2fc3 hv: pirq: refactor irq num alloc/free

  • f77d885 hv: pirq: clean up unnecessary fields of irq_desc

  • bdcc3ae hv: fixed compiling warning

  • 40745d9 hv: vuart: fix the data type violations

  • d82a86e DM USB: xHCI: enable USB xHCI emulation in LaaG and AaaG.

  • 150b389 hv: fix size issue in mptable guest copy - ACRN partition mode

  • 0c93a13 hv: sw_loader for VMs in ACRN partition mode

  • fce5862 hv: vm_description fix for partition ACRN

  • 38a1898 hv: Fix comments referring to wrong hypervisor name

  • d3db5a6 HV: Add const qualifiers where required

  • e280d95 hv: vmx_vapic: fix two build warnings

  • 39b4fec hv: apicv: explicit log for SMI IPI unsupported

  • 604b5a4 hv: apicv: remove APIC_OFFSET_SELF_IPI(0x3F0) register

  • 93f9126 hv: apicv: remove x2apic related code

  • 8d38318 hv: virq: disable interrupt-window exiting in vmexit handler

  • f4513f9 update to fix format issue of ReST

  • 5a6ee3f update doc -Using Ubuntu as the Service OS

  • 4ecbdf0 tools: acrn-crashlog: update core_pattern content conditionally

  • 8ff0efc update user name cl_sos

  • 99e8997 DM: Add boot option of “i915.enable_guc=0” to disable Guc on UOS new kernel

  • 36d5fdb DM/Samples: Add the boot option of “i915.enable_guc=0” to disable guc on SOS new kernel

  • 5b8c7a5 hv: VM BSP vcpu mode for ACRN partition mode

  • c234acb fix spec_ctrl msr save/restore

  • 022ef92 hv: Add vrtc emulation support for ACRN partition mode

  • f63c7a7 dm: virtio: set VBS-K status to VIRTIO_DEV_INIT_SUCCESS after reset

  • 1378a84 dm: virtio: add support for VBS-K device reset

  • 16a8174 hv: vioapic: bug fix update PTDEV RTE

  • 101ab60 hv: Build fix for Partition mode

  • d030595 HV: remove ‘spinlock_rfags’ declaration

  • 932bc32 DM: virtio rpmb backend driver updates

  • 3df3c9f hv: vuart: fix ‘Shifting value too far’

  • de487ff hv:fix return value violations for vpic/vioapic

  • cad8492 enable weston to fix: #663

  • f2a3e1f quick fix: fix build failure for release version

  • bb5377b HV: change wake vector info to accommodate ww32 sbl

  • f8f49d4 dump vcpu registers on correct vcpu

  • 4b03c97 add smp_call_function support

  • 8ef0721 idle: enable IRQ in default idle

  • e19d36f change pcpu_sync_sleep to wait_sync_change

  • 49d3446 lapic: add send_dest_ipi function

  • 6e96243 HV: io: drop REQ_STATE_FAILED

  • ca83c09 hv: treewide: fix multiple MISRAC violations

  • 0292e14 DM USB: xHCI: enable xHCI SOS S3 support

  • 0b405ee DM USB: xHCI: change flow of creation of virtual USB device

  • b359dc3 DM USB: xHCI: code cleanup: change variable name

  • 27eeea4 DM USB: xHCI: refine port assignment logic

  • 5cc389a DM USB: xHCI: limit bus and port numbers of xHCI

  • 2abec44 DM USB: introduce struct usb_native_devinfo

  • 363b4da DM USB: xHCI: refine xHCI PORTSC Register related functions

  • b746377 DM USB: xHCI: fix an xHCI issue to enable UOS s3 feature

  • b5a233d HV: Enclose debug specific code with #ifdef HV_DEBUG

  • b086162 dm: monitor: bugfix: update wakeup reason before call resume() callback

  • a86a25f tools: acrnd: Fixed get_sos_wakeup_reason()

  • 2d802d0 tools: vm_resume() requires wakeup reason

  • 64a9b2b Revert “[REVERT-ME]: disable turbo mode”

  • 18d44cc tools: acrnalyze: Make the result easier to read

  • 08dd698 hv: pirq: rename common irq APIs

  • 8fda0d8 hv: pirq: add static irq:vector mappings

  • f6e45c9 hv: pirq: remove unnecessary dev_handler_node struct

  • d773df9 hv: pirq: remove support of physical irq sharing

  • 6744a17 hv: treewide: fix ‘Shifting value too far’

  • a9151ff hv: add compile time assert for static checks

  • 69522dc hv: move boot_ctx offset definitions

  • 197706f HV: Use the CPUID(0x16) to obtain tsc_hz when zero tsc_hz is returned by 0x15 cpuid

  • 7d83abb HV: Add the emulation of CPUID with 0x16 leaf

  • e0eeb8a HV: Limit the CPUID with >= 0x15 leaf

  • d5d3d2d tools: acrnlog: Add [-t interval] [-h] to usage

  • a9a2f91 tools: acrntrace: Remove unused parameters “-r” related things

  • 76e43ac HV: handle trusty on vm reset

  • c55b696 HV: remove ‘warm_reboot()’function and other minor cleanup

  • 77011ce HV: Merge hypervisor debug header files

  • a6bc36f HV: refine shell.c & shell_priv.h

  • 28c8923 HV: rename ‘shell_internal.h’ to ‘shell_priv.h’

  • 2fbf707 HV: Logical conjunction needs brackets

  • 6f1c5fa HV: Logical conjunction needs brackets under /arch/x86/guest

  • 7a739cc DM: Add dm for IPU mediation

  • a568c9e dm: bios: update vsbl to v0.8.1

  • 5a559ce fixed cpu info incorrect and remove 2M hugepages

  • f11b263 remove 2M hugepages

  • 462284f HV: add pcpu id check before send IPI

  • c25a62e hv: Create E820 entries for OS in partitioning mode ACRN

  • ab29614 HV: VMX reshuffle: put EPT check before enabling

  • 112b4ea hv: Fixing build issue with PARTITION_MODE

  • 7380c16 hv: Add vuart flag to VM descriptions in partition mode

  • 9e02ef5 hv: Partition mode ACRN -kernel load and bootargs load address

  • 4e99afc hv: treewide: fix ‘Empty parameter list to procedure/function’

  • fc2701d HV: move vioapic.c & vpic.c to ‘dm’ folder

  • 8348800 dm: virtio_rnd: use delayed blocking IO to make virtio_rnd works on Linux based SOS

  • 98aa74b hv: treewide: fix ‘No default case in switch statement’

  • 2a65681 misc: totally remove misc folder

  • 49322ac dm: storage: support cache mode toggling

  • f4fcf5d dm: virtio: remove hv_caps from virtio_ops

  • a2b2991 doc: update virtio-blk usage in HLD

  • 2592ea8 dm: storage: support writethru and writeback mode

  • 42cabf6 hv: Handling IO exits in ACRN for partition mode

  • a8fcc0f HV: Add vm_id entry to VM description in partitioning mode

  • d0e9f24 hv: Interrupt handling in ACRN partition mode

  • 0c88f9b hv: Build mptable for OS in partition mode

  • e40b998 hv: Add EPT mapping for UOS in partitioning mode

  • c492a14 hv: pirq: do not indicate priority when allocate vector

  • 229bf32 hv:Refine destroy_secure_world API

  • 40196d1 hv: treewide: fix ‘inline function should be declared static’

  • cdd19dc hv: treewide: fix ‘Variable should be declared static’

  • 183ca5d HV: Adding hostbridge vdev device support for partition hypervisor

  • 181de19 HV: Adding passthru vdev device support for partition hypervisor

  • 5f3ea06 HV: Implementing PCI CFG vm-exit handler for partition hypervisor

  • 86180bd HV: Calling into VPCI init/unit functions for partition hypervisor

  • 65bd038 HV: Compiling in VCPI code for partition hypervisor

  • f60fcb6 HV: Defining the per-vm static vpci table for partition hypervisor

  • 2b22e88 hv: init: rm the code of creating guest init page table

  • 33e1149 hv: init: unify init logic for vm0 bsp

  • 4acce93 hv: move save_segment/load_segment to a header file

  • 43db87c hv: rename acrn_efi.h to vm0_boot.h

  • adddf51 hv: move define of struct cpu_gp_regs to a separate headfile

  • 5a5b2a1 hv: init: save boot context from bootloader/bios

  • ac39b90 DM: update GSI sharing info

  • 2fc3bde HV: trusty: new hypercall to save/restore context of secure world

  • 3225b16 HV: trusty: log printing cleanup

  • 9ba14da HV: trusty: remove unused HC ID

  • b5b769f HV: trusty: refine secure_world_control

  • ff96453 hv: Boot multiple OS for Partitioning mode ACRN

  • 5e32c02 tools:acrn-crashlog: Enhance some functions

  • 10f0bb0 hv: remove push/pop instruction emulation.

  • fa9fec5 hv: inject invalid opcode if decode instruction fails

  • 1a00d6c hv: add more exception injection API

  • 96e99e3 hv: use more reliable method to get guest DPL.

  • 63fe48c hv: get correct fault address for copy_to/from_gva

  • 55105db DM: notify VHM request complete after pausing the VM

  • 4753da4 doc: add interrupt high-level design doc

  • 11c209e DM: add tag info while no repo in release

  • 8af90e0 misc: Remove unnecessary ExecStop in systemd services

  • 4106fad hv: treewide: fix ‘Switch empty default has no comment’

  • af7943c DM: check more in guest service & launch script

  • 04b4c91 hv: Adding a wrapper on top of prepare_vm0

  • 638d714 DM: adapt to the new VHM request state transitions

  • ea13758 DM: add wrappers to gcc built-in atomic operations

  • c0544c9 hv: treewide: fix ‘Potential side effect problem in expression’

  • b1612e3 add cpu_do_idle to handle idle

  • b78aa34 HV: instr_emul: Make vm_update_register/rflags as void

  • 12726db HV: instr_emul: Make vie_read/write_bytereg as non-failed function

  • 59c0f35 HV: instr_emul: Make vm_set/get_register as non-failed function

  • b6b7e75 HV: instr_emul: Make vm_get_seg_desc a void function

  • e625bd7 HV: vmx code clean up

  • 820b5e4 HV: instr_emul: Remove dead code

  • f03ae8d HV: instr_emul: Rearrange logic of instr_emul*

  • ce79d3a HV: instr_emul: Handle error gracefully

  • 8836abe HV: instr_emul: Unify params passing to emulate_xxx

  • cebc8d9 DM USB: xHCI: Refine drd code to fix a potential NULL pointer issue.

  • 7109ab4 hv:removed assert in free_ept_mem

  • a5121e9 dm: uart: add state check of backend tty before uart_closetty

  • fe51acf Revert “[REVERT-ME]:handle discontinuous hpa for trusty”

  • 63ef123 move global x2apic_enabled into arch dir

  • 72f9c9a pm: use cpu_context for s3 save/restore

  • 8a95b2a vcpu: add ext context support for world switch

  • 3d5d6c9 vcpu: add get/set register APIs

  • 5aa1ad3 HV:treewide:fix value outside range of underlying type

  • c663267 hv: timer: request timer irq once only

  • b4a2ff5 hv: treewide: fix ‘Prototype and definition name mismatch’

  • f42878e hv: apicv: improve the default apicv reset flow

  • 6e86d48 hv: vioapic: set remote IRR to zero once trigger mode switch to edge

  • 1e18867 hv: vioapic: remove EOI register support

  • f96f048 hv: vioapic: change the variable type of pin to uint32_t

  • b13882f hv: vioapic: improve the vioapic reset flow

  • 86de47b hv: vioapic: correct the ioapic id mask

  • 68cbdb3 hv: vioapic: avoid deliver unnecessary interrupt for level trigger

  • 771c6db hv: vioapic: refine vioapic_mmio_rw function

  • f0d2291 hv: vioapic: check vector prior to irr in EOI write emulation

  • fc41629 hv: vioapic: refine vioapic mmio access related code

  • 66814d8 tools: fix resuming vm issue in acrnctl

  • 7b34ae8 tools: fix resuming vm issue in acrnd

  • 6cd6e3d tools: fix an issue acrnd does not notify the vm stop state to cbc lifecycle service

  • 331300d tools: fix an invalid parameter of send_msg in query_state

  • 7345677 hv:cleanup vmid related code

  • 2299926 HV: Refine ‘hv_main()’ function usage

  • 9d9c97d doc: fix table in acrn-shell documentation

  • 093f2f9 Update acrn-shell.rst

  • 9689227 Update acrn-shell.rst

  • f9bf917 HV: Refine hypervisor shell commands

  • 6643adf HV: Adding mptable support for partition mode ACRN

  • fd0c918 hv: treewide: fix ‘Procedure parameter has a type but no identifier’

  • c27e250 HV: instr_emul: Move op_byte from vie_op to instr_emul_vie

  • baf055e HV: instr_emul: Using size2mask array directly

  • b6a0a36 HV: instr_emul: Remove vie_read_register

  • 3702659 HV: Rename functions, variables starting with “_”

  • a71dede hv: treewide: fix ‘Array has no bounds specified’

  • a3b44a2 hv:Replace 0(cpu_id) with BOOT_CPU_ID

  • 7a3d03c dm: uart: fix acrn-dm crash issue when invoke uart_closetty function

  • 8f39a22 hv: cpu: remove unnecessary cpu_id valid check

  • a98113b HV: fully check VMCS control settings

  • ae8836d hv:fix return value violation for vioapic_get_rte

  • cd3a62f HV: Refine invalid parameter handling in hypervisor shell

  • 61782d7 hv:Rename port/mmio read and write APIs

  • 7db4c0a DM: Add function to update PM_WAK_STS

  • a8a27d8 dm: add S3 support for UOS

  • 8ee4c0b DM: add vm_stop/reset_watchdog

  • a2241d9 DM: register pm ops to monitor

  • f576f97 hv: add vm restart API

  • a4eebb0 hv: cleanup inline assembly code in vmx.c a little bit

  • 77c3917 HV:treewide:avoid using multiple # or ## in a macro

  • 581a336 HV: Add Partitioning mode option for ACRN

  • 93ed037 hv:cleanup console/uart code

  • 22005c6 HV: Refine hypervisor shell commands

  • 1664e0c HV:fix rest integer violations

  • 56904bc doc: CSS tweak for table caption location

  • 64f6295 acrn-manager: create acrn-hypervisor-dev package

  • 51c75e9 hv: treewide: fix ‘Function prototype/defn param type mismatch’

  • cf8fd8c Revert “HV: clear memory region used by UOS before it exit”

  • 9c24c5c HV:Rename ‘shell_internal.c’ to ‘shell.c’

  • 3b06282 HV:Remove i/o session sw interface from hypervisor shell

  • a8e9d83 samples: change WIFI BDF to 3:0:0

  • 00bfde3 HV: rename resume_vm to start_vm in hypercall api

  • 5e31e7c IOC mediator: Add parking brake and Hvac signals

  • 457ecd6 hv: softirq: refine softirq

  • 073583c hv: softirq: move softirq.c to common directory

  • dec24a9 hv: add check to invalid CR8 writing from guest

  • 13a50c9 hv: Explicitly trap VMXE and PCIDE bit for CR4 write

  • f0ef41c hv: Extend the always off mask of CR0 and CR4

  • d18642a hv: Add function to check whether cr0 written operation is valid

  • ce7257e doc: tweak logo href to projectacrn.org

  • 6d25535 doc: fix doc errors from acrn_vhm_mm.h API changes

  • 014bef6 doc: add virtio-console HLD document

  • 50af102 dm: bios: update vSBL binary to v0.8

  • 87a4abd tools: acrn-crashlog: fix build warnings with gcc8.1.1

  • 6e77a8d HV:treewide:rename enum vpic_wire_mode, stack_canary, segment_override, pde_index

  • 52fe9f4 hv: use macro instead of specify number

  • 8ed98d3 DM: fix make install issue in auto boot UOS service

  • 8e2c730 HV:VLAPIC:add suffix “_fn” for function pointer

  • 2c95a8c HV:treewide:rename struct pic and iommu_domain

  • 17771c0 HV: io: refine state transitions of VHM requests

  • 941eb9d HV: io: move I/O emulation post-work to io.c

  • d817951 HV: io: add post-work for PCICFG and WP requests

  • 26ab2c9 HV: io: move MMIO handler registration to io.c

  • b21b172 HV: io: refactoring vmexit handler on EPT violation

  • 50e4bc1 HV: io: refactoring vmexit handler on I/O instruction

  • d4d8a12 doc: tweak formatting for :kbd: role

  • 9c3d77e doc: tweak known-issues pattern for hypercall API

  • 99ebd92 hv:Delete serial files

  • ae30040 hv:Reshuffle console/uart code

  • b743627 IOC mediator: fix IOC mediator blocks acrn-dm shutdown flow

  • 159d57b HV:treewide:rename union lapic_id and struct segment

  • c477211 HV:treewide:rename struct key_info, pir_desc, map_params

  • f614fcf hv: debug: add CR4 to vcpu_dumpreg output

  • 8205c9a HV:INSTR_EMUL:Rename struct vie, vie_op, and emul_ctxt

  • 3446e84 HV:treewide:rename struct timer as struct hv_timer

  • cf7a940 HV: clear memory region used by UOS before it exit

  • a2fe964 HV: Rename functions beginning with “_”

  • d40a6b9 DM: add service to support auto boot UOS

  • 496e400 HV:treewide:fix rest of violations related parameter changed

  • 42c77e4 Documentation: add needed library for acrnprobe

  • a4aed45 tools: acrn-crashlog: replace debugfs with api

  • ea8cb41 tools: acrn-crashlog: replace fdisk and losetup with api

  • 134e79a tools: acrn-crashlog: New apis to replace debugfs

  • db05675 tools: acrn-crashlog: New apis to replace losetup and fdisk

  • c01e675 HV:VLAPIC:rename variable vlapic_timer in the struct and function

  • 59771ff HV:treewide:fix “Reference parameter to procedure is reassigned”

  • 9d4c9d7 HV: stop retrieving seed from multiboot modules

  • 1b527e5 HV: parse seed through cmdline during boot stage

  • 58b42ba HV:treewide:rename struct vpic as struct acrn_vpic

  • 33fdfd0 HV:treewide:rename struct vlapic as struct acrn_vlapic

  • 9ea50a5 acrn.conf: remove maxcpus from cmdline

  • 10ed599 HV: cleanup sprintf&string.c MISRA-C issues

  • 88f74b5 HV: io: unify vhm_request req and mem_io in vcpu

  • 1915eec HV: io: separate I/O emulation interface declarations

  • 3cab926 DM: add param: -V 5 to auto check/boot UOS image

  • 45d6f72 HV:refine ‘create_vm()’ to avoid potential crash and memory leak

  • 53a5941 doc: add GVT-G porting guide

  • 746cbab doc: add UART virtualization documentation

  • 6c54cba doc: cleanup css, search, version choices

  • f815415 hv: ept: add lookup_address to lookup the page table

  • e2516fa hv: mmu: reimplement mmu_add to add page table mapping

  • c779958 hv: mmu: replace the old mmu_del

  • 236bb10 hv: mmu: refine delete page table mapping

  • 34c6862 hv: hypercall: add support to change guest page write permission

  • efd5ac4 hv: mmu: fix wrong to modify a large page attributes

  • 5189bcd HV:treewide:fix “Attempt to change parameter passed by value”

  • e71a088 samples: offline SOS cpus before launch uos

  • d5ead61 samples: remove maxcpus from bootargs

  • 2dca23c add hypercall hc_sos_offline_cpu support

  • 589c723 add CONFIG_VM0_DESC support

  • 2283378 refine definition for foreach_vcpu

  • 3117870 hv:Change shell_init to void type

  • a1923dd hv: add a missing semicolon in vmexit.c

  • 6788c09 hv: bug fix on operating spin_lock

  • ff05a6e hv:Remove dead code in console.c

  • a661ffa fix x86 dir integer violations

  • f1b9f5a hv: cpu: using struct cpu_gp_regs for general-purpose regs in inter_excp_ctx

  • 586b527 hv: cpu: remove general-purpose register mapping in instruction emulation

  • b2802f3 hv: cpu: align general-purpose register layout with vmx

  • 3d6ff0e tools: acrntrace: save trace data file under current dir by default

  • 3abfdba doc: add script for syncing acrn-kernel for API gen

  • 363a84c DOC:GSG: Fix few mistakes about updating acrn.conf and efibootmgr options

  • f18a02a HV: MISRA cleanup for platform acpi info

  • ee13110 HV: change wake vector address to accommodate sbl

  • 4344832 Revert “DM sample: force enabling HDMI1 and HDMI2 connectors”

  • f7f04ba hv: mmu: minor fix about hv mmu && ept modify

  • 502e3e2 hv: mmu: refine set guest memory region API

  • 27fbf9b HV:treewide:Fixing pointer castings

  • a368b57 hv: fix typo in relocation code

  • b35e330 HV: make: check CONFIG_RELEASE=y for release build

  • da0f28c HV: Bracket for the same level of precedence

  • 91337da HV: logical and high level precedence expression needs brackets

  • 7aec679 HV: Clean up the unused or legacy code-like comment

  • c776137 doc: fix doc error filter patterns

  • fb8bce1 hv: treewide: fix ‘Array has no bounds specified’

  • af194bc HV: fix bug of restore rsp context

  • 4fd870f hv: efi: remove multiple defined struct efi_ctx & dt_addr_t

  • d5be735 hv: correct the way to check if a MSR is a fixed MTRR register

  • bd69799 fix assign.c integer violations

  • f0a3585 HV: common: cleanup of remaining integral-type issues

  • 112b5b8 HV: guest: cleanup of remaining integral type violations

  • 1a1ee93 HV: hypercall: make hypercall functions return int32_t

  • ad73bb5 HV: treewide: unify the type of bit-field members

  • c0b55cd HV:vtd:fix all integer related violations

  • 4c941ed HV:vtd.h fixed inline function violations

  • a17653b HV:transfer DMAR_[GS]ET_BITSLICE to inline function

  • e2ad788 doc: clean up tools docs

  • 38b9b7d HV: cpuid: Disable Intel RDT for guest OS

  • 9ac1be2 DM USB: enable isochronous transfer

  • b95f939 DM USB: temporary solution for corner case of control transfer

  • 3389e83 DM USB: add some BCD codes

  • b9597d4 DM USB: xHCI: add microframe index(MFINDEX) register emulation support

  • a49d483 DM USB: process LIBUSB_TRANSFER_STALL error

  • 640d896 DM USB: change TRB ring processing logic for ISOC transfer

  • d24213d DM USB: xHCI: fix xhci speed emulation logic

  • d6cc701 DM USB: refine logic of toggling interface state

  • 5317124 DM USB: xHCI: add support for USB 3.0 devices

  • 8317dea DM USB: fix guest kernel short packets warning

  • 7431a90 DM USB: add code for error processing

  • 00fbfd6 DM USB: fix an USB endpoint reset flow issue

  • cb93887 DM USB: modify some logs to help debug

  • aecb67b DM USB: support multiple interfaces USB device

  • 38e2e45 hv: ept: move EPT PML4 table allocation to create_vm

  • 1815a1b hv: ept: store virtual address of EPT PML4 table

  • 23a5c74 HV: handle integral issues as MISRA-C report

  • 0252ae9 hv: treewide: fix ‘No definition in system for prototyped procedure’

  • d28fff2 HV:treewide:Update the type of return value and parameters of atomic operations

  • 3aa7d59 hv: check eptp value before calling free_ept_mem()

  • 3571afc HV: hypercall: revisit types in structure parameters

  • f691cab HV: treewide: terminate ‘if .. else if’ constructs with ‘else’

  • e13c852 HV:INSTR_EMUL: Clean up CPU_reg_name

  • f4ca3cc hv: instr_emul: fix ‘Parameter indexing array too big at call’

  • 84d320d HV:treewide:Fix type conversion in VMX, timer and MTTR module

  • f7efd0f hv: mmu: replace modify_mem with mmu_modify

  • 0a33c0d hv: mmu: replace ept_update_mt with ept_modify_mr

  • 1991823 hv: mmu: revisit mmu modify page table attributes

  • 20c80ea HV: bug fix on emulating msi message from guest

  • 9695d3b tools: replace payload[0] of struct mngr_msg with an union

  • ec86009 tools: acrn-manager: code cleanup

  • be80086 tools: Makefile: fix lack of dependence for acrm_mngr.h

  • a257f2f HV: Fixes index out of bounds for addressing irq.

  • 988a3fe doc: use code-block:: none for command examples

  • dc6d775 tools: acrnd: update README.rst

  • 0631473 [doc] Add API document for ACRN-GT

  • 7e9b7f6 HV: instr_emul: Replace ASSERT/panic with pr_err

  • f912953 HV:treewide:Update exec_vmread/exec_vmwrite and exec_vmread64/exec_vmwrite64

  • 612cdce HV:treewide:Add exec_vmread32 and exec_vmwrite32 functions

  • 6543796 HV:treewide: Add exec_vmread16 and exec_vmwrite16 functions

  • d3b9712 HV:INSTR:Rearrange register names in the enum cpu_reg_name

  • 055153b HV:treewide:Replace HOST_GDT_RING0_CODE/DATA_SEL with constant

  • f2774e4 HV:common:fix “integer type violations”

  • aa2b2d8 hv: change several APIs to void type

  • 8017ebd HV:vtd:dma change the macro to the inline function

  • d8c3765 HV:vtd:cap change the macro to the inline function

  • 69ebf4c HV: vioapic: cleaning up integral-type-related violations

  • a1069a5 HV: ioapic: unify the access pattern to RTEs

  • 9878543 DM: add system reset (with RAM content kept)

  • b33012a DM: add vm reset API

  • 8d12c06 dm: introduce system/full reset and suspend

  • 76662a6 loader: Update the memory address of GUEST_CFG_OFFSET

  • a91952d HV: per_cpu: drop dependency on version.h and add license header

  • 116038f HV: make: consider header dependencies when rebuilding

  • 11239ae update launch_uos.sh to align with ACRN v0.1

  • b2e676a update kernel-pk version to align with ACNR v0.1

  • ea0bbd5 doc: reorganize doc tree

  • e042558 doc: update GSG for v0.1, add console code-block

  • 1c712c5 delete pci_devices_ignore=(0:18:1)

  • 2f2d108 HV: handle integral issue report by MISRA-C

  • 7706e5c tools: acrnd: store/load timer list

  • e435f03 tools: acrnd: handle timer request from UOS

  • ee9ec9d tools: acrnd: the acrnd work list

  • f5e9c76 tools: acrnd: handle resume request from SOS-LCS

  • 04ed916 tools: acrnd: handle stop request from SOS-LCS

  • bcb101f tools: acrnd: the daemon for acrn-manager

  • c4f9a2f tools: rework on vm ops

  • f0fe17d hv: sprintf: fix ‘Declaration does not specify an array’

  • aa5027a HV:misc:fix “signed/unsigned conversion with cast”

  • 619c600 hv: cpu state update should be moved just before halt.

  • 621425d hv: further fix to configurable relocation

  • 944776f HV: Fix new MISRAC violations for brackets

  • 90b342b HV: prototyping non-static function

  • 8925eb5 hv: set guest segment base to zero if VCPU does not start in real mode

  • b831120 HV: coding style cleanup for TRACE_2L & TRACE_4I usage

  • c808972 hv: fix the potential dead loop in _parse_madt

  • 4627cd4 HV: build: drop useless files

  • 680c64d HV:transfer vmid’s type to uint16_t

  • 6ad1508 dm: virtio-net: add variable name in function declaration

  • cb0009f hv: cpu: fix ‘Pointer arithmetic is not on array’

  • 44a175e HV: instr_emul: Add new function vie_update_rflags

  • 2f3eb67 HV: Remove SIB decode related code in decode_modrm

  • 0fbdf37 HV: instr_emul: Cleanup ASSERT

  • e3302e8 HV:transfer vm_hw_logical_core_ids’s type and rename it

  • 1d628c6 hv:fix MISRA-C return value violation

  • 2a2adc7 HV:CPU:Fix a mistake introduced by MARCO replacing patch

  • e3452cf HV: vlapic: minimize explicit casts by adjusting types

  • e08a58e HV: vlapic: save complex expressions to local variables

  • f05e2fc HV: vlapic: cleanup types in formatting strings

  • 6dd78d5 HV: vlapic: convert loop variables to unsigned

  • 87f2d4c HV: vlapic: add suffix ‘U’ when necessary

  • 1af8586 HV: Fix missing brackets for MISRA C Violations

  • af806a9 HV: Fix missing brackets for MISRA C Violations

  • 4aa6cda HV: Fix missing brackets for MISRA C Violations

  • d16d9e5 HV: Fix missing brackets for MISRA C Violations

  • 82e0cdb HV: Fix missing brackets for MISRA C Violations

  • dbfd0e5 HV: Fix missing brackets for MISRA C Violations

  • 88a3205 HV: Fix missing brackets for MISRA C Violations

  • b4a6b93 doc: add v0.1 doc choice

  • 3fe0fed version: 0.2-unstable

  • b4fb261 hv: fix bug in some embedded assembly code in vmx

  • 8336101 DM: Fix potential buffer overflow and uninitialized variable

  • 194fd8b hv: irq: fix ‘Pointer arithmetic is not on array’

  • 401ffd1 HV: pm: cleanup for MISRA integral type violations

  • 202bc54 HV: trusty: revise trusty_boot_param structure

  • b30ba3d tools:acrn-crashlog: Detect and classify the crash in ACRN and kernel

  • a5853d6 tools:acrn-crashlog: Improve the process of crash reclassify

  • 0683b16 tools:acrn-crashlog: Get reboot reason in acrnprobe

  • 2d03706 hv:change shell_puts to void type

  • 4cab8b9 HV: code cleanup as MISRA-C report for guest/vmsr

  • 8c43ad5 HV: add the missing brackets to loop body

  • fd81655 HV: add the missing brackets to loop body

  • df038fc HV: vmx: Change variable field to uint32_t

  • 43e4bd4 version: v0.1