NetBSD お遊び日記 (2001年9月)。
$Id: diary-200109.html,v 1.25 2001/11/12 11:02:25 isaki Exp $
≪ 2001年8月 | 2001年10月 ≫

2001/09/01

[x68k/etc] Nereid 本部からボードの一時招集令状が出たので ボードを PRO-II から取り出して、代わりの X-SIMM10 をさす。 この状態で、Nereid がないことをちゃんと検出できることを念のため 確認しようと NetBSD カーネルを起動すると intio0 でパニックした。 うーむ、これは SRAM に書いてあるメモリ容量と実容量が合わないときの 症状だ。X-SIMM10 の DIP-SW でも間違えたかしらと思ってボードを抜こうと したそのとき、ボード引き抜き用のプラスチックの爪の片方が壊れた...。 あう、今度からどうやって X-SIMM 抜けばええんじゃ?。 あれ硬すぎて抜けないのに...(;_;。 早く Nereid 製品版が欲しいよう。Nereid なら割と簡単に抜けるもの...。

[x68k/etc] メモリの認識あたりに失敗してるらしく カーネルが起動しないので、デバッグオプションつけてコンパイルし直してみる。 とかやってたら直った。なぜじゃー。わけ分からん。

[x68k/hdc] というわけで再びコンテキストスイッチ発生。 hdc の開発再開。

[x68k/hdc] どこをどうやったら何が起きているかが分かるのか、 が分からなくて停滞中。 気分を変えて bus_dma でも導入してみようと思ったが やはり意味が分からず挫折。bus_dma って DMA 転送を制御するものじゃなくて DMA 用のバッファを云々するものなのかなあ。

[i386/gas] 8月半ば(だっけか)に、i386 カーネルが SSE か何かをサポートしたらしく gas(1) を新しくしないと -current のカーネルのコンパイルが出来なくなっていた。 うちはカーネルだけ -current という状態で使ってるので それからずっとカーネルを更新してなかったんだけど ぼちぼち更新してみようと思った。

UPDATE によると gas.new の更新が必要らしい。さっそくやってみるが エラーになる。メールアーカイブとか読むと libbfd あたりも更新しないと いけないとあるがそれもさておき、/usr/share/mk を 更新しないといけないらしい。 /usr/share/mk を更新したが今度は make でエラーがでた。 make も新しくしないといけないらしい。 てことで、数時間粘ってようやく gas のコンパイルにこぎつけた。 ふう...。


2001/09/02

[x68k/hdc] コマンドフェーズやステータスフェーズで1バイト 送受信するたびに 10msec 程度のウェイトを入れないと動作しないのが気になって、 調べてみた。フェーズ中はウェイトを入れなくても大丈夫そうだったが、 フェーズが遷移するときに最大で数 msec かかっているのが分かった。 だから 1msec のウェイトじゃだめだったのかな。 ので送信時は REQ が立つのを 10μsec ごとにポーリングしながら 最大 20msec まで待つようにした。 これで ltsleep 使うよりはレスポンスがよくなるでしょう。目には見えないけど。 以前は受信で同じことをしたらうまくいかなかったんだけど 今日はうまくいったなあ。なんでだろ。

[etc] developer って(どきどき)。 つーか英語の勉強しなきゃ...。(ぉ


2001/09/08

[x68k/bus_space] NetBSD/x68k ML でみのうらさんが 言ってた iodevice.h 廃止計画のためソースをちらっと見てみる。 要は IODEVbase を参照しているところを片っ端から bus_space(9) 使えばいいんだけど、x68k のように作りこんである 機械だと1つのデバイスの動作に複数のデバイスが絡むことが多いので 面倒だよね。そのたびに bus_space_map() とか しないといけない。例えば、ADPCM 鳴らすには OPM と 8255 の レジスタをつつく必要があるし、 SPC とかの SCSI デバイスドライバは SRAM 参照する必要があるし。 確かに読む方も手間が増えるソースをわざわざ時間かけて書くのも あれだなあ。それより mha.c の中の日本語メッセージを英語に してくれたほうがいいかも(笑)。

[MI/kernel] 全然関係ないけど、OS シャットダウン時には sys/kern/kern_subr.c::doshutdownhooks() が呼ばれるらしい。 そこにはシャットダウン時に呼ぶ関数がリストになってて そいつを順番に呼ぶらしい。そのリストに関数を追加するには shutdownhook_establish(9) あたりを参照すればいいらしい。 面白い構造になってるんだねえ。

[x68k/sram] hdc がもはやお手上げなので、気分転換に sram0 を bus_space(9) 化してみた。 見通し悪くなっただけのような気がする(笑)。


2001/09/15

[x68k/Nereid] Nereid が再び到着したので、コンテキストスイッチ発生。

[x68k/nereid-usb] 何やらいろんな関数が呼ばれた後、 (当然ほとんどの関数が空なので) root hub がおかしいぜ、という エラーを残してカーネルが起動するところまでできた。 起動といっても、実験には PRO-II 使ってるので、実際は ルートデバイスがなくてとまるんだけどね。

[etc] 北米への郵送業務再開したらしい。 意外と早かったなー。まだ準備できてないよう(笑)。


2001/09/16

[MI/USB] つーか *BSD 共通の USB のコード汚すぎねーか。 ちょっとひどすぎると思う。 例によってドキュメントもないからさっぱり分からんしなあ。 そう考えると NetBSD の audio ドライバの綺麗さがよく分かる。

[x68k/nereid-usb] uhub0 のアタッチに途中まで成功。 まあ uhub0 は全然デバイスとお話しなくて、ホストコントローラと USBDI 層との間だけで閉じてるからなんだけどね。 例によって、どっからチップとお話していいかがまったく分からない。


2001/09/23

[x68k/nereid-usb] 今日、USB ハブと USB マウスを買ってきた。 うちの中で (USB はついていてパラレル接続されてるプリンタは一応除くと) 初めての USB デバイスだ。 おいおい、お前はほんとに USB のホストアダプタ書いてる身か?

[MI/USB] さっそく NetBSD/i386 にさしてみる。 おお、ハブもマウスもちゃんと認識するぞ。 実はこれが *BSD で USB 初体験。 しかも XF86Config のマウスのところを

Section "InputDevice"
    Identifier  "Mouse1"
    Driver      "mouse"
    Option      "Protocol"      "wsmouse"
    Option      "Device"        "/dev/wsmouse"
    Option      "ZAxisMapping"  "4 5"
EndSection
のようにデバイスとして /dev/wsmouse0 じゃなく /dev/wsmouse にしておくと、PS/2 なマウスと USB マウスが両方一度に使えるというのを 先日 current-users かどっかで見た。 うーん、これは便利。ノート PC だと一層嬉しいだろうね。


2001/09/24

[x68k/nereid-usb] Nereid に USB ハブをさした状態で カーネルを起動すると full speed デバイスがあることを認識した。 逆に USB マウスをさしてカーネルを起動すると low speed デバイスがあることを 認識した。何やら動いているらしい。 あと USB ハブの電源 LED が光ったので給電も行なえてる様子。 でも、どこで何の処理をしたらいいのか分からず停滞中。 つーか誰か usbdi(9) をまともに書いてよう。 まあ実装が uhci と ohci の2つしかなくて、しかも 両者がよく似てるみたいで、っていう現状じゃ無理もないなあ。 3番目作るのって大変...。


2001/09/29

[x68k/nereid-usb] 今月はほんとに週末しか時間がとれなかったなあ。 とりあえず、割り込みがちゃんと上がることを確認。 でも割り込み上がってからどうすればいいのか不明。 つーか、どっからリクエストが降ってくるのか不明...。

[etc] というわけで、なんだか developer になってしまいました。 うーん、右も左も BSD カーネルも X68k も英語もよく分からんのに...。


2001/09/30

[x68k/nereid-usb] USB 1.1 の仕様書の HUB の章を読んでやっと 目の前がちょっと開ける。 この章も印刷したほうが楽なんだけど、印刷してる間 Windows で暮らさないと いけないのでちょっと悲しい。 うーん、ほんとに Windows 専用機が欲しいぞ。

[x68k/nereid-usb] かなりあやしいながらも uhub0 の処理を すべて通過した。で、いよいよ外部につながってる機器とお話しようとして 当然まだ作ってないのでこけるところまで出来た。 ドライバ書き始めて1カ月半だからまあまあ順調なペースかな。


≪ 2001年8月 | 2001年10月 ≫
井崎のホームページへ戻る
isaki@NetBSD.org / isaki@x68k.net