Bug 765

Summary: [beagleboard] USB does not work on beagleboard
Product: [Build System, Metadata & Runtime] BSPs Reporter: Yi Zhao <yi.zhao>
Component: bsps-configurationAssignee: Bruce Ashfield <bruce.ashfield>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: dvhart, jiajun.xu, liang.li2, liangliang.wang, sgw, yi.zhao, yp.bsp.watcher, yp.watcher
Version: 1.0   
Target Milestone: 1.0 PointRelease   
Hardware: Beagleboard   
OS: arm   
Whiteboard: patches out for review (17-Jun-2011)
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Yi Zhao 2011-02-23 22:40:28 UTC
Testing Env:    
Host: Ubuntu 10.10 x86_64
Kernel: 2.6.35-25-generic

beagleboard kernel and rootfs from weekly build 20110221
http://autobuilder.pokylinux.org/nightly/20110221-1/machines/beagleboard/arm/

u-boot environment setting:
###########
setenv optargs 'omapdss.def_disp=dvi vram=12M omapfb.mode="dvi:800x480MR-16@60"
video=omapfb.vram:0:4M,1:4M,2:4M omapfb.debug=y omapdss.debug=y'
setenv console ttyO2,115200n8;mmcinit;fatload mmc 0 0x80800000 uImage.bin;run
mmcargs; bootm 0x80800000
###########

There are 2 usb port on the board, USB 2.0 OTG port and USB 2.0 host port, both of them do not work.

When the board boot up, I got the usb message from demsg and lsusb, but it does not work when I plug a usb stick or a usb mouse.
###########
root@beagleboard:~# dmesg |grep usb -i
mux: Setting signal etk_clk.hsusb1_stp 0x001b -> 0x0003
mux: Setting signal etk_ctl.hsusb1_clk 0x0013 -> 0x0003
mux: Setting signal etk_d8.hsusb1_dir 0x0113 -> 0x010b
mux: Setting signal etk_d9.hsusb1_nxt 0x0113 -> 0x010b
mux: Setting signal etk_d0.hsusb1_data0 0x0113 -> 0x010b
mux: Setting signal etk_d1.hsusb1_data1 0x0113 -> 0x010b
mux: Setting signal etk_d2.hsusb1_data2 0x0113 -> 0x010b
mux: Setting signal etk_d7.hsusb1_data3 0x0113 -> 0x010b
mux: Setting signal etk_d4.hsusb1_data4 0x0113 -> 0x010b
mux: Setting signal etk_d5.hsusb1_data5 0x0113 -> 0x010b
mux: Setting signal etk_d6.hsusb1_data6 0x0113 -> 0x010b
mux: Setting signal etk_d3.hsusb1_data7 0x0113 -> 0x010b
mux: Setting signal etk_d11.hsusb2_stp 0x0013 -> 0x0003
mux: Setting signal etk_d10.hsusb2_clk 0x0013 -> 0x0003
mux: Setting signal etk_d12.hsusb2_dir 0x0113 -> 0x010b
mux: Setting signal etk_d13.hsusb2_nxt 0x0113 -> 0x010b
mux: Setting signal etk_d14.hsusb2_data0 0x0113 -> 0x010b
mux: Setting signal etk_d15.hsusb2_data1 0x0113 -> 0x010b
mux: Setting signal mcspi1_cs3.hsusb2_data2 0x0113 -> 0x010b
mux: Setting signal mcspi2_cs1.hsusb2_data3 0x0113 -> 0x010b
mux: Setting signal mcspi2_simo.hsusb2_data4 0x0113 -> 0x010b
mux: Setting signal mcspi2_somi.hsusb2_data5 0x0113 -> 0x010b
mux: Setting signal mcspi2_cs0.hsusb2_data6 0x0113 -> 0x010b
mux: Setting signal mcspi2_clk.hsusb2_data7 0x0113 -> 0x010b
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
regulator: VUSB1V5: 1500 mV normal standby
regulator: VUSB1V8: 1800 mV normal standby
regulator: VUSB3V1: 3100 mV normal standby
twl4030_usb twl4030_usb: Initialized TWL4030 USB module
musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0
musb_hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb_hdrc: MHDRC RTL version 1.400 
musb_hdrc: setup fifo_mode 4
musb_hdrc: 28/31 max ep, 16384/16384 memory
musb_hdrc musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92
usbcore: registered new interface driver kaweth
pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
usbcore: registered new interface driver pegasus
usbcore: registered new interface driver asix
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver dm9601
usbcore: registered new interface driver smsc75xx
usbcore: registered new interface driver smsc95xx
usbcore: registered new interface driver net1080
usbcore: registered new interface driver cdc_subset
usbcore: registered new interface driver zaurus
usbcore: registered new interface driver MOSCHIP usb-ethernet driver
usbcore: registered new interface driver int51x1
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-omap.0 supply hsusb0 not found, using dummy regulator
ehci-omap.0 supply hsusb1 not found, using dummy regulator
ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver

root@beagleboard:~# lsusb 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@beagleboard:~# 
##################
Comment 1 Bruce Ashfield 2011-02-24 06:55:22 UTC
USB is notoriously fragile on the beagleboards. In the 2.6.34 
kernel even changing the USB hub could lead to failures.

As far as I know this tested fine for Darren when he was working
with the 2.6.37 kernel on the board, but I need him to confirm
this fact.

Have we tried a keyboard ? Just wondering if the right HID options
are on, and the keyboard provides a user-space event free way to
test the usb support.
Comment 2 Yi Zhao 2011-02-24 18:21:36 UTC
I tried a keyboard, it does not work.
Comment 3 Yi Zhao 2011-03-07 19:25:11 UTC
There are 2 USB port on the board. One is USB OTG port, another is USB Host port.

With the 20110305 build image from
http://autobuilder.yoctoproject.org/nightly/20110305-4/machines/beagleboard/arm/

The USB Host port can work, when I plug a USB stick:
###############
root@beagleboard:~# usb 1-2: new high speed USB device using ehci-omap and address 2
scsi0 : usb-storage 1-2:1.0
scsi 0:0:0:0: Direct-Access     Netac    OnlyDisk         1.00 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 2009600 512-byte logical blocks: (1.02 GB/981 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
EXT3-fs: barriers not enabled
kjournald starting.  Commit interval 5 seconds
EXT3-fs (sda1): using internal journal
EXT3-fs (sda1): mounted filesystem with ordered data mode

root@beagleboard:~# 
root@beagleboard:~# mount
rootfs on / type rootfs (rw)
/dev/root on / type ext3 (rw,relatime,errors=continue,barrier=0,data=ordered)
proc on /proc type proc (rw,relatime)
tmpfs on /mnt/.psplash type tmpfs (rw,relatime,size=40k)
sysfs on /sys type sysfs (rw,relatime)
none on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
tmpfs on /var/volatile type tmpfs (rw,relatime)
tmpfs on /media/ram type tmpfs (rw,relatime)
/dev/sda1 on /media/sda1 type ext3 (rw,sync,relatime,errors=continue,barrier=0,data=ordered)

###################

But if the filesystem format is fat in the USB stick, It can not be recognized and automatic mounted.

Unfortunately, The USB OTG port still does not work.
Comment 4 Bruce Ashfield 2011-03-27 19:58:11 UTC
Changing the state to accepted, will add the vfat options ASAP.
Comment 5 Bruce Ashfield 2011-04-28 19:24:16 UTC
Note: the vfat options should be in place, or will be soon. There are no
plans to add OTG support.
Comment 6 Bruce Ashfield 2011-05-03 12:27:38 UTC
should be fixed. changing state, adding whiteboard entry.
Comment 7 Yi Zhao 2011-06-07 19:31:07 UTC
With 1.1 M1 20110602 build sato-sdk image, the USB does not work again. When I plug a usb stick, it can not be found. There is no message print on the screen.

Branch: 1.1_M1
Commit: b4a215bd94cf1508782e49b1a3f8c6b1f7effbb9

With 20110506 build, the usb stick can be found:
##################
root@beagleboard:~# usb 1-2: new high speed USB device using ehci-omap and address 2
scsi0 : usb-storage 1-2:1.0
scsi 0:0:0:0: Direct-Access     Netac    OnlyDisk         1.00 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 2009600 512-byte logical blocks: (1.02 GB/981 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
#######################

git info with 20110506 build:

commit 856a5e496b7ddd814f6a94552d02074f0ab30842
Author: Saul Wold <sgw@linux.intel.com>
Date:   Fri May 6 20:56:00 2011 -0700

    qemu: Set Broken bit for world build
    
    Signed-off-by: Saul Wold <sgw@linux.intel.com>


Reopen this bug.
Comment 8 Bruce Ashfield 2011-06-07 21:07:22 UTC
Hmm. I can't think of anything off the top of my head that would have caused
this to happen. The meta changes we did recently wouldn't have hit this, or even
been in this build.

Luckily we are refreshing the BSP and will be able to re-test this as part of
that work.
Comment 9 Darren Hart 2011-06-17 16:28:27 UTC
Note the the EHCI port on the C4 is 2.0 only, so keyboards and mice do not work unless you connect a USB hub first. Revisions C1-C3 (if I recall correctly) had a flaky vbus line and I don't think there is a reliable fix for that hardware.
Comment 10 Darren Hart 2011-06-28 09:06:51 UTC
Fixed with:

commit ee4dd303b6667a691ed6093b13c226a7466ee31e
Author: Bruce Ashfield <bruce.ashfield@windriver.com>
Date:   Wed Jun 22 16:00:01 2011 -0400

    linux-yocto/meta-yocto: update yocto/standard and beagleboard SRCREVs
Comment 11 Yi Zhao 2011-06-28 23:27:42 UTC
Verified it with 20110625 build on beagleboard C4

keyboards and mice can work with a self powered USB hub

Tree/Branch: Poky/Master
Poky Commit: a1f79a7896b6411669b3ccada6204d2695e80fc5