[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 100BASE-TX NIC for macppc
筒井です。
<199903190942.SAA17730@mirage.ceres.dti.ne.jp>の記事において
私は書きました。
> vr と ex は今のままではどっちもダメで、
> 直さなきゃいけないところの見当はつけたものの
> どうやって書くのがいいのか考えてるとこで止まってます。
とりあえず書いてみました。
http://www.ceres.dti.ne.jp/~tsutsui/netbsd/ex-vr-big-endian.diff
host が PCI device へ読み書きする時は PCI-HOST bridge が
byte swap してくれるので(目的のデータと同じ size でアクセスする限り)
問題は起こりません。
が、 host が u_int32_t のパラメータをメモリ上に用意して
それを DMA 経由で渡す、なんてことをしていると、
PCI device は host を little endian と仮定していて
byte swap なんてしてくれないので、そういう場合は
メモリ上のデータを little endian で用意してやらないといけない、
ということのようです。
ex のほうは書いてコンパイルしただけでまだテストしてません。
vr は一応動いているのですが、大きい packet を送信しようと
するとなぜか
vr0: transmit aborted
と怒られてしまいます。とりあえず mtu を 800 くらいに
するとなんとか使えます。いろいろ試しているんですが
endian の問題なのかよくわかりません。
i386 では起こったりしませんか? >坂本さん
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp