Resource manager process that manages the PCI hierarchy
pci-server [-c] [-n path] [-v[v...]] [--aspace-enable[=all|mem|io]] [--bus-scan-limit=value] [--config=config_file]
QNX Neutrino
You can also change this name by using the SERVER_NODE_NAME parameter in a configuration file specified with the --config option. The -n option takes precedence.
In recent UEFI-based x86 platforms, it has been observed that even though the UEFI has assigned address space to a device, that address space isn't being enabled. This option corrects that behavior.
If you use this option without an = or with =all, all assigned address spaces are enabled. The mutually exclusive =mem and =io variants let you to restrict which address spaces are acted on. You aren't likely to use these very often if at all.
The pci-server utility is the PCI server resource manager that's responsible for enumerating and optionally configuring all PCI/PCIe devices, providing access control to some device information and settings and for all configuration space writes.
Without any command-line arguments, the PCI server enumerates the PCI bus, but doesn't configure it. This is the mode of operation for systems that have already enumerated and configured the PCI devices.
If configuration is required (or desired), the PCI server performs a bus configuration using the bus configuration module specified with the PCI_SERVER_BUSCFG_MODULE environment variable (or /lib/dll/pci/pci_server-buscfg-generic.so if that variable is unset). A bus configuration is also performed if you provide the --config=filename option and filename is a server configuration file that contains the parameter DO_BUS_CONFIG=yes/true in the [buscfg] section.
The PCI server can load other optional modules, each with its own set of arguments. For more information, see Configuration files in the Overview chapter of the PCI Server User's Guide, as well as ${QNX_TARGET}/etc/system/config/pci/pci_server-template.cfg.
If you're using the safety variant of qvm or smmuman, you need to load the pci_server-qvm_support.so module:
/proc/boot/pci_server.cfg={ [runtime] PCI_SERVER_MODULE_LIST=/lib/dll/pci/pci_server-qvm_support.so }
/lib/dll/pci/pci_server-qvm_support.so=pci/pci_server-qvm_support.so
pci-server --bus-scan-limit=16 --aspace-enable --config=/proc/boot/pci_server.cfg
There's no harm in loading pci_server-qvm_support.so if you aren't using qvm-safety or smmuman-safety. There's no impact on pci-server's behavior if clients don't use the new APIs that the module defines.