acrn-hypervisor/hypervisor
Zide Chen d0df39cbb5 hv: emulate CR0.CD and CR0.NW
This patch makes use of IA32_PAT MSR to emulate cache disabled behaviour

When the guest is requesting to set CR0.CD:
 - Keep guest's CR0.CD and CR0.NW bits unchanged
 - Write IA32_PAT MSR with all-UC entries to change the effective memory
   type for all GPA to UC for the guest VCPU
 - It depends on trapping wrmsr to IA32_PAT to prevent any entry in
   IA32_PAT being changed to non UC type by the guest

When the guest is requesting to clear CR0.CD:
 - restore the content of guest's IA32_PAT MSR

Signed-off-by: Zide Chen <zide.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2018-07-02 12:33:06 +08:00
..
arch/x86 hv: emulate CR0.CD and CR0.NW 2018-07-02 12:33:06 +08:00
boot hv: More changes to enable GPU passthru 2018-06-29 00:50:01 +08:00
bsp HV:- Refine strtol() & strtoul() 2018-06-29 15:47:07 +08:00
common HV:common:transfer local variable type 2018-06-29 09:49:29 +08:00
debug HV: Remove vm->attr.name 2018-07-02 10:48:36 +08:00
Documentation UEFI: update acrn.conf and Document 2018-05-15 17:25:26 +08:00
include hv: emulate CR0.CD and CR0.NW 2018-07-02 12:33:06 +08:00
lib HV: Fix compiler warnings in string.c 2018-07-02 12:32:12 +08:00
scripts/kconfig HV: make: rename minimalconfig to savedefconfig 2018-06-15 15:50:09 +08:00
Kconfig HV: config: add Kconfig and defconfigs for sbl & uefi 2018-06-08 17:21:13 +08:00
MAINTAINERS update home page information 2018-05-15 17:19:39 +08:00
Makefile build: Using id tool to get builder username 2018-06-29 11:55:03 +08:00
README.rst initial import 2018-05-11 14:44:28 +08:00

Embedded-Hypervisor
###################

This open source embedded hypervisor defines a software architecture for
running multiple software subsystems managed securely on a consolidated
system (by means of a virtual machine manager), and defines a reference
framework Device Model implementation for devices emulation

This embedded hypervisor is type-1 reference hypervisor, running
directly on the system hardware. It can be used for building software
defined cockpit (SDC) or In-Vehicle Experience (IVE) solutions running
on Intel Architecture Apollo Lake platforms. As a reference
implementation, it provides the basis for embedded hypervisor vendors to
build solutions with an open source reference I/O mediation solution,
and provides auto makers a reference software stack for SDC usage.

This embedded hypervisor is able to support both Linux* and Android* as
a Guest OS, managed by the hypervisor, where applications can run.

This embedded hypervisor is a partitioning hypervisor reference stack,
also suitable for non-automotive IoT & embedded device solutions. It
will be addressing the gap that currently exists between datacenter
hypervisors, hard partitioning hypervisors, and select industrial
applications.  Extending the scope of this open source embedded
hypervisor relies on the involvement of community developers like you!