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

Re: Fujitsu MB87030/MB89352 (SPC) manual



<200305220247.h4M2lRn15295@sys24.iij.ad.jp>の記事において
masanobu@iij.ad.jpさんは書きました。

>  > 某所で書いてるように富士通の SCSI コントローラ (SPC) の
> 
> ところで某所ってどこですか?

http://mail-index.netbsd.org/port-hp300/2003/05/20/0000.html
です。最後の非 MI SCSI port というかなんというか。

耐久がわりに build.sh してたんですが、また libc の途中辺りで
止まってました。

---
[略]
printf '#include "SYS.h"\nPSEUDO_NOERROR(_exit,exit)\n' >_exit.S
CPP=/usr/tools/m68k/bin/m68k--netbsdelf-cpp sh \
/usr/src/lib/libc/sys/makelintstub -o LintSysNormal.c  \
-s /usr/include/sys/syscall.h access.S acct.S bind.S chdir \
[略]
er_settime.S accept.
Stopped in pid 15019.1 (tail) at        netbsd:cpu_Debugger+0x6: \
        unlk    a6 (←ここで break 送信)
db> tr
cpu_Debugger(c,0,5e0000,7b8c20,fab62) + 6
dcaeint(1c06d00,f9) + 3a
dcaintr(1c06d00,b100,1,1c10938,1c10800) + 134
intr_dispatch(74) + 94
intrhand(?)
spc_datain_pio(1c10800,1c10938,1,0,1c0eda0) + a
spcintr(1c10800,0,64,5e004c,5e0000) + 4d0
intr_dispatch(70) + 94
intrhand(5e0000,7b8eb8,1,c00,7b8dac) + a
dcawrite(c00,7b8eb8,1,4,7b8dfc) + 3e
cnwrite(0,7b8eb8,1) + 52
spec_write(7b8e1c,5ee288,7b8e34,c7b66,7b8e1c) + 9c
ufsspec_write(7b8e1c,8ef,1373c4,5ee288,7b8eb8) + 38
VOP_WRITE(5ee288,7b8eb8,1,1c06e80,5ee288,20002,5ee288,7654ec,1c06e80,2) + 40
vn_write(5dbea8,5dbed0,7b8eb8,1c06e80,1) + a8
dofilewrite(7654ec,1,5dbea8,a000,8ef) + 7e
sys_write(5c8f04,7b8f44,7b8f3c,7b8fb4,0) + 6a
syscall_plain(4,5c8f04,7b8fb4,8ef,a000) + c2
syscall(4) + 48
trap0() + e
db> 
---

とりあえず busy loop に timeout いれてどういう状態になっているのか
確認しないといけないんですが、再現するまでやたら時間がかかるので
まだそこまでやってません。

#それ以前に DMA でのデータ転送中にフェーズ遷移かディスコネクト以外の
#割り込みが起こるのか、とかちゃんと考えないと……

ついでにいくつか質問なんですが、

・#ifdef x68k のところはあれでないと x68k では動かないんでしょうか?
  hp300 だと逆に #ifdef x68k のところを有効にすると動かないので……

・spcintr() って入口でその割り込みが spc に対する割り込みかどうかを
  チェックしてませんが、 x68k だと vectored interrupt だから
  困ってないだけなんでしょうか?

・MD な DMA の hook ってどうするのが美しいんでしょう?

#と、人に訊く前に SCSI の本読まないと……
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp