Re: A20 Gate enable sequence (setup.S)

From: Albert Cranford (ac9410@bellsouth.net)
Date: Fri Oct 13 2000 - 08:01:10 EST


Robert Kaiser wrote:
>
> On Fre, 13 Okt 2000 you wrote:
> > > 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.
> >
> > Try the current 2.2.18pre. This has fast A20 too and I suspect will boot
> > on your box. Its had no problems on 2.2.18pre reported against it so far. I've
> > not done a 2.4 test patch but yours seems to be the sam ething
>
> Thanks for the hint, I hadn't checked that version ....
>
> >
> > AMD ELAN ?
>
> Actually several different boards, some using AMD ELAN, some 386 EX.
>
> Rob
>
> ----------------------------------------------------------------
> Robert Kaiser email: rkaiser@sysgo.de
> SYSGO RTS GmbH
> Am Pfaffenstein 14 phone: (49) 6136 9948-762
> D-55270 Klein-Winternheim / Germany fax: (49) 6136 9948-10
> -
> 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/

Here is a wroking 2.4.0 version, which is from Randy Dunlaps patch.
Later,
Albert

--- linux-2.4.0/arch/i386/boot/setup.S.orig Mon Jul 17 20:32:00 2000
+++ linux/arch/i386/boot/setup.S Mon Jul 17 20:35:10 2000
@@ -640,6 +640,8 @@
        movb $0xDF, %al # A20 on
        outb %al, $0x60
        call empty_8042
+ movb $0x2, %al # Gate A20 functionality is achieved
+ outb %al, $0x92 # via port 0x92, bit 1.
 
 # wait until a20 really *is* enabled; it can take a fair amount of
 # time on certain systems; Toshiba Tecras are known to have this
-----------
From: "Dunlap, Randy" <randy.dunlap@intel.com>
To: "'Agust Karlsson'" <Gusti@pallas.dk>,
        "'linux-kernel@vger.rutgers.edu'" <linux-kernel@vger.rutgers.edu>,
        "'linux-config@vger.rutgers.edu'" <linux-config@vger.rutgers.edu>
Subject: RE: A20 gate control question.
Date: Mon, 17 Jul 2000 09:46:17 -0700
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2448.0)
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: 8BIT
Sender: owner-linux-kernel@vger.rutgers.edu
Precedence: bulk
X-Loop: majordomo@vger.rutgers.edu
X-Mozilla-Status: 8011
X-Mozilla-Status2: 00000000
X-UIDL: a4b217d6c05a8b4bb97c23a40bca51e7

> Hi.

Jesse Off (joff@newmonics.com) posted a patch to do
this on Oct. 26, 1999. His patch needs to be added
to setup.S IMO, along with the current gating of A20.

<from joff:>
The company I work for, NewMonics, does a lot of work on embedded systems
and we've recently ported our product (a lightweight realtime Java virtual
machine) to Linux. On some of the embedded systems/PLC's we work with
(specifically, those based on the AMD Elan SC310 and SC300 386
microcontrollers) Linux fails to boot because the keyboard controller is
not there to set the A20 bit. These machines are headless, keyboardless,
and diskless (except for a small PCMCIA flash card). With the following
patch, we were able to get our virtual machine running on
Linux under this hardware via a serial port console.

--- setup.S Mon Aug 9 12:04:38 1999
+++ setup.S.patched Tue Oct 26 10:50:36 1999
@@ -553,6 +553,15 @@
        out #0x60,al
        call empty_8042
 
+! The AMD 386 Elan SC300 and SC310 microcontrollers which
+! are used in some embedded systems don't have
+! a keyboard controller; we have to do things different on
+! these chips. Jesse Off, NewMonics, Inc. <joff@newmonics.com>
+
+ mov al,#0x2 ! GATEA20 functionality is acheived
+ out #0x92, al ! via port 0x92, bit 1.
+
+
 ! wait until a20 really *is* enabled; it can take a fair amount of
 ! time on certain systems; Toshiba Tecras are known to have this
 ! problem. The memory location used here is the int 0x1f vector,
-
</from joff>

This applies to newer Intel systems also. I asked
internally if port 0x92 might have conflicts with
other chipsets and the answer I got was "no."

Also, from other email on this subject, is there
an implication here that the timeout (counter) in
"empty_8042" doesn't work (on systems that don't
have an 8042 controller)?

~Randy
___________________________________________________
|Randy Dunlap Intel Corp., DAL Sr. SW Engr.|
|randy.dunlap.at.intel.com 503-696-2055|
|NOTE: Any views presented here are mine alone |
|and may not represent the views of my employer. |
|_________________________________________________|

-- 
Albert Cranford Deerfield Beach FL USA
ac9410@bellsouth.net
-
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