Hi,
I am writing a driver for PCI express (RC mode) on IMX6 (var-som-mx6). I have successfully enabled the clock and have access to PCIe registers. But I cannot link up the port. I followed the steps in imx6 SDK except for two parts
1- In the SDK, external oscillator is being used to provide the clock to the PCIe module whereas I have used internal clock
2 - There was a step to enable 3.3v for PCI mini by making a GPIO high. I couldn't find which pin it was and also I checked the voltages on PCI mini connector on the board and all of the voltages were there, so I am assuming that we don't require this step for my board.
After trying a lot I looked at the Linux driver for IMX6. It does all of the configuration being done in SDK along with some extra things like setting the number of lanes and speed of the link, setting bus number, BARs, memory base and limit etc. It also forces Gen1 operation before starting the link.
I have tried both but I am not successful. Also, I have searched a lot, looked at the PCI specifications document, imx6 reference manual, tried EP mode etc but haven't found anything that helped me. I am writing the PCI driver for the first time and also haven't worked with Phy before.
I will really appreciate if anybody can help me.
Best Regards,
Amna
解決済! 解決策の投稿を見る。
Hi Amna
what sdk used in the case, is it possible to provide link.
Basic PCIe test steps are described in
i.MX6Q PCIe EP/RC Validation System
Also one can test with nxp linux bsps described on
recommended to test several pcie cards.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Igor,
Thanks for your reply. I am using the SDK provided in this link.
GitHub - ted-juan/iMX6_Platform_SDK: Freescale iMX6 SDK
I have the correct test setup and I also used multiple pcie cards including PCIe base USB host controller, ethernet cards and SSD drive but the link does not go up with any of them.
I don't have any experience with building and debugging linux so that will be very time consuming. I would really appreciate if someone can help me with the link up without having to build linux.
Regards,
Amna
Hi Amna
one can try attached sdk example.
Best regards
igor
Igor,
Thank you. I was not enabling the differential clock for the PCIe (CLK1_N and CLK1_P). I got the link up after enabling this clock.
Regards,
Amna