diff options
| -rw-r--r-- | arch/x86/include/asm/xen/cpuid.h | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/arch/x86/include/asm/xen/cpuid.h b/arch/x86/include/asm/xen/cpuid.h index 3bdd10d71223..a9630104f1c4 100644 --- a/arch/x86/include/asm/xen/cpuid.h +++ b/arch/x86/include/asm/xen/cpuid.h | |||
| @@ -74,21 +74,43 @@ | |||
| 74 | #define XEN_CPUID_FEAT1_MMU_PT_UPDATE_PRESERVE_AD (1u<<0) | 74 | #define XEN_CPUID_FEAT1_MMU_PT_UPDATE_PRESERVE_AD (1u<<0) |
| 75 | 75 | ||
| 76 | /* | 76 | /* |
| 77 | * Leaf 4 (0x40000x03) | ||
| 78 | * Sub-leaf 0: EAX: bit 0: emulated tsc | ||
| 79 | * bit 1: host tsc is known to be reliable | ||
| 80 | * bit 2: RDTSCP instruction available | ||
| 81 | * EBX: tsc_mode: 0=default (emulate if necessary), 1=emulate, | ||
| 82 | * 2=no emulation, 3=no emulation + TSC_AUX support | ||
| 83 | * ECX: guest tsc frequency in kHz | ||
| 84 | * EDX: guest tsc incarnation (migration count) | ||
| 85 | * Sub-leaf 1: EAX: tsc offset low part | ||
| 86 | * EBX: tsc offset high part | ||
| 87 | * ECX: multiplicator for tsc->ns conversion | ||
| 88 | * EDX: shift amount for tsc->ns conversion | ||
| 89 | * Sub-leaf 2: EAX: host tsc frequency in kHz | ||
| 90 | */ | ||
| 91 | |||
| 92 | /* | ||
| 77 | * Leaf 5 (0x40000x04) | 93 | * Leaf 5 (0x40000x04) |
| 78 | * HVM-specific features | 94 | * HVM-specific features |
| 79 | * EAX: Features | 95 | * Sub-leaf 0: EAX: Features |
| 80 | * EBX: vcpu id (iff EAX has XEN_HVM_CPUID_VCPU_ID_PRESENT flag) | 96 | * Sub-leaf 0: EBX: vcpu id (iff EAX has XEN_HVM_CPUID_VCPU_ID_PRESENT flag) |
| 81 | */ | 97 | */ |
| 82 | 98 | #define XEN_HVM_CPUID_APIC_ACCESS_VIRT (1u << 0) /* Virtualized APIC registers */ | |
| 83 | /* Virtualized APIC registers */ | 99 | #define XEN_HVM_CPUID_X2APIC_VIRT (1u << 1) /* Virtualized x2APIC accesses */ |
| 84 | #define XEN_HVM_CPUID_APIC_ACCESS_VIRT (1u << 0) | ||
| 85 | /* Virtualized x2APIC accesses */ | ||
| 86 | #define XEN_HVM_CPUID_X2APIC_VIRT (1u << 1) | ||
| 87 | /* Memory mapped from other domains has valid IOMMU entries */ | 100 | /* Memory mapped from other domains has valid IOMMU entries */ |
| 88 | #define XEN_HVM_CPUID_IOMMU_MAPPINGS (1u << 2) | 101 | #define XEN_HVM_CPUID_IOMMU_MAPPINGS (1u << 2) |
| 89 | /* vcpu id is present in EBX */ | 102 | #define XEN_HVM_CPUID_VCPU_ID_PRESENT (1u << 3) /* vcpu id is present in EBX */ |
| 90 | #define XEN_HVM_CPUID_VCPU_ID_PRESENT (1u << 3) | 103 | |
| 104 | /* | ||
| 105 | * Leaf 6 (0x40000x05) | ||
| 106 | * PV-specific parameters | ||
| 107 | * Sub-leaf 0: EAX: max available sub-leaf | ||
| 108 | * Sub-leaf 0: EBX: bits 0-7: max machine address width | ||
| 109 | */ | ||
| 110 | |||
| 111 | /* Max. address width in bits taking memory hotplug into account. */ | ||
| 112 | #define XEN_CPUID_MACHINE_ADDRESS_WIDTH_MASK (0xffu << 0) | ||
| 91 | 113 | ||
| 92 | #define XEN_CPUID_MAX_NUM_LEAVES 4 | 114 | #define XEN_CPUID_MAX_NUM_LEAVES 5 |
| 93 | 115 | ||
| 94 | #endif /* __XEN_PUBLIC_ARCH_X86_CPUID_H__ */ | 116 | #endif /* __XEN_PUBLIC_ARCH_X86_CPUID_H__ */ |
