>we had the same problem running Linux on the AMD SC400.
>In the A20 gate implementation of the SC400 is a little bug. If the keybord-processor
>is initialized in the usual way it is possible that the A20 propagation is changed by
>normal keyboard-processor access. (see the attached AMD-Errata No23 for details)
>This crashes the kernel usualy at boottime. The curious thing is that the point where
>the
>crash occurs is depending on clock-speed.
I couldn't postpone the point of crash no matter what I tried. I even rigged a small
video
camera to record the endless rebooting just for fun.
>Workaround: (tested for Kernel 2.0.35)
>in i386/boot/setup.s and i386/boot/setup.S you can find the following
>sequence:
It works! Thank you very very much.
----snip----
! that was painless, now we enable A20
call empty_8042
mov al,#0xD1 ! command write
out #0x64,al
call empty_8042
mov al,#0xDF ! A20 on
out #0x60,al
call empty_8042
----snip----
Put in both files before call empty_8042 the following four lines
and recompile the kernel. This is the in the AMD-Errata23 mentioned
workarround.
----snip----
! that was painless, now we enable A20
in al, #0x92
or al, #2
and al, #0xfe ! We don't want a reset in case it's set.
out #0x92, al
call empty_8042
mov al,#0xD1 ! command write
out #0x64,al
call empty_8042
mov al,#0xDF ! A20 on
out #0x60,al
call empty_8042
----snip----
//Björn (Happy happy happy) Eriksson.