We running IMX8MQ on the imx_4.9.88_2.0.0_ga release, and we need to use PCIe GEN1 mode only
(despite the fact the link can be established in Gen2 mode)
We found a solution applicable to the older kernel which could be helpful:
Is there any way to port this patch to the newer release?
Is there any simpler way to force the Gen1 mode?
The DTS param "fsl,max-link-speed <0x1>" does not help: despite the fact that the Gen2 mode is disabled the driver establishes the link in Gen2 mode
[ 0.967444] imx6q-pcie 33c00000.pcie: Link: Gen2 disabled [ 0.967449] imx6q-pcie 33c00000.pcie: Link up, Gen2 [ 0.968851] imx6q-pcie 33c00000.pcie: PCI host bridge to bus 0001:00 [ 0.968888] pci_bus 0001:00: root bus resource [bus 00-ff] [ 0.968897] pci_bus 0001:00: root bus resource [io 0x10000-0x1ffff] (bus address [0x0000-0xffff]) [ 0.968904] pci_bus 0001:00: root bus resource [mem 0x20000000-0x27efffff] [ 0.968926] pci 0001:00:00.0: [16c3:abcd] type 01 class 0x060400
I have same problem using i.MX8mm with kernel 5.4.47
At very least this is a driver bug or error in log texts, because the driver reports "Link: Gen 2 disabled", and then immediately "Link up, Gen 2".
Both these messages come from function imx6_pcie_establish_link in pci-imx6.c
@andrewbushuevhave you established what the actual link speed is? I don't have equipment capable of measuring the speed.
Edit1: lspci -vv reports the link speed as 5GT/s i.e. Gen2
Ok, the Errata says that the SerDes has an embedded mechanism to estimate the eye diagram:
How I can obtain the results of this mechanism in Linux?
Thanks in advance.