I too, am using usbstress and have the same problem with a broken pipe error.
Alex Holden wrote:
Hi, I just got an ezusb devel board so decided to try the usbstressMy version of the problem is worse. The control test and the bulk test
package on it. It seems that quite a few of the tests fail...I'm using: linux-2.3.99-pre1, usbstress-0.3 (slightly hacked to download
to the vid/pid of the board I have), an AN2123 board (ActiveWire), USB via
an Intel 82371AB PIIX4 in an IBM Thinkpad 770, devel board plugged
directly into root hub port.First I tried the usb-uhci.o driver:
Control Echo test fails after some random number of transactions
(typically between about 10 and 5000) with a message similar to:
control_msg(0xc0, 0xe0, 48) failed with -1, errno Broken pipe (32)
sequence 682
fail everytime in sequence 0, I never get a full sequence. I always get
the same error message as you (except always sequence 0)
control_msg(0xc0, 0xe0, 48) failed with -1, errno Broken pipe (32)
sequence 0
I posted some question to the linux-usb mail list, Here is a piece of
George Archer's response.
I guess I just dont fully understand what's going on.usbstress sees the STALL form the Anchor as an error and aborts, from a protocol view, the USB transfers look totally right. I haven't checked yet, whether the Anchor firmware is doing anything wrong or the IN-request is simply coming too fast, since the out has to copy the data.
Do you know has anyone ever successfully used usbstress with the
Anchor Chips EZ-USB development board, i.e. does usbstress v0.3 work at all?
When George Archer says Anchor firmware, does he mean the firmware written
by Thomas Sailer downloaded to the 8051 core?
The control test in usbstress is a loop with both and IN and and OUT
r = usb_control_msg(dev, USB_RECIP_DEVICE|USB_TYPE_VENDOR|USB_DIR_OUT,
0xe0, 0, 0, sizeof(buf), buf, 1000);
r = usb_control_msg(dev, USB_RECIP_DEVICE|USB_TYPE_VENDOR|USB_DIR_IN,
0xe0, 0, 0, sizeof(bufr), bufr,
1000);
George Archer says perhaps the IN-request is simply coming too fast.
However
I have single stepped to as low a level as possible (to the ioctl()
call, which is part
of the kernel) and it doesn't make any difference.
So I guess I just have an open ended kind of question...Did you ever
get usbstress
to work (just control and bulk - I don't need isochronous)? How
so?
Thank You,
Chip Grandits
Digilent Enterprises
