
Hi,
On Thu, 18 Oct 2012 06:21:56 +0200 Marek Vasut marex@denx.de wrote:
Dear Shengzhou Liu,
when missing USB PHY clock, u-boot will hang during USB initialization when issuing "usb start". We should check USBGP[PHY_CLK_VALID] bit to avoid CPU hanging in this case.
Signed-off-by: Shengzhou Liu Shengzhou.Liu@freescale.com
CCing PPC experts.
...
@@ -82,18 +94,16 @@ int ehci_hcd_init(int index, struct ehci_hccr **hccr, struct ehci_hcor **hcor) udelay(1000); /* delay required for PHY Clk to appear */ #endif out_le32(&(*hcor)->or_portsc[0], PORT_PTS_UTMI);
} else {setbits_be32(&ehci->control, USB_EN);
-#if defined(CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY)
setbits_be32(&ehci->control, PHY_CLK_SEL_ULPI);clrbits_be32(&ehci->control, UTMI_PHY_EN);
udelay(1000); /* delay required for PHY Clk to appear */clrsetbits_be32(&ehci->control, UTMI_PHY_EN, USB_EN);
-#endif
if (!usb_phy_clk_valid(ehci))
out_le32(&(*hcor)->or_portsc[0], PORT_PTS_ULPI); }return -EINVAL;
- /* Enable interface. */
- setbits_be32(&ehci->control, USB_EN);
you moved the USB interface enabling before the PHY CLK check but the commit description doesn't mention why it is needed. It would be good to mention the reason in the commit log.
Thanks, Anatolij