Hi Lukasz We found out that there is an issue with dfu implementation on the latest U-Boot (v2013.07) when downloading from windows. From linux everything works fine. I discussed this with Tormod on the dfu-util mailing list.
In short, I found out that when downloading with dfu-util in libusbx in windows_usb.c at some point we have the comparison "config_index >= dev->num_configurations" and which becomes "1 >= 1" and finally leads to return LIBUSB_ERROR_INVALID_PARAM. This is because in U-Boot drivers/usb/gadget/g_dnl.c we have LN 119: .bConfigurationValue = CONFIG_USBDOWNLOADER, and CONFIG_USBDOWNLOADER = 2 So my question is why do we have CONFIG_USBDOWNLOADER = 2? In a previous dfu implementation in U-Boot (v2011.09) bConfigurationValue was set to 1. When setting CONFIG_USBDOWNLOADER to 1, dfu download works on windows again. Is there any reasons against setting CONFIG_USBDOWNLOADER = 1? Of course this could be solved on linbusbx side. But I have the impression that this should be fixed in U-Boot. I posted my observations on the libusbx mailing list as well. Here the logs that I posted there: Log for dfu-util -a 1 -D MLO -v -v -v Linux: http://pastebin.com/iq80kg0p -> ok Win: http://pastebin.com/Ax7RDFHk -> fails Log for lsusb on linux for the different u-boot versions U-Boot v2011-09: http://pastebin.com/jeC01WxQ U-Boot v2013-07: http://pastebin.com/mvNLkUAs Best Sam _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot