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

Re: Fujitsu MB87030/MB89352 (SPC) manual



井崎です。

# x6netbsd-develop にも Cc:

On Thu, 28 Aug 2003 23:50:03 +0900,
In Re: Fujitsu MB87030/MB89352 (SPC) manual,

> > あと、上記の
> > ・SCMD_XFR 実行時に DREQ がいるので SCMD_PROG_XFR をセットしてはいけない
> > ・TEMP レジスタ経由のマニュアル転送がうまくいかない(?)
> > 以外に spc_select() と spc_intr() にまだ #ifdef x68k が
> > 残っているんですが、この2つも取ってしまうと x68k では
> > 問題あるんでしょうか?
> > 
> > 特に spc_intr() のほうでは割り込み要因の INTS レジスタが
> > どれか立つまで待っているんですが、割り込みベクタを共用している
> > port だと spc_intr() は SPC の割り込みでなくても呼ばれるので
> > そもそもこの待ちが必要になるほうがまずいと思うんですが……。

spc_select() と spc_intr() の中の #ifdef x68k はどちらも
外しても動作しました。私のところには SPC 乗った X68k は
1つ(X68030/30MHz改) しかないんですが、他の方も mb89352.c
rev1.23 に添付の変更加えたもので動作するか試してもらえますか。

spc_intr() のほうは有史以前からあるようですが、
spc_select() 中のは arch/x68k/dev/spc.c 1.12 で沖さんが
追加されたようです。何か覚えていらっしゃいます? > 沖さん
---
井崎哲也 <isaki@par.odn.ne.jp / isaki@NetBSD.org>
Index: mb89352.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/mb89352.c,v
retrieving revision 1.23
diff -u -r1.23 mb89352.c
--- mb89352.c	2003/08/29 02:45:57	1.23
+++ mb89352.c	2003/08/30 05:07:01
@@ -656,12 +656,6 @@
 #if 0
 	bus_space_write_1(iot, ioh, SCMD, SCMD_SET_ATN);
 #endif
-#ifdef x68k			/* XXX? */
-	do {
-		asm ("nop");
-	} while (bus_space_read_1(iot, ioh, SSTS) &
-	    (SSTS_ACTIVE|SSTS_TARGET|SSTS_BUSY));
-#endif
 
 	bus_space_write_1(iot, ioh, PCTL, 0);
 	bus_space_write_1(iot, ioh, TEMP,
@@ -1664,14 +1658,8 @@
 	/*
 	 * First check for abnormal conditions, such as reset.
 	 */
-#ifdef x68k			/* XXX? */
-	while ((ints = bus_space_read_1(iot, ioh, INTS)) == 0)
-		delay(1);
-	SPC_MISC(("ints = 0x%x  ", ints));
-#else
 	ints = bus_space_read_1(iot, ioh, INTS);
 	SPC_MISC(("ints = 0x%x  ", ints));
-#endif
 
 	if ((ints & INTS_RST) != 0) {
 		printf("%s: SCSI bus reset\n", sc->sc_dev.dv_xname);