> Do you have documentation which verifies that A20 is enabled by the time
> the IN instruction returns?
Alternate Gate A20 Control Register (Port 00EEh) A special 8-bit
read/write control register provides a fast and reliable way to
control the CPU A20 signal. A dummy read of this register returns
a value of FFh and forces the CPU A20 to propagate to the core
logic, while a dummy write to this register will cause the CPU A20
signal to be forced Low as long as no other A20 gate control
sources are forcing the CPU A20 signal to propagate.
I think it's safe to assume that it takes effect immediately.
> Furthermore, I would still like to argue that this does not belong into
> "processor type and features", because all of these are *chipset*
> issues; in fact, in this particular case you're more than anything
> working around a BIOS bug (not having INT 15h AX=2401h do the right thing).
I agree that it might be better to have a chipset option similar to
CONFIG_VISWS:
bool 'SGI Visual Workstation support' CONFIG_VISWS
...
bool 'AMD Elan SC4x0 support' CONFIG_ELAN_SC4x0
if [ "$CONFIG_ELAN_SC4x0" != "n" ]; then
bool ' Use "inb 0xee" to control A20' CONFIG_ELAN_SC4x0_A20
fi
> I'm also very uncomfortable with putting this where you do; I think it
> should be put before a20_kbc instead. If the BIOS is implemented
> correctly, it should be used.
I disagree, the Elan SC410 is an embedded CPU, it's used in systems
that might not even have a BIOS (such as the Ericsson eBox that I've
been working with). Since there has to be a config option for this
CPU (the clock frequency selection) and a SC410-enabled kernel won't
work properly on a normal PC anyway, why not modify the boot sequence
so that it _always_ works on this CPU.
/Christer
-- "Just how much can I get away with and still go to heaven?" - 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/