Beaglebone USB driver (Mentor Graphics OTG)

Hans Petter Selasky hps at bitfrost.no
Sun Apr 7 07:07:52 UTC 2013


On 04/06/13 22:50, Oleksandr Tymoshenko wrote:
> Hello,
>
> This is first iteration of Host Mode support for Mentor Graphics
> OTG USB controller. I tested it by building kernel with USB memory
> stick mounted as /usr/obj, resulting kernel was bootable and worked fine.
> I reused some ideas (mostly for channel-management) from
> DWT OTG driver.
>
> Some pieces are still missing:
> - Support for SPLIT transactions, I don not have high speed hub
>      right now to test it, but implementing it should be really
> straighforward.
> - Isochronous transfers. I do not have hardware to test this. Does
>      anybody have any suggestion about simple use case?
> - Control Data OUT transaction
> - Wrapper for atmel HW has not ben synced with new core logic requirements
>      yet
>
> Please review and test. I tested it only with gcc-built kernel/world.
> Now when
> first iteration is finished I'm going to update all my boards to new
> world order
> (clang/EABI) and re-test this stuff.
>
> Patch:
> http://people.freebsd.org/~gonzo/arm/patches/beaglebone-musb.diff

Hi,

Supporting split transactions is required:

+
+		/* SPLIT transaction */
+		MUSB2_WRITE_1(sc, MUSB2_REG_RXHADDR(0), 0);
+		MUSB2_WRITE_1(sc, MUSB2_REG_RXHUBPORT(0), 0);
+

See EHCI driver:

             EHCI_QH_SET_HUBA(xfer->xroot->udev->hs_hub_addr) |
             EHCI_QH_SET_PORT(xfer->xroot->udev->hs_port_no));

This feature should be enabled when:

Connected root HUB port is running HIGH speed, and the connected device 
is LOW or FULL speed. Try connecting a USB keyboard through any high 
speed USB HUB.

--HPS


More information about the freebsd-usb mailing list