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:
John Baldwin 2005-12-13 18:29:10 +00:00
parent 7d5a4821ba
commit e83f6bcb75
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=153383
2 changed files with 6 additions and 9 deletions

View File

@ -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;

View File

@ -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. */