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.

DM385 always wait after config PCI PLL!

Other Parts Discussed in Thread: DM385

hi

we had met a problem when use DM385.

we use SW is IPNC_3_8 HW customer board.

in linux kernel I had enable PCI Bus.

I find that CPU is always wait after config PCI PLL。

code is in file arch/arm/mach-omap2/devices.c

function is named ti814x_pcie_pllcfg()

waiting place is in

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

}

 

all function as follow:

 

static inline void ti814x_pcie_pllcfg(void) {  

       if (cpu_is_ti814x()) {   

            /* TODO: Add bitfield macros for following */

            omap_ctrl_writel(0x00000002, TI814X_SERDES_REFCLK_CTL);   

            omap_ctrl_writel(0x00000000, TI814X_CONTROL_PCIE_PLLCFG0);   

            omap_ctrl_writel(0x00640000, TI814X_CONTROL_PCIE_PLLCFG1);   

            omap_ctrl_writel(0x00000000, TI814X_CONTROL_PCIE_PLLCFG2);  

            omap_ctrl_writel(0x004008E0, TI814X_CONTROL_PCIE_PLLCFG3);  

            omap_ctrl_writel(0x0000609C, TI814X_CONTROL_PCIE_PLLCFG4);

            /* Configure SERDES misc bits - values as is from h/w */  

           if (!cpu_is_dm385()) {   

                  /*     * TODO: MISCCFG write is not needed for PG2.x devices,     * to be tested with if{} part removed     */   

                     if (omap_rev() > TI8148_REV_ES1_0)     

                               omap_ctrl_writel(0x0000039E,       TI814X_CONTROL_PCIE_MISCCFG);    

                     else     

                               omap_ctrl_writel(0x00000E7B,       TI814X_CONTROL_SMA0);  

            }

            udelay(50);   omap_ctrl_writel(0x00000004, TI814X_CONTROL_PCIE_PLLCFG0);

            udelay(50);   omap_ctrl_writel(0x00000014, TI814X_CONTROL_PCIE_PLLCFG0);

            udelay(50);   omap_ctrl_writel(0x00000016, TI814X_CONTROL_PCIE_PLLCFG0);

            udelay(50);   omap_ctrl_writel(0x30000016, TI814X_CONTROL_PCIE_PLLCFG0);

            udelay(50);   omap_ctrl_writel(0x70007016, TI814X_CONTROL_PCIE_PLLCFG0);

            udelay(200);   omap_ctrl_writel(0x70007017, TI814X_CONTROL_PCIE_PLLCFG0);

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

                   cpu_relax();    

            }

}

 

 

so somebody can help me

what is problem with DM385 to use PCI?

 

Thank you very much!