そういえば PCI 設定のまともなドキュメントってあるのかなあ
なんかよそ様のページにつけたコメントがうろ覚え状態でどうにも気になったので、すこし調べてみました。
・まず bochs で PCI を有効にするには、.bochsrc の i440fxsupport エントリを設定する必要がある。(たぶん configure 時に --enable-pci を指定しておくことも必要)
i440fxsupport: enabled=1
この状態で DOS 起動して PCI の情報を見る(とりあえず手元にあったのでアイオーデータの PCI情報表示ユーティリティを使用)とこんな感じ。
PCIINFO.EXE Ver1.12 Copyright (C) 1997-2002 I-O DATA DEVICE,INC. PCI BIOS Revision:2.10 (1)Mechanism:#1(Special Cycle Non-supported) VendorID:8086h Vendor:Intel DeviceID:1237h Chip :82440/82441FX Bus:00 Dev:00 Fnc:00 IRQ:0 Class :Host Bridge(06000000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO VendorID:8086h Vendor:Intel DeviceID:7000h Chip :82371SB Bus:00 Dev:01 Fnc:00 IRQ:0 Class :ISA Bridge(06010000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:YES VendorID:8086h Vendor:Intel DeviceID:7010h Chip :82371SB Bus:00 Dev:01 Fnc:01 IRQ:0 Class :IDE Controller(01010000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O: VendorID:8086h Vendor:Intel DeviceID:7020h Chip :82371SBBus:00 Dev:01 Fnc:02 IRQ:10(INTD#) Class :USB(0c030000) RevisionID:01 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O:0000FF80
最後の USB コントローラは configure 時に --enable-usb しておくと出てくる。
.bochsrc に "usb1: enabled=0" を書いておくと見えなくなる(.bochsrc の設定ではデフォルトで有効になっているらしい)
・i440fxsupport エントリには任意のスロットにデバイスを割り当てるオプション設定がある。"slot(番号)=(デバイス名)" の形で記述する。
例:
i440fxsupport: enabled=1, slot1=ne2k, slot2=pcivga
スロット番号はべつに連続していなくてもいいらしい。指定可能なデバイスは ne2k と pcivga だけらしい。
上例の場合の PCI 情報。
PCIINFO.EXE Ver1.12 Copyright (C) 1997-2002 I-O DATA DEVICE,INC. PCI BIOS Revision:2.10 (1)Mechanism:#1(Special Cycle Non-supported) VendorID:8086h Vendor:Intel DeviceID:1237h Chip :82440/82441FX Bus:00 Dev:00 Fnc:00 IRQ:0 Class :Host Bridge(06000000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO VendorID:8086h Vendor:Intel DeviceID:7000h Chip :82371SB Bus:00 Dev:01 Fnc:00 IRQ:0 Class :ISA Bridge(06010000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:YES VendorID:8086h Vendor:Intel DeviceID:7010h Chip :82371SB Bus:00 Dev:01 Fnc:01 IRQ:0 Class :IDE Controller(01010000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O: VendorID:8086h Vendor:Intel DeviceID:7020h Chip :82371SBBus:00 Dev:01 Fnc:02 IRQ:10(INTD#) Class :USB(0c030000) RevisionID:01 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O:0000FF80 VendorID:10ECh Vendor:REALTEK SEMICONDUCTOR DeviceID:8029h Chip :RTL8029 Bus:00 Dev:02 Fnc:00 IRQ:3(INTA#) Class :Ethernet Controller(02000000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O:00000300 VendorID:1234h Vendor:unknown DeviceID:1111h Chip :unknown Bus:00 Dev:03 Fnc:00 IRQ:0 Class :Display Controller(03000000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO
ne2k は realtek 相当になるらしい。
・configure 時に --enable-clgd54xx を指定してシーラスの VGA を使う場合は、デバイス名に pcivga ではなく cirrus を指定する。
i440fxsupport: enabled=1, slot1=cirrus, slot2=ne2k
この場合の PCI 情報
PCIINFO.EXE Ver1.12 Copyright (C) 1997-2002 I-O DATA DEVICE,INC. PCI BIOS Revision:2.10 (1)Mechanism:#1(Special Cycle Non-supported) VendorID:8086h Vendor:Intel DeviceID:1237h Chip :82440/82441FX Bus:00 Dev:00 Fnc:00 IRQ:0 Class :Host Bridge(06000000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO VendorID:8086h Vendor:Intel DeviceID:7000h Chip :82371SB Bus:00 Dev:01 Fnc:00 IRQ:0 Class :ISA Bridge(06010000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:YES VendorID:8086h Vendor:Intel DeviceID:7010h Chip :82371SB Bus:00 Dev:01 Fnc:01 IRQ:0 Class :IDE Controller(01010000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O: VendorID:8086h Vendor:Intel DeviceID:7020h Chip :82371SBBus:00 Dev:01 Fnc:02 IRQ:10(INTD#) Class :USB(0c030000) RevisionID:01 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O:0000FF80 VendorID:1013h Vendor:Cirrus Logic DeviceID:00B8h Chip :CL-GD5446 Bus:00 Dev:02 Fnc:00 IRQ:0 Class :Display Controller(03000000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O:E0000000 E0400000 VendorID:10ECh Vendor:REALTEK SEMICONDUCTOR DeviceID:8029h Chip :RTL8029 Bus:00 Dev:03 Fnc:00 IRQ:3(INTA#) Class :Ethernet Controller(02000000) RevisionID:00 SubSystemVendorID:0000h SubSystemID:0000h MultiFunction:NO MEM or I/O:00000300
ひとまずこんな感じでしょうか。
ほかにもなんか --enable-pnic とか --enable-pcidev とかアヤシイ設定があるのですがホストが Win32 だとまともに使えないっぽいので。