[U-Boot] [PATCH 0/2] Series to clean handle_XXX() in f_dfu.c

Lukasz Majewski lukma at denx.de
Tue Feb 21 22:36:16 UTC 2017


Hi Patrick,

> 
> 1/ DFU_GETSTATE response error
> 
> when the DFU device state is requested using libusb with DFU_GETSTATUS
> a error is generated : LIBUSB_ERROR_IO
> 
> I see the issue with my programmer tools based on dfu with libusb
> and I don't understood the actual code in U-Boot
> (req->actual is updated but not req->lenght ?)
> 
> With the proposed patch, I aligned the code on the GETSTATUS behavior:
> the correct lenght is provided in req->lenght as the other answer
> and the issue is solved.
> 
> PS: the issue not see with dfu-util as the existing function
>     dfu_get_state() is never called in main (with dfu-util 0.9)
> 
>     But I can reproduce the same issue with patched version of
> dfu-util to add call to this function, on the dfu-util master branch
> 
> diff --git a/src/main.c b/src/main.c
> index 7f31d4c..d99ace9 100644
> --- a/src/main.c
> +++ b/src/main.c
> @@ -535,6 +535,13 @@ dfustate:
>         }
> 
>  status_again:
> +       printf("Determining device state: ");
> +       ret = dfu_get_state(dfu_root->dev_handle,
> dfu_root->interface);
> +       if (ret < 0) {
> +               errx(EX_IOERR, "error get_state: %s",
> libusb_error_name(ret));
> +       }
> +       printf("state = %s\n", dfu_state_to_string(ret));
> +
>         printf("Determining device status: ");
>         ret = dfu_get_status(dfu_root, &status );
>         if (ret < 0) {
> 
> 
> 2/ harmonize handle_getstatus() with other function
> 
> => add return value with size of the buffer as
>    - handle_getstate() add in part 1
>    or existing functions
>    - handle_dnload()
>    - handle_upload()
> 
> 
> 
> Patrick Delaunay (2):
>   usb: gadget: dfu: correct size for USB_REQ_DFU_GETSTATE result
>   usb: gadget: dfu: add result for handle_getstatus()

First of all thank you very much for fixing several DFU issues.

Secondly, please find my deepest apologies for such long delay. It
will NOT happen again.
 
Your patches have been added to -dfu tree. I will send PR tomorrow.

I've also added following patch:
http://patchwork.ozlabs.org/patch/704131/

For all of them:

Acked-by: Lukasz Majewski <lukma at denx.de>
Tested-by: Lukasz Majewski <lukma at denx.de>

Test HW: BBB (am335x)
Test SW: test/py/dfu


> 
>  drivers/usb/gadget/f_dfu.c | 56
> ++++++++++++++++++++--------------------------
> drivers/usb/gadget/f_dfu.h |  1 - 2 files changed, 24 insertions(+),
> 33 deletions(-)
> 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de


More information about the U-Boot mailing list