Changeset View
Changeset View
Standalone View
Standalone View
sys/x86/acpica/madt.c
Show First 20 Lines • Show All 162 Lines • ▼ Show 20 Lines | madt_x2apic_disable_reason(void) | ||||
if (vm_guest == VM_GUEST_VMWARE) { | if (vm_guest == VM_GUEST_VMWARE) { | ||||
vmware_hvcall(VMW_HVCMD_GETVCPU_INFO, p); | vmware_hvcall(VMW_HVCMD_GETVCPU_INFO, p); | ||||
if ((p[0] & VMW_VCPUINFO_VCPU_RESERVED) != 0 || | if ((p[0] & VMW_VCPUINFO_VCPU_RESERVED) != 0 || | ||||
(p[0] & VMW_VCPUINFO_LEGACY_X2APIC) == 0) | (p[0] & VMW_VCPUINFO_LEGACY_X2APIC) == 0) | ||||
return ("inside VMWare without intr redirection"); | return ("inside VMWare without intr redirection"); | ||||
} | } | ||||
if (vm_guest == VM_GUEST_XEN) | |||||
return ("due to running under XEN"); | |||||
if (vm_guest == VM_GUEST_NO && | if (vm_guest == VM_GUEST_NO && | ||||
CPUID_TO_FAMILY(cpu_id) == 0x6 && | CPUID_TO_FAMILY(cpu_id) == 0x6 && | ||||
CPUID_TO_MODEL(cpu_id) == 0x2a) { | CPUID_TO_MODEL(cpu_id) == 0x2a) { | ||||
hw_vendor = kern_getenv("smbios.planar.maker"); | hw_vendor = kern_getenv("smbios.planar.maker"); | ||||
/* | /* | ||||
* It seems that some SandyBridge-based notebook | * It seems that some SandyBridge-based notebook | ||||
* BIOSes have a bug which prevents booting AP in | * BIOSes have a bug which prevents booting AP in | ||||
* x2APIC mode. Since the only way to detect mobile | * x2APIC mode. Since the only way to detect mobile | ||||
▲ Show 20 Lines • Show All 602 Lines • Show Last 20 Lines |