Better patch for 2.1.106

H. Peter Anvin (hpa@transmeta.com)
14 Jun 1998 17:43:02 GMT


Here is a "better" patch that I hope should fix the CRC problem with
zImages in 2.1.106 (personally, I think the "right" thing is to
deprecate zImages completely, but I'm not likely to get a whole bunch
of votes for this.)

I don't like using the division overflow trap location, so I am using
the INT 0x80 vector instead (the same as is later used for Linux
system calls.)

The problem with 2.1.106 is that zImages (but not bzImages) do a
strange re-relocation from 64K to 4K, and it is done *before* the test
(so 0x7c00 is actually in use at the time of the test.)

-hpa

--- stock/linux-2.1.106/arch/i386/boot/setup.S Sun Jun 14 13:59:09 1998
+++ linux-2.1.106/arch/i386/boot/setup.S Sun Jun 14 13:49:47 1998
@@ -532,22 +532,21 @@
call empty_8042

! wait until a20 really *is* enabled; it can take a fair amount of
-! time on any
-
- push ds
- push es
+! time on certain systems; Toshiba Tecras are known to have this
+! problem. The memory location used here (0x200) is the int 0x80
+! vector, which should be safe to use.
+
xor ax,ax ! segment 0x0000
- mov ds,ax
+ mov fs,ax
dec ax ! segment 0xffff (HMA)
- mov es,ax
+ mov gs,ax
a20_wait:
inc ax
- mov [0x7c00],ax ! any unused memory location < 64K
- seg es
- cmp ax,[0x7c10] ! corresponding HMA address
+ seg fs
+ mov [0x200],ax ! an unused memory location < 0xfff0
+ seg gs
+ cmp ax,[0x210] ! corresponding HMA address
je a20_wait ! loop until no longer aliased
- pop es
- pop ds

! make sure any possible coprocessor is properly reset..

-- 
    PGP: 2047/2A960705 BA 03 D3 2C 14 A8 A8 BD  1E DF FE 69 EE 35 BD 74
    See http://www.zytor.com/~hpa/ for web page and full PGP public key
        I am Bahá'í -- ask me about it or see http://www.bahai.org/
   "To love another person is to see the face of God." -- Les Misérables

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu