This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3874 PCIe PLL doesn't lock

Other Parts Discussed in Thread: AM3874

Hello TI guys.

I am trying to get PCIe working in RC mode on AM3874 custom board. I'm using Linux kernel 2.6.37-psp04.04.00.01.

The problem is that the system hangs in void ti81xx_init_pcie(void) function on polling PLL_LOCK bit in PCIE_PLLSTATUS register.

while (!(omap_ctrl_readl(TI814X_CONTROL_PCIE_PLLSTATUS) & 0x1))
	cpu_relax();

PLL_LOCK is never set to 1.

I tried to run PCIe diagnostic (from Mistral web site) and got the same result for PCIE_PLL_CONFIG procedure.

It looks like some HW issue and our HW engineer is already re-checking the board, but maybe someone can give some guidelines what could be the reason for this problem? Or maybe it is still SW problem?

Thanks,

Anatoly

  • Anatoly,

    Anatoly Goldstein said:
    while (!(omap_ctrl_readl(TI814X_CONTROL_PCIE_PLLSTATUS) & 0x1))

    Can you try with testing only bit [0], not the whole PCIE_PLLSTATUS register:

    while ((omap_ctrl_readl(TI814X_CONTROL_PCIE_PLLSTATUS) & 0x1) != 0x1)

    Make sure also you are using external 100MHz differential clock source (serdes_clkp/n) pins to supply the PCIe and its embedded PLL, PCIE_PLLCFG0[31] SEL_IN_FREQ = 0

    Regards,
    Pavel