[PATCH] dfu: handle short frame result of UPLOAD in state_dfu_idle

Tom Rini trini at konsulko.com
Fri Jan 28 21:15:28 CET 2022


On Wed, Oct 13, 2021 at 05:01:37PM +0200, Patrick Delaunay wrote:

> In DFU v1.1 specification [1] the DFU_UPLOAD (Short Frame)
> is handled only in dfuUPLOADIDLE state:
> 
> - Figure A.1 Interface state transition diagram
> 
> - the state description in chapter A.2
> 
> A.2.3 State 2 dfuIDLE
>   on Receipt of the DFU_UPLOAD request,and bitCanUpload = 1
>   the Next State is dfuUPLOADIDLE
> 
> A.2.10 State 9 dfuUPLOAD-IDLE
>   When the length of the data transferred by the device in response
>   to a DFU_UPLOAD request is less than wLength. (Short frame)
>   the Next State is dfuIDLE
> 
> In current code, when an UPLOAD is completely performed after the first
> request (for example with wLength=200 and data read = 9), the DFU state
> stay at dfuUPLOADIDLE until receiving a DFU_UPLOAD or a DFU_ABORT request
> even it is unnecessary as the previous DFU_UPLOAD request already reached
> the EOF.
> 
> This patch proposes to finish the DFU uploading (don't go to dfuUPLOADIDLE)
> and completes the control-read operation (go to DFU_STATE_dfuIDLE) when
> the first UPLOAD response has a short frame as an end of file (EOF)
> indicator even if it is not explicitly allowed in the DFU specification
> but this seems logical.
> 
> [1] https://www.usb.org/sites/default/files/DFU_1.1.pdf
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20220128/5b170c27/attachment.sig>


More information about the U-Boot mailing list