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

Simon Glass sjg at chromium.org
Sun Mar 6 04:07:57 CET 2022


Hi Alper,

On Thu, 3 Mar 2022 at 14:14, Alper Nebi Yasak <alpernebiyasak at gmail.com> wrote:
>
> On 24/02/2022 01:58, Simon Glass wrote:
> > 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:
> >>> 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.
>
> I just wasn't sure about the semantics and wanted to highlight what
> might be an edge case. Looking again, I think this is binary-wise
> correct, but GetString and GetStringList would return True and [True]
> for these boolean props where I'd want None and [].

I'll add a test for that in v3.

Regards,
Simon


More information about the U-Boot mailing list