[lkml]   [2001]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRE: The latest instance in the A20 farce

I tested this patch on a Pentium dual-proc system (440GX)
and on a Celeron system[1] (810) that lacks floppy, keyboard
controller, maybe some other things.

Linux 2.4.0 boots fine on each of these systems with this
patch applied. I couldn't tell which method of
enabling A20 was actually successful.
Have you had any other reports on the patch?

[1] I'm not sure if this system qualifies as "legacy free"
or "legacy reduced." However, for future (how far?)
reference, on legacy-free systems:
[from PDF file at]

a. The BIOS isn't required to have int. 0x15, AH=0x2401 [Appx. A],
but that is handled by your patch.
b. The BIOS isn't required to have int. 0x15, AH=0x88 [Appx. A]
(Ye Olde Traditional memory-size function).
Hopefully the other memory-size methods will always have
c. A20M# is always de-asserted at the processor [Ch. 3, item SYS-0047]

I bring these up because they may have some impact on SYSLINUX,
LILO, etc., and the data structures that they use (like the
memory_size item) and because some of these systems don't
have a "real mode," so loaders can't reliably assume that
they do (unless it's transparent to the loaders)...
and because you know something about SYSLINUX etc.

| 503-677-5408|
|NOTE: Any views presented here are mine alone|
|& may not represent the views of my employer.|

> From: H. Peter Anvin []
> Sent: Wednesday, December 06, 2000 3:55 PM
> Okay, here is yet another A20 patch (against test12-pre6) this time
> for people to try out. This patch uses the following algorithm for
> enabling A20:
> 1. Try the BIOS call. If it works, we're cool.
> 2. Try the KBC (using Linus' lowered timeouts.)
> 3. If the KBC doesn't work, or is very slow, flip port 92.
> After 3 it sits into the same infinite loop waiting for A20 to become
> enabled (necessary on for example some Toshiba notebooks which have an
> extremely slow response to A20.)
> The main differences between this patch and test12-pre6:
> - Trying the BIOS first of all. This should reduce the risk of the
> BIOS getting confused while doing a suspend. This also gives even
> less of an excuse for any nonstandard arrangement -- if you didn't
> implement the standard KBC *and* you didn't provide the BIOS call,
> you have a seriously broken piece of hardware.
> - If the KBC responds quickly enough (within about 10000 cycles), we
> don't ever touch the fast A20 gate. This is a difference from
> previous code, where the fast A20 gate was toggled immediately after
> the KBC, even if the KBC responded instantly.
> - I had to move the A20 code somewhat earlier in setup.S in order for
> the BIOS to still be available.
> Please try it out and let me know as soon as possible...
> -hpa
> --- arch/i386/boot/setup.S.12p6 Wed Dec 6 12:49:07 2000
> +++ arch/i386/boot/setup.S Wed Dec 6 15:25:01 2000
> --
> <> at work, <> in private!

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

 \ /
  Last update: 2005-03-22 13:28    [W:0.076 / U:0.932 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site