Re: Local APIC option (CONFIG_X86_UP_APIC) locks up Inspiron 8100

Mikael Pettersson (mikpe@csd.uu.se)
Wed, 31 Oct 2001 12:26:29 +0100


Alan Cox writes:
> > 2) Anytime I change the plugged-in status of the AC adapter (if it wasn't
> > plugged in, if I plug it in; if it was plugged in, if I unplug it), the
> > machine locks up completely.
>
> Not all BIOS firmware can cope when we switch to UP-APIC. Some laptops
> really don't like it one bit.

Correct, and the I8x00 is the prime example of that.

I have a fix, but it involves fairly major surgery:
- Implement bt_ioremap()/bt_iounmap() which work at early boot-time (the
normal ioremap doesn't work yet). This is done by adding 16 boot-time
only fixmap entries, and using those for temporary mappings. These
fixmap entries are reclaimed once vmalloc() is initialised, so they
don't steal address space permanently.
This would also help some other code which wants to scan arbitrary
physical memory at early boot-time.
- Move dmi_scan from main to the i386 setup_arch(). To permit this, ioremap()
is changed to bt_ioremap(), and vmalloc() to alloc_bootmem().
- Add a blacklist entry in dmi_scan, which sets a "don't enable local APIC"
flag if the I8000 or any problematic machine is found.
- Move init_apic_mappings() from setup_arch() to trap_init(). This is
so that kernel command-line parameters can be used to override stuff.
- Change detect_init_apic() to refuse to enable the local APIC if the
blacklist flag is set.

The patch is still _very_ rough, but it seems to work. Let me know if you want it.

/Mikael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/