[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:05293] Re: boot-floppies-ja



こんにちは。八田です。

From: Taketoshi Sano <sano@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Subject: [debian-devel:05283] Re: boot-floppies-ja 
Date: Mon, 14 Sep 1998 10:38:02 +0900
Message-ID: <199809140138.KAA18834@xxxxxxxxxxxxxxxxxxxxxxxxx>

sano> tecra 系 (私の使っている機械もそう) で Linux を
sano> 起動するために "special patch" が必要、という話は初耳です。
えっと、あんまりハードには詳しくないので大したこと言えないんですが、
今私の使っている Epson Direct Endeavor NT-700 というラップトップは tecra 用
カーネルじゃないと起動時にリブートしまくります。御参考までに。

# おまけに APM も使えない…どうも IRQ ステアリングとかいうものを
# 設定しないといけないらしいんだけど、Linux 上からどう
# 設定すればいいのやら…

2.0.35 or 2.0.36pre? でも素のままではやはりリブートしまくりで、 
2.0.34 に Linux-Mama の bug-fix patches を片っ端から当てたらリブート
しなくなりました。どれが決定的だったのかわかりませんけど、かの A20 GATE 
うにゃうにゃパッチもこれに含まれてましたから、多分こいつのおかげでしょう。
現在は 2.1.117 を使ってますが、なぜかこれも大丈夫です。

# 2.1.117 以降だと pcmcia-cs の挙動が変になってしまう…

もし tecra 用カーネルのテストが必要でしたら、お手伝いします。
# でも、どのみちあと少しで 2.2 系のリリースが始まるんじゃないでしょうか?
# 2.2 系が 2.1 系後期と基本的に同じものであれば、たぶん tecra 系でも
# 大丈夫なんじゃないかと思います。

いちおう a20-gate-lilo パッチをつけておきます。

--
八田真行 <masayuki-h@xxxxxxxxxxxxxxx>

-- ここから --
diff -ruN linux-2.0.33/arch/i386/boot/setup.S linux/arch/i386/boot/setup.S
--- linux-2.0.33/arch/i386/boot/setup.S	Sat Mar 30 19:58:57 1996
+++ linux/arch/i386/boot/setup.S	Sun Dec 21 11:18:58 1997
@@ -446,10 +446,7 @@
 			! now we are at the right place
 end_move_self:
 
-	lidt	idt_48		! load idt with 0,0
-	lgdt	gdt_48		! load gdt with whatever appropriate
-
-! that was painless, now we enable A20
+! now we enable A20
 
 	call	empty_8042
 	mov	al,#0xD1		! command write
@@ -458,6 +455,32 @@
 	mov	al,#0xDF		! A20 on
 	out	#0x60,al
 	call	empty_8042
+
+! On some machines, there are cache coherency problems with
+! addresses above 0x100000 after enabling the A20 gate.
+! ( observed on a Toshiba Tecra 710CDT )
+! The cache still contains invalid data for the new situation,
+! because 0x100000 is no longer an alias for 0x000000.
+! To deal with this we just read some bytes silently and hope that
+! the cache is reloaded afterwards. (Jens Maurer)
+	seg cs
+	test	byte ptr loadflags,#LOADED_HIGH
+	jz	end_cache_kludge
+	mov	ax,#0xffff	! ds:si = 0x100000
+	mov	ds,ax
+	mov	si,#0x10
+	cld
+	mov	cx,#0x2000	! 16 KB
+	rep
+	lodsw
+	mov	ax,cs
+	mov	ds,ax		! restore DS
+end_cache_kludge:
+
+! setup descriptor tables
+
+	lidt	idt_48		! load idt with 0,0
+	lgdt	gdt_48		! load gdt with whatever appropriate
 
 ! make sure any possible coprocessor is properly reset..
 
diff -ruN linux-2.0.33/init/patches/a20-gate-lilo.pinfo linux/init/patches/a20-gate-lilo.pinfo
--- linux-2.0.33/init/patches/a20-gate-lilo.pinfo	Thu Jan  1 01:00:00 1970
+++ linux/init/patches/a20-gate-lilo.pinfo	Sun Dec 21 11:18:59 1997
@@ -0,0 +1 @@
+Fix for cache coherency problems after enabling the A20 gate (Jens Maurer)