On 3/28/22 19:25, Patrick Delaunay wrote: > When an interruption is received during the first USB enumeration > used to received the FlashLayout, with handle ctrl-c, the second > enumeration is not needed and the result for stm32prog_usb_loop > is false (reset is not needed). > > This patch avoids the need of a second ctrl to interrupt the command > stm32prog. > > Signed-off-by: Patrick Delaunay <[email protected]> > --- > > arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c > b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c > index 82b702f93b..a8b57c4d8f 100644 > --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c > +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c > @@ -206,9 +206,12 @@ bool stm32prog_usb_loop(struct stm32prog_data *data, int > dev) > g_dnl_set_product(product); > > if (stm32prog_data->phase == PHASE_FLASHLAYOUT) { > + /* forget any previous Control C */ > + clear_ctrlc(); > ret = run_usb_dnl_gadget(dev, "usb_dnl_dfu"); > - if (ret || stm32prog_data->phase != PHASE_FLASHLAYOUT) > - return ret; > + /* DFU reset received, no error or CtrlC */ > + if (ret || stm32prog_data->phase != PHASE_FLASHLAYOUT || > had_ctrlc()) > + return ret; /* true = reset on DFU error */ > /* prepare the second enumeration with the FlashLayout */ > stm32prog_dfu_init(data); > } Applied to u-boot-stm32 Thanks Patrice

