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

Simon Glass sjg at chromium.org
Thu Nov 25 01:12:47 CET 2021


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).

> 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.

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

[..]

Regards,
Simon


More information about the U-Boot mailing list