Updated per feedback

Signed-off-by: Amy Reyes <amy.reyes@intel.com>
This commit is contained in:
Amy Reyes 2021-11-02 13:53:42 -07:00 committed by David Kinder
parent 7ac09dda43
commit 47a3912e7c

View File

@ -44,9 +44,9 @@ A typical In-vehicle Infotainment (IVI) system supports:
- connection to IVI front system and mobile devices (cloud - connection to IVI front system and mobile devices (cloud
connectivity) connectivity)
ACRN supports guest OSes of Linux and Android. OEMs can use the ACRN ACRN supports guest OSes of Linux and Android. OEMs can use the ACRN hypervisor
hypervisor and the Linux or Android guest OS reference code to implement their own and the Linux or Android guest OS reference code to implement their own VMs for
VMs for a customized IC/IVI/RSE. a customized IC/IVI/RSE.
Industry Usage Industry Usage
============== ==============
@ -92,23 +92,22 @@ certain :ref:`Intel platforms <hardware>` and can be easily extended to support
future future
platforms. ACRN implements a hybrid VMM architecture, using a privileged platforms. ACRN implements a hybrid VMM architecture, using a privileged
Service VM to manage I/O devices and Service VM to manage I/O devices and
provide I/O mediation. Multiple User VMs can be supported, running Ubuntu provide I/O mediation. Multiple User VMs can be supported, running Ubuntu,
or Android OS. Android, Windows, or an RTOS such as Zephyr.
ACRN 1.0 ACRN 1.0
======== ========
ACRN 1.0 is designed mainly for auto use cases such as SDC and IVI. ACRN 1.0 is designed mainly for auto use cases such as SDC and IVI.
Instrument cluster applications are critical in the Software Defined Instrument cluster applications are critical in the SDC use case, and may
Cockpit (SDC) use case, and may require functional safety certification require functional safety certification in the future. Running the IC system in
in the future. Running the IC system in a separate VM can isolate it from a separate VM can isolate it from other VMs and their applications, thereby
other VMs and their applications, thereby reducing the attack surface reducing the attack surface and minimizing potential interference. However,
and minimizing potential interference. However, running the IC system in running the IC system in a separate VM introduces additional latency for the IC
a separate VM introduces additional latency for the IC applications. applications. Some country regulations require an IVE system to show a rear-view
Some country regulations require an IVE system to show a rear-view camera (RVC) within 2 seconds, which is difficult to achieve if a separate
camera (RVC) within 2 seconds, which is difficult to achieve if a instrument cluster VM is started after the User VM is booted.
separate instrument cluster VM is started after the User VM is booted.
:numref:`overview-arch1.0` shows the architecture of ACRN 1.0 together with :numref:`overview-arch1.0` shows the architecture of ACRN 1.0 together with
the IC VM and Service VM. As shown, the Service VM owns most of the platform the IC VM and Service VM. As shown, the Service VM owns most of the platform
@ -128,7 +127,7 @@ for VM start/stop/pause, virtual CPU pause/resume, etc.
ACRN 2.0 ACRN 2.0
======== ========
ACRN 2.0 is extending ACRN to support a pre-launched VM (mainly for safety VM) ACRN 2.0 extended ACRN to support a pre-launched VM (mainly for safety VM)
and real-time (RT) VM. and real-time (RT) VM.
:numref:`overview-arch2.0` shows the architecture of ACRN 2.0; the main :numref:`overview-arch2.0` shows the architecture of ACRN 2.0; the main
@ -143,8 +142,6 @@ differences compared to ACRN 1.0 are that:
- ACRN 2.0 supports an RT VM as a post-launched User VM, with features such as - ACRN 2.0 supports an RT VM as a post-launched User VM, with features such as
LAPIC passthrough and PMD virtio driver. LAPIC passthrough and PMD virtio driver.
ACRN 2.0 is still WIP, and some of its features are already merged in the master.
.. figure:: images/over-image35.png .. figure:: images/over-image35.png
:align: center :align: center
:name: overview-arch2.0 :name: overview-arch2.0
@ -223,7 +220,7 @@ checks to see if any (guest) device emulation modules claim ownership of
the I/O port. If yes, the owning module is invoked to execute requested the I/O port. If yes, the owning module is invoked to execute requested
APIs. APIs.
When the DM completes the emulation (port IO 20h access in this example) When the DM completes the emulation (port I/O 20h access in this example)
of a device such as uDev1, uDev1 puts the result into the request of a device such as uDev1, uDev1 puts the result into the request
buffer (register AL). The DM returns the control to the HV buffer (register AL). The DM returns the control to the HV
indicating completion of an I/O instruction emulation, typically through indicating completion of an I/O instruction emulation, typically through
@ -254,7 +251,7 @@ and "non-root mode" for simplicity.)
The VMM mode has 4 rings. ACRN The VMM mode has 4 rings. ACRN
runs the HV in ring 0 privilege only, and leaves ring 1-3 unused. A guest runs the HV in ring 0 privilege only, and leaves ring 1-3 unused. A guest
running in non-root mode has its own full rings (ring 0 to 3). The running in non-root mode has its own full rings (ring 0 to 3). The
guest kernel runs in ring 0 in guest mode, while the guest user land guest kernel runs in ring 0 in guest mode, while the guest userland
applications run in ring 3 of guest mode (ring 1 and 2 are usually not applications run in ring 3 of guest mode (ring 1 and 2 are usually not
used by commercial OS). used by commercial OS).
@ -447,8 +444,8 @@ to boot a Linux or Android guest OS.
vSBL System Context Diagram vSBL System Context Diagram
The vSBL image is released as a part of the Service VM root filesystem (rootfs). The vSBL image is released as a part of the Service VM root filesystem (rootfs).
The vSBL is copied to the User VM memory by the VM Manager in the Service VM The VM Manager in the Service VM copies the vSBL to the User VM memory
while creating the User VM virtual BSP of the User VM. The Service VM passes the while creating the User VM virtual BSP. The Service VM passes the
start of vSBL and related information to HV. HV sets the guest RIP of the User start of vSBL and related information to HV. HV sets the guest RIP of the User
VM's virtual BSP as the start of vSBL and related guest registers, and launches VM's virtual BSP as the start of vSBL and related guest registers, and launches
the User VM virtual BSP. The vSBL starts running in the virtual real mode within the User VM virtual BSP. The vSBL starts running in the virtual real mode within
@ -467,12 +464,12 @@ OVMF Bootloader
Open Virtual Machine Firmware (OVMF) is the virtual bootloader that supports Open Virtual Machine Firmware (OVMF) is the virtual bootloader that supports
the EFI boot of the User VM on the ACRN hypervisor platform. the EFI boot of the User VM on the ACRN hypervisor platform.
The OVMF is copied to the User VM memory by the VM Manager in the Service VM The VM Manager in the Service VM copies OVMF to the User VM memory while
while creating the User VM virtual BSP of the User VM. The Service VM passes the creating the User VM virtual BSP. The Service VM passes the start of OVMF and
start of OVMF and related information to HV. HV sets the guest RIP of the User related information to HV. HV sets the guest RIP of the User VM virtual BSP as
VM virtual BSP as the start of OVMF and related guest registers, and launches the start of OVMF and related guest registers, and launches the User VM virtual
the User VM virtual BSP. The OVMF starts running in the virtual real mode within BSP. The OVMF starts running in the virtual real mode within the User VM.
the User VM. Conceptually, OVMF is part of the User VM runtime. Conceptually, OVMF is part of the User VM runtime.
Freedom From Interference Freedom From Interference
************************* *************************
@ -551,27 +548,27 @@ CPU P-State & C-State
===================== =====================
In ACRN, CPU P-state and C-state (Px/Cx) are controlled by the guest OS. In ACRN, CPU P-state and C-state (Px/Cx) are controlled by the guest OS.
The corresponding governors are managed in the Service VM/User VM for best power The corresponding governors are managed in the Service VM or User VM for
efficiency and simplicity. best power efficiency and simplicity.
Guests should be able to process the ACPI P/C-state request from OSPM. Guests should be able to process the ACPI P-state and C-state requests from
The needed ACPI objects for P/C-state management should be ready in an OSPM. The needed ACPI objects for P-state and C-state management should be ready
ACPI table. in an ACPI table.
The hypervisor can restrict a guest's P/C-state request (per customer The hypervisor can restrict a guest's P-state and C-state requests (per customer
requirement). MSR accesses of P-state requests could be intercepted by requirement). MSR accesses of P-state requests could be intercepted by
the hypervisor and forwarded to the host directly if the requested the hypervisor and forwarded to the host directly if the requested
P-state is valid. Guest MWAIT/Port IO accesses of C-state control could P-state is valid. Guest MWAIT or port I/O accesses of C-state control could
be passed through to host with no hypervisor interception to minimize be passed through to host with no hypervisor interception to minimize
performance impacts. performance impacts.
This diagram shows CPU P/C-state management blocks: This diagram shows CPU P-state and C-state management blocks:
.. figure:: images/over-image4.png .. figure:: images/over-image4.png
:align: center :align: center
CPU P/C-state Management Block Diagram CPU P-State and C-State Management Block Diagram
System Power State System Power State
================== ==================