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:
-
Copy the appropriate version (NT4 or NT5) driver PCILatNT.sys to the
\system32\drivers directory.
-
From a shell prompt run the appropriate version (NT4 or NT5) of Regini
on the PCILatNT.ini file; example:
c:\>Regini PCILatNT.ini
-
Reboot the machine.
-
From a shell prompt start the driver using net start; example:
c:\>net start PCILatNT
-
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.
-
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.