Revert previous commit. The BIOS braindamage is even worse than I
originally thought. The BIOS that cleared CPUID_APIC actually managed to disable the local APIC entirely and even Windows 64 doesn't boot on it. Reported by: bz
This commit is contained in:
parent
7d5a4821ba
commit
e83f6bcb75
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=153383
@ -831,6 +831,10 @@ apic_init(void *dummy __unused)
|
||||
struct apic_enumerator *enumerator;
|
||||
int retval, best;
|
||||
|
||||
/* We only support built in local APICs. */
|
||||
if (!(cpu_feature & CPUID_APIC))
|
||||
return;
|
||||
|
||||
/* Don't probe if APIC mode is disabled. */
|
||||
if (resource_disabled("apic", 0))
|
||||
return;
|
||||
|
@ -834,15 +834,8 @@ apic_init(void *dummy __unused)
|
||||
uint64_t apic_base;
|
||||
int retval, best;
|
||||
|
||||
/*
|
||||
* We only support built in local APICs. Unfortunately, we can't
|
||||
* just check the CPUID_APIC bit in cpu_features because some BIOSen
|
||||
* don't set that flag. Instead, we assume that all Pentium-class
|
||||
* and later machines have a local APIC. The only non-Pentium-class
|
||||
* CPUs that can talk to an external APIC are 486s, so we just
|
||||
* bail if we are on a 486.
|
||||
*/
|
||||
if (cpu_class == CPUCLASS_486)
|
||||
/* We only support built in local APICs. */
|
||||
if (!(cpu_feature & CPUID_APIC))
|
||||
return;
|
||||
|
||||
/* Don't probe if APIC mode is disabled. */
|
||||
|
Loading…
Reference in New Issue
Block a user