[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