[U-Boot] PPC 405EX hangs waiting for PCIE to reset

David Thomas dthoma33 at harris.com
Fri Jan 28 14:57:06 CET 2011


We have a board with an AMCC PPC 405EX connected to two fpga's with PCIE 
interfaces.

On some boards, on power up, the u-boot code hangs in the while loop in 
the following code waiting for PCIE1 to come out of reset. PCIE0  comes 
out of reset successfully.

The PHYSTA for PCIE1 always reads back with the value 0x30000000, 
indicating the the interface is in the P2 state and that the PLL has not 
locked.

If a timeout is added and U-boot is allowed to proceed, a machine check 
is eventually taken and the processor reboots. During the reboot, u-boot 
runs through the same code but this time both PCIE interfaces 
successfully come out of reset and the board comes up normally.

Any suggestions about what might be happening here?

Thanks

David Thomas.



u-boot/arch/powerpc/cpu/ppc4xx/4xx_pcie.c, lines 840-848:

         SDR_WRITE(SDRN_PESDR_RCSSET(port), 0x01101000);

     /* poll for phy !reset */
     while (!(SDR_READ(SDRN_PESDR_PHYSTA(port)) & 0x00001000))
         ;

     /* deassert the PE0_gpl_utl_reset */
     SDR_WRITE(SDRN_PESDR_RCSSET(port), 0x00101000);




More information about the U-Boot mailing list