mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
i386/cpu: Mark CPUID 0x80000007[EBX] as reserved for Intel
Per SDM,
80000007H EAX Reserved = 0.
EBX Reserved = 0.
ECX Reserved = 0.
EDX Bits 07-00: Reserved = 0.
Bit 08: Invariant TSC available if 1.
Bits 31-09: Reserved = 0.
EAX/EBX/ECX in CPUID 0x80000007 leaf are reserved for Intel.
At present, EAX is reserved for AMD, too. And AMD hasn't used ECX in
QEMU. So these 2 registers are both left as 0.
Therefore, only fix the EBX and excode it as 0 for Intel.
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Tao Su <tao1.su@linux.intel.com>
Link: https://lore.kernel.org/r/20250627035129.2755537-3-zhao1.liu@intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
+5
-1
@@ -8376,7 +8376,11 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
|
||||
}
|
||||
case 0x80000007:
|
||||
*eax = 0;
|
||||
*ebx = env->features[FEAT_8000_0007_EBX];
|
||||
if (cpu->vendor_cpuid_only_v2 && IS_INTEL_CPU(env)) {
|
||||
*ebx = 0;
|
||||
} else {
|
||||
*ebx = env->features[FEAT_8000_0007_EBX];
|
||||
}
|
||||
*ecx = 0;
|
||||
*edx = env->features[FEAT_8000_0007_EDX];
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user