テクニカル ドキュメント #83



Doc ID: 83
製品: WinDriver
Version:  6.23 and below

複数の PLX 9050 カードを使用し、WinDriver のアプリケーションを起動する際に、以下のメッセージが表示されます:
" Do_card_lock failed: item already in use".
そのカードを他の PCI スロットに移動すると、このメッセージが表示されない場合もあります。
エラー メッセージが表示された後に pci_dump.exe を起動すると、BAR0 にメモリ リソースのオーバーラップがありました。

BAR の変更は、PLX 9050 BIT 7 エラッタによるものです。
BAR0 レジスタに BIT7 の値を 1 に指定すると (BIOS で)、PLX 9050 チップでは、カード アクセス スペースのアクセスに問題が生じます。
解決策として (WinDriver\plx\9050\lib\p9050_lib.c で) このビットに 0 を指定して、カードを動作し続けさせます。このような特殊なケースの場合、リソースのオーバーラップを生じます。

以下の何れかを実行して、オーバーラップを避けます:
  • ご使用のカードを PLX 9052 系のカードに変更します (推奨)。
    PLX 9052 チップで、PLX 9050 チップのバグを修正しています。

  • お客様自身で BAR を再プログラムするか、BAR0 が BIT7 を設定しないように PCI カードを再配置します。

  • P9050_Open() 関数への呼び出しで、P9050_OPEN_FIX_BIT7 オプションを追加します:
    p9050_lib.c ファイルの変更:

      if(P9050_Open (&hPlx, dwVendorID, dwDeviceID,
         my_card - 1, 0 /* P9050_OPEN_USE_INT |
         P9050_OPEN_FIX_BIT7 */
    ))


    to:

      if(P9050_Open (&hPlx, dwVendorID, dwDeviceID,
        
    my_card - 1, 0 P9050_OPEN_FIX_BIT7 ))


    再コンパイルして起動します。

    ただし、このオプションを選択した場合、カード上のメモリー スペースにアクセスできなくなる可能性があるので、注意してください。
詳細は、PLX の Web サイトを参照してください。