9821のPnP BIOSが割り当てるCHANPONのリソース(メモリアドレス)に
重複が発生する問題の続きです。CHANPONのブリッジ先のSCSIともう一つの
デバイスのメモりアドレスが重複で設定になるという問題があって、これは
Windows98の起動後には自力修正されて動いていました。Windows95(OSR2)で
動かないという件を(USBが動かないのを除く)よくみかけるのですが、これは
OSR2がメモリアドレスの再割り当てを全然しないからではなく、競合状態の
ため行なわないのが原因ではないかという気がしてきました。Win95 OSR2と
いえども、自力でPnPくらいできるはずですよね。
そしてもう一つ、面白い現象を発見しました。ブリッジの載ったカードを
CHANPONの他にもう一枚挿した場合に発生します。拙作pciirqr /bの表示で
話を進めます。
(pciirqrの所在)
http://homepage1.nifty.com/marimono/software/pciirqr.lzhPC-9821 PCI Interrupt routing option and configuration
[ PCIIRQR ] Version 1.28 Copyright(C) 2000-2001 まりも
PCI BIOS Version 2.10, Last bus number(BIOS)=0, Configuration mechanism #1
PCI host bridge is Intel 82439HX 430HX Cache/DRAM Controller(Xa20/W30R改)
Bus Dev Func Class Base address
[0]:[ 0] PCI--HOST
[0]:[ 6] 98C-Bus B
[0]:[ 7] 98 VIDEO
[0]:[11] EtherNet 04100000h 1000h 04000000h ROM=21000000h
[0]:[16] PCI--PCI for Bus[1] ( 20000000h ) ( 6000h )←CHANPON
[0]:[18] PCI--PCI for Bus[2] ( 20100000h ) ( F000h )←USB/iLINK comb
[1]:[ 4]:[0] SCSI H/A 6000h ★20100000h ROM=22000000h ←CHANPONの
[1]:[13] USB 20000000h ←CHANPONの
[2]:[12] iLink 20101000h ←USB/iLINK combの
[2]:[13]:[0] USB 20102000h ←USB/iLINK combの
ここで CAHNPONのSCSIのメモリアドレス(20100000h)が、CHANPONのメモリ
ウィンドウ(20000000h)ではなく、別のPCIブリッジ(20100000h)の空間の
ほうにマッピングされてしまっています。当然この状態では、Windows98と
言えども SCSIのデバイスドライバは動作しません(この実験では内蔵IDEで
Windows98を起動させてます)。
どうも、9821本体のPnP BIOSは、深刻なバグ(?)を抱えているといえそう
です。単独ならまだよいのですが、ブリッジのあるカードを2枚挿すと
これが顕在化します。
[システムのプロパティ][デバイスマネージャ][PCIバス][設定]の項目に、
「ブリッジを上書きする」というチェックボックス(意味はヘルプに表示され
るので判ると思います)があります。これを有効にすると、Windows98は
誤ったBIOSの設定を無視して、自力でリソース割り当てを行ない、正常に
SCSIドライバが動作するようになりました。
マイクロソフトとしても、ブリッジデバイスに関するBIOS の設定は9821に
限らずあてにならないということを知っていて、このようなオプションを設けて
あるのではないかと思います。