Home > Developers > Test Card > Software Testing

PCI-SIG Software Testing

The software for the PCI-SIG test card comes in two pieces. One set of software provides the testing for system BIOSes. Source is included. The other set is for testing the Maximum Completion Time and Initial Latency requirements. Questions or comments about the software can be sent to administration@pcisig.com.

BIOS Testing Software

These programs are all DOS programs and should be run in plain DOS and not in DOS boxes in Windows (3.1 or 95). Full source for the programs is provided, and the source provides the ultimate documentation for what each test program does. Some description of each test program is provided below.

The PCI-SIG tests primarily cover the operation of the system BIOS to make sure that PCI BIOS functions are properly implemented, and that the POST code of the system BIOS properly recognizes and configures PCI cards. The test card itself is a multifunction PCI device that is configurable so that it can present different resource requirements on each boot of the machine. Documentation shipped with each test card contains a description of the programmability of the test card.

Machines that are not PC compatible may wish to port the programs (or use them as examples) since all machines should be able to detect and configure PCI devices.

A list a description of the BIOS test software is provided below. This is all included in the biossw.zip (815k ZIP) file.

  • DIAG150.ZIP

    pcidiag.exe
    This program is a standalone program that does not require the test card. The program exercises the PCI BIOS functions to determine that all functions are properly implemented. The program calls the BIOS functions in all three operating modes (real mode, 16-bit protect mode, and 32-bit protect mode). The file 'pcidiag.txt' provides a complete description of the test program.

  • POST_EXP.ZIP (contains source for pcipost.exe and pciexp.exe)

    pcipost.exe
    This program checks that the system BIOS POST code properly recognizes and configures PCI devices. The program causes the test card to take on a particular configuration (certain memory and IO resource requirements), then causes a system reboot. When the program is executed again, it checks that the card was configured and that there are no conflicting resource assignments for all PCI devices. The file 'pcipost.txt' provides a complete description of the test program. The ascii file 'post.map' controls what configuration 'states' the test card will have. That file contains a description of the resources requested by each state.

    pciexp.exe
    This program makes sure that the system BIOS handles expansion ROMs on PCI devices properly. The expansion ROM on the test card has six different images in it. The file 'exprom.txt' describes what each image does. The test program ensures that the proper image has been loaded, that the RAM area is left writable while the image is executed, that the runtime size of the image can be adjusted downward (all the way to zero size), and that the proper parameters are passed to the initialization function. The file 'pciexp.txt' provides a complete description of the test program.

    post_exp.txt
    This file explains some of the details of the pcipost and pciexp programs.

  • INT150.ZIP

    pciint.exe
    This program makes sure that the system BIOS assigns interrupts to the testcard and the the interrupts are level sensitive. The program examines the INT_LINE register in config space, installs and interrupt handler for that interrupt, causes the test card to generate an interrupt, and then validate that the interrupt was received by the interrupt handler, and continues to be received until the interrupt is deasserted by the test card.

    pciint.txt
    This file explains how the pciint program is used.

  • PCI_SIG.EXE
    This is a self extracting .zip file that contains all of the binaries used in the PCI-SIG testing program. It also contains batch files that can be used to automatically run the tests on any system. Use the accompanying 'install.bat' program to install on any system.

  • INSTALL.BAT
    This program will run the self-extracting .zip file (pci_sig.exe) and attempt to install to the hard drive in the directory 'pci_sig'. After installing, the batch file 'pcistart.bat' can be used to invoke the PCI-SIG tests. Running either batch file with no parameters will show parameter options.

Maximum Completion Time & Initial Latency Testing

PCILat9X.exe and PCILatNT.exe are the applications that are used with the PCI-SIG test card to validate that no devices on the PCI bus are violating the Maximum Completion Time and Initial Latency requirements of PCI. PCILat9X.exe will run under Windows 95/98 and can be run as a standalone program. PCILatNT will run under NT4.0 with the NT4 driver and NT5.0 with the NT5 driver. All necessary files are available in PCILat.zip (111k ZIP)

If you are running under NT, you must do the following:

  1. Copy the appropriate version (NT4 or NT5) driver PCILatNT.sys to the \system32\drivers directory.

  2. From a shell prompt run the appropriate version (NT4 or NT5) of Regini on the PCILatNT.ini file; example:
    c:\>Regini PCILatNT.ini

  3. Reboot the machine.

  4. From a shell prompt start the driver using net start; example:
    c:\>net start PCILatNT

  5. If the last step doesn't work, check to make sure the driver has been added to the registry using regedt32 and look under v HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PCILatNT If it's not there, go back to step 2 and try try again.

  6. If everything is fine and dandy, you can run PCILatNT.exe

When you start the PCILat application, it will prompt you to choose either to show Popup messages or to Log warnings to a log file. Use Popup messages if you want to see an assertion message box pop up if long PCI latency is detected. You will have to clear the message box before other PCI latency can be detected. If you want to keep track of the detection of PCI latency over a long period of time without having to close each message box, choose to log it to a log file.

After you choose between Popup and Logfile, the status of the card, LED's, and timeout settings are displayed in the window. To enable the card to detect PCI latency choose PCI Latency Detection Enable. You can test the LED's by choosing On or Off for the respective LED. In the unlikely event that the card gets hung up, you can choose Initialize/Reset to provide a software reset to the card. To set the timeout values select the Set Timeout Value menu option to open up the dialog box. Enter the desired values in terms of PCI clks. Write Latency timeout value must be between 1 and 65534. Trdy Latency timeout value must be between 1 and 62. The default values for Write Latency timeout and Trdy Latency timeout are 330 and 15 respectively. These values will be entered every time the app is started so the values you entered earlier will have to be re-entered. If you later decide that you want to change your decision about the Popup message and Logfile you can bring up the dialog box again by selecting the Set Popup or Logfile menu option. The Refresh option repaints the window.