mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-05 23:57:10 +00:00
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>
This commit is contained in:
@@ -391,7 +391,7 @@
|
||||
#define RFLAGS_Z (1U<<6)
|
||||
|
||||
/* CR0 bits hv want to trap to track status change */
|
||||
#define CR0_TRAP_MASK (CR0_PE | CR0_PG | CR0_WP)
|
||||
#define CR0_TRAP_MASK (CR0_PE | CR0_PG | CR0_WP | CR0_CD | CR0_NW )
|
||||
#define CR0_RESERVED_MASK ~(CR0_PG | CR0_CD | CR0_NW | CR0_AM | CR0_WP | \
|
||||
CR0_NE | CR0_ET | CR0_TS | CR0_EM | CR0_MP | CR0_PE)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user