[PATCH] cmd: fdt: Add support for reading stringlist property values

Simon Glass sjg at chromium.org
Wed Jul 13 17:45:51 CEST 2022


Hi Marek,

On Wed, 13 Jul 2022 at 09:30, Marek Vasut <marex at denx.de> wrote:
>
> On 7/13/22 17:28, Simon Glass wrote:
> > Hi Marek,
> >
> > On Tue, 12 Jul 2022 at 05:47, Marek Vasut <marex at denx.de> wrote:
> >>
> >> On 7/12/22 12:58, Simon Glass wrote:
> >>> Hi Marek,
> >>>
> >>> On Fri, 8 Jul 2022 at 15:50, Marek Vasut <marex at denx.de> wrote:
> >>>>
> >>>> The fdt command currently handles stringlists as strings in 'fdt get value'
> >>>> subcommand. Since strings in FDT stringlists are separated by '\0', only
> >>>> the first value gets inserted into the environment variable passed to the
> >>>> 'fdt get value' command.
> >>>>
> >>>> Example, consider the following DT snippet:
> >>>>
> >>>> / { compatible = "foo", "bar" };
> >>>>
> >>>> The following command only reports the first string in stringlist:
> >>>> => fdt get value var / compatible ; print var
> >>>> foo
> >>>>
> >>>> It is not possible to assign list of null-terminated strings into U-Boot
> >>>> environment variable. Add optional 'index' parameter to the subcommand
> >>>> 'fdt get value <var> <path> <prop> [<index>]' which lets user specify which
> >>>> string within the stringlist should be assigned into the 'var' variable.
> >>>> The default value of 'index' is 0 in case it is not present. This way the
> >>>> 'fdt' command API does not change and existing scripts are not broken.
> >>>>
> >>>> The following command now reports the Nth string in stringlist, counting
> >>>> from zero:
> >>>> => fdt get value var / compatible 1 ; print var
> >>>> bar
> >>>>
> >>>> Signed-off-by: Marek Vasut <marex at denx.de>
> >>>> Cc: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> >>>> Cc: Simon Glass <sjg at chromium.org>
> >>>> Cc: Tom Rini <trini at konsulko.com>
> >>>> ---
> >>>>    cmd/fdt.c | 34 ++++++++++++++++++++++++++++------
> >>>>    1 file changed, 28 insertions(+), 6 deletions(-)
> >>>
> >>> Can you please add docs and a test?
> >>
> >> I was expecting this kind of question ... there is no test for the FDT
> >> command.
> >>
> >>> I am happy to do a starting point for a test if you like.
> >>
> >> You can implement the test for this while at it.
> >
> > I sent a starting point for you, both docs and test.
>
> Thank you.
>
> Do I understand your remark correctly that you're blocking this
> particular patch from going in until there is a test ?

I'm not blocking anything, but turning it around the other way, how
about having a crack at a test? You can try out 'ut fdt' to see the
current tests (using the patches I sent).

Regards,
Simon


More information about the U-Boot mailing list