iMX8M Mini Use PI6CFGL201BZDIEX as PCIe REF_CLK

cancel
Showing results for 
Search instead for 
Did you mean: 

iMX8M Mini Use PI6CFGL201BZDIEX as PCIe REF_CLK

Jump to solution
168 Views
zarcen
Contributor I

Hi,

Following reference design, we are making custom board with iMX8M Mini but replace the default PCIe clock generator (9FGV0241AKLF) with PI6CFGL201BZDIEX.

Also, a related post https://community.nxp.com/t5/i-MX-Processors/iMX8M-Mini-CLK-Generator-Clocking-Issue/m-p/1258056 indicates that PI6CFGL201BZDIEX can be used.

However, when it is replaced with PI6CFGL201BZDIEX, the driver (imx6q-pcie) will panic after reporting "PLL lock timeout". Then, kernel gets stuck and just hangs.

[ 2.677860] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.
[ 2.734722] imx6q-pcie 33800000.pcie: PCIe PLL lock timeout

 

Is there any driver change needed for the driver (drivers/pci/controller/dwc/pci-imx6.c )? Or, we need to change the DTS because of the replacement?

 

Thanks,

Weichen

0 Kudos
1 Solution
96 Views
zarcen
Contributor I

Hi weidong_sun,

We tried to put the PCI module to M.2 and it worked. Like you mentioned, it seems that M.2 side of channel is working but the CPU-side doesn't. We are still investigating why it acts like this.

View solution in original post

0 Kudos
2 Replies
115 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi,

these 2 clock generators are pin to pin compatible, but PIN7 and PIN5 are different definitions.

weidong_sun_0-1623726174619.png

--The clock generator can output 2-channel 100MHz clocks, one channel is for CPU side, the other is for M.2 connector.

--The clock generator doesn't need linux driver, default configuration is OK.

So now you can measure whether 100MHz clock OUPUT or not.

According to your description, obviously, CPU side doesn't get the clock input or bad clock waveform.

 

Have a nice day!

B.R,

weidong

0 Kudos
97 Views
zarcen
Contributor I

Hi weidong_sun,

We tried to put the PCI module to M.2 and it worked. Like you mentioned, it seems that M.2 side of channel is working but the CPU-side doesn't. We are still investigating why it acts like this.

View solution in original post

0 Kudos