aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/binman/entry.py4
-rw-r--r--tools/binman/entry_test.py9
-rw-r--r--tools/binman/etype/blob_dtb.py16
-rw-r--r--tools/binman/etype/u_boot_dtb.py3
-rw-r--r--tools/binman/etype/u_boot_dtb_with_ucode.py3
-rw-r--r--tools/binman/etype/u_boot_spl_dtb.py3
-rw-r--r--tools/binman/etype/u_boot_tpl_dtb.py3
-rw-r--r--tools/binman/etype/u_boot_tpl_dtb_with_ucode.py3
-rw-r--r--tools/binman/state.py14
9 files changed, 50 insertions, 8 deletions
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index 2ed9dc0..dd2daad 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -192,7 +192,9 @@ class Entry(object):
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
+ value: Tuple:
+ Fdt object for this dtb, or None if not available
+ Filename of file containing this dtb
"""
return {}
diff --git a/tools/binman/entry_test.py b/tools/binman/entry_test.py
index b6ad3ed..460171b 100644
--- a/tools/binman/entry_test.py
+++ b/tools/binman/entry_test.py
@@ -84,5 +84,14 @@ class TestEntry(unittest.TestCase):
base_entry = entry.Entry(None, None, None, read_node=False)
self.assertIsNone(base_entry.GetDefaultFilename())
+ def testBlobFdt(self):
+ """Test the GetFdtEtype() method of the blob-dtb entries"""
+ base = entry.Entry.Create(None, self.GetNode(), 'blob-dtb')
+ self.assertIsNone(base.GetFdtEtype())
+
+ dtb = entry.Entry.Create(None, self.GetNode(), 'u-boot-dtb')
+ self.assertEqual('u-boot-dtb', dtb.GetFdtEtype())
+
+
if __name__ == "__main__":
unittest.main()
diff --git a/tools/binman/etype/blob_dtb.py b/tools/binman/etype/blob_dtb.py
index b70c3d3..b9ccf9a 100644
--- a/tools/binman/etype/blob_dtb.py
+++ b/tools/binman/etype/blob_dtb.py
@@ -32,12 +32,24 @@ class Entry_blob_dtb(Entry_blob):
data = self.CompressData(indata)
return self.ProcessContentsUpdate(data)
+ def GetFdtEtype(self):
+ """Get the entry type of this device tree
+
+ This can be 'u-boot-dtb', 'u-boot-spl-dtb' or 'u-boot-tpl-dtb'
+ Returns:
+ Entry type if any, e.g. 'u-boot-dtb'
+ """
+ return None
+
def GetFdts(self):
"""Get the device trees used by this entry
Returns:
Dict:
key: Filename from this entry (without the path)
- value: Fdt object for this dtb, or None if not available
+ value: Tuple:
+ Fdt object for this dtb, or None if not available
+ Filename of file containing this dtb
"""
- return {self.GetDefaultFilename(): None}
+ fname = self.GetDefaultFilename()
+ return {self.GetFdtEtype(): [self, fname]}
diff --git a/tools/binman/etype/u_boot_dtb.py b/tools/binman/etype/u_boot_dtb.py
index 6263c4e..6c805a6 100644
--- a/tools/binman/etype/u_boot_dtb.py
+++ b/tools/binman/etype/u_boot_dtb.py
@@ -26,3 +26,6 @@ class Entry_u_boot_dtb(Entry_blob_dtb):
def GetDefaultFilename(self):
return 'u-boot.dtb'
+
+ def GetFdtEtype(self):
+ return 'u-boot-dtb'
diff --git a/tools/binman/etype/u_boot_dtb_with_ucode.py b/tools/binman/etype/u_boot_dtb_with_ucode.py
index 9224004..ff7f804 100644
--- a/tools/binman/etype/u_boot_dtb_with_ucode.py
+++ b/tools/binman/etype/u_boot_dtb_with_ucode.py
@@ -36,6 +36,9 @@ class Entry_u_boot_dtb_with_ucode(Entry_blob_dtb):
def GetDefaultFilename(self):
return 'u-boot.dtb'
+ def GetFdtEtype(self):
+ return 'u-boot-dtb'
+
def ProcessFdt(self, fdt):
# So the module can be loaded without it
import fdt
diff --git a/tools/binman/etype/u_boot_spl_dtb.py b/tools/binman/etype/u_boot_spl_dtb.py
index e735464..1bcd449 100644
--- a/tools/binman/etype/u_boot_spl_dtb.py
+++ b/tools/binman/etype/u_boot_spl_dtb.py
@@ -23,3 +23,6 @@ class Entry_u_boot_spl_dtb(Entry_blob_dtb):
def GetDefaultFilename(self):
return 'spl/u-boot-spl.dtb'
+
+ def GetFdtEtype(self):
+ return 'u-boot-spl-dtb'
diff --git a/tools/binman/etype/u_boot_tpl_dtb.py b/tools/binman/etype/u_boot_tpl_dtb.py
index bdeb0f7..81a3970 100644
--- a/tools/binman/etype/u_boot_tpl_dtb.py
+++ b/tools/binman/etype/u_boot_tpl_dtb.py
@@ -23,3 +23,6 @@ class Entry_u_boot_tpl_dtb(Entry_blob_dtb):
def GetDefaultFilename(self):
return 'tpl/u-boot-tpl.dtb'
+
+ def GetFdtEtype(self):
+ return 'u-boot-tpl-dtb'
diff --git a/tools/binman/etype/u_boot_tpl_dtb_with_ucode.py b/tools/binman/etype/u_boot_tpl_dtb_with_ucode.py
index 71e04fc..ce19a49 100644
--- a/tools/binman/etype/u_boot_tpl_dtb_with_ucode.py
+++ b/tools/binman/etype/u_boot_tpl_dtb_with_ucode.py
@@ -23,3 +23,6 @@ class Entry_u_boot_tpl_dtb_with_ucode(Entry_u_boot_dtb_with_ucode):
def GetDefaultFilename(self):
return 'tpl/u-boot-tpl.dtb'
+
+ def GetFdtEtype(self):
+ return 'u-boot-tpl-dtb'
diff --git a/tools/binman/state.py b/tools/binman/state.py
index c8175a3..ee11ba4 100644
--- a/tools/binman/state.py
+++ b/tools/binman/state.py
@@ -22,7 +22,10 @@ entry_args = {}
# ftest.py)
use_fake_dtb = False
-# Dict of device trees, keyed by filename, but excluding the main one
+# Dict of device trees, keyed by entry type, but excluding the main one
+# The value is as returned by Entry.GetFdts(), i.e. a tuple:
+# Fdt object for this dtb, or None if not available
+# Filename of file containing this dtb
fdt_subset = {}
# The DTB which contains the full image information
@@ -142,9 +145,10 @@ def Prepare(images, dtb):
if not use_fake_dtb:
for image in images.values():
fdt_subset.update(image.GetFdts())
- if 'u-boot.dtb' in fdt_subset:
- del fdt_subset['u-boot.dtb']
- for other_fname in fdt_subset:
+ if 'u-boot-dtb' in fdt_subset:
+ del fdt_subset['u-boot-dtb']
+ for etype, other in fdt_subset.items():
+ _, other_fname = other
infile = tools.GetInputFilename(other_fname)
other_fname_dtb = fdt_util.EnsureCompiled(infile)
out_fname = tools.GetOutputFilename('%s.out' %
@@ -160,7 +164,7 @@ def GetAllFdts():
Device trees being used (U-Boot proper, SPL, TPL)
"""
yield main_dtb
- for other_fname in fdt_subset:
+ for etype, other_fname in fdt_subset.values():
yield fdt_files[other_fname]
def GetUpdateNodes(node):