On Thu, 4 Mar 2004, Martin Diehl wrote: > I'm offline for the rest of the day, but I think the iso-firmware is ready > for release tomorrow :-)
Ok, here we are. New release of the usbtest-firmware (attached). Changes against last version dated 20030720: * (hopefully) workaround early Rev FX silicon issue with disconnect pin * add support for ctrl_out tests (vendor EP0 R/W request). Works up to len=1024, RequestError (protocol-STALL) otherwise. * switch to altsetting=1 to allow ISO endpoints * ISO sink+source support. Currently maxlen=512, interval=1ms each. Not supported with FX2. Mode is "sink everything, source zerofilled data". The attached tgz includes sources and Intel-Hex image usbtest_fw.ihx, which is build to work with both AN213x and FX devices (i.e. DMA not used) I had to modify the usbtest driver to accept the changed altsetting and enable autoconfig (required for iso and ctrl_out tests). I've also changed it so we can test both bulk and iso in the same altsetting. Typical result with ehci_hcd (over HS/TT hub to FS EZUSB-FX) looks like this (with your pending split-iso patch and the read enabled by me): $ ./testusb -a -g8 -s1024 -v256 /proc/bus/usb/004/005 test 0, 0.000003 secs /proc/bus/usb/004/005 test 1, 1.849929 secs /proc/bus/usb/004/005 test 2, 1.751630 secs /proc/bus/usb/004/005 test 3, 1.000524 secs /proc/bus/usb/004/005 test 4, 0.999629 secs /proc/bus/usb/004/005 test 5, 13.268032 secs /proc/bus/usb/004/005 test 6, 13.277821 secs /proc/bus/usb/004/005 test 7, 7.019167 secs /proc/bus/usb/004/005 test 8, 7.001339 secs /proc/bus/usb/004/005 test 9, 3.502091 secs /proc/bus/usb/004/005 test 10, 1.501138 secs /proc/bus/usb/004/005 test 11, 4.465409 secs /proc/bus/usb/004/005 test 12, 4.268215 secs /proc/bus/usb/004/005 test 13, 10.039727 secs /proc/bus/usb/004/005 test 14, 3.925538 secs /proc/bus/usb/004/005 test 15, 16.008210 secs /proc/bus/usb/004/005 test 16, 16.007960 secs ohci_hcd working as well, except for the famous bad entry issue during test11/12. uhci_hcd not tried. Happy testing ;-) Martin ------------------ --- linux-2.6.3-bk9/drivers/usb/misc/usbtest.c Tue Feb 24 20:01:48 2004 +++ v2.6.3-bk9-md/drivers/usb/misc/usbtest.c Fri Mar 5 20:13:06 2004 @@ -149,8 +149,6 @@ get_endpoints (struct usbtest_dev *dev, if (!out) out = e; } - if (in && out) - goto found; continue; try_iso: if (e->desc.bEndpointAddress & USB_DIR_IN) { @@ -160,9 +158,9 @@ try_iso: if (!iso_out) iso_out = e; } - if (iso_in && iso_out) - goto found; } + if ((in && out) || (iso_in && iso_out)) + goto found; } return -EINVAL; @@ -181,7 +179,8 @@ found: in->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); dev->out_pipe = usb_sndbulkpipe (udev, out->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); - } else if (iso_in) { + } + if (iso_in) { dev->iso_in = &iso_in->desc; dev->in_iso_pipe = usb_rcvisocpipe (udev, iso_in->desc.bEndpointAddress @@ -1965,7 +1964,10 @@ static struct usbtest_info fw_info = { .name = "usb test device", .ep_in = 2, .ep_out = 2, - .alt = 0, + .alt = 1, + .autoconf = 1, // iso and ctrl_out need autoconf + .ctrl_out = 1, + .iso = 1, // iso_ep's are #8 in/out }; /* peripheral running Linux and 'zero.c' test firmware, or
usbtest_fw-20040305.tar.gz
Description: Binary data