A20 Gate enable sequence (setup.S)

From: Robert Kaiser (rob@sysgo.de)
Date: Fri Oct 13 2000 - 11:08:48 EST


Hi list,

There seem to be two common methods for ix86-based boards to enable the
A20 line: The traditional method that uses the keyboard controller (this
is what Linux supports) and a method (sometimes referred to as "fast
A20 Gate") that uses a special port address (0x92).

Some boards (especially in the embedded PC area) implement only the
latter method (some don't even _have_ a keyboard controller).
With these boards, Linux fails to boot.

The fix for this is pretty simple (see below) and I wonder if it
would be possible to get this fix into the kernel by default.

Cheers

Rob

----------------------------------------------------------------
Robert Kaiser email: rkaiser@sysgo.de
SYSGO RTS GmbH
Am Pfaffenstein 14 http://www.elinos.com
D-55270 Klein-Winternheim / Germany http://www.sysgo.de

diff -urN linux-2.4.0-test8/arch/i386/boot/setup.S linux/arch/i386/boot/setup.S
--- linux-2.4.0-test8/arch/i386/boot/setup.S Wed Jul 19 07:00:33 2000
+++ linux/arch/i386/boot/setup.S Fri Oct 13 18:00:42 2000
@@ -631,6 +631,16 @@
                                                 # appropriate
 
 # that was painless, now we enable a20
+
+# enable the "fast" A20 gate
+
+ in al,#0x92
+ or al,#2
+ and al,#0xfe
+ out #0x92,al
+
+# enable the keyboard controller A20 gate
+
         call empty_8042
 
         movb $0xD1, %al # command write
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



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