This document introduces how to setup i.MX6Dual/Quad and i.MX6Solo/DualLite Linux software for PCIe compliance test.
To enable PCIe compliance test, PCIe software driver should not turn off PCIe clock and power in the tests. So the following changes are required:
diff --git a/arch/arm/mach-mx6/pcie.c b/arch/arm/mach-mx6/pcie.c
index 26d26f2..ad71085 100644
--- a/arch/arm/mach-mx6/pcie.c
+++ b/arch/arm/mach-mx6/pcie.c
@@ -801,6 +801,7 @@ static void __init add_pcie_port(void __iomem *base, void __iomem *dbi_base,
} else {
pr_info("IMX PCIe port: link down!\n");
+#if 0
/* Release the clocks, and disable the power */
pcie_clk = clk_get(NULL, "pcie_clk");
if (IS_ERR(pcie_clk))
@@ -820,6 +821,7 @@ static void __init add_pcie_port(void __iomem *base, void __iomem *dbi_base,
imx_pcie_clrset(IOMUXC_GPR1_TEST_POWERDOWN, 1 << 18,
IOMUXC_GPR1);
+#endif
}
}
Integrate the patch to the baseline code and recompile the kernel by following the instructions in Linux BSP user guide.
Before recompile, please ensure the following configuration is enabled by selecting " System Type -> Freescale MXC Implementations -> PCI Express support" as "*":
# MX6 Options:
#
CONFIG_IMX_PCIE=y