Hello.

On Sat, 2010-04-03 at 20:26, Sandro Giessl wrote:
> 
> However, there are some small things we want to add to work with our devices 
> and to conform with the DFU 1.0 spec, in particular:
> 
> DFU_GETSTATUS ignores bwPollTimeout but does hardcoded usleep(5000) when 
> doing 
> DFU download:
> This is a show-stoper for us, since this delay is too short and results in 
> libusb 'Broken pipe' errors.
> A patch implementing proper timeout handling is attached.

Nice to see other people using it.

> My question is, do you see a chance in getting these things upstream?
> Since some distros are shipping slightly different SVN revisions, do you plan 
> a 
> real dfu-util release any time soon?

As Paul already pointed out the biggest problem is that we don't have a real
maintainer for it. I think Harald is way to busy with other things and nobody
stepped up to take care of fixing problems going forward to a real release. The
download part is quite stable I think, at least on the Openmoko phones and I
already heard from people that it shoudl also detect various BT devices. The
last time I tested upload was broken though.

> --- ../dfu-util-openmoko/src/sam7dfu.c        2010-04-03 18:35:40.000000000 
> +0200

Hmm, this is no longer only sam7 related. Seems like a historical fragment from
the pre-OM days. (Some of the code was already used on the OpenPCD project).

> +++ src/sam7dfu.c     2010-04-03 20:04:11.000000000 +0200
> @@ -2,6 +2,8 @@
>   * USB DFU 1.0 Spec.  Not overloaded like the Atmel one...
>   *
>   * (C) 2007-2008 by Harald Welte <[email protected]>
> + * (C) 2010      by Sandro Giessl <[email protected]>
> + *                  Daniel Hiepler <[email protected]>
>   */

Aehm, I don't think 2 lines of code change plus three lines comments justify the
copyright addition of two people...

>  #include <stdio.h>
> @@ -143,7 +145,10 @@ int sam7dfu_do_dnload(struct usb_dev_han
>                               fprintf(stderr, "Error during download 
> get_status\n");
>                               goto out_close;
>                       }
> -                     usleep(5000);
> +                        /* respect bwPollTimeout (in msec) the device
> +                           expects the host to wait before subsequent
> +                           DFU_GETSTATUS (DFU 1.0, section 6.1.2) */
> +                     usleep(dst.bwPollTimeout*1000);
>               } while (dst.bState != DFU_STATE_dfuDNLOAD_IDLE);
>               if (dst.bStatus != DFU_STATUS_OK) {
>                       printf(" failed!\n");

Did you test if bwPollTimeout is really filled from u-boot on the Openmoko
phones?

regards
Stefan Schmidt

_______________________________________________
devel mailing list
[email protected]
https://lists.openmoko.org/mailman/listinfo/devel

Reply via email to