dtoc: Correct the type widening code in fdt_fallback
authorSimon Glass <sjg@chromium.org>
Fri, 22 Jul 2016 15:22:49 +0000 (09:22 -0600)
committerTom Rini <trini@konsulko.com>
Mon, 25 Jul 2016 16:05:55 +0000 (12:05 -0400)
This code does not match the fdt version in fdt.py. When dtoc is unable to
use the Python libfdt library, it uses the fallback version, which does not
widen arrays correctly.

Fix this to avoid a warning 'excess elements in array initialize' in
dt-platdata.c which happens on some platforms.

Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com>
tools/dtoc/fdt_fallback.py

index 14decf394df26734af5f1d1ae05636171087b566..9ed11e4cbfeaaafe9c49f8dde9b7eb08bf7902ee 100644 (file)
@@ -71,6 +71,12 @@ class Prop:
         if type(newprop.value) == list and type(self.value) != list:
             self.value = newprop.value
 
+        if type(self.value) == list and len(newprop.value) > len(self.value):
+            val = fdt_util.GetEmpty(self.type)
+            while len(self.value) < len(newprop.value):
+                self.value.append(val)
+
+
 class Node:
     """A device tree node