# PCIe Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) PCIe uses a bidirectional connection to send and receive information at the same time, as shown in the following figure. Figure : PCIe device connection link VBackground-1 Solid Page-1 Square PCIe device A PCIe device A Square.2 PCIe device B PCIe device B Rectangle Packet Packet Rectangle.8 Packet Packet Sheet.5 Link (1 bit to 32 bits wide) Link (1 to 32 lanes) Sheet.6 Sheet.7 The path between the devices is called a Link. It's made up of one or more transmit and receive pairs. One pair of the Link is called a Lane. The PCIe device connection in Qualcomm Linux devices supports 16 lanes. The number of lanes or the Link width is x4. The following table lists the types of PCIe connections for devices. Table : PCIe connections | PCIe type | Description | | :---: | --- | | Root complex (RC) | Connects the CPU to the PCIe topology | | Switch | Connects more than 2 ports and acts as a packet router | | Bridge | Connects different buses: for example, PCIe to PCIe, or PCIe to
peripheral component interconnect (PCI) | | Endpoint (EP) | Resides at the bottom of the PCIe topology tree structure and has
only an upstream port | | Legacy endpoint | Uses older PCI bus operations to support backward
compatibility | ## PCIe host mode enumeration feature Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) When a system first powers up, the configuration software running on the system host processor is aware of the existence of only Bus 0 (if PCIe is supported). The software isn't aware of the bus topology or any device connected to the bus. The enumeration process discovers the various buses, devices, and functions present in the system. When enumeration is complete, each bus in the system is numbered as follows: - The primary bus number indicates the bus that directly connects to the primary interface of the bridge (towards the root complex). - The secondary bus number indicates the bus that directly connects to the secondary interface of the bridge (away from the root complex). - The subordinate bus number indicates the highest numbered bus that exists on the downstream side of the bridge. The BDF number uniquely identifies each device. The ID-based routing method of the transaction layer packet (TLP) uses this number. The PCIe host mode enumeration process involves the following: 1. Link training 2. Scanning for devices on the bus 3. Registration For more information about the PCIe device initialization and enumeration procedure, seeĀ [https://www.kernel.org/doc/html/latest/PCI/index.html](https://www.kernel.org/doc/html/latest/PCI/index.html). ## PCIe layered architecture Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) The following figure shows the layered architecture model of PCIe. Figure : PCIe layered architecture VBackground-1 Solid Page-1 Rectangle Transaction Transaction Rectangle.3 Transaction Transaction Rectangle.4 Data link Data link Rectangle.5 Data link Data link Rectangle.6 Physical Physical Rectangle.7 Logical sub-block Logical sub-block Rectangle.8 Electrical sub-block Electrical sub-block Sheet.12 Rx Rx Sheet.13 Tx Tx Rectangle.14 Physical Physical Rectangle.15 Logical sub-block Logical sub-block Rectangle.16 Electrical sub-block Electrical sub-block Sheet.17 Rx Rx Sheet.18 Tx Tx Sheet.22 Sheet.23 Rectangle.27 Framing Framing Rectangle.28 Sequence number Sequence number Rectangle.29 Header Header Rectangle.30 Payload data Payload data Rectangle.31 ECRC ECRC Rectangle.32 LCRC LCRC Rectangle.33 Framing Framing Sheet.34 Sheet.36 Sheet.37 Sheet.38 Physical layer Physical layer Sheet.39 Data link layer Data link layer Sheet.40 Transaction layer Transaction layer Sheet.43 TLP TLP Sheet.44 DLLP DLLP Sheet.45 Ordered set Ordered set Dynamic connector Dynamic connector.47 Dynamic connector.48 The transmission units exchanged are as follows. - Ordered set between the physical layer entities. - Data link layer packet (DLLP) between data link layer entities. - Transaction layer packet (TLP) between transaction layer entities. The following table lists the three layers, with the respective functions, in the PCIe architecture. | Layer | Features | | --- | --- | | Physical layer | Logical sub-block: Link training, initialization, and maintenance. | | Physical layer | Physical sub-block: 8b/10b encoding and decoding, and
parallel-to-serial and serial-to-parallel conversion. | | Data link layer | Assembly and disassembly of the DLLP packet. | | Data link layer | Generation and validation of the link layer CRC (LCRC). | | Data link layer | Acknowledgment and no acknowledgment protocol (replay of TLPs in
error). | | Transaction layer | Assembly and disassembly of the TLP packet. | | Transaction layer | Generation and validation of end-to-end CRC (ECRC). | | Transaction layer | Flow control receives entity advertises for the available to receive
buffer size information using DLLPs. | | Transaction layer | Quality of service (QoS): traffic class (TC) to virtual channel (VC)
mapping. | | Transaction layer | Transaction ordering: implements the transaction ordering rule within
a VC. | | | | | | | | | | | | | PCI defines a dedicated block of configuration address space for each function as shown in the following figure. The software determines the presence of a function, configures it, and checks and controls its status. Figure : PCIe configuration address space VBackground-1 Solid Page-1 Rectangle Type 0 configuration space Type 0 configuration space Rectangle.2 Device ID Device ID Rectangle.6 Base address register 0 Base address register 0 Rectangle.7 Base address register 1 Base address register 1 Rectangle.8 Base address register 2 Base address register 2 Rectangle.9 Base address register 3 Base address register 3 Rectangle.10 Base address register 4 Base address register 4 Rectangle.11 Base address register 5 Base address register 5 Rectangle.12 Card bus CIS pointer Card bus CIS pointer Rectangle.14 Expansion ROM base address Expansion ROM base address Rectangle.15 Reserved Reserved Rectangle.16 Reserved Reserved Rectangle.17 Max_Lat Max_Lat Square 00 00 Square.73 04 04 Square.74 08 08 Square.75 0C 0C Square.76 10 10 Square.77 14 14 Square.78 18 18 Square.79 1C 1C Square.80 20 20 Square.81 24 24 Square.82 28 28 Square.83 2C 2C Square.84 30 30 Square.85 34 34 Square.86 38 38 Square.87 3C 3C Rectangle.88 Vendor ID Vendor ID Rectangle.89 Status Status Rectangle.90 Command Command Rectangle.91 Class code Class code Rectangle.92 Revision ID Revision ID Rectangle.93 BIST BIST Rectangle.95 Header type Header type Rectangle.96 Controller latency timer Controller latency timer Rectangle.102 Subsystem ID Subsystem ID Rectangle.103 Subsystem vendor ID Subsystem vendor ID Rectangle.104 Capabilities pointer Capabilities pointer Rectangle.105 Max_Gnt Max_Gnt Rectangle.107 Interrupt line Interrupt line Rectangle.108 Byte offset Byte offset Rectangle.109 Type 1 configuration space Type 1 configuration space Rectangle.110 Device ID Device ID Rectangle.111 Base address register 0 Base address register 0 Rectangle.112 Base address register 1 Base address register 1 Rectangle.114 Secondary status Secondary status Rectangle.115 Memory limit Memory limit Rectangle.116 Prefetchable memory limit Prefetchable memory limit Rectangle.117 Prefetchable base upper 32 bits Prefetchable base upper 32 bits Rectangle.118 I/O limit upper 16 bits I/O limit upper16 bits Rectangle.119 Reserved Reserved Rectangle.120 Expansion ROM base address Expansion ROM base address Rectangle.121 Bridge control Bridge control Rectangle.122 Vendor ID Vendor ID Rectangle.123 Status Status Rectangle.124 Command Command Rectangle.125 Class code Class code Rectangle.126 Revision ID Revision ID Rectangle.127 BIST BIST Rectangle.128 Cache line size Cache line size Rectangle.129 Header type Header type Rectangle.130 Primary latency timer Primary latency timer Rectangle.131 Prefetchable limit upper 32 bits Prefetchable limit upper 32 bits Rectangle.133 Capabilities pointer Capabilities pointer Rectangle.135 Interrupt pin Interrupt pin Rectangle.136 Interrupt line Interrupt line Rectangle.138 I/O base upper 16 bits I/O base upper16 bits Rectangle.141 Prefetchable memory base Prefetchable memory base Rectangle.144 Memory base Memory base Rectangle.146 I/O limit I/O limit Rectangle.147 I/O base I/O base Rectangle.150 Secondary latency timer Secondary latency timer Rectangle.148 Secondary bus number Secondary bus number Rectangle.106 Interrupt pin Interrupt pin Rectangle.94 Cache line size Cache line size Rectangle.151 Subordinate bus number Subordinate bus number Rectangle.149 Primary bus number Primary bus number ## PCIe software driver configuration Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) The PCIe controller driver initializes the PCIe resources and performs link training. After successful training, the controller driver calls the PCIe framework for link enumeration, such as endpoint discovery, identifying the client driver, and probing those drivers. For more information about the PCIe framework and client driver PCIe registrations, seeĀ [https://www.kernel.org/doc/html/latest/PCI/index.html](https://www.kernel.org/doc/html/latest/PCI/index.html). ### Link training Link training comprises the following operations: 1. The PCIe driver `pcie-qcom.c` file atĀ [https://github.com/torvalds/linux/blob/master/drivers/pci/controller/dwc/pcie-qcom.c](https://github.com/torvalds/linux/blob/master/drivers/pci/controller/dwc/pcie-qcom.c) obtains the required resources such as regulators, clocks, from the device tree. 2. The PCIe driver calls Synopsys DesignWareĀ® Core host driverĀ pcie-designware-host.c file atĀ [https://github.com/torvalds/linux/blob/master/drivers/pci/controller/dwc/pcie-designware-host.c](https://github.com/torvalds/linux/blob/master/drivers/pci/controller/dwc/pcie-designware-host.c) to initialize the root complex. 3. The Synopsys DesignWare Core driver performs all necessary initializations. 4. The Synopsys DesignWare Core driver calls a function pointer to perform host initialization. 5. The Qualcomm PCIe driver performs PHY power-on, enables all regulators, clocks. 6. The Synopsys DesignWare Core driver starts the link training by calling the function pointer to start the link. ### Hardware initialization The driver initializes and configures the PCIe hardware block and performs link training. The initialization occurs after the `platform _probe()` driver function is called. static int qcom_pcie_probe(struct platform_device *pdev) { // get PCIe resources ret = dw_pcie_host_init(pp); // call DWC framework to host intialisation like MSI, MSIx and controller init if (ret) { dev_err(dev, "cannot initialize host\n"); goto err_phy_exit; } }; static const struct of_device_id qcom_pcie_match[] = { { .compatible = "qcom,pcie-sc7280", .data = &cfg_1_9_0 }, {} }; static struct platform_driver qcom_pcie_driver = { .probe = qcom_pcie_probe, .driver = { .name = "qcom-pcie", .suppress_bind_attrs = true, .of_match_table = qcom_pcie_match, }, };Copy to clipboard When the Synopsys DesignWare Core driver is initialized, it also initializes MSI, MSIx, and controllers. The driver calls a Qualcomm function pointer to start the link training. static int qcom_pcie_start_link(struct dw_pcie *pci) { struct qcom_pcie *pcie = to_qcom_pcie(pci); /* Enable Link Training state machine */ if (pcie->cfg->ops->ltssm_enable) pcie->cfg->ops->ltssm_enable(pcie); return 0; } static int qcom_pcie_link_up(struct dw_pcie *pci) { u16 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); u16 val = readw(pci->dbi_base + offset + PCI_EXP_LNKSTA); return !!(val & PCI_EXP_LNKSTA_DLLLA); // checks the link is up or not } static const struct dw_pcie_ops dw_pcie_ops = { .link_up = qcom_pcie_link_up, .start_link = qcom_pcie_start_link, };Copy to clipboard The Synopsys DesignWare Core driver waits for the link to be active to enumerate the PCI framework. The Qualcomm PCIe driver enables only the link training. Note: The PCIE\_0 root complex instance is enabled by default for the WLAN EP connection. ## Enable QPS615 PCIe switch Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) This section describes how to enable a QPS615 PCIe switch in the Qualcomm Linux hardware SoCs. The QPS615 switch endpoint is supported on the `PCIe1` instance. The following figure shows the QPS615 endpoint and connections. Figure : QPS615 PCIe switch connection diagram VBackground-1 Solid qps615-pcie-switch-connection-diagram Sheet.1023 Sheet.1016 QPS615 DSP 1 Bus 2 Dev 1 Func 0 | BDF 0x208 QPS615 DSP 1Bus 2 Dev 1 Func 0 | BDF 0x208 Sheet.1018 QPS615 DSP 2 Bus 2 Dev 2 Func 0 | BDF 0x210 QPS615 DSP 2Bus 2 Dev 2 Func 0 | BDF 0x210 Sheet.1020 QPS615 VDSP Bus 2 Dev 3 Func 0 | BDF 0x218 QPS615 VDSPBus 2 Dev 3 Func 0 | BDF 0x218 Sheet.1024 eEP PCIe embedded EP Bus 5 Dev 0 Func 0 | BDF 0x500 Bus 5 Dev... eEPPCIe embedded EPBus 5 Dev 0 Func 0 | BDF 0x500Bus 5 Dev 0 Func 1 | BDF 0x501 Sheet.1025 Sheet.1028 Gen3 x2 Bus #1 Gen3x2Bus #1 Sheet.1029 Bus #2 Bus #2 Sheet.1030 Gen3 x2 Bus #3 Gen3x2Bus #3 Sheet.1031 Gen3 x1 Bus #4 Gen3x1Bus #4 Sheet.1032 Gen3 x2 Bus #5 Gen3x2Bus #5 Sheet.1033 Device Device Sheet.1046 QPS615 USP Bus 1 Dev 0 Func 0 | BDF 0x100 QPS615 USPBus 1 Dev 0 Func 0 | BDF 0x100 Sheet.1047 Root complex Bus 0 Dev 0 Func 0 | BDF 0x000 Root complexBus 0 Dev 0 Func 0 | BDF 0x000 Dynamic connector Sheet.1057 Sheet.1058 Sheet.1060 Sheet.1061 Sheet.1062 Sheet.1063 Sheet.1064 Sheet.1065 The Qualcomm PCIe driver documentation can be accessed at the following locations: - [https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/pci/qcom%2Cpcie-sc8280xp.yaml](https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/pci/qcom%2Cpcie-sc8280xp.yaml) - [https://elixir.bootlin.com/linux/v6.6.48/source/Documentation/devicetree/bindings/pci/qcom,pcie.yaml](https://elixir.bootlin.com/linux/v6.6.48/source/Documentation/devicetree/bindings/pci/qcom,pcie.yaml) - [https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/phy/qcom%2Csc8280xp-qmp-pcie-phy.yaml](https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/phy/qcom%2Csc8280xp-qmp-pcie-phy.yaml) ### PCIe-related configurations The following configurations are enabled by default to support the QPS615 switch. Disable the QPS615 switch default support, by reverting the code changes, to use it for a different PCIe endpoint. To enable PCIe-related `configs`, apply the following patch to theĀ /arch/arm64/configs/qcom\_addons.config file. QCLINUX: arm64: defconfig: qcom: diff --git a/arch/arm64/configs/qcom_addons.config b/arch/arm64/configs/qcom_addons.config index 46555f9..a83f417 100644 --- a/arch/arm64/configs/qcom_addons.config +++ b/arch/arm64/configs/qcom_addons.config @@ -25,3 +25,4 @@ CONFIG_VIRT_DRIVERS=y CONFIG_QCOM_SMP2P_SLEEPSTATE=m CONFIG_QCOM_SOC_DEBUG=y +CONFIG_QCOM_QPS615_PCIE_SWITCH=y diff --git a/arch/arm64/configs/qcom_defconfig b/arch/arm64/configs/qcom_defconfig index 7293680..730122c 100644 --- a/arch/arm64/configs/qcom_defconfig +++ b/arch/arm64/configs/qcom_defconfig @@ -173,6 +173,7 @@ CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCIE_DW_PLAT_HOST=y CONFIG_PCIE_QCOM=y CONFIG_PCI_ENDPOINT=y CONFIG_PCI_ENDPOINT_CONFIGFS=y @@ -793,3 +794,5 @@ CONFIG_CORESIGHT_TPDM=m CONFIG_CORESIGHT_DUMMY=m CONFIG_MEMTEST=y +CONFIG_PCIEASPM=y +CONFIG_PCIEASPM_POWER_SUPERSAVE=y Copy to clipboard ### Always-on refclk signal to endpoint In PCIe low-power states such as L1.1 or L1.2, the PHY stops supplying `refclk` to the endpoint. However, the `refclk` signal must be supplied to the endpoint. If the endpoint asserts `clkreq` to bring back the link to L0, then root complex must provide `refclk` to the endpoint. Some devices with PCIe QPS615 switches fail to drive the `clkreq` signal to the host from the endpoints due to the switch board design. You can add a flag to ensure `refclk` is always supplied to the endpoint. To retain `refclk` in always-on status, apply the following patch to theĀ phy-qcom-qmp-pcie.c file atĀ [https://github.com/torvalds/linux/blob/master/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c](https://github.com/torvalds/linux/blob/master/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c). phy: qcom-qmp-pcie: --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c @@ -43,6 +43,8 @@ /* QPHY_PCS_STATUS bit */ #define PHYSTATUS BIT(6) #define PHYSTATUS_4_20 BIT(7) +/* PCS_PCIE_ENDPOINT_REFCLK_CNTRL */ +#define EPCLK_ALWAYS_ON_EN BIT(6) #define PHY_INIT_COMPLETE_TIMEOUT 10000 @@ -2293,6 +2295,8 @@ struct phy *phy; int mode; + bool refclk_always_on; + struct clk_fixed_rate pipe_clk_fixed; }; @@ -3238,6 +3242,10 @@ qmp_pcie_configure(pcs, tbls->pcs, tbls->pcs_num); qmp_pcie_configure(pcs_misc, tbls->pcs_misc, tbls->pcs_misc_num); + if (qmp->refclk_always_on && cfg->regs[QPHY_PCS_ENDPOINT_REFCLK_CNTRL]) + qphy_setbits(pcs_misc, cfg->regs[QPHY_PCS_ENDPOINT_REFCLK_CNTRL], + EPCLK_ALWAYS_ON_EN); + if (cfg->lanes >= 4 && qmp->tcsr_4ln_config) { qmp_pcie_configure(serdes, cfg->serdes_4ln_tbl, cfg->serdes_4ln_num); qmp_pcie_init_port_b(qmp, tbls); @@ -3760,6 +3768,12 @@ if (ret) goto err_node_put; + qmp->refclk_always_on = of_property_read_bool(dev->of_node, "qcom,refclk-always-on"); + if (qmp->refclk_always_on && !qmp->cfg->regs[QPHY_PCS_ENDPOINT_REFCLK_CNTRL]) { + dev_err(dev, "refclk is always on is present but refclk cntrl offset is not present\n"); + goto err_node_put; + } + ret = phy_pipe_clk_register(qmp, np); if (ret) goto err_node_put; Copy to clipboard ### Message signaled interrupt (MSI) The current MSI mapping doesn't have all the vectors. The Qualcomm Linux hardware SoCs support eight vectors. Each vector in turn supports 32 MSIs. Therefore, the total MSIs supported are 256. For information about adding all the MSI groups supported for this PCIe instance, seeĀ [https://lore.kernel.org/linux-arm-msm/f1168212-bc6e-4570-869c-2870d6f248ad@linaro.org/T/](https://lore.kernel.org/linux-arm-msm/f1168212-bc6e-4570-869c-2870d6f248ad@linaro.org/T/). ### QPS615 switch support When all the GPIOs that control power to the QPS615 PCIe switch are added as fixed regulators, the QPS615 driver enables the power through the regulator framework. It also performs I2C writes to configure the QPS615 switch. The PCIe node is added as a dependency to the QPS615 node so that the PCIe driver probes after the QPS615 driver probe, which ensures that the switch is powered and ready for enumeration. When QPS615 can't toggle, the CLKREQ pin causes a device crash. This is a known limitation. Hence, the `refclk` is set to always-on. ### QPS615 switch device tree bindings To add QPS615 switch device tree binding, apply the following patch to theĀ /arch/arm64/boot/dts/qcom/<chipset>-addons-rb3.dts file. QCLINUX: dt-bindings: pci: qps615: diff --git a/arch/arm64/boot/dts/qcom/-addons-rb3.dts b/arch/arm64/boot/dts/qcom/-addons-rb3.dts index 109ad08..7baf505 100644 --- a/arch/arm64/boot/dts/qcom/-addons-rb3.dts +++ b/arch/arm64/boot/dts/qcom/-addons-rb3.dts @@ -14,6 +14,82 @@ / { model = "Qualcomm Technologies, Inc. -addons RB3 platform"; compatible = "qcom,-addons-rb3","qcom,sc7280"; + + qps615_0p9_vreg: qps615-0p9-vreg { + compatible = "regulator-fixed"; + regulator-name = "qps615_0p9_vreg"; + gpio = <&pm8350c_gpios 2 0>; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + enable-active-high; + regulator-enable-ramp-delay = <4300>; + }; + + qps615_1p8_vreg: qps615-1p8-vreg { + compatible = "regulator-fixed"; + regulator-name = "qps615_1p8_vreg"; + gpio = <&pm8350c_gpios 3 0>; + vin-supply = <&qps615_0p9_vreg>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + enable-active-high; + regulator-enable-ramp-delay = <10000>; + }; + + qps615_rsex_vreg: qps615-rsex-vreg { + compatible = "regulator-fixed"; + regulator-name = "qps615_rsex_vreg"; + gpio = <&pm8350c_gpios 1 0>; + vin-supply = <&qps615_1p8_vreg>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + enable-active-high; + regulator-enable-ramp-delay = <10000>; + }; + + usb_hub_1p05_vreg: usb-hub-1p05-vreg { + compatible = "regulator-fixed"; + regulator-name = "usb_hub_1p05_vreg"; + gpio = <&pm7250b_gpios 4 0>; + vin-supply = <&qps615_rsex_vreg>; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + enable-active-high; + regulator-enable-ramp-delay = <5000>; + }; + + usb_hub_3p3_vreg: usb-hub-3p3-vreg { + compatible = "regulator-fixed"; + regulator-name = "usb_hub_3p3_vreg"; + gpio = <&pm7250b_gpios 1 0>; + vin-supply = <&usb_hub_1p05_vreg>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + regulator-enable-ramp-delay = <10000>; + }; + + usb_hub_rest_vreg: usb-hub-rest-vreg { + compatible = "regulator-fixed"; + regulator-name = "usb_hub_rest_vreg"; + gpio = <&pm8350c_gpios 4 0>; + vin-supply = <&usb_hub_3p3_vreg>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + }; +}; + +&i2c0 { + clock-frequency = <100000>; + status = "okay"; + + qps615_switch: pcie-switch@77 { + compatible = "qcom,switch-i2c"; + reg = <0x77>; + vdda-supply = <&usb_hub_rest_vreg>; + status = "okay"; + }; }; &i2c1 { @@ -216,6 +292,14 @@ }; }; +&pcie1 { + dummy-supply = <&qps615_switch>; +}; + +&pcie1_phy { + qcom,refclk-always-on; +}; + &pm8350c_gpios { pm8008i-reset-state { pm8008i_active: pm8008i-active-pins { Documentation/devicetree/bindings/pci/qps615-switch.yaml Documentation/devicetree/bindings/pci/qps615-switch.yaml new file mode 100644 index 0000000..f59e068 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/qps615-switch.yaml @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pci/qps615-switch.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Technologies, Inc. (QTI) PCIe switch + +maintainers: + - Chundru Krishna chaitanya + +properties: + compatible: + enum: + - qcom,switch-i2c + + reg: + maxItems: 1 + + vdda-supply: + description: A phandle to the core analog power supply + +required: + - compatible + - reg + - vdda-supply + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + qps615: pcie-switch@77 { + compatible = "qcom,switch-i2c"; + reg = <0x077>; + vdda-supply = <&foo>; + }; Copy to clipboard ### QPS615 switch driver A driver is added for powering on the QPS615 PCIe switch. It performs the basic initialization through I2C. The initialization sequence is present in the firmware image that the driver requested through the request\_firmware API. To add the QPS615 switch driver, apply the following patch to theĀ /drivers/pci/controller/Kconfig file. QCLINUX: pci: controller: misc: diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig index c0c3f28..d68e701 100644 --- a/drivers/pci/controller/Kconfig +++ b/drivers/pci/controller/Kconfig @@ -345,4 +345,5 @@ source "drivers/pci/controller/cadence/Kconfig" source "drivers/pci/controller/dwc/Kconfig" source "drivers/pci/controller/mobiveil/Kconfig" +source "drivers/pci/controller/misc/Kconfig" endmenu diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile index 37c8663..015f711b 100644 --- a/drivers/pci/controller/Makefile +++ b/drivers/pci/controller/Makefile @@ -43,6 +43,7 @@ # pcie-hisi.o quirks are needed even without CONFIG_PCIE_DW obj-y += dwc/ obj-y += mobiveil/ +obj-y += misc/ # The following drivers are for devices that use the generic ACPI diff --git a/drivers/pci/controller/misc/Kconfig b/drivers/pci/controller/misc/Kconfig new file mode 100644 index 0000000..0acea3f --- /dev/null +++ b/drivers/pci/controller/misc/Kconfig @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: GPL-2.0 +config QCOM_QPS615_PCIE_SWITCH + bool "QCOM QPS615 PCIe Switch Driver" + depends on PCuart + help + This adds support to enable QPS615 PCIe switch power. And after powering on the switch do + switch initialization through I2C writes. The I2C data is parsed from the requested + firmware. + + Say Y to compile this driver. diff --git a/drivers/pci/controller/misc/Makefile b/drivers/pci/controller/misc/Makefile new file mode 100644 index 0000000..1c2b99e --- /dev/null +++ b/drivers/pci/controller/misc/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_QCOM_QPS615_PCIE_SWITCH) += qps615.o Change in arm64: dts: qcom: -rb3g2: Add PCIe nodes. Enable PCIe1 controller and its corresponding PHY nodes on -rb3g2 platform. As there are multiple endpoints connected through PCIe switch add smmu id for each BDF. diff --git a/arch/arm64/boot/dts/qcom/-rb3.dts b/arch/arm64/boot/dts/qcom/-rb3.dts index 5adce1f..f995a53 100644 --- a/arch/arm64/boot/dts/qcom/-rb3.dts +++ b/arch/arm64/boot/dts/qcom/-rb3.dts @@ -512,6 +512,32 @@ bias-bus-hold; }; +&pcie1 { + perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; + + pinctrl-0 = <&pcie1_reset_n>, <&pcie1_wake_n>; + pinctrl-names = "default"; + + iommu-map = <0x0 &apps_smmu 0x1c80 0x1>, + <0x100 &apps_smmu 0x1c81 0x1>, + <0x208 &apps_smmu 0x1c84 0x1>, + <0x210 &apps_smmu 0x1c85 0x1>, + <0x218 &apps_smmu 0x1c86 0x1>, + <0x300 &apps_smmu 0x1c87 0x1>, + <0x400 &apps_smmu 0x1c88 0x1>, + <0x500 &apps_smmu 0x1c89 0x1>, + <0x501 &apps_smmu 0x1c90 0x1>; + + status = "okay"; +}; + +&pcie1_phy { + vdda-phy-supply = <&vreg_l10c_0p88>; + vdda-pll-supply = <&vreg_l6b_1p2>; + + status = "okay"; +}; + &qup_uart5_rx { drive-strength = <2>; bias-pull-up; @@ -604,6 +630,21 @@ bias-disable; }; + pcie1_reset_n: pcie1-reset-n-state { + pins = "gpio2"; + function = "gpio"; + drive-strength = <16>; + output-low; + bias-disable; + }; + + pcie1_wake_n: pcie1-wake-n-state { + pins = "gpio3"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + qup_uart7_sleep_cts: qup-uart7-sleep-cts-state { pins = "gpio28"; function = "gpio"; Copy to clipboard ### Save and restore configuration space QPS615 switch Preserve the configuration space of the PCIe bridge device during power management suspend state. Resume the PCIe bridge configuration space during power management resume state. This method is essential for the proper operation of PCIe endpoints connected using the QPS615 PCIe switch. diff --git a/drivers/pci/controller/misc/qps615.c b/drivers/pci/controller/misc/qps615.c index 7d63efb..10048cd 100644 --- a/drivers/pci/controller/misc/qps615.c +++ b/drivers/pci/controller/misc/qps615.c @@ -5,6 +5,7 @@ #include #include #include +#include #define DRV_NAME "qps615-switch-i2c" @@ -235,6 +236,24 @@ } module_init(qps615_i2c_init); +static void qcom_pcie_resume_early(struct pci_dev *pdev) +{ + pci_restore_state(pdev); +} + +DECLARE_PCI_FIXUP_CLASS_RESUME_EARLY(PCI_ANY_ID, + PCI_ANY_ID, PCI_CLASS_BRIDGE_PCI_NORMAL, 0, + qcom_pcie_resume_early); + +static void qcom_pcie_suspend_late(struct pci_dev *pdev) +{ + pci_save_state(pdev); +} + +DECLARE_PCI_FIXUP_CLASS_SUSPEND_LATE(PCI_ANY_ID, + PCI_ANY_ID, PCI_CLASS_BRIDGE_PCI_NORMAL, 0, + qcom_pcie_suspend_late); + MODULE_AUTHOR("Krishna Chaitanya Chundru "); MODULE_DESCRIPTION("QPS615 PCIE Switch driver"); MODULE_LICENSE("GPL"); Copy to clipboard The following is a sample PCIe kernel driver log from the QPS615 device enumeration. [ 7.254674] qcom-pcie 1c08000.pci: supply vdda not found, using dummy regulator [ 7.285224] qcom-pcie 1c08000.pci: supply vddpe-3v3 not found, using dummy regulator [ 7.299688] qcom-pcie 1c08000.pci: host bridge /soc@0/pci@1c08000 ranges: [ 7.313713] qcom-pcie 1c08000.pci: IO 0x0040200000..0x00402fffff -> 0x0000000000 [ 7.329778] qcom-pcie 1c08000.pci: MEM 0x0040300000..0x005fffffff -> 0x0040300000 [ 7.479174] qcom-pcie 1c08000.pci: iATU: unroll T, 8 ob, 8 ib, align 4K, limit 1024G [ 7.577792] qcom-pcie 1c08000.pci: PCIe Gen.3 x2 link up [ 7.648353] qcom-pcie 1c08000.pci: PCI host bridge to bus 0001:00 [ 7.654618] pci_bus 0001:00: root bus resource [bus 00-ff] [ 7.654620] pci_bus 0001:00: root bus resource [io 0x0000-0xfffff] [ 7.654622] pci_bus 0001:00: root bus resource [mem 0x40300000-0x5fffffff] [ 7.654633] pci 0001:00:00.0: [17cb:010b] type 01 class 0x060400 [ 7.665893] pci 0001:00:00.0: reg 0x10: [mem 0x00000000-0x00000fff] [ 7.684913] pci 0001:00:00.0: PME# supported from D0 D3hot D3cold [ 7.700502] pci 0001:01:00.0: [1179:0623] type 01 class 0x060400 [ 7.710817] pci 0001:01:00.0: PME# supported from D0 D3hot D3cold [ 7.733698] pci 0001:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 7.738818] pci 0001:02:01.0: [1179:0623] type 01 class 0x060400 [ 7.751157] pci 0001:02:01.0: PME# supported from D0 D3hot D3cold [ 7.763174] pci 0001:02:02.0: [1179:0623] type 01 class 0x060400 [ 7.777084] pci 0001:02:02.0: PME# supported from D0 D3hot D3cold [ 7.792832] pci 0001:02:03.0: [1179:0623] type 01 class 0x060400 [ 7.815659] pci 0001:02:03.0: PME# supported from D0 D3hot D3cold Copy to clipboard ## Ethernet interfaces supported through QPS615 PCIe switch Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) The QPS615 PCIe switch enables Ethernet connectivity for the device. When the device loads the QPS615 driver and establishes the PCIe link, it automatically activates the supported Ethernet interfaces, by default, during device startup. To customize the default configuration or enable extra MAC/PHY components beyond Qualcomm’s hardware setup, see the *Bring up Ethernet* section in the [*Qualcomm Linux Ethernet guide*](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-26/bring_up-ethernet.html). Table : Supported Ethernet interfaces | Interface type | Speed | Connector type | Description | | :--- | :--- | :--- | :--- | | QEP PHY (SGMII) | 2.5 GbE | IX/RJ45 connector (QEP8121) |

  • Enabled by default.


| | AQR PHY (USXGMII) | 10 GbE | IX/RJ45 connector (AQR113C) |

  • The 10 Gigabit Ethernet AQR PHY is an optional component in the
    Qualcomm Dragonwingā„¢ RB3 Gen 2 Development Kit, and the
    Evaluation Kits (EVK) for Dragonwing IQ-8275 and
    Dragonwing IQ-9075. It's validated on
    AQR113C.


| ### Bring up alternate hardware components You can attach MAC/PHY components other than the hardware configuration provided by Qualcomm and bring them up. To replace QPS615 with other PCIe based MAC/PHY, see [Enable QPS615 PCIe switch](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html#pcie-software-support-feature-for-qps615). Note: You must obtain the MAC/PHY driver and firmware from the respective vendor. Qualcomm isn’t responsible for these configuration changes. ## Enable USB interface through PCIe switch Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) This section provides instructions on how to activate a USB interface through a PCIe switch in the Qualcomm Linux hardware SoCs. The PCIE1 instance is connected to the endpoint of the QPS615 switch, and the downstream port of the QPS615 is connected to the PCIe to USB endpoint. For the PCIe to USB endpoint connections using the QPS615, see the mainboard and interposer block diagram atĀ [https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-251/rb3_hardware_overview.html](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-251/rb3_hardware_overview.html). Note: Dragonwing IQ-9075 PCIe software doesn't support USB. ### Enable power for the PCIe to USB controller Enable the power for the PCIe to USB controller connected through the QPS615 switch, and reset the external USB hub connected using GPIO162. This method is necessary for the correct detection and functioning of the USB peripherals. diff --git a/arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi b/arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi index bf95b66..4a76a36 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi +++ b/arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi @@ -40,6 +40,37 @@ regulator-enable-ramp-delay = <10000>; }; + upd_3p3_vreg: upd_3p3_vreg { + compatible = "regulator-fixed"; + regulator-name = "upd_3p3_vreg"; + gpio = <&pm7250b_gpios 1 0>; + vin-supply = <&qps615_rsex_vreg>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + regulator-enable-ramp-delay = <10000>; + regulator-always-on; + }; + + upd_rest_vreg: upd_rest_vreg { + compatible = "regulator-fixed"; + regulator-name = "upd_rest_vreg"; + gpio = <&pm8350c_gpios 4 0>; + vin-supply = <&upd_3p3_vreg>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + regulator-always-on; + }; + + usbhub_rest_vreg: usbhub_rest_vreg { + compatible = "regulator-fixed"; + regulator-name = "usbhub_rest_vreg"; + pinctrl-names = "default"; + pinctrl-0 = <&pcie1_usb_hub_reset_default>; + gpio = <&tlmm 162 GPIO_ACTIVE_LOW>; + enable-active-high; + }; }; &i2c0 { @@ -165,6 +196,14 @@ bias-pull-down; input-enable; }; + + pcie1_usb_hub_reset_default: pcie1_usb_hub_reset_default { + pins = "gpio162"; + function = "gpio"; + drive-strength = <2>; + output-high; + bias-pull-down; + }; }; Copy to clipboard ### Avoid early handoff in PCIe to USB controller Ensure that `usb_early-handoff` is skipped for the PCIe to USB controller since the firmware isn't loaded. This precaution is necessary to prevent any adverse impact on the bootup duration. diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c index 2665832..c3d488f 100644 --- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c @@ -1260,6 +1260,11 @@ return; } + /* Skip handoff for Renesas PCI USB controller on QCOM SOC */ + if ((pdev->vendor == PCI_VENDOR_ID_RENESAS) && + (pcie_find_root_port(pdev)->vendor == PCI_VENDOR_ID_QCOM)) + return; + if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI && pdev->class != PCI_CLASS_SERIAL_USB_OHCI && pdev->class != PCI_CLASS_SERIAL_USB_EHCI && Copy to clipboard ### Download PCIe to USB controller firmware To download the firmware fromĀ [https://www.renesas.com/us/en/products/interface/usb-switches-hubs/upd720201-usb-30-host-controller#design_development](https://www.renesas.com/us/en/products/interface/usb-switches-hubs/upd720201-usb-30-host-controller#design_development), register and log in toĀ [https://www.renesas.com/](https://www.renesas.com/). Rename the downloaded firmware file to renesas\_usb\_fw.mem. Note: To prevent command failures, update the software as described in theĀ [Set up the device](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-251/set_up_the_device.html) section before updating the Renesas firmware. 1. Create the `usb_fw.img` image and copy the USB firmware by running the following commands on the Linux host machine. dd if=/dev/zero of=usb_fw.img bs=4k count=240Copy to clipboard mkfs -t ext4 usb_fw.imgCopy to clipboard mkdir usb_fwCopy to clipboard sudo mount -o loop usb_fw.img usb_fw/Copy to clipboard sudo cp -rf renesas_usb_fw.mem usb_fwCopy to clipboard sudo umount usb_fwCopy to clipboard 2. Start the device in the fastboot mode. adb rootCopy to clipboard adb shellCopy to clipboard reboot bootloaderCopy to clipboard 3. Run the following command when the device is in the fastboot mode. fastboot devicesCopy to clipboard Sample output: 7dc85f5e fastbootCopy to clipboard 4. Flash the `usb_fw.img` image to the device. fastboot erase usb_fwCopy to clipboard fastboot flash usb_fw usb_fw.imgCopy to clipboard fastboot rebootCopy to clipboard Command failure sample: c:\>fastboot erase usb_fw Erasing 'usb_fw' FAILED (remote: 'Check device console.') fastboot: error: Command failedCopy to clipboard 5. To verify if the firmware is successfully updated, run the following command. dmesgCopy to clipboard Sample log after the firmware is successfully updated. [ 6.589462] usbcore: registered new device driver onboard-usb-hub [ 6.653277] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd [ 7.013061] usb 2-1.1: new SuperSpeed USB device number 3 using xhci_hcd [ 7.120657] ax88179_178a 2-1.1:1.0 eth0: register 'ax88179_178a' at usb-0001:04:00.0-1.1, ASIX AX88179 USB 3.0 Gigabit Ethernet, 3e:9e:5e:ff:d3:fb [ 7.120767] usbcore: registered new interface driver ax88179_178a Copy to clipboard ### PCIe kernel driver logs for PCIe to USB device enumeration reference You can run the following commands to view the device information: - To display device information in USB, run the following command. lsusbCopy to clipboard The following message is displayed. Bus 002 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Copy to clipboard - To display device information in PCIe, run the following command. lspciCopy to clipboard The following message is displayed. 0001:00:00.0 PCI bridge: Qualcomm Device 010b 0001:01:00.0 PCI bridge: Toshiba Corporation Device 0623 0001:02:01.0 PCI bridge: Toshiba Corporation Device 0623 0001:02:02.0 PCI bridge: Toshiba Corporation Device 0623 0001:02:03.0 PCI bridge: Toshiba Corporation Device 0623 0001:04:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03) 0001:05:00.0 Ethernet controller: Toshiba Corporation Device 0220 0001:05:00.1 Ethernet controller: Toshiba Corporation Device 0220 Copy to clipboard ## Connect QPS615 switches in cascade Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) Connect the QPS615 switches in cascade to enable additional Ethernet, PCIe, and USB ports. Note: This feature is supported only in QCS6490. The following image shows the two QPS615 switches connected in cascade to PCIE1 and another QPS615 switch connected to PCIE2. Page-1 Rectangle.24 Rectangle.23 Rectangle.12 Rectangle.27 Rectangle.26 Rectangle Square Square.3 Square.4 Square.5 Square.6 Square.7 Square.8 Square.9 Square.10 Square.11 Square.13 Square.14 Square.16 Square.17 Square.18 Square.19 Square.20 Square.21 Square.22 Rectangle.28 Square.33 Square.34 Square.35 Square.36 Rectangle.58 Full size PCIe x4 #1 Full size PCIe x4 #1 Rectangle.59 PCIe m.2 B key 5G PCIe m.2 B key 5G Rectangle.60 PCIe m.2 B key NVMe PCIe m.2 B key NVMe Rectangle.64 Full size PCIe x4 #2 Full size PCIe x4 #2 Rectangle.65 PCIe m.2 E key Wi-Fi PCIe m.2 E key Wi-Fi And gate AND AND And gate.68 AND AND And gate.69 AND AND Sheet.39 GPIO_116 GPIO_116 Sheet.40 GPIO_124 GPIO_124 Sheet.41 PM73250C GPIO_01 PM73250C GPIO_01 Sheet.42 GPIO_02 GPIO_02 Sheet.43 GPIO_79 GPIO_79 Sheet.44 GPIO_03 GPIO_03 Sheet.45 GPIO_78 GPIO_78 Sheet.46 GPIO_87 GPIO_87 Sheet.47 GPIO_88 GPIO_88 Sheet.48 GPIO_89 GPIO_89 Sheet.49 RESX RESX Sheet.50 GPIO_02 GPIO_02 Sheet.51 CLK_REQ_B CLK_REQ_B Sheet.52 GPIO_03 GPIO_03 Sheet.53 CLK_REQ_C CLK_REQ_C Rectangle.88 Square.89 Square.90 Square.91 Square.92 Square.93 Sheet.60 RESX RESX Sheet.61 GPIO_02 GPIO_02 Sheet.62 CLK_REQ_B CLK_REQ_B Sheet.63 GPIO_03 GPIO_03 Sheet.64 CLK_REQ_C CLK_REQ_C Rectangle.99 uPD PCIe to USB uPD PCIe to USB Rectangle.101 CLK buffer CLK buffer Rectangle.102 CLK buffer CLK buffer Sheet.68 GPIO_BBB GPIO_BBB Sheet.69 GPIO_F GPIO_F Sheet.70 PCIE1_RST_N GPIO_CC PCIE1_RST_N GPIO_CC Sheet.71 PCIE1_CLK_REQ_N GPIO_DD PCIE1_CLK_REQ_N GPIO_DD Sheet.72 PCIE1_WAKE_N GPIO_EE PCIE1_WAKE_N GPIO_EE Sheet.73 GPIO_U GPIO_U Sheet.74 PCIE2_RST_N GPIO_FF PCIE2_RST_N GPIO_FF Sheet.75 PCIE1_CLK_REQ_N GPIO_GG PCIE1_CLK_REQ_N GPIO_GG Sheet.76 PCIE2_WAKE_N GPIO_HH PCIE2_WAKE_N GPIO_HH Rectangle.114 Square.115 Square.116 Square.117 Square.118 Square.119 Sheet.83 RESX RESX Sheet.84 GPIO_02 GPIO_02 Sheet.85 CLK_REQ_B CLK_REQ_B Sheet.86 GPIO_03 GPIO_03 Sheet.87 CLK_REQ_C CLK_REQ_C Sheet.88 Sheet.89 Sheet.90 Sheet.91 Sheet.92 Sheet.93 Sheet.94 Sheet.95 Sheet.96 RST_N RST_N Sheet.97 CLK_REQ_N CLK_REQ_N Sheet.98 Sheet.99 Sheet.100 Sheet.101 Sheet.102 Sheet.103 Sheet.104 Sheet.105 CLK_REQ_N CLK_REQ_N Sheet.106 Sheet.107 Sheet.108 Sheet.109 Sheet.110 Sheet.111 Sheet.112 Sheet.113 Sheet.114 Sheet.115 Sheet.116 Sheet.117 WAKE_N WAKE_N Sheet.118 Sheet.119 WAKE_N WAKE_N Sheet.120 Sheet.121 Sheet.122 Sheet.123 RST_N Sheet.124 Sheet.125 Sheet.126 RST_N Sheet.127 PCIE2_CLK_REQ_N Sheet.128 Sheet.129 Sheet.130 PCIE2_CLK_REQ_N Sheet.131 Sheet.132 Sheet.133 Sheet.134 Sheet.135 Sheet.136 Sheet.137 Sheet.138 Sheet.139 Sheet.140 Sheet.141 Sheet.142 Sheet.143 Sheet.144 Sheet.145 Sheet.146 Sheet.147 Sheet.148 Sheet.149 Sheet.150 Sheet.151 Sheet.152 Sheet.153 Sheet.154 Sheet.155 Sheet.156 Sheet.157 Sheet.158 Sheet.159 Sheet.160 Sheet.161 Sheet.162 Sheet.163 Sheet.164 Sheet.165 Sheet.166 Sheet.167 Sheet.168 Sheet.169 RST_N RST_N Sheet.170 CLK_REQ_N CLK_REQ_N Sheet.171 Sheet.172 Sheet.173 Sheet.174 Sheet.175 Sheet.176 Sheet.177 Sheet.178 Sheet.179 Sheet.180 Sheet.181 Sheet.182 Sheet.183 Sheet.184 Sheet.185 Sheet.186 Sheet.187 Sheet.188 Sheet.189 Sheet.190 Sheet.191 Sheet.192 QPS6490 QPS6490 Sheet.193 Interposer Interposer Sheet.194 Mainboard Mainboard Sheet.195 Industrial mezzanine Industrial mezzanine Sheet.196 Sheet.197 Sheet.198 Sheet.199 Sheet.200 Sheet.201 Sheet.202 Sheet.203 Sheet.204 Sheet.205 QPS615 QCS615 Sheet.206 QPS615 #1 QCS615 #1 Sheet.207 QPS615 #2 QCS615 #2 Sheet.208 Sheet.209 Sheet.210 Rectangle.25 Sheet.212 Sheet.213 RST2_N RST2_N Sheet.214 Sheet.215 Sheet.216 Sheet.217 Sheet.218 Sheet.219 Sheet.220 Sheet.221 Sheet.222 Sheet.223 Sheet.224 Sheet.225 CLK_REQ2_N CLK_REQ2_N Sheet.226 CLK_REQ1_N CLK_REQ1_N Sheet.227 CLK_REQ2_N CLK_REQ2_N Sheet.228 Sheet.229 CLK_REQ1_N CLK_REQ1_N Sheet.230 Sheet.231 Sheet.232 Sheet.233 Sheet.234 Sheet.235 Sheet.236 Sheet.237 Sheet.238 Square.29 Sheet.240 Sheet.241 Sheet.242 Sheet.243 RST1_N RST1_N Sheet.244 RST1_N RST1_N Sheet.245 RST2_N RST2_N Sheet.246 RST1_N RST1_N Sheet.247 CLK_REQ_N CLK_REQ_N Sheet.248 Sheet.249 Sheet.250 Sheet.251 And gate.70 AND AND Sheet.253 Sheet.254 Sheet.255 Sheet.256 Sheet.257 Sheet.258 Sheet.259 Sheet.260 Rectangle.61 Sheet.262 GPIO-CC PASSTHRU GPIO-CC PASSTHRU Sheet.263 GPIO-EE PASSTHRU GPIO-EE PASSTHRU Sheet.264 GPIO-DD PASSTHRU GPIO-DD PASSTHRU Sheet.265 HS PASSTHRU HS PASSTHRU Sheet.266 Sheet.267 CLK_REQ_N CLK_REQ_N Sheet.268 RST_N RST_N Sheet.269 Sheet.270 Sheet.271 Sheet.272 Sheet.273 WAKE_N WAKE_N Sheet.274 WAKE_N WAKE_N Circle Circle.289 Circle.290 Circle.291 Circle.292 Circle.293 Circle.294 Circle.295 Sheet.283 Sheet.284 Sheet.285 Sheet.286 Sheet.287 Sheet.288 Sheet.289 Sheet.290 Sheet.291 Circle.300 Circle.302 Circle.303 Circle.304 Circle.305 Circle.306 Circle.307 Circle.308 Circle.309 Circle.310 Circle.311 Sheet.303 RST_N RST_N Sheet.304 LGA pattern LGA pattern Sheet.305 500 pin connector 500 pin connector Sheet.306 HS/LS connectors HS/LS connectors To initiate the link training and enumeration for all endpoints, do the following: 1. To reset the QPS615 switch, toggle the RESX GPIOs for both QPS615 #1 and QPS615 #2. 2. To control the endpoint reset, trigger PERST. Both the switches share the PERST. The devices can be attached directly to the QPS615 switch. The PCIe RC0 is attached to the WLAN endpoint. The following differences are due to the PCIe node hierarchy. - Switch-attached devices: - The QPS615 PCIe tree node hierarchy is statically fixed. - All nodes for switching USP and DSP ports are created during PCIe initialization. - One of the switch DSP ports represents WLAN. - If you disable the WLAN node, it disables the WLAN device, but the PCIe downstream port remains enabled and returns a default maximum link width. - Directly-attached WLAN devices: - Disables only a single node. - Returns the Invalid argument, when WLAN is disabled. ## Enable NVMe through PCIe interface Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) This section describes how to enable NVMe using PCIe for storage expansion. To verify if NVMe is connected over a PCIe interface, do the following: 1. To display PCIe device information, run the following command. lspciCopy to clipboard Output: 0000:00:00.0 PCI bridge: Qualcomm Device 01150000:01:00.0 Network controller: Qualcomm QCNFA765 Wireless Network Adapter (rev 01)0001:00:00.0 PCI bridge: Qualcomm Device 01150001:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PROCopy to clipboard 2. Locate the PCIe logs. dmesg | grep pcieCopy to clipboard Output: [ 0.000000] Kernel command line: root=/dev/disk/by-partlabel/system rw rootwait console=ttyMSM0,115200n8 pcie_pme=nomsi net.ifnames=0 pci=noaer kpti=off kasan=off kasan.stacktrace=off swiotlb=128 earlycon reboot=panic_warm page_owner=on qcom_scm.download_mode=1 slub_debug=FZP, zs_handle,zspage;FZPU mitigations=auto kernel.sched_pelt_multiplier=4 rcupdate.rcu_expedited=1 rcu_nocbs=0-7 no-steal-acc vfio_iommu_type1.allow_unsafe_interrupts=1 fw_devlink.strict=1[ 3.842071] qcom-pcie 1c00000.pci: supply vdda not found, using dummy regulator[ 3.845339] qcom-pcie 1c10000.pci: supply vdda not found, using dummy regulator[ 3.845428] qcom-pcie 1c10000.pci: supply vddpe-3v3 not found, using dummy regulator[ 3.845508] qcom-pcie 1c10000.pci: host bridge /pci@1c10000 ranges:[ 3.845519] qcom-pcie 1c10000.pci: IO 0x0060200000..0x00602fffff -> 0x0000000000[ 3.845526] qcom-pcie 1c10000.pci: MEM 0x0060300000..0x007fffffff -> 0x0060300000[ 3.848154] qcom-pcie 1c00000.pci: supply vddpe-3v3 not found, using dummy regulator[ 3.854556] qcom-pcie 1c00000.pci: host bridge /pci@1c00000 ranges:[ 3.860574] qcom-pcie 1c00000.pci: IO 0x0040200000..0x00402fffff -> 0x0000000000[ 3.867362] qcom-pcie 1c00000.pci: MEM 0x0040300000..0x005fffffff -> 0x0040300000[ 3.963275] qcom-pcie 1c10000.pci: iATU: unroll T, 32 ob, 8 ib, align 4K, limit 1024G[ 3.990385] qcom-pcie 1c00000.pci: iATU: unroll T, 32 ob, 8 ib, align 4K, limit 1024G[ 4.072091] qcom-pcie 1c10000.pci: PCIe Gen.4 x2 link up[ 4.080241] qcom-pcie 1c10000.pci: PCI host bridge to bus 0001:00[ 4.291824] pcieport 0001:00:00.0: Adding to iommu group 9[ 4.551677] pcieport 0001:00:00.0: PME: Signaling with IRQ 256[ 4.572484] WARNING: CPU: 3 PID: 89 at drivers/pci/controller/dwc/pcie-qcom.c:1430 qcom_pcie_icc_update+0xf8/0x144[ 4.595291] pc : qcom_pcie_icc_update+0xf8/0x144[ 4.595293] lr : qcom_pcie_icc_update+0x9c/0x144[ 4.640742] qcom_pcie_icc_update+0xf8/0x144[ 4.640745] qcom_pcie_probe+0x234/0x30c[ 4.988519] qcom-pcie 1c00000.pci: Phy link never came up[ 5.302179] qcom-pcie 1c00000.pci: PCI host bridge to bus 0000:00[ 5.372008] pcieport 0000:00:00.0: Adding to iommu group 10[ 5.378905] pcieport 0000:00:00.0: PME: Signaling with IRQ 257[ 11.564590] pcieport 0000:00:00.0: BAR 14: assigned [mem 0x40400000-0x405fffff]Copy to clipboard 3. To locate the NVMe directories, run the following command. ls -lh /dev/nvme*Copy to clipboard Output: crw-------. 1 root root 508, 0 Jan 1 00:00 /dev/nvme0brw-rw----. 1 root disk 259, 30 Jan 1 00:00 /dev/nvme0n1Copy to clipboard ## PCIe client driver sample Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) The client driver defines the `device-id` table and `pci_driver` structures, and registers with the PCIe framework. The following are a few PCIe client driver samples for reference. - Sample data structure to hold client-specific private data. struct sample_driver_data { int driver_data; };Copy to clipboard - Sample driver: You can provide data according to your driver-specific data structure. struct sample_driver_data info = {};Copy to clipboard - Sample device ID table with the driver-specific data. The client driver registers with the `0x306` device ID. static const struct pci_device_id sample_pci_id_table[] = { { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, PCI_VENDOR_ID_QCOM, 0x010c), .driver_data = (kernel_ulong_t) &info }, { } }; MODULE_DEVICE_TABLE(pci, sample_pci_id_table);Copy to clipboard Note: `MODULE_DEVICE_TABLE(pci, sample_pci_id_table);` is mandatory. - Sample `pci_driver` data structure with client driver name, `pci-id` table, and callbacks. The pointer to this structure is passed while registering with the PCI frame work. static struct pci_driver sample_pci_driver = { .name = "Sample-PCI-Client-driver", /* Give the name that suites your driver description */ .id_table = sample_pci_id_table, /* pci core driver will compare from ids's supplied in this table with the enumerated endpoints */ .probe = sample_pci_probe, /* probe function is invoked by the PCI f/w when id matches with the endpoint id's */ .remove = sample_pci_remove, /* Remove function is invoked by PCI f/w when senses the attached endpoint/function is detached or down */ .driver.pm = &sample_pci_pm_ops /* pm ops that will be called from the pci core driver*/ };Copy to clipboard - To register with PCI firmware, call `pci_register_driver(&sample_pci_driver)` from `module_init()`. module_pci_driver(sample_pci_driver);Copy to clipboard ## PCIe bringup Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) For information about PCIe bringup, seeĀ [PCIe-related configurations](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html#pcie-software-support-feature-for-qps615__section_xbl_hhd_l1c) andĀ [QPS615 switch support](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html#pcie-software-support-feature-for-qps615__section_nmw_5jd_l1c). ## PCIe power optimization Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) PCIe defines two types of power management methods. - Power management software that determines the power management capability of each device and manages each device individually - System that doesn't require software intervention such as active state power management (ASPM) During a time period when no packet is transmitted through the link, a device places the link into a power-saving state. ### PCIe L0 link states PCIe power management defines the following L0 link states: - L0: active state where all PCIe transactions and other operations are enabled - L0s: ASPM state with low-resume latency (energy saving standby state) ### PCIe device states PCIe power management defines the following device states: - D0 (mandatory): The device is in full ON state, where there are two substates - D0uninitialized: The function is present in the D0uninitialized state after the device comes out of reset, waiting to be enumerated and configured. - D0active - The function is present in the D0active state following the completion of the enumeration and configuration process. - The function enters the D0active state when the system software enables one or more (in any combination) function parameters, such as memory space enable, I/O space enable, or BME bits. - D1 (optional): light-sleep state - The function can't initiate a TLP except for the PME message - The function can't act as the target of transactions other than for configuration transactions. - The function issues a software command to enter the D1 state by programming the PM control and status register. - D2 (optional): deep-sleep state - The function can't initiate a TLP except for the PME message - The function can't act as the target of transactions other than configuration transactions. - The function issues a software command to enter the D2 state by programming the PM control and status register. - D3 (mandatory): device is the lowest power state, where the function must support both the D3 states - D3hot - The function can't initiate a TLP except for the PME message. - The function can't act as the target of transactions other than configuration transactions. - The function issues a software command to enter the D3hot state by programming the power state field. - D3cold: device enters the D3cold state and power is removed; when power is restored, the device enters the D0uninitialized state. ## PCIe verification Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) For information about PCIe verification, seeĀ [PCIe-related configurations](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html#pcie-software-support-feature-for-qps615__section_xbl_hhd_l1c) andĀ [QPS615 switch support](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html#pcie-software-support-feature-for-qps615__section_nmw_5jd_l1c). ## Debug PCIe issues Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) The `lspci` and `setpci` commands are native to Linux distributions. These commands have various levels of output. These commands also provide a useful point-in-time look at the capabilities and status of the different components trained on the PCI bus. Most of these capabilities are reflections of the configuration space registers required by the PCIe base specification. For more details, seeĀ [https://pcisig.com/specifications](https://pcisig.com/specifications). To view the usage instructions, run the following command. lspci --helpCopy to clipboard The following features are useful in troubleshooting PCIe issues. - Display device information lspciCopy to clipboard The following message is displayed. 0001:00:00.0 PCI bridge: Qualcomm Device 010b 0001:01:00.0 PCI bridge: Toshiba Corporation Device 0623 0001:02:01.0 PCI bridge: Toshiba Corporation Device 0623 0001:02:02.0 PCI bridge: Toshiba Corporation Device 0623 0001:02:03.0 PCI bridge: Toshiba Corporation Device 0623 0001:04:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03) 0001:05:00.0 Ethernet controller: Toshiba Corporation Device 0220 0001:05:00.1 Ethernet controller: Toshiba Corporation Device 0220Copy to clipboard - Display PCIe device and vendor IDs in the device control register. lspci -nvmmCopy to clipboard The following message is displayed. Slot: 0001:00:00.0 Class: 0604 Vendor: 17cb Device: 010b DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0 IOMMUGroup: 33 Slot: 0001:01:00.0 Class: 0604 Vendor: 1179 Device: 0623 DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0 IOMMUGroup: 33 Slot: 0001:02:01.0 Class: 0604 Vendor: 1179 Device: 0623 DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev1_fn0 IOMMUGroup: 33 Slot: 0001:02:02.0 Class: 0604 Vendor: 1179 Device: 0623 DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev2_fn0 IOMMUGroup: 33 Slot: 0001:02:03.0 Class: 0604 Vendor: 1179 Device: 0623 DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev3_fn0 IOMMUGroup: 33 Slot: 0001:04:00.0 Class: 0c03 Vendor: 1912 Device: 0014 Rev: 03 ProgIf: 30 DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev2_fn0/pcie1_bus4_dev0_fn0 IOMMUGroup: 33 Slot: 0001:05:00.0 Class: 0200 Vendor: 1179 Device: 0220 SVendor: 1179 SDevice: 0001 DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev3_fn0/qps615_eth0,qps615_eth0@pcie1_rp IOMMUGroup: 33 Slot: 0001:05:00.1 Class: 0200 Vendor: 1179 Device: 0220 SVendor: 1179 SDevice: 0001 DTNode: /sys/firmware/devicetree/base/soc@0/pci@1c08000/pcie@0/pcie1_bus1_dev0_fn0/pcie1_bus2_dev3_fn0/qps615_eth1,qps615_eth1@pcie1_rp IOMMUGroup: 33Copy to clipboard For more info on PCIe debugging, seeĀ [https://www.kernel.org/doc/html/v4.17/driver-api/pci.html](https://www.kernel.org/doc/html/v4.17/driver-api/pci.html). ## PCIe examples Source: [https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html](https://docs.qualcomm.com/doc/80-70030-8/topic/pcie.html) For information about the upstream device tree reference, seeĀ the following files. - QCS6490 and QCS5430:Ā [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/kodiak.dtsi](https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/kodiak.dtsi) - Dragonwing IQ-9075:Ā [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/lemans.dtsi](https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/lemans.dtsi) - Dragonwing IQ-615: [https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/tree/arch/arm64/boot/dts/qcom/qcs615.dtsi?h=arm64-for-6.16](https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/tree/arch/arm64/boot/dts/qcom/qcs615.dtsi?h=arm64-for-6.16) - [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/controller/dwc/pcie-qcom.c?h=v6.8-rc6#n1634](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/controller/dwc/pcie-qcom.c?h=v6.8-rc6#n1634) For information about device-tree node for the Qualcomm Linux hardware SoCs, seeĀ the following DTSI files. - QCS6490 and QCS5430:Ā [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts](https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts) - Dragonwing IQ-9075:Ā [https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/lemans.dtsi](https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/qcom/lemans.dtsi) - Dragonwing IQ-615: [https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/tree/arch/arm64/boot/dts/qcom/qcs615.dtsi?h=arm64-for-6.16](https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git/tree/arch/arm64/boot/dts/qcom/qcs615.dtsi?h=arm64-for-6.16) ### Client and PCI driver operation flow example The following figure shows the sequence that the PCIe client driver follows to configure the PCIe driver for a client. ![](data:image/png;base64,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) ### Client and PCI driver high-level call flow example The following figure shows the high-level call flow and call details between the PCIe client driver and PCIe driver. ![](data:image/png;base64,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) Last Published: Jul 03, 2026 [Previous Topic I3C](https://docs.qualcomm.com/bundle/publicresource/80-70030-8/topics/i3c.md) [Next Topic USB](https://docs.qualcomm.com/bundle/publicresource/80-70030-8/topics/usb.md)