diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-02-20 11:11:40 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-02-20 11:11:40 +0000 |
commit | 3a3034d1015f9360068d8719e22afbe06a2bedbb (patch) | |
tree | 6d1bb015512d44a7af9df8145cba41c2f9410989 /xen/include/asm-x86/mtrr.h | |
parent | d3d0b89247f091dd6961c739c91a8a613cdffe65 (diff) | |
download | xen-3a3034d1015f9360068d8719e22afbe06a2bedbb.tar.gz xen-3a3034d1015f9360068d8719e22afbe06a2bedbb.tar.bz2 xen-3a3034d1015f9360068d8719e22afbe06a2bedbb.zip |
[VTD] Utilise the snoop control capability in shadow with VT-d code
We compute the shadow PAT index in leaf page entries now as:
1) No VT-d assigned: let shadow PAT index as WB, handled already
in shadow code before.
2) direct assigned MMIO area: let shadow code compute the shadow
PAT with gMTRR=UC and gPAT value.
3) Snoop control enable: let shadow PAT index as WB.
4) Snoop control disable: let shadow code compute the shadow
PAT with gMTRR and gPAT, handled already in shadow code before
Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Diffstat (limited to 'xen/include/asm-x86/mtrr.h')
-rw-r--r-- | xen/include/asm-x86/mtrr.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/include/asm-x86/mtrr.h b/xen/include/asm-x86/mtrr.h index 65d56f7d8e..03285db5bd 100644 --- a/xen/include/asm-x86/mtrr.h +++ b/xen/include/asm-x86/mtrr.h @@ -11,6 +11,7 @@ #define MTRR_TYPE_WRBACK 6 #define MTRR_NUM_TYPES 7 #define MEMORY_NUM_TYPES MTRR_NUM_TYPES +#define NO_HARDCODE_MEM_TYPE MTRR_NUM_TYPES #define NORMAL_CACHE_MODE 0 #define NO_FILL_CACHE_MODE 2 @@ -63,7 +64,7 @@ extern int mtrr_del(int reg, unsigned long base, unsigned long size); extern int mtrr_del_page(int reg, unsigned long base, unsigned long size); extern void mtrr_centaur_report_mcr(int mcr, u32 lo, u32 hi); extern u32 get_pat_flags(struct vcpu *v, u32 gl1e_flags, paddr_t gpaddr, - paddr_t spaddr); + paddr_t spaddr, uint8_t gmtrr_mtype); extern uint8_t epte_get_entry_emt( struct domain *d, unsigned long gfn, unsigned long mfn, uint8_t *igmt, int direct_mmio); |