How to Inspect PCIe Devices and Link Speeds in macOS Terminal Using system_profiler

High-performance workstations, external Thunderbolt expansion chassis, and multi-drive NVMe storage arrays depend on PCI Express (PCIe) interconnects to transfer massive amounts of data with minimal latency. Whether you are validating external capture cards on an Apple silicon Mac, inspecting internal cards inside a Mac Pro, or debugging Thunderbolt 4 PCIe tunnelling speeds, command-line inspection provides instantaneous technical telemetry. The macOS Terminal command system_profiler SPPCIDataType reports complete PCIe hardware topologies, link widths, and negotiation speeds.

Understanding PCIe Hardware Properties and macOS Data Types

The macOS System Profiler engine organises system hardware into specialised data categories. The SPPCIDataType schema extracts low-level parameters directly from the I/O Kit registry, including:

  • Device and Card Name: The model identifier and marketing name of the peripheral or controller.
  • Type & Driver Installed: The functional class (such as NVMe controller, Ethernet adapter, or Video capture engine) and whether a matching macOS kernel driver (kext or DriverKit extension) is bound.
  • Vendor and Device ID: Standard hexadecimal PCI Special Interest Group (PCI-SIG) identifiers identifying the chipset manufacturer.
  • Link Width: The negotiated physical lane count (x1, x2, x4, x8, or x16).
  • Link Speed: The raw transfer speed per lane measured in gigatransfers per second (such as 2.5 GT/s for Gen 1, 5.0 GT/s for Gen 2, 8.0 GT/s for Gen 3, or 16.0 GT/s for Gen 4).
  • Slot Name: The physical motherboard slot or external Thunderbolt chassis port hosting the card.

Running system_profiler SPPCIDataType in Terminal

To inspect your Mac’s PCIe bus architecture:

  1. Open the Terminal app from /Applications/Utilities/ or via Spotlight (Cmd + Space).
  2. Execute the baseline System Profiler query:
    system_profiler SPPCIDataType
  3. Terminal outputs a structured hierarchical tree displaying every attached internal PCIe module, Thunderbolt PCIe bridge, and auxiliary daughterboard.

On Apple silicon Macs without modular internal PCIe slots, this command details the integrated SSD controllers and any external Thunderbolt/USB4 expansion enclosures currently docked.

Filtering for Link Speed, Lane Width, and Device Names

Because the raw output contains extensive controller metadata, piping the stream into standard command-line filters isolates the most critical performance metrics:

  1. To review device names alongside their negotiated lane count and transfer rate:
    system_profiler SPPCIDataType | grep -E "Card:|Type:|Link Width:|Link Speed:|Slot:"
  2. Review the output to verify whether connected hardware is negotiating at maximum performance:
    Type: NVMe Controller
    Link Width: x4
    Link Speed: 8.0 GT/s
    Slot: Thunderbolt@1,0,0

If an NVMe expansion drive rated for x4 at 8.0 GT/s reports a degraded link width of x1 or a link speed of 2.5 GT/s, the physical connection has down-negotiated due to signal degradation, dirty port contacts, or an inferior passive cable.

Exporting PCIe Telemetry to JSON or XML for System Audits

System engineers auditing large hardware deployments can export PCIe telemetry in structured machine-readable formats:

  1. To output the complete report in JSON format:
    system_profiler SPPCIDataType -json > pcie_audit.json
  2. To export as an Apple Property List (XML):
    system_profiler SPPCIDataType -xml > pcie_audit.plist

Troubleshooting Degraded PCIe Negotiation Speeds

If external Thunderbolt PCIe enclosures or add-in cards fail to negotiate their rated bus speed:

  • Verify Cable Certification: Passive USB-C cables often lack the high-frequency shielding required for 40 Gbps Thunderbolt signalling. Always use an active Thunderbolt 3, Thunderbolt 4, or Thunderbolt 5 cable bearing the official lightning bolt symbol.
  • Avoid Intermediate Hubs: Daisy-chaining PCIe capture cards behind non-powered USB hubs can saturate available PCIe bandwidth, forcing the controller to drop down to a narrower link width.
  • Check Thunderbolt Security State: Open System Settings > Privacy & Security > Allow accessories to connect to verify that external PCIe expansion units have been explicitly permitted to establish direct memory access (DMA).

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.