From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Tue, 18 Dec 2012 12:25:37 +0100 Subject: [U-Boot] [PULL] u-boot-usb/master In-Reply-To: <178D4996-9ED9-4A66-A873-8369CF91E0F1@antoniou-consulting.com> References: <201212151737.04038.marex@denx.de> <20121217120035.3708d90c@amdc308.digital.local> <20121217183207.7bf6e0bd@amdc308.digital.local> <178D4996-9ED9-4A66-A873-8369CF91E0F1@antoniou-consulting.com> Message-ID: <20121218122537.5822ac2f@amdc308.digital.local> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Pantelis, > Can you paste the log of your dfu-util session? Are you supplying a > transfer size for example? > > Regards u-boot-denx/master (denx.de) repository SHA1: fd4d564b3c80b111f18c93adb14233a6a7ddb0e9 (without Pantelis patches) dfu-util version 0.7 (not working): lukma at amdc308:~/work/u-boot-denx(master)$ ../dfu-util/src/dfu-util -V -v -t 0x1000 -a0 -D u-boot.bin dfu-util 0.7 Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2012 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to dfu-util at lists.gnumonks.org Opening DFU capable USB device... ID 04e8:6601 Did not find cached descriptor WARNING: Can not find cached DFU functional descriptor Warning: Assuming DFU version 1.0 Run-time device DFU version 0100 Found DFU: [04e8:6601] devnum=0, cfg=2, intf=0, alt=0, name="u-boot" Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing Did not find cached descriptor Error obtaining cached DFU functional descriptor Error obtaining DFU functional descriptor Please report this as a bug! Warning: Assuming DFU version 1.0 Warning: Transfer size can not be detected DFU mode device DFU version 0100 Error: Transfer size must be specified Broken. dfu-util version. 0.1+svnexported (available at debian repository (0.0+r4067-3.1)) lukma at amdc308:~/work/u-boot-denx(master)$ dfu-util -v -t 0x1000 -a0 -D u-boot.bin dfu-util - (C) 2007 by OpenMoko Inc. This program is Free Software and has ABSOLUTELY NO WARRANTY Opening USB Device 0x0000:0x0000... Found Runtime: [0x04e8:0x6601] devnum=77, cfg=0, intf=0, alt=0, name="u-boot" Claiming USB DFU Interface... Setting Alternate Setting ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing Error obtaining DFU functional descriptor: error sending control message: Broken pipe Transfer Size = 0x1000 bytes_per_hash=5591 Starting download: [##################################################] finished! state(2) = dfuIDLE, status(0) = No error condition is present Done! WORKS. Ok, so world has went forward..... And I've left behind :-/. With Pantelis Patches: lukma at amdc308:~/work/u-boot-denx(NEW_DFU)$ ../dfu-util/src/dfu-util -V -v -t 0x1000 -a0 -D u-boot.bin dfu-util 0.7 Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2012 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to dfu-util at lists.gnumonks.org Opening DFU capable USB device... ID 04e8:6601 Did not find cached descriptor WARNING: Can not find cached DFU functional descriptor Warning: Assuming DFU version 1.0 Run-time device DFU version 0100 Claiming USB DFU Runtime Interface... Determining device status: state = appIDLE, status = 0 Device really in Runtime Mode, send DFU detach request... Resetting USB... Opening DFU USB Device... Found DFU: [04e8:6601] devnum=0, cfg=2, intf=0, alt=0, name="u-boot" Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing Did not find cached descriptor Error obtaining cached DFU functional descriptor DFU mode device DFU version 0110 Device returned transfer size 4096 No valid DFU suffix signature Warning: File has no DFU suffix bytes_per_hash=6280 Copying data from PC to DFU device Starting download: [##################################################] finished! Sent a total of 314004 bytes state(2) = dfuIDLE, status(0) = No error condition is present Done! Ok, so it seems to work (CRC is correct, system boots). The reason of the turmoil from my side was the VERY OLD version of dfu-utils, which I've used for testing. I will thoroughly test this and let you know about the result. The only thing, which I see as a problem (in this patch series) is: + +#ifdef CONFIG_DFU_FUNCTION + /* DFU is mighty weird */ + case DFU_DT_FUNC: at ./gadget/composite.c Since I now know how to reproduce/test the problem I will try to remove this #ifdef. After all this I have a huge "moral hangover"..... -- Best regards, Lukasz Majewski Samsung Poland R&D Center | Linux Platform Group