patch for lockup on bootup on certain embedded systems

Jesse Off (joff@newmonics.com)
Tue, 26 Oct 1999 10:57:27 -0700 (MST)


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,

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