On 24/02/2022 01:58, Simon Glass wrote: > On Tue, 15 Feb 2022 at 04:53, Alper Nebi Yasak <alpernebiya...@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 [].