[PATCH 1/3] dtoc: Rename is_wider_than() to reduce confusion

Walter Lozano walter.lozano at collabora.com
Tue Dec 7 20:13:34 CET 2021

Hi Simon,

On 11/24/21 21:12, Simon Glass wrote:
> Hi Walter,
> On Mon, 2 Aug 2021 at 13:29, Walter Lozano <wlozano at collabora.com> wrote:
>> Hi Simon,
>> On 8/1/21 11:50 PM, Simon Glass wrote:
>>> Hi Walter,
>>> On Sun, 1 Aug 2021 at 20:45, Walter Lozano <wlozano at collabora.com> wrote:
>>>> Hi Simon,
>>>> Thanks for checking this bug, I'm glad that you were able to come with
>>>> fix quickly. I have some questions, I hope that you find some time to
>>>> help me understand.
>>>> On 7/28/21 10:23 PM, Simon Glass wrote:
>>>>> The current name is confusing because the logic is actually backwards from
>>>>> what you might expect. Rename it to needs_widening() and update the
>>>>> comments.
>>>>> Signed-off-by: Simon Glass <sjg at chromium.org>
>>>>> ---
>>>>>     tools/dtoc/fdt.py | 15 +++++++++------
>>>>>     1 file changed, 9 insertions(+), 6 deletions(-)
>>>>> diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py
>>>>> index 3996971e39c..9749966d5fb 100644
>>>>> --- a/tools/dtoc/fdt.py
>>>>> +++ b/tools/dtoc/fdt.py
>>>>> @@ -24,16 +24,19 @@ from patman import tools
>>>>>     # A list of types we support
>>>>>     class Type(IntEnum):
>>>>> +    # Types in order from widest to narrowest
>>>>>         (BYTE, INT, STRING, BOOL, INT64) = range(5)
>>>> Sorry but I don't understand why BYTE is wider than INT (or INT64)
>>> I think perhaps we need a better name. A wider type is one that can
>>> hold the values of a narrower one, plus more.
>>> In this case a 'bytes' type can hold anything (bytes, int, int64,
>>> bool) so is the 'widest' there is. It is the lowest common denominator
>>> in the devicetree.
>> Thanks for taking the time to explain. I understand the idea behind your
>> explanation but I still not sure if I follow you completely. In any
>> case, let me add a few words in order to be more clear.
>> It is my impression that when you say 'bytes' (and not BYTE like in the
>> declaration) you are referring to a list. Is that the case?
>> If not, BYTE (8 bit) seems to be narrower than INT (32 bits), isn't it?
> A bit long in finding this email again...
> Actually bytes means the Python bytes type which holds a sequence of
> bytes. So it can hold an int, whereas an int cannot hold a bytes
> value, in general (although it could if it happened to be 4 bytes).

It is more clear now, thank you.

>> Also, another example is INT, BOOL and INT64. It is clear that INT is
>> wider than BOOL, but why BOOL is wider than INT64?
> It isn't actually, but INT64 is a bit of a special case and I had to
> put it somewhere.

I see, thank you for the explanation!

> As reference I have been checking
> https://devicetree-specification.readthedocs.io/en/stable/devicetree-basics.html#property-values
> [..]



Walter Lozano
Collabora Ltd.

More information about the U-Boot mailing list