binman: Convert GetFdtSet() to use a dict
authorSimon Glass <sjg@chromium.org>
Sat, 20 Jul 2019 18:23:28 +0000 (12:23 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 29 Jul 2019 15:38:05 +0000 (09:38 -0600)
At present this function returns a set of device-tree filenames. It has no
way of returning the actual device-tree object. Change it to a dictionary
so that we can add this feature in a future patch.

Also drop fdt_set since it is no-longer used.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/binman/entry.py
tools/binman/etype/blob_dtb.py
tools/binman/etype/section.py
tools/binman/state.py

index 276035ed3240dde19a7e5c253c18c58e3ede9035..2ed9dc0d6f4b698871243744c5eb716c82c34359 100644 (file)
@@ -185,14 +185,16 @@ class Entry(object):
     def GetDefaultFilename(self):
         return None
 
-    def GetFdtSet(self):
-        """Get the set of device trees used by this entry
+    def GetFdts(self):
+        """Get the device trees used by this entry
 
         Returns:
-            Set containing the filename from this entry, if it is a .dtb, else
-            an empty set
+            Empty dict, if this entry is not a .dtb, otherwise:
+            Dict:
+                key: Filename from this entry (without the path)
+                value: Fdt object for this dtb, or None if not available
         """
-        return set()
+        return {}
 
     def ExpandEntries(self):
         pass
index b242c2da38a733456a6e17505ae0e0e7989fccb1..b70c3d3a3a25aed7428a99c40b51cde5b9f390c7 100644 (file)
@@ -32,11 +32,12 @@ class Entry_blob_dtb(Entry_blob):
         data = self.CompressData(indata)
         return self.ProcessContentsUpdate(data)
 
-    def GetFdtSet(self):
-        """Get the set of device trees used by this entry
+    def GetFdts(self):
+        """Get the device trees used by this entry
 
         Returns:
-            Set containing the filename from this entry
+            Dict:
+                key: Filename from this entry (without the path)
+                value: Fdt object for this dtb, or None if not available
         """
-        fname = self.GetDefaultFilename()
-        return set([fname])
+        return {self.GetDefaultFilename(): None}
index 6db3c7a6f034a8d73cd30aa87ed954844aff9bb1..cdd8618c48ba6d9bff18f1bfb4f7de7d0137a826 100644 (file)
@@ -95,11 +95,11 @@ class Entry_section(Entry):
             entry.SetPrefix(self._name_prefix)
             self._entries[node.name] = entry
 
-    def GetFdtSet(self):
-        fdt_set = set()
+    def GetFdts(self):
+        fdts = {}
         for entry in self._entries.values():
-            fdt_set.update(entry.GetFdtSet())
-        return fdt_set
+            fdts.update(entry.GetFdts())
+        return fdts
 
     def ProcessFdt(self, fdt):
         """Allow entries to adjust the device tree
index 382bda3221963e2a2850ce18fed17912dc086280..5b9e005df96a74e8ae754c2d9efe285f9ec53913 100644 (file)
@@ -22,11 +22,8 @@ entry_args = {}
 # ftest.py)
 use_fake_dtb = False
 
-# Set of all device tree files references by images
-fdt_set = set()
-
-# Same as above, but excluding the main one
-fdt_subset = set()
+# Dict of device trees, keyed by filename, but excluding the main one
+fdt_subset = {}
 
 # The DTB which contains the full image information
 main_dtb = None
@@ -140,11 +137,12 @@ def Prepare(images, dtb):
     main_dtb = dtb
     fdt_files.clear()
     fdt_files['u-boot.dtb'] = dtb
-    fdt_subset = set()
+    fdt_subset = {}
     if not use_fake_dtb:
         for image in images.values():
-            fdt_subset.update(image.GetFdtSet())
-        fdt_subset.discard('u-boot.dtb')
+            fdt_subset.update(image.GetFdts())
+        if 'u-boot.dtb' in fdt_subset:
+            del fdt_subset['u-boot.dtb']
         for other_fname in fdt_subset:
             infile = tools.GetInputFilename(other_fname)
             other_fname_dtb = fdt_util.EnsureCompiled(infile)