Re: A20 Gate enable sequence (setup.S)

From: Richard B. Johnson (
Date: Sun Oct 15 2000 - 19:28:32 EST

On Sun, 15 Oct 2000, Robert Kaiser wrote:

> > The AMD/Elan box snoops for the sequence sent to the keyboard
> > controller to enable A<20>.
Robert Kaiser didn't write this. I did. And yes. It makes no difference
about the 'board' it's in the chip.

> Are you sure this is true of all boards using the AMD Elan ?
> So far, I've dealt with three different AMD Elan boards and only
> one of them (Jumptec DIMM-PC) seemed to have this feature. But even
> on that one, Linux wouldn't boot out of the box because of A20 problems
> (you had to reset the keyboard controller to make it work).

The keyboard controller is in a seperate Super I/O chip. You can
'pretend' to go through the motions, but there is no connection
whatsoever (no pin, no trace) to connect the keyboard output bit
to A<20> enable. It's all done by the AMD internal snoop.

So if you write the right stuff to the right port, the bit is

> > However, it also respects the port
> > 0x92 control.
> The i386EX has port 0x92 built in (it does not have a built-in
> keyboard controller ..), so port 0x92 should work on all 386EX
> boards whereas the keyboard controller sequence may or may not work.
> > The AMD/Elan chip also comes to life after a hardware reset with
> > A<20> enabled. So, if you don't turn it OFF, there won't be any
> > problem during the protected-mode transition.
> Sure, but whether you CAN leave it on depends on the board's BIOS.
> Some of them are "smart" and won't let you configure the initial
> A20 state. Adding the port 0x92 method to setup.S as I'm suggesting
> would be safe in all cases (assuming it won't break anything else).

Many who use Linux in embeded systems write their own BIOS as I
have done. Then you don't have to pay $10/box you ship to a BIOS
vendor who ripped off all the code anyway.

FYI, the code that was submitted can't possibly work (it was backwards).
If it made your board 'work' there is something else broken.

Dick Johnson

Penguin : Linux version 2.2.17 on an i686 machine (801.18 BogoMips).

"Memory is like gasoline. You use it up when you are running. Of
course you get it all back when you reboot..."; Actual explanation
obtained from the Micro$oft help desk.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:29 EST