We are currrently using seco Q-7 processor module based on iMX6q. In our carrier card pericom pci switch PI7C9X2G404SL.
1.PCie Root is I.mX6q PROCESSOR
2.PCIe switch pericom (PI7C9X2G404SL).
3. Our linux version is 3.0.35
ad we have found the following observation during testing,
1.Intially PCIe not detecting (PCIe link down), due to reset asserted before clock getting stable,we have managed to give manual reset.
2.Now the PCIe root is up we can able to read I.MX6 PCIe device ID using lspci command.
3.But we are not able to detect the PCIe switch.
Canyou please help us to solve the issue.
If you have any patch for detecting PCIe switch, please provide us.
sorry for the late responce. We are using SECO's Processor card where the linux 3.0.35 is ported already, so we are not able to use the latest one, do you have any patch files for PCIe switch support.
I have read the links, i am not clear i'm currently using the given pci.c file,
If it is INTx or iATU related problem where i should look.
As of now my host I.MX6 link is up and i can able to print the device ID, Vendor ID of I.MX6 but i cant able to enumerate or detect the switch.
can you please give the code for linux 3.0.35 version patch.
I would suggest you to use kernel 3.18-rc2. We have several bug fixes in the pci driver recently.
Also, you can also try U-boot 2014.10 that has support for PCI on mx6 and you can try to see if it detects your switch.
I think you can check below
To fix the initial issue with the PLX switch not talking some customers
patched imx_pcie_pltfm_probe() function:
--- patched-linux-3.0.35-imx/arch/arm/mach-mx6/pcie.c 2013-07-30
+++ linux-3.0.35-imx/arch/arm/mach-mx6/pcie.c 2013-09-17
@@ -830,11 +862,14 @@ static int __devinit imx_pcie_pltfm_prob
+ /* force gen1 only */
+ tmp =3D readl(dbi_base + LNK_CAP) & ~0x0F;
+ writel(tmp | 0x01, dbi_base + LNK_CAP);
/* start link up */
imx_pcie_clrset(IOMUXC_GPR12_APP_LTSSM_ENABLE, 1 << 10,
Seems this allows it to be detected at initial power-up reliably.
Sorry for the late reply, We are using the same pcie.c file, I think it includes a sleep option to fix reset isuue.
We are using the same bt we are not able to detect the switch.