This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5726: PCIe not working

Part Number: AM5726
Other Parts Discussed in Thread: DS80PCI102

Tool/software: Linux

Hi Team,

In one of the custom boards we are using both PCIE ports in RC mode and one is connected with the Buffer DS80PCI102 device and one directly. On both the ports similar WIFI deivce is connected. 

The issue in on the port where the WIFI device is connected directly always gets detected but in the port where the buffer is connected the device does not get detected and its very frequent and random.

Any suggestions ? If more data is required we can share,

Best Regards,

Ronak

  • Hi,

    We are using the kernel 4.9 and SDK version is 4.3.0.5.
    We are enabling the required GPIOs ( reset and POWERON) from u-boot and see that the modules are out of reset always.

    Best regards,
    Ronak
  • Hi, Ronak,

    We don't have setup to check the DS80PCI102, but what does the lspci show? Is it get enumerated when kernel boots up?

    Rex
  • Hi Ronak,
    On the port with the buffer installed in the signal path, does the downstream device ever enumerate?
  • Some time the wifi card which is connected on second pci slot it's got detected and some time it's not.

    It is very random and frequent.

    Below is the log for lspci.

    when it is not detected.

    =======================

    root@am57xx-evm:~# lspci
    0000:00:00.0 PCI bridge: Texas Instruments Multicore DSP+ARM KeyStone II SOC (rev 01)
    0000:01:00.0 Network controller: Qualcomm Atheros Device 0046
    0001:00:00.0 Non-VGA unclassified device: Texas Instruments Multicore DSP+ARM KeyStone II SOC (rev 01)

    And kernel log

    root@am57xx-evm:~# dmesg | grep pci
    [ 0.755005] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.3
    [ 0.755164] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null)
    [ 0.755171] dra7-pcie 51000000.pcie: using device tree for GPIO lookup
    [ 0.755200] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]' - status (0)
    [ 0.755321] OF: PCI: host bridge /ocp/axi@0/pcie@51000000 ranges:
    [ 0.755332] OF: PCI: No bus range found for /ocp/axi@0/pcie@51000000, using [bus 00-ff]
    [ 0.856543] dra7-pcie 51000000.pcie: link up
    [ 0.856709] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
    [ 0.856722] pci_bus 0000:00: root bus resource [bus 00-ff]
    [ 0.856732] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
    [ 0.856743] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
    [ 0.856777] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400
    [ 0.856799] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
    [ 0.856813] pci 0000:00:00.0: reg 0x14: [mem 0x00000000-0x0000ffff]
    [ 0.856880] pci 0000:00:00.0: supports D1
    [ 0.856887] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
    [ 0.857302] pci 0000:01:00.0: [168c:0046] type 00 class 0x028000
    [ 0.857388] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
    [ 0.857791] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
    [ 0.879955] pci 0000:00:00.0: BAR 8: assigned [mem 0x20200000-0x203fffff]
    [ 0.879968] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff]
    [ 0.879982] pci 0000:00:00.0: BAR 1: assigned [mem 0x20020000-0x2002ffff]
    [ 0.879998] pci 0000:01:00.0: BAR 0: assigned [mem 0x20200000-0x203fffff 64bit]
    [ 0.880045] pci 0000:00:00.0: PCI bridge to [bus 01]
    [ 0.880058] pci 0000:00:00.0: bridge window [mem 0x20200000-0x203fffff]
    [ 0.880282] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
    [ 0.880292] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
    [ 0.880304] pcie_pme 0000:00:00.0:pcie001: service driver pcie_pme loaded
    [ 0.880432] aer 0000:00:00.0:pcie002: service driver aer loaded
    [ 0.880695] dra7-pcie 51800000.pcie: Linked as a consumer to phy-4a095000.pciephy.4
    [ 0.880797] dra7-pcie 51800000.pcie: GPIO lookup for consumer (null)
    [ 0.880804] dra7-pcie 51800000.pcie: using device tree for GPIO lookup
    [ 0.880830] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@1/pcie@51800000[0]' - status (0)
    [ 0.880938] OF: PCI: host bridge /ocp/axi@1/pcie@51800000 ranges:
    [ 0.880949] OF: PCI: No bus range found for /ocp/axi@1/pcie@51800000, using [bus 00-ff]
    [ 1.882357] dra7-pcie 51800000.pcie: phy link never came up
    [ 1.882516] dra7-pcie 51800000.pcie: PCI host bridge to bus 0001:00
    [ 1.882528] pci_bus 0001:00: root bus resource [bus 00-ff]
    [ 1.882540] pci_bus 0001:00: root bus resource [io 0x10000-0x1ffff] (bus address [0x0000-0xffff])
    [ 1.882551] pci_bus 0001:00: root bus resource [mem 0x30013000-0x3fffffff]
    [ 1.882580] pci 0001:00:00.0: [104c:8888] type 01 class 0x000000
    [ 1.882591] pci 0001:00:00.0: ignoring class 0x000000 (doesn't match header type 01)
    [ 1.882646] pci 0001:00:00.0: supports D1
    [ 1.882654] pci 0001:00:00.0: PME# supported from D0 D1 D3hot
    [ 1.882879] pci 0001:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [ 1.883011] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
    [ 1.883167] pci 0001:00:00.0: not setting up bridge for bus 0001:01

    When it is going to detect

    =========================

    root@am57xx-evm:~# lspci
    0000:00:00.0 PCI bridge: Texas Instruments Multicore DSP+ARM KeyStone II SOC (rev 01)
    0000:01:00.0 Network controller: Qualcomm Atheros Device 0046
    0001:00:00.0 PCI bridge: Texas Instruments Multicore DSP+ARM KeyStone II SOC (rev 01)
    0001:01:00.0 Network controller: Qualcomm Atheros Device 0046

    And kernel log

    root@am57xx-evm:~# dmesg | grep pci
    [ 0.754936] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.3
    [ 0.755092] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null)
    [ 0.755100] dra7-pcie 51000000.pcie: using device tree for GPIO lookup
    [ 0.755127] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]' - status (0)
    [ 0.755249] OF: PCI: host bridge /ocp/axi@0/pcie@51000000 ranges:
    [ 0.755261] OF: PCI: No bus range found for /ocp/axi@0/pcie@51000000, using [bus 00-ff]
    [ 0.856476] dra7-pcie 51000000.pcie: link up
    [ 0.856645] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
    [ 0.856658] pci_bus 0000:00: root bus resource [bus 00-ff]
    [ 0.856669] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
    [ 0.856679] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
    [ 0.856712] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400
    [ 0.856734] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
    [ 0.856748] pci 0000:00:00.0: reg 0x14: [mem 0x00000000-0x0000ffff]
    [ 0.856815] pci 0000:00:00.0: supports D1
    [ 0.856822] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
    [ 0.857237] pci 0000:01:00.0: [168c:0046] type 00 class 0x028000
    [ 0.857323] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
    [ 0.857726] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
    [ 0.879954] pci 0000:00:00.0: BAR 8: assigned [mem 0x20200000-0x203fffff]
    [ 0.879967] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff]
    [ 0.879981] pci 0000:00:00.0: BAR 1: assigned [mem 0x20020000-0x2002ffff]
    [ 0.879997] pci 0000:01:00.0: BAR 0: assigned [mem 0x20200000-0x203fffff 64bit]
    [ 0.880045] pci 0000:00:00.0: PCI bridge to [bus 01]
    [ 0.880057] pci 0000:00:00.0: bridge window [mem 0x20200000-0x203fffff]
    [ 0.880284] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
    [ 0.880294] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
    [ 0.880305] pcie_pme 0000:00:00.0:pcie001: service driver pcie_pme loaded
    [ 0.880434] aer 0000:00:00.0:pcie002: service driver aer loaded
    [ 0.880696] dra7-pcie 51800000.pcie: Linked as a consumer to phy-4a095000.pciephy.4
    [ 0.880800] dra7-pcie 51800000.pcie: GPIO lookup for consumer (null)
    [ 0.880807] dra7-pcie 51800000.pcie: using device tree for GPIO lookup
    [ 0.880834] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@1/pcie@51800000[0]' - status (0)
    [ 0.880940] OF: PCI: host bridge /ocp/axi@1/pcie@51800000 ranges:
    [ 0.880951] OF: PCI: No bus range found for /ocp/axi@1/pcie@51800000, using [bus 00-ff]
    [ 0.982152] dra7-pcie 51800000.pcie: link up
    [ 0.982312] dra7-pcie 51800000.pcie: PCI host bridge to bus 0001:00
    [ 0.982324] pci_bus 0001:00: root bus resource [bus 00-ff]
    [ 0.982337] pci_bus 0001:00: root bus resource [io 0x10000-0x1ffff] (bus address [0x0000-0xffff])
    [ 0.982347] pci_bus 0001:00: root bus resource [mem 0x30013000-0x3fffffff]
    [ 0.982377] pci 0001:00:00.0: [104c:8888] type 01 class 0x060400
    [ 0.982398] pci 0001:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
    [ 0.982410] pci 0001:00:00.0: reg 0x14: [mem 0x00000000-0x0000ffff]
    [ 0.982472] pci 0001:00:00.0: supports D1
    [ 0.982479] pci 0001:00:00.0: PME# supported from D0 D1 D3hot
    [ 0.982878] pci 0001:01:00.0: [168c:0046] type 00 class 0x028000
    [ 0.982970] pci 0001:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
    [ 0.983413] pci 0001:01:00.0: PME# supported from D0 D3hot D3cold
    [ 1.010016] pci 0001:00:00.0: BAR 8: assigned [mem 0x30200000-0x303fffff]
    [ 1.010030] pci 0001:00:00.0: BAR 0: assigned [mem 0x30100000-0x301fffff]
    [ 1.010043] pci 0001:00:00.0: BAR 1: assigned [mem 0x30020000-0x3002ffff]
    [ 1.010059] pci 0001:01:00.0: BAR 0: assigned [mem 0x30200000-0x303fffff 64bit]
    [ 1.010109] pci 0001:00:00.0: PCI bridge to [bus 01]
    [ 1.010121] pci 0001:00:00.0: bridge window [mem 0x30200000-0x303fffff]
    [ 1.010332] pcieport 0001:00:00.0: Signaling PME through PCIe PME interrupt
    [ 1.010342] pci 0001:01:00.0: Signaling PME through PCIe PME interrupt
    [ 1.010353] pcie_pme 0001:00:00.0:pcie001: service driver pcie_pme loaded
    [ 1.010481] aer 0001:00:00.0:pcie002: service driver aer loaded

    Please let me know in case of any more information is required.

    Regards,

    Ronak

  • Hi DK,

    Yes after buffer we have connected the 5.8GHz wifi card on mini-PCIe.
    It is going to detect some time but success ratio is very less.
    I have also post the kernel log as well as lspci log in previous post for your information.
    Let me know in case of any more information is required.

    Regards,
    Ronak
  • Hi Ronak,
    This seems like a signal integrity issue that would be better addressed by the team supporting the buffer itself. As you point out, the port without the buffer works well.

    I'll move this thread to the forum supporting the buffer. I've already notified the support engineer, so he will be expecting it.
  • Ronak

    What are your DS80PCI102 EQ, de-emphasis, and VOD set to? Often when there is no port detected, it is because the redriver is severely over-equalizing the signal. Note that if the device is not in pin mode, the default EQ value for this redriver is 0x2F, which is over 20 dB of gain. If the insertion loss before the redriver is minimal, this could be causing the break. I would suggest setting the EQ to 0x00, VOD = 1.0V, and DEM = 0dB, then see if the port identifies. If not, then slowly increase the EQ.

    By the way, what is channel insertion loss on both side of the redriver?

    Thanks
    David