On 16/05/16 12:06, Roger Quadros wrote: > On 13/05/16 15:45, Marek Vasut wrote: >> On 05/13/2016 02:36 PM, Roger Quadros wrote: >>> Currently CONFIG_USB_DWC3 is not selected so doing a usb start >>> command results in a serious error [1]. >> >> Why does this error happen ? That is what should be fixed. Selecting >> some random options seems like papering over a bug. > > Agreed. I was lazy :P.
OK. The issue is like this. CONFIG_CMD_USB and CONFIG_USB_XHCI is defined, so usb_init() calls usb_lowlevel_init() in xhci.c which calls xhci_hcd_init in xhci-omap.c which calls board_usb_init(). But board_usb_init() in am57xx/board.c is defined only if CONFIG_USB_DWC3 is defined and that is missing in am57xx_evm.h leading to the serious error. We're trying to access the IP without turning on the necessary clocks. So it looks like we need to define it based on CONFIG_USB_XHCI_OMAP or something else. But then again looking into the future, what if we want only gadget operation? That would not define XHCI, but we still need board_usb_init(). So board_usb_init() should be defined based on CONFIG_CMD_USB=y? What do you suggest? cheers, -roger > > cheers, > -roger > >> >>> Fix that by enabling CONFIG_USB_DWC3 and other related options >>> CONFIG_USB_DWC3_PHY_OMAP and CONFIG_USB_DWC3_OMAP. >>> >>> [1] >>> => usb start >>> starting USB... >>> USB0: data abort >>> pc : [<fff7ed10>] lr : [<fff7ebbf>] >>> reloc pc : [<8081dd10>] lr : [<8081dbbf>] >>> sp : fef3d260 ip : 00000000 fp : fef3d2a8 >>> r10: fffa4610 r9 : fef50ed0 r8 : 00000000 >>> r7 : fef3d280 r6 : fef3d284 r5 : fffbc380 r4 : 00000000 >>> r3 : 48880000 r2 : 00000000 r1 : 00000000 r0 : fffbc380 >>> Flags: nzcv IRQs off FIQs off Mode SVC_32 >>> Resetting CPU ... >>> >>> Signed-off-by: Roger Quadros <[email protected]> >>> --- >>> include/configs/am57xx_evm.h | 3 +++ >>> 1 file changed, 3 insertions(+) >> >> Changelog is missing ;-) >> >>> diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h >>> index 32d7d4d..939057c 100644 >>> --- a/include/configs/am57xx_evm.h >>> +++ b/include/configs/am57xx_evm.h >>> @@ -63,6 +63,7 @@ >>> #define CONFIG_SUPPORT_EMMC_BOOT >>> >>> /* USB xHCI HOST */ >>> +#define CONFIG_USB_DWC3 >>> #define CONFIG_USB_HOST >>> #define CONFIG_USB_XHCI_DWC3 >>> #define CONFIG_USB_XHCI >>> @@ -72,6 +73,8 @@ >>> >>> #define CONFIG_OMAP_USB_PHY >>> #define CONFIG_OMAP_USB3PHY1_HOST >>> +#define CONFIG_USB_DWC3_PHY_OMAP >>> +#define CONFIG_USB_DWC3_OMAP >>> >>> /* SATA */ >>> #define CONFIG_BOARD_LATE_INIT >>> >> >> > _______________________________________________ > U-Boot mailing list > [email protected] > http://lists.denx.de/mailman/listinfo/u-boot > _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

