1

セカンダリ IDE コントローラーの最初のディスクが QEMU で解放されるのを待機しようとすると、inb(0x177) は常に 0 を返します)

手順は次のとおりです。

次のようにして、3番目のディスクをQEMUに追加しようとしました:

1) 新しい空のディスク イメージを作成します。 2) QEMU オプションで hdc としてイメージを追加します。 3) セカンダリ チャネルを処理するための ide.c という名前の新しいファイルを作成します。(ハードウェアマニュアルで指定されているように、0x1F* の代わりにポート 0x17* を使用)

ide.c には、セカンダリ コントローラーが存在するかどうかを確認するための次のコードがあります。

outb(0x173, 0x88);
int r = inb(0x173);
printf("SECONDARY DISK CONTROLLER%s\n", r==0x88?" present":"not present")

&それはそうであることを示しています。

しかし、チェックデバイスがビジーではありません。それがなぜなのか誰か知っていますか?

static int
ide_wait_ready(bool check_error)
{
        int r;
        //WAIT FOR !BUSY
        while (((r = inb(0x177)) > 0)
        ;
}
4

0 に答える 0