Hi,
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.
Note:
If you have any patch for detecting PCIe switch, please provide us.
Regards,
Bala
Hi,
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.
Regards,
Bala.D
Hi igor,
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.
Hi FAbio,
Thank you for your response, can you pls provide the kernel source link of 3.18.rc2 as well as u-boot 2014
You can get the sources from the official repositories.
For the kernel: https://www.kernel.org/
For U-boot: git.denx.de Git - u-boot.git/summary
Hi bala
I think you can check below
MX6 and PCIE implementation question?
PCIe with PCIe Switch PI7C9X2G303EL or PLX8603 with 3.10.17_1.0.0_ga
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
14:58:14.000000000 -0700
+++ linux-3.0.35-imx/arch/arm/mach-mx6/pcie.c 2013-09-17
10:20:41.369546454 -0700
@@ -830,11 +862,14 @@ static int __devinit imx_pcie_pltfm_prob
usleep_range(3000, 4000);
imx_pcie_regions_setup(dbi_base);
usleep_range(3000, 4000);
+ /* 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,
IOMUXC_GPR12);
Seems this allows it to be detected at initial power-up reliably.
Best regards
igor
Hi igor,
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.
Regards,
Bala.D
Hi,
Thank you for your reply we have already checked the below link. I couldn't able to find the patch.