summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-12-13 18:29:10 +0000
committerjhb <jhb@FreeBSD.org>2005-12-13 18:29:10 +0000
commit3bd2c6644920df9a5ccf8d96110acf156fbf786c (patch)
treef61d1c500439790d1502e3dfe04de617e83d3d62 /sys/i386
parent809376d69dd721cf97e19c1a8b40cf33f75ac0f8 (diff)
downloadFreeBSD-src-3bd2c6644920df9a5ccf8d96110acf156fbf786c.zip
FreeBSD-src-3bd2c6644920df9a5ccf8d96110acf156fbf786c.tar.gz
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
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/local_apic.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/sys/i386/i386/local_apic.c b/sys/i386/i386/local_apic.c
index 53ebc0a..f2d96b5 100644
--- a/sys/i386/i386/local_apic.c
+++ b/sys/i386/i386/local_apic.c
@@ -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. */
OpenPOWER on IntegriCloud