[PATCH 06/24] dtoc: Support adding a string list to a device tree
Alper Nebi Yasak
alpernebiyasak at gmail.com
Thu Mar 3 22:07:13 CET 2022
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 [].
More information about the U-Boot
mailing list