Re: [U-Boot] [PATCH 26/53] binman: Allow the fdtmap to remain unchanged

2019-07-29 Thread sjg
When updating an existing image where the size of all entries remains the
same, we should not need to regenerate the fdtmap. Update the entry to
return the same fdtmap as was read from the image.

Signed-off-by: Simon Glass 
---

 tools/binman/etype/fdtmap.py | 55 
 1 file changed, 30 insertions(+), 25 deletions(-)

Applied to u-boot-dm, thanks!
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH 26/53] binman: Allow the fdtmap to remain unchanged

2019-07-20 Thread Simon Glass
When updating an existing image where the size of all entries remains the
same, we should not need to regenerate the fdtmap. Update the entry to
return the same fdtmap as was read from the image.

Signed-off-by: Simon Glass 
---

 tools/binman/etype/fdtmap.py | 55 
 1 file changed, 30 insertions(+), 25 deletions(-)

diff --git a/tools/binman/etype/fdtmap.py b/tools/binman/etype/fdtmap.py
index a55c9c899bf..1271b50036a 100644
--- a/tools/binman/etype/fdtmap.py
+++ b/tools/binman/etype/fdtmap.py
@@ -93,31 +93,36 @@ class Entry_fdtmap(Entry):
 with fsw.add_node(subnode.name):
 _AddNode(subnode)
 
-# Get the FDT data into an Fdt object
-data = state.GetFdtContents()[1]
-infdt = Fdt.FromData(data)
-infdt.Scan()
-
-# Find the node for the image containing the Fdt-map entry
-path = self.section.GetPath()
-self.Detail("Fdtmap: Using section '%s' (path '%s')" %
-(self.section.name, path))
-node = infdt.GetNode(path)
-if not node:
-self.Raise("Internal error: Cannot locate node for path '%s'" %
-   path)
-
-# Build a new tree with all nodes and properties starting from that 
node
-fsw = libfdt.FdtSw()
-fsw.finish_reservemap()
-with fsw.add_node(''):
-fsw.property_string('image-node', node.name)
-_AddNode(node)
-fdt = fsw.as_fdt()
-
-# Pack this new FDT and return its contents
-fdt.pack()
-outfdt = Fdt.FromData(fdt.as_bytearray())
+outfdt = self.GetImage().fdtmap_dtb
+# If we have an fdtmap it means that we are using this as the
+# read-only fdtmap for this image.
+if not outfdt:
+# Get the FDT data into an Fdt object
+data = state.GetFdtContents()[1]
+infdt = Fdt.FromData(data)
+infdt.Scan()
+
+# Find the node for the image containing the Fdt-map entry
+path = self.section.GetPath()
+self.Detail("Fdtmap: Using section '%s' (path '%s')" %
+(self.section.name, path))
+node = infdt.GetNode(path)
+if not node:
+self.Raise("Internal error: Cannot locate node for path '%s'" %
+   path)
+
+# Build a new tree with all nodes and properties starting from that
+# node
+fsw = libfdt.FdtSw()
+fsw.finish_reservemap()
+with fsw.add_node(''):
+fsw.property_string('image-node', node.name)
+_AddNode(node)
+fdt = fsw.as_fdt()
+
+# Pack this new FDT and return its contents
+fdt.pack()
+outfdt = Fdt.FromData(fdt.as_bytearray())
 data = FDTMAP_MAGIC + tools.GetBytes(0, 8) + outfdt.GetContents()
 return data
 
-- 
2.22.0.657.g960e92d24f-goog

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot