beaglebone usb problems

Oleksandr Tymoshenko gonzo at bluezbox.com
Mon Dec 24 01:04:36 UTC 2012


On 12/22/2012 9:07 PM, wynkoop at wynn.com wrote:
> Greeting-
>
> Today I grabbed the lattest kernel and usreland sources with csup onto my
> beaglebone with the idea of building a kernel that would support usb.
>
> I used the default BEAGLEBOARD config file that I found in the ARM branch of
> /usr/src/sys.  After a crash on building because of lack of memory I got the
> new kernel built and installed by adding some swap space.  Not the best
> thing to do to an SD card, but a needed evil.
>
> I completed the build of the kernel and installed it.  Upon reboot the system
> is still not seeing the USB BUS.
>
> I have verified that it sees the USB bus under the provided gnu/linux
> distribution.
>
> [    0.553985] usbcore: registered new interface driver cdc_acm
> [    0.554077] usbcore: registered new interface driver usblp
> [    0.554138] usbcore: registered new interface driver cdc_wdm
> [    0.554199] usbcore: registered new interface driver uas
> [    0.554321] usbcore: registered new interface driver usb-storage
> [    0.554412] usbcore: registered new interface driver libusual
> [    0.561981] usbcore: registered new interface driver usbhid
> [    0.561981] usbhid: USB HID core driver
> [    0.562927] usbcore: registered new interface driver snd-usb-audio
> [    0.673187] usb 1-1: new high-speed USB device number 2 using musb-hdrc
> [    0.813659] usb 1-1: New USB device found, idVendor=0781, idProduct=5573
> [    0.813690] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [    0.813690] usb 1-1: Product: Staples
> [    0.813690] usb 1-1: Manufacturer:
> [    0.813720] usb 1-1: SerialNumber: 4C532000070802101254
> [    0.815277] scsi0 : usb-storage 1-1:1.0
> [    2.234497] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
> [    2.234527] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 2
> [    2.234649] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
> [    2.234649] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
> [    2.234680] usb usb2: Product: MUSB HDRC host driver
> [    2.234680] usb usb2: Manufacturer: Linux 3.2.28 musb-hcd
> [    2.234680] usb usb2: SerialNumber: musb-hdrc.0
> root at beaglebone:~#
>
> Plugging in a supported USB wifi device under Linux produced the following:
>
> [  246.557800] usb 1-1: USB disconnect, device number 2
> [  253.454040] usb 1-1: new high-speed USB device number 3 using musb-hdrc
> [  253.747406] usb 1-1: New USB device found, idVendor=2001, idProduct=3c00
> [  253.747436] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> [  253.747467] usb 1-1: Product: 802.11g WLAN Adapter
> [  253.747467] usb 1-1: Manufacturer: ANI
> [  253.828186] cfg80211: Calling CRDA to update world regulatory domain
> [  254.014068] usb 1-1: reset high-speed USB device number 3 using musb-hdrc
> [  254.325317] ieee80211 phy0: Selected rate control algorithm 'pid'
> [  254.326263] Registered led device: rt2500usb-phy0::radio
> [  254.326385] Registered led device: rt2500usb-phy0::quality
> [  254.342895] usbcore: registered new interface driver rt2500usb
> [  254.505523] ADDRCONF(NETDEV_UP): wlan0: link is not ready
> root at beaglebone:~# ifconfig wlan0
>
>
> wlan0     Link encap:Ethernet  HWaddr 00:13:46:97:95:ED
>            UP BROADCAST MULTICAST  MTU:1500  Metric:1
>            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>            collisions:0 txqueuelen:1000
>            RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>
>
> So I think I can say the hardware is working.
>
> Under FreeBSD 10 we see the following:
>
> root at beaglebone:~ # dmesg | grep -i usb
> am335x_pmic0: TPS65217B ver 1.1 powered by USB and AC
> root at beaglebone:~ #
>
>
> In other words we do not even see the bus let alone any wifi or storage device
> inserted into the bus.
>
> My kernel config has the needed stuff I believe.  Here is the snippit.
>
> # USB support
> device          usb
> options         USB_DEBUG
> #options        USB_REQ_DEBUG
> #options        USB_VERBOSE
> device          musb
> device          umass
> device          scbus                   # SCSI bus (required for SCSI)
> device          da                      # Direct Access (disks)
>
> # Ethernet
> device          loop
> device          ether
> device          mii
> device          smscphy
> device          cpsw
> device          bpf
>
> # USB ethernet support, requires miibus
> device          miibus
> device          axe                     # ASIX Electronics USB Ethernet
>
>
>
>
> This test was done under FreeBSD 10 built from sources updated today I can
> not even see any usb bus let alone any devices.
>
> Does anyone have ideas?
>

I looked into it and it seems we do not have proper support for USB on 
BeagleBone.
Although the general logic for MUSB  is in the tree 
(dev/usb/controller/musb_otg.c)
there is no actual driver part for AM335x, like musb_otg_atmelarm.c for 
Atmel devices.
  From what I saw in spec it shouldn't be really hard to get 
hardware-specific glue done
for BeagleBone. Since there are two musb ports on AM335x
device and some additional hardware involved the actual driver is 
slightly more
complicated then just adding FDT entry and fdt glue, but not exceedingly 
hard either

  I will not have spare cycles for a week or two so if somebody with 
real  hardware could
get it done - that would be great.

AM335x TRM:  http://www.ti.com/lit/ug/spruh73g/spruh73g.pdf
See chapter 16.



More information about the freebsd-arm mailing list