RevC USB Host port randomly disconnects

Okay, I'm completely flabbergasted.

I tried pretty much everything, ranging from using different power
supplies both on the OTG port and the DC in port. I reinstalled the
binaries from Steve and I used three different USB2.0 hubs. I have
still a disconnecting USB port. I am not able to reset the USB port, a
complete reboot is needed.

What can be wrong? Do I have a malfunctioning beagleboard? I read
someone on the IRC channel having the same problems.

Kind regards,

Eelco

Hi Eelco,

I can't remember if you already wrote, but have you tried another memory
stick? Which one are you using?

How is your setup? A standard ~1.8m cable from BB to HUB and then the memory
stick connected directly to the HUB? Just trying to bring all details on the
table in order to search for minor differences in our setups :slight_smile:

Best regards
  Søren

I have an even shorter cable between the board and the hub. I've
connected the memorystick directly to the hub. I've tried 3 different
memory sticks and an USB ethernet adaptor (which also shuts down when
to much data passes), all exhibit the same problem. I tried to connect
both OTG and DC in power supplies (separately and both at the same
time). Strangely it not only crashes on a lot of data, it also crashes
when I run the chameleon man demo, the USB hub lights go out after
approx 1 minut of running time.

It more and more starts to look like a hardware failure. I've included
the messages that are generated during the USB crash. As you can see
the hub is pretty much useless afterwards, a power cycle of the hub or
disconnect/connect does not do the trick, I have to restart. The
serial console however still works and I do get an image (the running
man keeps on running).

Kind regards, Eelco

output on serial console, the cables are good quality and should not be the limiting factor

hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: Cannot enable port 4. Maybe the USB cable is bad?
hub 2-2:1.0: cannot disable port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: Cannot enable port 4. Maybe the USB cable is bad?
hub 2-2:1.0: cannot disable port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: Cannot enable port 4. Maybe the USB cable is bad?
hub 2-2:1.0: cannot disable port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: cannot reset port 4 (err = -71)
hub 2-2:1.0: Cannot enable port 4. Maybe the USB cable is bad?
hub 2-2:1.0: cannot disable port 4 (err = -71)
hub 2-2:1.0: cannot disable port 4 (err = -71)
hub 2-2:1.0: hub_port_status failed (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: Cannot enable port 3. Maybe the USB cable is bad?
hub 2-2:1.0: cannot disable port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: Cannot enable port 3. Maybe the USB cable is bad?
hub 2-2:1.0: cannot disable port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: Cannot enable port 3. Maybe the USB cable is bad?
hub 2-2:1.0: cannot disable port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: cannot reset port 3 (err = -71)
hub 2-2:1.0: Cannot enable port 3. Maybe the USB cable is bad?
hub 2-2:1.0: cannot disable port 3 (err = -71)
hub 2-2:1.0: cannot disable port 3 (err = -71)
hub 2-2:1.0: hub_port_status failed (err = -71)
hub 2-2:1.0: hub_port_status failed (err = -71)
sd 0:0:0:0: [sda] READ CAPACITY failed
sd 0:0:0:0: [sda] Result: hostbyte=0x07 driverbyte=0x00
sd 0:0:0:0: [sda] Sense not available.
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] READ CAPACITY failed
sd 0:0:0:0: [sda] Result: hostbyte=0x07 driverbyte=0x00
sd 0:0:0:0: [sda] Sense not available.
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] READ CAPACITY failed
sd 0:0:0:0: [sda] Result: hostbyte=0x07 driverbyte=0x00
sd 0:0:0:0: [sda] Sense not available.
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
usb 2-2.3: USB disconnect, address 3
usb 2-2.4: USB disconnect, address 4
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
hub 2-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
hub 2-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
hub 2-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)
hub 2-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
hub 2-2:1.0: hub_port_status failed (err = -19)
hub 2-2:1.0: hub_port_status failed (err = -19)
hub 2-2:1.0: hub_port_status failed (err = -19)
hub 2-2:1.0: hub_port_status failed (err = -19)
hub 2-2:1.0: activate --> -19
ehci-omap ehci-omap.0: port 2 reset error -110
hub 2-0:1.0: hub_port_status failed (err = -32)

It also happens without the memory stick. The USB port just shuts down
after running the Chameleon man for more than one minute.

regards, Eelco

Hmm - Sounds like a HW failure - Do you have any measurement equipment? Can
you monitor the Host_Vbus signal on a scope while the error is occurring?
You can measure it at the capacitor C101 just next to the USB connector (the
end toward the inside of the board)...

In case not, I think you should try to go for a RMA...

Best regards
  Søren

I think I will go for an RMA. I do have some measurement equipment but
not the stuff to repair the board. Søren, you also live in Europe? How
do I do an RMA from the Netherlands?

Thank you very much for all your advice. I will have to get used to a
couple of weeks living without the board...my wife won't mind :wink:

kind regards, Eelco

Hi Eelco,

Yes - I'm Danish and live in Denmark (for the time being). I have the
previous nearly 3 years been working as a contractor for TI, but
unfortunately TI recently decided to shutdown their Aalborg-department. I'm
therefore currently looking for new opportunities so I might move in case I
find anything interesting elsewhere in the World :slight_smile: In case anybody will
take their time to check my LinkedIn profile it can be found at:
http://www.linkedin.com/in/sorenschristensen - This would be highly
appreciated :slight_smile:

I haven't tried the RMA procedure myself, but you can find more info at:
http://beagleboard.org/support/rma

In case of further questions, please ask Gerald - I'm sure he can answer :slight_smile:

Best regards - Good luck
  Søren

The only other thing left I can suggest is trying a different kernel
(e.g. an image from http://amethyst.openembedded.net/~koen/narcissus/
)

Fm

I suggest you follow the process in the System Reference Manual to verify that the HW is OK. If it fails, then request the RMA.

Gerald

Steve,

Installing the rootfs, u-boot and uImage should be enough? You also
put a modules.tgz file on the site. Do I need to do something with
this file as well? I don't see any moduls errors during startup.

I typically run with the complete set of MLO, u-boot.bin, uImage, and rootfs.

Additionally, when using a new set of images I typically wipe my
u-boot environment (for beagle: nand erase 260000 20000) so that I am
running with the latest u-boot default environment and not some older
and potentially incompatible environment (mainly an issue when dss2
boot args change).

My testing has been with this set:

http://www.sakoman.com/feeds/omap3/glibc/images/beagleboard/200904161145/

I've tried hard to recreate your issue both on my Beagle and on
multiple Overo setups, but I just don't see anything like your issue.

On Beagle, poor ChameleonMan has been running past that brick wall for
12 hours now and USB still works just fine :slight_smile:

Steve

Thank you for all replies, hints and tips. I am going to try another
kernel as frans sugggested and do a nand erase and finally try the HW
tests as Gerald suggested. I really hope it will solve the problems,
as I am not looking forward to send my precious beagleboard back (way
too much fun!). Steve, I really appreciate that you have been
excercising the Chameleon man!

I will post my results as soon as possible, although I am prepared for
the worst...

Kind regards, Eelco

Hi,

I have exactly the same problem as Eelco : on a Beagleboard C2 with
2.6.28 kernel (Angstrom compiled using OE) and a USB / WIFI adapter
(LINKSYS WUSB54GC) connected to the USB HOST thru a self powered USB
HUB, a transfer from a PC using 'scp' suddendly break. However, when
sending data with 'curl' from the Beagleboard it works properly. I
have exactly the same problem when connecting directly the USB WIFI
adapter to the USB HOST (thanks a short cable male/female ~ 50 cm
long). I did not test the USB OTG yet.

Notice that exactly the same USB WIFI adapter, same USB HUB worked
with the Beagleboard B7 with a different cable connected to the USB
OTG (mini USB), running 2.6.26 kernel.

I'm ready to participate to that discussion in order to locate the
probleme : SW? HW? other?

Best regards to all.

Hello everyone,

This morning, I downloaded what mentionned by Steve at
http://www.sakoman.com/feeds/omap3/glibc/images/beagleboard/200904161145/

My test is based on a USB/WIFI adapter, connected to a powered USB
HUB, sending with 'scp' a 'big' file (~40MB) from a PC to the
Beagleboard.

1) Still have the problem on USB HOST
2) Do not have the problem on USG OTG

Thus I ask myself the following questions :

1) Does it mean that from kernel point of view it is not a SW issue ?
2) Does it mean the USB HOST has some kind of HW issue (notice that
sending data using 'curl' from the Beagleboard to a PC works
properly) ?
3) The other main difference is the cable (one is mini USB, the other
not) ; I'm going to test all the available cable I have
4) I'm going back to 2.6.28 to check USB OTG (I only noticed my test
failed onto USB HOST).

Thanks to all.

I am seeing these disconnects as well. I have the Beagleboard powered
by a 5V 2A switching power supply, and the host USB port is driving a
self-powered USB 2.0 high-speed hub (in other words, the Beagleboard
is NOT powering the hub nor anything downstream of the hub).

When this disconnect happens, it is persistent until the board is
rebooted. The hub can be plugged into the OTG port and the devices
detected, but plugging it into the host port does nothing.

Same here: I've got a RevC and when using Sakoman's 200904082313 build
I found it randomly disconnecting devices on the host port. I also saw
that the system needed to be rebooted to recognize anything on the
host port. I've had disconnects on an external DVD hooked directly to
the port, as well as a keyboard / mouse hooked up through a powered
USB2.0 hub.

Eric

Ah,

So I am not the only one. Can anyone verify that this problem also
appears during the chameleon man demo (probably there are more
programs that will cause this issue). It happens when running for
approx. more than a minute and moving the mouse (after a while of
moving the mouse, you will see that the hub is losing the connection.

I thought I saw someone mentioning this problem on one of the IRC
sessions...

As Frans and Steve told me they didn't have the problem with their
beagleboards, could it be something with certain tolerances on
components? (resistors, capacitors)

I am on the virge of sending the board back... But if there is no
guarantee that a new board will work than that is no option...

Kind regards,
Eelco

The RevC validation tests are not sufficient to detect this problem as
it seems only to occur when the board (USB, processor) is stressed by
bulk data through the port. I haven´t been able to test the OTG port,
as mini A to mini A cables are hard if not impossible to find. Frans,
have you seen any of these cables in the Netherlands?

regards, Eelco

Hello

I have such a mini A/A cable and a rev C. I can test if you tell me
how you can successfully cause the stress which results in a
disconnect.

Guylhem

Well to crash the USB port I didn't need to use the OTG port. I've
tried a simple USB thumbdrive connected to a powered hub connected to
the Host port. I tried to copy a file of 60 or 300 MB from the
thumbdrive to my home directory on the flash disk and it stalls after
approx 10-30 megabytes. After that, the whole USB hub doesn't work
anymore and the board needs to be rebooted. Another test does not need
the thumbdrive, only a powered hub connected to the USB host port (not
OTG) and a keyboard/mouse connected to this hub. Move the mouse
pointer during the chameleon man demo (you will see that it has an
impact on the speed of the demo), after a while (a minute or so), the
hub loses connection and can only be activated after rebooting the
beagleboard.

regards, Eelco

Eelco:

If you want to force the OTG port into host mode and only have a Mini-
B cable, you can short OTG connector pins 4 and 5 together with a
probe or a pin while you're booting Linux. Once the boot is complete,
you can remove the short. There is a photo of which pins to short at:

http://elinux.org/BeagleBoard#OTG

Hope this helps,
John