Description
The PCI library scans PCI buses for installed devices and PCI legacy option ROMs. In addition it can perform few bus tests testing the configuration space as well as for H/W errors on the PCI bus. The tests and description of each device follow the PCI v2.3 and P2P v1.1 specifications. The DLL scans the configured PCI buses and generates a bus/device topology under the parameters window. In the main view of HWAccess the library lists the configuration space of each installed device.
There are several tests it can perform as well as controlling and modifying error registers. It can also monitor PCI registers.
Topology in the Parameters Pane
The library inserts under the PCI Configuration entry in the Parameters window, the buses where devices are installed. It also re-arranges the devices functions and buses in a hierarchical order such that the first level displays the bus and under it, the devices associated with it. Sub-buses are displayed under the P2P bridges. Functions are displayed under the associated devices. When an entry is selected in the parameters pane the library displays information about the selected devices/function. Selecting the PCI configuration and doing a Bus Device Scan or a refresh through the active controls will initiate a new PCI scan.
The library also inserts under the PCI Configuration entry in the Parameters window the Option ROM info where it displays information about the PCI ROMs installed in the 0xC0000-0xFFFFF.
Functionality of the Active Controls
The PCI library has several controls to manipulate PCI registers and perform PCI tests. There are 5 display controls those used for information and register watch control. Using the up/down of each display you may select any register within the 256 buses. The sampling period display shows in mS the period the library will interrogate an active watch. Valid values are in the range of 1-9999 mS. The integrated controls are used to add/remove/disable a watch, apply a different sampling watch period, initiate or abort a PCI test, enable Error Control in the PCI registers and clear the Error Registers. There is floating help on each of the control buttons. A drop list will show errors if detected during a PCI test. Note that error configuration and logging is controlled via the PCI configuration options. The following table describes the functionality and usage of each active control for the PCI library .
| Remove Watch |
Select the bus, device, function, register and hit the Remove Watch button. If an active watch is present it will be removed. |
| Add Watch |
Select the bus, device, function, register and hit the Add Watch button. A watch will be inserted and shown in the main watch window in HWAccess. The PCI watches are inserted on PCI register base therefore are 8-bit wide. The sampling period defines how often this register will be interrogated by the library. If its value changes it will be displayed in the watch window of HWAccess. |
| Delete PCI watches |
Removes all PCI watches. |
| Disable PCI watches |
Disables all PCI watches. |
| Enable PCI watches |
Enables all PCI watches. You can disable the PCI watches, modify the sampling period and re-enable them. |
| Apply Watch Period |
Applies the watch period selected within the sampling period display. Changes take effect immediately for active watches. |
| Rescan PCI buses |
Scans all 256 buses for installed devices. Can be useful for notebooks and systems with hot-plug capability. Response is instantaneous. |
| Perform PCI test |
Initiates a PCI test based on the PCI configuration options. Results may be logged in the event log file or simply inserted in the PCI error list. Typical time for a complete test is about 20 seconds on P4 2.0GHz. The bus and device scanned is also displayed in the associated counters. Note that all watches are automatically removed when a PCI test starts. |
| Abort PCI test |
Aborts the PCI test that is running. |
| Enable Error Control |
Enables error control as selected from the PCI configuration option for each device. Displays a list of devices with no error control capability. |
| Clear Error Registers |
Scans all installed devices and clears the error registers. This functionality takes place automatically when a PCI test begins. |
Data View
PCI devices are listed with the Bus topology, Vendor and Product Information and configuration space. In addition, the PCI library gives details on resources allocated by each devices as well as all the standard registers in the range 0x00-0x3F. At the end of the description the library also shows the additional features a device may include like Power Management, PCI-X etc but the current version does not give details on those fields.
PCI bridge devices are listed with the Bus topology, Vendor and Product Information and configuration space. In addition the PCI library gives details on resources allocated by each bridge as well as all the standard registers in the range 0x00-0x3F. At the end of the description the library also shows the additional features a bridge may include like Power Management, PCI-X etc but the current version does not give details on those fields. The library follows the P2P v1.1 (PCI to PCI Bridge) specification to analyze and display this information
When the PCI library starts it scans for PCI ROMs installed in the upper address space. This is the range between 0xC0000-0xFFFFF. It is where compatibility Option ROMs are installed and executed during BIOS ROM scan. If such a device is found its header information is displayed in the main View window of HWAccess. This function is repeated with a refresh operation.
The items you should check for errors are the System Errors, Parity Errors and Target-Abort under the Device Status Register. These can be asserted if the PERR, SERR are enabled in the command register.Most of PC systems we used to validate HWAccess had these items disabled. HWAccess by default will enable the errors before initiating a test cycle.
Static Configuration

The PCI library configuration is available from Tools-Options-PCI Configuration and has three configuration areas. Bus Scan Test, Detailed Information and Error Configuration.
For Bus Scan Test the library performs a floating bus scan test where it tests each bus/device/function. When a bus is properly terminated and no devices are attached reading the configuration space should always return 1s. The test can scan within the 0-255 buses to check if this is the case. Selecting the Vendor Device ID option will scan buses selected for installed devices. Selecting the All Registers option will also scan the selected buses, devices, functions and registers for floating bus failures and depending on Error Configuration the library scans for additional errors.
Using the bus range, the user may select the range of buses to be scanned. Default values are 0-255.
Abort on Errors when selected, will force the tool to stop the operation and show the error in the main View window of HWAccess.
Continuous scan will repeat the Bus Scan Test indefinitely. The test may stop if an error occurs and the Abort on Errors option is enabled.
Log to File will write the contents of all registers for each device in a log file. New information will be appended at the end of the log file.
The detailed information category can show additional information for a device.
Show capabilities shows additional capabilities the device has. For instance a device with AGP capability will have a AGP capability list that will show in the main view window.
Show Status shows information about the status registers in the PCI configuration space.
Show Command shows information about the command register in the PCI configuration space.
Show Allocation shows memory, I/O and interrupt allocation details for each device.
During a PCI test the library can check for Parity, System and Master/Target Abort errors.
Parity Errors are tested for PCI devices and P2P bridge devices.
System Errors are tested for PCI devices and P2P bridge devices
P2P Master Abort is tested for P2P bridge devices only..
P2P SERR on Timer is tested for P2P bridge devices only.
When the test begins the PCI library will attempt to enable error control to each installed device. Once this process is complete it will inform the user with a list of devices that have no error control
The user may abort the process at anytime by hitting the abort button within the active controls. Information written in the log file will be maintained along with the time and day. The last device scanned will show in the main View of HWAccess
Note: PCI tests remove all watches from the PCI watch list.
.