[PATCH 06/24] dtoc: Support adding a string list to a device tree

Simon Glass sjg at chromium.org
Wed Feb 23 23:58:55 CET 2022


Hi Alper,

On Tue, 15 Feb 2022 at 04:53, Alper Nebi Yasak <alpernebiyasak at gmail.com> wrote:
>
> On 08/02/2022 21:49, Simon Glass wrote:
> > Add a new function to add a string list.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> >  tools/dtoc/fdt.py      | 18 ++++++++++++++++++
> >  tools/dtoc/test_fdt.py |  8 ++++++++
> >  2 files changed, 26 insertions(+)
> >
> > diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py
> > index 32a7aa9829..e7197f8f12 100644
> > --- a/tools/dtoc/fdt.py
> > +++ b/tools/dtoc/fdt.py
> > @@ -501,6 +501,24 @@ class Node:
> >          val = bytes(val, 'utf-8')
> >          return self.AddData(prop_name, val + b'\0')
> >
> > +    def AddStringList(self, prop_name, val):
> > +        """Add a new string-list property to a node
> > +
> > +        The device tree is marked dirty so that the value will be written to
> > +        the blob on the next sync.
> > +
> > +        Args:
> > +            prop_name: Name of property to add
> > +            val (list of str): List of strings to add
> > +
> > +        Returns:
> > +            Prop added
> > +        """
> > +        out = b''
> > +        for string in val:
> > +            out += bytes(string, 'utf-8') + b'\0'
> > +        return self.AddData(prop_name, out)
>
> If val is an empty list this would try to set a zero-byte data, but then
> the Prop class considers that a boolean True.

Yes, but I believe that is correct, isn't it? I did propose a change
to DT bool props but it has not got anywhere.

>
> Perhaps use "s" as the variable name as there's a "string" module
> (though not imported here).
>
> Also, b'\0'.join() works just like in strings if you prefer that to a loop.

OK, will update both of those.

Regards,
Simon


More information about the U-Boot mailing list