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 14decf3..9ed11e4 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