Home   |   Jungo Corporate Web Site   |   Connectivity Software Store   |   Contact us   |   Search:
Home Connectivity Software Support WinDriver Support Technical Documents

Technical Document #83



Doc ID: 83
Product: WinDriver
Version: 6.23 and below

I am using multiple PLX 9050 cards and when running my WinDriver application, sometimes I get the message:
Do_card_lock failed: item already in use
If I move the cards around to other PCI slots, the problem sometimes goes away.
I ran the WinDriver/util/pci_dump utility after receiving the error message and found that there is a memory resource overlap in BAR0.
But I noticed that the overlap does not appear in the pci_dump output before I run my application.

The change in the BARs is due to the PLX 9050 BIT 7 errata.
The PLX9050 chip has a problem of accessing the card address spaces if the BAR0 register was given the value 1 in its BIT 7 (by the BIOS).
Our attempted fix (in WinDriver\plx\9050\lib\p9050_lib.c) is to zero this bit and then continue to work with the card. In your particular case, this caused a resource overlap.

To resolve the overlap, you can do one of the following:
  • Replace your cards with PLX 9052 based cards (recommended).
    The PLX 9052 chip resolved the bug of the PLX 9050 chip.

  • Reprogram the BARs yourself or relocate the PCI cards so that BAR0 does not have the 7th BIT set.

  • Add the P9050_OPEN_FIX_BIT7 option in your call to P9050_Open():
    In the file p9050_lib.c change:

      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 ))


    Recompile and run.

    However, please note that you might not be able to access the memory spaces on the cards if you select this option.
More information on this subject can be found on the PLX website.

Back to Top

WinDriver, version 6.23, PCI, PLX, PLX9050, memory, multiple devices, samples, BIT errata