mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
viridian: add a new '_HVMPV_ex_processor_masks' bit into HVM_PARAM_VIRIDIAN...
... and advertise ExProcessorMasks support if it is set. Support is advertised by setting bit 11 in CPUID:40000004:EAX. Signed-off-by: Paul Durrant <pdurrant@amazon.com> Acked-by: Wei Liu <wl@xen.org>
This commit is contained in:
1 parent
30d3cc4493
commit
948719f3bf
2 files changed
+9
-1
No files matched your search
@@ -84,6 +84,7 @@ typedef union _HV_CRASH_CTL_REG_CONTENTS
|
||||
#define CPUID4A_MSR_BASED_APIC (1 << 3)
|
||||
#define CPUID4A_RELAX_TIMER_INT (1 << 5)
|
||||
#define CPUID4A_SYNTHETIC_CLUSTER_IPI (1 << 10)
|
||||
#define CPUID4A_EX_PROCESSOR_MASKS (1 << 11)
|
||||
|
||||
/* Viridian CPUID leaf 6: Implementation HW features detected and in use */
|
||||
#define CPUID6A_APIC_OVERLAY (1 << 0)
|
||||
@@ -197,6 +198,8 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf,
|
||||
res->a |= CPUID4A_MSR_BASED_APIC;
|
||||
if ( viridian_feature_mask(d) & HVMPV_hcall_ipi )
|
||||
res->a |= CPUID4A_SYNTHETIC_CLUSTER_IPI;
|
||||
if ( viridian_feature_mask(d) & HVMPV_ex_processor_masks )
|
||||
res->a |= CPUID4A_EX_PROCESSOR_MASKS;
|
||||
|
||||
/*
|
||||
* This value is the recommended number of attempts to try to
|
||||
|
||||
@@ -164,6 +164,10 @@
|
||||
#define _HVMPV_hcall_ipi 9
|
||||
#define HVMPV_hcall_ipi (1 << _HVMPV_hcall_ipi)
|
||||
|
||||
/* Enable ExProcessorMasks */
|
||||
#define _HVMPV_ex_processor_masks 10
|
||||
#define HVMPV_ex_processor_masks (1 << _HVMPV_ex_processor_masks)
|
||||
|
||||
#define HVMPV_feature_mask \
|
||||
(HVMPV_base_freq | \
|
||||
HVMPV_no_freq | \
|
||||
@@ -174,7 +178,8 @@
|
||||
HVMPV_crash_ctl | \
|
||||
HVMPV_synic | \
|
||||
HVMPV_stimer | \
|
||||
HVMPV_hcall_ipi)
|
||||
HVMPV_hcall_ipi | \
|
||||
HVMPV_ex_processor_masks)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||