Hardware-dependent modules

Updated: April 19, 2023

A hardware-dependent module is required for providing access to the hardware for every process that uses libpci and capability module APIs, including the pci-server.

Hardware-dependent modules reside in ${QNX_TARGET}/processor/lib/dll/pci/ on your development host, and in /lib/dll/pci/ on your target. Their names are prefixed with pci_hw-. There's “use” information in each module explaining what it's for and how to use it.

Both the PCI server process and the hardware-dependent module can use a configuration file specified with the PCI_HW_CONFIG_FILE environment variable. The format of this configuration file is documented in ${QNX_TARGET}/processor/etc/system/config/pci/pci_hw-template.cfg (or /etc/system/config/pci/pci_hw-template.cfg on your target system).

In addition to the common sections applicable to all hardware-dependent modules, hardware module developers may choose to define sections specific to a certain hardware module. This may include sections for optional parameters that provide users with the ability to configure or tune the hardware, for dealing with platform variances or for managing out-of-spec behavior or errata. The “use” information within the hardware-dependent module provides all details pertaining to specific configuration file sections and likely includes a specific hardware configuration file, either because it's required, or as a representative example.