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.

AM5728: Simultaneous use of both PCIe ports

Part Number: AM5728

Hi

I am going to design a motherboard with AM5728 as CPU and Linux as OS. I am going to use some PCIe and PCI slots on it. I want to make sure about using PCIe switch and PCIe to PCI bridge. I am planing to use PEX8609 as PCIe switch (it was already been used with iMX6Q cpu) and TI XIO2001 as PCIe to PCI bridge.

1- Is it possible to operate both PCIESS1 and PCIESS2 both in x1 at the same time?

2- Is it possible to attach a x4 PCIe peripheral card (EP) to AM5728 via PCIe switch?

3- Is there any need for some changes in the Linux kernel or driver for the following system to be functional?

Thanks.

  • The PCIe experts have been notified. They will respond here.
  • Hi, Aidin,

    yes, AM5728 can have both PCIe ports enabled.

    AM5728 only concerns what are connected to it. It will enumerate the bridge and switch and detect downstream devices. AM5728 will show its PCIe port being capable of x1. I don't think downstream x4 PCIe will get much benefit out of what it is capable of.

    The change will be in dts file to configure both PCIe ports. TI AM5728 GP EVM has only 1 PCIe port configured.

    Rex
  • Hi Rex

    Thanks a lot for the information. Before making the hardware, I want to run some tests on EVM. I had Pericom PCIe switch and bridge cards in the neighborhood. 

    I plugged a Pericom PCIe x1 to 3 x1 switch card with PI7C9X2G404SL chip into EVM but the OS did not detect it. I also plugged a Pericom PCIe x1 to PCI bridge card with PI7C9X111SL chip into EVM but the OS did not detect it either.

    I have tested the PCIe module of the EVM with 2 different WiFi cards and it seems the PCIe bus is live and active. But I could not get any response from switch nor bridge. 

    I also plugged an ASIX MCS9901 miniPCIe to UART card into EVM but there was no response.

    All the cards I have mentioned are functional in the PC.

    I have checked the schematics of EVM. It seems it just uses the PERSTn signal and there is no WAKEn nor CLKREQn. And there is just PERSTn entry on the dts file. Is this going to make any problems with PCIe peripheral modules?

    Thanks for your help

  • Hi Again

    Just an update: We could communicate with PI7C9X111SL PCIe to PCI bridge chip and the peripheral cards attached to it. The problem was from the power connector. We are trying to get answers from the other modules but nothing comes out.

    Thanks
  • Hi, Aidin,

    When a device is not detected, most likely it is because its driver is not enabled/installed. I did a quick google search on "ASIX MCS9901 linux", and it seems to me that the driver is needed and be downloaded from ASIX website. Please refer to "PCIe Debugging" Document at processors.wiki.ti.com/.../PCIe_Debugging . It differs from device to device, but the basic concept is the same.

    Rex
  • Aldin,
    Please let us know if you got all working....thanks for using our AM57x.
  • Hi Rogerio

    I have successfully connect the PCIe to PCI bridge and I used 2 different PCI cards. They were successfully identified and I could communicate with them without any problems.

    But I could not interface the PCIe switch to the AM5728. The PCIe switch was not identified by the Linux and I could not figure it out yet.

    Any suggestions?

    Thanks.

  • Hi Rex
    We are aware about the driver installation. We have compiled the driver for the AM5728 and we checked it (#insmod) is running on target. The problem is, the ASIX End Point device is not even detected on PCIe bus. The output of lspci command is not showing it. But even if the driver is not installed, the output of lspci command should show the device. For example I use an Intel Wi-Fi 5100 card and it was detected by lspci (the driver of the card is not available for ARM platform and Intel just provided a ucode for x86 and x64 platforms).
    I suspect there is something with control signals that the ASIX use, Since the AM5728 PCIe just provide the PERST# and there is no support for other signals like WAKE# & CLKREQ# .

    Any suggestions ?
    Thanks a lot.
  • Hi, Aidin,

    We don't have experience with this ASIX device, but I downloaded its linux driver and took a look at the package. Did you follow the steps in the readme to cross-compile the module and rebuild the kernel? This is the only thing I can think of.
    I am not familiar with hardware signals to tell if they are significant, but if they were, wouldn't it cause compatibility with other end devices, not just ASIX?

    Rex
  • Hi, Aidin,

    I just checked with Hardware engineer about the WAKE# and CLKREQ# signals and is it possible the cause for the device not detected, and his response is:

    They would need to strap those pins according to the ASIX data manual. I’m not familiar with that device so I couldn’t say if they will keep it from being recognized (but I doubt it).

    Rex
  • Hi Rex

    Yes the procedure for cross compiling the module was done correctly. But regardless of the module being in the kernel or not, the PCIe EP should be detected. My main problem is the device is not detected on the link.
    The PCIe switch is not detected either.
    I checked the PCIe specs again, it is just the PERST# signal needed from RC to EP and WAKE# & CLKREQ# are not mandatory since they are output from EP.
    I try to figure it out. Maybe I change the device and let you know here.