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