- 履歴一覧
- ソース を表示
- CVS/ks5k-linux は削除されています。
&counter([total|today|yesterday]); - 0 - 0 - 15
KS59x0 device on Wireless Projector Adapter
第1次接続試験 @KSC (2004/12/13〜12/15)†
- 現状
- register access や firm ware の upload は正常にできている。
- MACとHOST間の通信が正常にできない。MAC->HOST HOST->MAC どちらの方向も、正常に通信できるときもあれば、
通信できないこともある。症状としては、データが4Byte単位で書き込まれていないことがある。
- PCI-CardBus Brige と KS5901(SDK Board)間でのPCIトランザクションをロジックアナライザで計測したところ、計測した部分でのPCIトランザクションは正常に行われている。
- device driver を load した直後の通信は、HOST->MACの通信(MAC ADDRESS の取得のリクエスト)だが、この通信は毎回失敗する。
- データが正常に受け渡せないので、MAC-HOST間の通信が、どちらもIDLE状態となっている。
- 下記の方法で、失敗した通信から、再開すると、正常な通信が行われた場合、MAC-HOST間のデータのやり取りが再開するが、データが誤っていると、そこでまた止まる。
- 実験方法
- HOST->MAC
hostsend プログラムを使用して、HOST->MACの転送を行う。このプログラムは、
ドライバのIOCTLの機能の一つである、DATA_SENDを使用している。
hostsend interface datafile
datafile は、送信するデータのバイナリデータ。
- MAC->HOST
Debug用のコマンドである、"zzs"コマンドを使用。
通信データのLOGは、"hostt"または、"hosttx"コマンドで参照可能。
host側で、MACからの受信データを表示するように、ドライバを修正。
MAC-HOST 間の通信方式†
- レジスタアクセス
PCI共有メモリ空間アクセス
HOST側がイニシエータとなり、ターゲットであるデバイスにアクセスする
メモリ領域のREAD or WRITE
- ファームウェアアップロード
レジスタアクセスと同様に、PCI共有メモリ空間にアクセスする
HOST側がイニシエータとなり、ターゲットであるデバイスにアクセスする
メモリ領域のREAD or WRITE
ファームウェアの書き込みでは、書き込んだ領域をREADし、書き込んだデータと一致しているか確認している
- データの受け渡し (64Byte単位で行われる)
- HOST->MAC
ステータスがIDLE状態であることを確認
レジスタにデータのバッファのアドレス、及びデータサイズをセットし、転送開始する
デバイスがイニシエータとなり、ターゲットのホストのメモリをREADする
転送が終了したらMACからHOSTに対して割り込みが入る?
- MAC->HOST
MACから割り込みが入る。
データのバッファのアドレス等をレジスタにセットし、転送を開始する
デバイスがイニシエータとなり、ターゲットのホストのメモリにWRITEする
転送が終了後MACから割り込みが入る。