IMX6 PCIe link up problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6 PCIe link up problem

Jump to solution
2,087 Views
amnatehreem
Contributor II

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

Labels (2)
0 Kudos
1 Solution
1,458 Views
igorpadykov
NXP Employee
NXP Employee

Hi Amna

one can try attached sdk example.

Best regards
igor

View solution in original post

0 Kudos
4 Replies
1,458 Views
igorpadykov
NXP Employee
NXP Employee

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

https://www.nxp.com/support/developer-resources/run-time-software/i.mx-developer-resources/i.mx-6ser...

recommended to test several pcie cards.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,458 Views
amnatehreem
Contributor II

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

0 Kudos
1,459 Views
igorpadykov
NXP Employee
NXP Employee

Hi Amna

one can try attached sdk example.

Best regards
igor

0 Kudos
1,458 Views
amnatehreem
Contributor II

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

0 Kudos