USB on OMAP3
I'm using v2011.06 on the TI OMAP3 platform (internal, similar to BeagleBoard)
I'd like my board to support both EHCI and MUSB in host mode.
However, when I define both of these, I get compile errors:drivers/usb/musb/libusb_musb.o: In function `usb_lowlevel_stop':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:1149: multiple definition of usb_lowlevel_stop' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:795: first defined here drivers/usb/musb/libusb_musb.o: In function submit_int_msg':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:1162: multiple definition of submit_int_msg' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:900: first defined here drivers/usb/musb/libusb_musb.o: In function submit_bulk_msg':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:949: multiple definition of submit_bulk_msg' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:865: first defined here drivers/usb/musb/libusb_musb.o: In function submit_control_msg':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:849: multiple definition of submit_control_msg' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:877: first defined here drivers/usb/musb/libusb_musb.o: In function usb_lowlevel_init':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:1097: multiple definition of `usb_lowlevel_init' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:799: first defined here
Is this expected to work? If not, any pointers on how I might make both controllers play nice?
Thanks
Signature · 4 lines
------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------
Quoted 31 lines · Gary Thomas
I'm using v2011.06 on the TI OMAP3 platform (internal, similar to BeagleBoard)
I'd like my board to support both EHCI and MUSB in host mode.
However, when I define both of these, I get compile errors:drivers/usb/musb/libusb_musb.o: In function `usb_lowlevel_stop':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:1149: multiple definition of `usb_lowlevel_stop' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:795:
first defined heredrivers/usb/musb/libusb_musb.o: In function `submit_int_msg':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:1162: multiple definition of `submit_int_msg' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:900:
first defined heredrivers/usb/musb/libusb_musb.o: In function `submit_bulk_msg':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:949: multiple definition of `submit_bulk_msg' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:865:
first defined heredrivers/usb/musb/libusb_musb.o: In function `submit_control_msg':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:849: multiple definition of `submit_control_msg' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:877:
first defined heredrivers/usb/musb/libusb_musb.o: In function `usb_lowlevel_init':
/local/DM3730/u-boot/drivers/usb/musb/musb_hcd.c:1097: multiple definition of `usb_lowlevel_init' drivers/usb/host/libusb_host.o:/local/DM3730/u-boot/drivers/usb/host/ehci-hcd.c:799:
first defined here
Quoted 4 lines
Is this expected to work? If not, any pointers on how I might make both controllers play nice?
I think the answer there is no the musb* and ehci* apis both expect to be
the only usb host code enabled at any one time. I suspect to fix this you would have to add some abstration to u-boot to deal with multiple host controlllers at runtime.
--john