Hi Walter, On Mon, 2 Aug 2021 at 13:29, Walter Lozano <wloz...@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 <wloz...@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 <s...@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