[U-Boot] i.MX53 USB Client not working

Matthew Starr mstarr at hedonline.com
Thu May 14 16:37:18 CEST 2015


I have a custom board loosely based off the i.MX53 QSB with a dedicated USB client port and separate dedicated USB host port.  I am trying to get USB client functionality working in mainline u-boot 2015.04.  I have verified that USB client/gadget functionality works when booted into Linux on the board.  In u-boot I have tried testing USB client with USB Mass Storage, DFU, and FastBoot and none of them seem to work.
 
Here is my USB client #defines from my config header file:
#define CONFIG_CI_UDC
#define CONFIG_USBD_HS
#define CONFIG_USB_GADGET_DUALSPEED
#define CONFIG_USB_GADGET
#define CONFIG_CMD_USB_MASS_STORAGE
#define CONFIG_USB_GADGET_MASS_STORAGE
#define CONFIG_USBDOWNLOAD_GADGET
#define CONFIG_USB_GADGET_VBUS_DRAW     2
#define CONFIG_USB_ETHER
#define CONFIG_USB_ETH_CDC
#define CONFIG_G_DNL_VENDOR_NUM         0x0525
#define CONFIG_G_DNL_PRODUCT_NUM        0xa4a5
#define CONFIG_G_DNL_MANUFACTURER       "FSL"
#define CONFIG_SYS_CACHELINE_SIZE       64

Additionally here are my #defines for the USB host functionality:
/* USB Host Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_MX5
#define CONFIG_USB_STORAGE
#define CONFIG_USB_HOST_ETHER
#define CONFIG_USB_ETHER_ASIX
#define CONFIG_USB_ETHER_MCS7830
#define CONFIG_USB_ETHER_SMSC95XX
#define CONFIG_MXC_USB_PORT     1
#define CONFIG_MXC_USB_PORTSC   (PORT_PTS_UTMI | PORT_PTS_PTW)
#define CONFIG_MXC_USB_FLAGS    0

Here is my board file content related to USB:
 #ifdef CONFIG_USB_EHCI_MX5
static void setup_usb(void)
{
        imx_iomux_v3_setup_pad(MX53_PAD_GPIO_0__GPIO1_0);
}
 
 int board_ehci_hcd_init(int port)
{
        /* Enable USB_H1_VBUS power with GPIO1_0 */
        gpio_direction_output(IMX_GPIO_NR(1, 0), 1);
        return 0;
}
#endif
 
int board_usb_phy_mode(int port)
{      
        if (port == 1)
                return USB_INIT_HOST;
        else   
                return USB_INIT_DEVICE;
}
 
Then later on in board_init(), I have:
#ifdef CONFIG_USB_EHCI_MX5
        setup_usb();
#endif

When I run the 'ums 0 mmc 0' command, I get the following:
UMS: disk start sector: 0x0, count: 0xe88000
and then I get an infinite spinning progress indicator.  At this point when I connect the USB cable to a Host PC, I see nothing on the host PC side (Windows or Liunx).
 
Any ideas on what I am missing to get USB client working or any hints on how to debug this further.

Best regards,
 Matthew Starr


More information about the U-Boot mailing list