|
@@ -224,6 +224,11 @@ static int modern_apic(void)
|
|
|
if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
|
|
|
boot_cpu_data.x86 >= 0xf)
|
|
|
return 1;
|
|
|
+
|
|
|
+ /* Hygon systems use modern APIC */
|
|
|
+ if (boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
|
|
|
+ return 1;
|
|
|
+
|
|
|
return lapic_get_version() >= 0x14;
|
|
|
}
|
|
|
|
|
@@ -1912,6 +1917,8 @@ static int __init detect_init_APIC(void)
|
|
|
(boot_cpu_data.x86 >= 15))
|
|
|
break;
|
|
|
goto no_apic;
|
|
|
+ case X86_VENDOR_HYGON:
|
|
|
+ break;
|
|
|
case X86_VENDOR_INTEL:
|
|
|
if (boot_cpu_data.x86 == 6 || boot_cpu_data.x86 == 15 ||
|
|
|
(boot_cpu_data.x86 == 5 && boot_cpu_has(X86_FEATURE_APIC)))
|