Raspberry PI gets USB support [FreeBSD 10 current]
Hans Petter Selasky
hselasky at c2i.net
Mon Oct 29 13:29:15 UTC 2012
On Thursday 25 October 2012 22:12:51 Bakul Shah wrote:
> On Thu, 25 Oct 2012 11:50:20 +0200 Stefan Esser <se at freebsd.org> wrote:
> > There is the link to a message by Greg Kroah-Hartman, where he
> > declares the Broadcom USB hardware "broken", at least in the sense
> > that no information exists for free software writers to let them
> > make USB work well. There also is mention of a Plan9 driver for
> > the USB on RPI, we might want to check whether it offers any insight.
> > Since all nearly all peripherals including Ethernet are connected to
> > USB on the RPI, good USB support is very important to use the RPI
> > as more than a toy.
> The Plan9 USB driver is far simpler than the Linux driver (but
> not as functional. The only publicly available "documentation"
> is the Linux driver). More work remains but I can already
> connect usb keyboard, mouse, access ethernet etc. I haven't
> tried accessing a usb disk since the emmc driver works so well
> (example: the plan9 kernel compiles in a minute). Credit for
> this work to Richard Miller.
> Raspi related code is here:
> You will need files in other directories to make sense of this.
> The entire plan9 src tree (minus the dir above) is @
> You can browse @
> If you are looking at just the low level usb code, you won't
> need much plan9 knowledge.
The DWC OTG is used in multiple chipsets and documentation is available
indirectly through various datasheets describing SOCs where this core is used.
Also at the synopsys.com site it is possible to register to get more
If you register at Synopsys.com you can get more info:
Google "synopsys programmers guide DWC OTG"
The PIO HOST mode support which is supported by the FreeBSD's DWC OTG driver
has been created without the help of the data sheet. I've used the register
descriptions to figure out the workings. There are not so many valid
combinations and most of the programming can be guessed for those familiar to
low level USB signalling.
More information about the freebsd-arm