我正在使用 i.MX8M Plus。
使用 pcie 时,外部时钟参考运行良好。
但是当涉及到内部时钟参考时,它变得很奇怪。
root@tek3-imx8mp:~# dmesg |grep -E 'pcie|JOE'
[ 2.921505] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[ 2.930092] imx6q-pcie 33800000.pcie: PLL REF_CLK is used!.
[ 2.936304] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.
[ 3.002561] imx6q-pcie 33800000.pcie: PCIe PLL is locked.
[ 3.010897] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[ 3.022247] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[ 3.035663] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[ 3.049689] imx6q-pcie 33800000.pcie: No bus range found for /soc@0/pcie@33800000, using [bus 00-ff]
[ 3.063888] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[ 3.079154] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000
[ 3.094686] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[ 3.106630] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[ 33.014729] imx6q-pcie 33800000.pcie: Link up
[ 33.019138] JOEJOE retries=298
[ 33.022203] imx6q-pcie 33800000.pcie: Link up
[ 33.026598] JOEJOE retries=0
[ 33.029486] imx6q-pcie 33800000.pcie: Link up, Gen1
[ 33.138825] imx6q-pcie 33800000.pcie: Link up
[ 33.143197] JOEJOE retries=0
[ 33.146228] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00
[ 33.279021] pcieport 0000:00:00.0: PME: Signaling with IRQ 242
如您所见,我增加了重试次数,我们的 pcie 卡 (WIFI/BT) 重试次数过多,并且每次都无法连接。
但是对于nvmem,它可以正常链接。
root@tek3-imx8mp:~# dmesg |grep -E 'pcie|JOE'
[ 2.917153] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[ 2.925829] imx6q-pcie 33800000.pcie: PLL REF_CLK is used!.
[ 2.932041] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.
[ 2.994093] imx6q-pcie 33800000.pcie: PCIe PLL is locked.
[ 3.000540] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[ 3.011289] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[ 3.024806] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[ 3.037870] imx6q-pcie 33800000.pcie: No bus range found for /soc@0/pcie@33800000, using [bus 00-ff]
[ 3.054075] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[ 3.067003] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000
[ 3.082513] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[ 3.094911] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[ 3.209573] imx6q-pcie 33800000.pcie: Link up
[ 3.217410] JOEJOE retries=1
[ 3.321228] imx6q-pcie 33800000.pcie: Link up
[ 3.326577] JOEJOE retries=1
[ 3.339916] imx6q-pcie 33800000.pcie: Link up, Gen3
[ 3.453694] imx6q-pcie 33800000.pcie: Link up
[ 3.463012] JOEJOE retries=0
[ 3.472765] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00
[ 3.774871] pcieport 0000:00:00.0: PME: Signaling with IRQ 242我测量了时钟的波形,发现两种情况没有什么不同。