PCIe not detecting hardware on custom board

Device Tree excerpt

pcie-controller@10003000 {
        reg = <0x0 0x10003000 0x0 0x800 0x0 0x10003800 0x0 0x800 0x0 0x40000000 0x0 0x10000000>;
        interrupts = <0x0 0x48 0x4 0x0 0x49 0x4>;
        reg-names = "pads", "afi", "cs";
        compatible = "nvidia,tegra186-pcie";
        clock-names = "afi", "pcie", "clk_m";
        reset-names = "afi", "pcie", "pciex";
        bus-range = <0x0 0xff>;
        interrupt-names = "intr", "msi";
        device_type = "pci";
        clocks = <0xd 0x4 0xd 0x3 0xd 0x261>;
        #interrupt-cells = <0x1>;
        power-domains = <0xad>;
        ranges = <0x82000000 0x0 0x10000000 0x0 0x10000000 0x0 0x1000 0x82000000 0x0 0x10001000 0x0 0x10001000 0x0 0x1000 0x82000000 0x0 0x10004000 0x0 0x10004000 0x0 0x1000 0x81000000 0x0 0x0 0x0 0x50000000 0x0 0x10000 0x82000000 0x0 0x50100000 0x0 0x50100000 0x0 0x7f00000 0xc2000000 0x0 0x58000000 0x0 0x58000000 0x0 0x28000000>;
        resets = <0xd 0x1 0xd 0x1d 0xd 0x1e>;
        status = "okay";
        #address-cells = <0x3>;
        interrupt-map = <0x0 0x0 0x0 0x0 0x1 0x0 0x48 0x4>;
        interrupt-map-mask = <0x0 0x0 0x0 0x0>;
        phandle = <0x6a>;
        #stream-id-cells = <0x1>;
        vddio-pexctl-aud-supply = <0xe>;
        #size-cells = <0x2>;
        linux,phandle = <0x6a>;



        prod-settings {
            #prod-cells = <0x3>;

            prod_c_pad {
                prod = <0xc8 0xffffffff 0x80b880b8 0xcc 0xffffffff 0x480b8>;
            };
        };

        pci@1,0 {
            reg = <0x800 0x0 0x0 0x0 0x0>;
            assigned-addresses = <0x82000800 0x0 0x10000000 0x0 0x1000>;
            device_type = "pci";
            nvidia,disable-clock-request;
            ranges;
            status = "okay";
            #address-cells = <0x3>;
            #size-cells = <0x2>;
            nvidia,afi-ctl-offset = <0x110>;
            nvidia,num-lanes = <0x2>;
        };

        pci@2,0 {
            reg = <0x1000 0x0 0x0 0x0 0x0>;
            assigned-addresses = <0x82001000 0x0 0x10001000 0x0 0x1000>;
            device_type = "pci";
            ranges;
            status = "okay";
            #address-cells = <0x3>;
            #size-cells = <0x2>;
            nvidia,afi-ctl-offset = <0x118>;
            nvidia,num-lanes = <0x1>;
        };

        pci@3,0 {
            reg = <0x1800 0x0 0x0 0x0 0x0>;
            assigned-addresses = <0x82001800 0x0 0x10004000 0x0 0x1000>;
            device_type = "pci";
            ranges;
            status = "okay";
            #address-cells = <0x3>;
            #size-cells = <0x2>;
            nvidia,afi-ctl-offset = <0x19c>;
            nvidia,num-lanes = <0x1>;
        };
    };

We have our device connected to PEX2 as shown, I’m confused between port 2 and 3. So I’ve enabled both. A board by connect tech seems to detect the PCIe device, so I don’t think its a driver issue.

Let me know if I can provide more details, Thanks!

Hi, have you compared your design to design guide and devkit P2597 board schematic? What’s the PCI2_RST connected to? Also there should be no AC cap on PCI2_REFCLK line.

1 Like

AC coupling was already removed on REFCLK and connected directly. Reset from tx2 is connected to reset pin of module.

PEX2_RST is connected to PERST#PIN 22 of the connector.

Using a differential probe we checked if signals were going to the module on C106 and C107 on either side of the capacitor, this was confirmed to be true.

But on C104 and C105 there wasn’t any signal to be found.

REFCLK has also been probed and verified

Is there any software guy on your side to help check? The next work should be reading the adaptation guide and make sure the board config is what you want to use.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.