[PATCH] dfu: Fix dfu_config_interfaces() for single interface DFU syntax

Mattijs Korpershoek mkorpershoek at kernel.org
Tue Jul 15 11:24:03 CEST 2025


On Fri, Jul 11, 2025 at 15:14, Sam Protsenko <semen.protsenko at linaro.org> wrote:

> On Fri, Jul 11, 2025 at 3:02 AM Mattijs Korpershoek
> <mkorpershoek at kernel.org> wrote:
>>
>> Hi Sam,
>>
>> Thank you for the patch.

[...]

>>
>> Good catch! I can indeed reproduce this on sandbox after enabling
>> CMD_DFU:
>>
>> $ ./u-boot -T
>>
>> [...]
>>
>> => setenv dfu_alt_info "rawemmc raw 0 0x747c000 mmcpart 1;"
>> => dfu list
>> [1]    116917 segmentation fault (core dumped)  ./u-boot -T
>>
>> And I confirm it's fixed with this patch.
>>
>> Thanks for all the details, it makes the review and the testing
>> so much easier!
>>
>
> Sometimes it takes longer to write a commit message than to come up
> with the patch itself, hehe. I also tried to come up with some test
> for that use case, but when you run the Py test suite on the sandbox
> -- it just skips the DFU test. I figured some env hooks have to be
> provided to make it work, but it took too much time for me already, so
> I kinda ended up skipping that part.

Yes, we should definitely work on enabling testing DFU with sandbox.
This is out of scope for this patch, but I've opened a TODO item
for that here:

https://source.denx.de/u-boot/custodians/u-boot-dfu/-/issues/7

Thanks again for the fix.

Mattijs

>
>> Reviewed-by: Mattijs Korpershoek <mkorpershoek at kernel.org>
>>
>> > ---
>> >  drivers/dfu/dfu.c | 2 +-
>> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
>> > index 756569217bbb..eefdf44ec877 100644
>> > --- a/drivers/dfu/dfu.c
>> > +++ b/drivers/dfu/dfu.c
>> > @@ -147,7 +147,7 @@ int dfu_config_interfaces(char *env)
>> >                       break;
>> >               a = strsep(&s, "&");
>> >               if (!a)
>> > -                     a = s;
>> > +                     a = d;
>> >               do {
>> >                       part = strsep(&a, ";");
>> >                       part = skip_spaces(part);
>> > --
>> > 2.39.5


More information about the U-Boot mailing list