バスマスタ、CD-ROM、FreeSBIE、チラシの裏

ほんとにメモ帳がわり。

  • ぶっちゃけ ATAPI パケットで DMA 対応してるのはセクタリードとライト(CD-ROM だから書けないけどさ)だけで、その他のパケットコマンドに付随するパケットデータのやりとりに関しては DMA 対応していない。
  • FreeSBIE はどうやら ATAPI の READ CAPACITY コマンドを DMA モードで発行するようだ。現状では戻りのパケットデータを DMA で取れないから LBA とセクタサイズが読み取れてない→たぶんセクタ数 0 かつセクタサイズ 0 バイトとみなされ→ゼロ除算、というような感じなんでしょうかね。
  • もっとも Win98SE も INQUIRY, MODE SENSE, REQUEST SENSE, READ TOC, PLAY AUDIO あたりは DMA つきで発行していた。ただ READ CAPACITY ほど「取れないと致命的」なコマンドは使ってないのでいちおう動くぜ、ということみたい。
  • まじめに対応するとなると ide_atapi_cmd_reply あたりの dma 対応版を作らないとダメだろう。うへえ。CD-ROM だけ DMA 殺すのが一番ラクっちゃあラクだけど…。