Terminology

QNX SDP8.0PCI Server User's GuideAPIConfiguration

The following terminology can be used to describe the hierarchy of PCI devices.

Hierarchy
The tree structured PCI Express I/O interconnect topology.
Hierarchy Domain
The part of a hierarchy originating from a single root port.
Note:
PCI Server terminology is slightly different and maps to the PCI Express (PCIe) terminology as described below.
PCI Domain
Domain containing an entire PCIe defined Hierarchy.
From a PCI perspective a domain consists of a Compute Complex which itself consists of one or more processing elements e.g., CPU, caches, MMUs, etc. A PCI subsystem consisting of Root Complexes, Root Ports, etc. is directly accessible to the processing elements. Communication between domains is possible with external mechanisms including, but not limited to, Non-Transparent Bridging (NTB). It is possible for more than one PCI Domain to exist within a system and the ability to run multiple PCI server instances in a separate, independent processing domain currently exists.
Figure 1Communication between different domains in a system


PCI Segment
Segment identical to a PCI Express Specification defined Hierarchy Domain.

It describes how the PCI hierarchy within a domain is divided into multiple sub-hierarchies. A segment must originate at a single root port. However, a separate segment can exist for root complex integrated endpoints.

PCI Partitioning

PCI Partitioning is the process of grouping segments of a hierarchy together within a domain.

The PCI Routing Identifiers or BDF space used to represent each of the components within a PCI system is global across all segments associated with a partition. However, it is separate between the segments associated with different partitions. Each partition provides for a separate BDF space.

A PCI Domain can consist of a single partition with all segments managed by a single pci-server instance, a single partition with segments managed by multiple pci-server instances or multiple partitions each with their segments managed by one or more pci-server instances.

Figure 2 shows the operating environment and relationship between various PCI resources. It shows the PCI components in a PCI subsystem with four separate root ports within a single compute domain.
Figure 2Operating environment and relationship between various PCI resources


Although there is no explicit partition, all four segments are grouped together and managed by a single pci-server instance which maintains information about the domain hierarchy in two files (i.e., /dev/shmem/pci/pci_db and /dev/shmem/pci/pci_hw). The BDF space for this hierarchy is global and consists of the following specification:
B[255..0]:D[31..0]:F[7..0]

Along with this, the PCI subsystem enables explicit partitioning. You can either choose a descriptive name for the partition or "pci" will be used as the default name.

Figure 3 shows the same representative system as in Figure 2 but with explicit partitioning.
Figure 3Operating environment with explicit partitioning


In this example, although there is an explicit partition with the default name "pci", all 4 segments are still grouped together and managed by a single pci-server instance which maintains information about the domain hierarchy in two files, this time with the partition name included in their location in the namespace, dev/shmem/pci/pci_db and /dev/shmem/pci/pci_hw/.

The BDF space for this hierarchy is also global and consists of the same specification:

B[255..0]:D[31..0]:F[7..0]

Note:
The namespace node registered by the pci-server takes the partition into account in this example. This is because the partition name or server identifier name is not specified. The defaults names are "pci" and "server_id_1".
Page updated: