[PATCH v2 06/21] binman: Add support for u-boot-tpl-nodtb
Simon Glass
sjg at chromium.org
Mon Mar 15 08:26:11 CET 2021
Allow this entry type to be placed in an image. This is the TPL binary,
without a devicetree appended.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
(no changes since v1)
tools/binman/README.entries | 14 +++++++++++
tools/binman/etype/u_boot_tpl_nodtb.py | 27 ++++++++++++++++++++++
tools/binman/ftest.py | 6 +++++
tools/binman/test/192_u_boot_tpl_nodtb.dts | 13 +++++++++++
4 files changed, 60 insertions(+)
create mode 100644 tools/binman/etype/u_boot_tpl_nodtb.py
create mode 100644 tools/binman/test/192_u_boot_tpl_nodtb.dts
diff --git a/tools/binman/README.entries b/tools/binman/README.entries
index 5c6663e2c7c..253c579a62d 100644
--- a/tools/binman/README.entries
+++ b/tools/binman/README.entries
@@ -1080,6 +1080,20 @@ be relocated to any address for execution.
+Entry: u-boot-tpl-nodtb: TPL binary without device tree appended
+----------------------------------------------------------------
+
+Properties / Entry arguments:
+ - filename: Filename to include (default 'tpl/u-boot-tpl-nodtb.bin')
+
+This is the U-Boot TPL binary, It does not include a device tree blob at
+the end of it so may not be able to work without it, assuming TPL needs
+a device tree to operate on your platform. You can add a u-boot-tpl-dtb
+entry after this one, or use a u-boot-tpl entry instead (which contains
+both TPL and the device tree).
+
+
+
Entry: u-boot-tpl-with-ucode-ptr: U-Boot TPL with embedded microcode pointer
----------------------------------------------------------------------------
diff --git a/tools/binman/etype/u_boot_tpl_nodtb.py b/tools/binman/etype/u_boot_tpl_nodtb.py
new file mode 100644
index 00000000000..eaeebcadf77
--- /dev/null
+++ b/tools/binman/etype/u_boot_tpl_nodtb.py
@@ -0,0 +1,27 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright 2021 Google LLC
+# Written by Simon Glass <sjg at chromium.org>
+#
+# Entry-type module for 'u-boot-tpl-nodtb.bin'
+#
+
+from binman.entry import Entry
+from binman.etype.blob import Entry_blob
+
+class Entry_u_boot_tpl_nodtb(Entry_blob):
+ """TPL binary without device tree appended
+
+ Properties / Entry arguments:
+ - filename: Filename to include (default 'tpl/u-boot-tpl-nodtb.bin')
+
+ This is the U-Boot TPL binary, It does not include a device tree blob at
+ the end of it so may not be able to work without it, assuming TPL needs
+ a device tree to operate on your platform. You can add a u-boot-tpl-dtb
+ entry after this one, or use a u-boot-tpl entry instead (which contains
+ both TPL and the device tree).
+ """
+ def __init__(self, section, etype, node):
+ super().__init__(section, etype, node)
+
+ def GetDefaultFilename(self):
+ return 'tpl/u-boot-tpl-nodtb.bin'
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 814e91d42e9..b989dd46caf 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -4245,6 +4245,12 @@ class TestFunctional(unittest.TestCase):
self.assertEquals(U_BOOT_DATA, u_boot.ReadData())
+ def testTplNoDtb(self):
+ """Test that an image with tpl/u-boot-tpl-nodtb.bin can be created"""
+ data = self._DoReadFile('192_u_boot_tpl_nodtb.dts')
+ self.assertEqual(U_BOOT_TPL_NODTB_DATA,
+ data[:len(U_BOOT_TPL_NODTB_DATA)])
+
if __name__ == "__main__":
unittest.main()
diff --git a/tools/binman/test/192_u_boot_tpl_nodtb.dts b/tools/binman/test/192_u_boot_tpl_nodtb.dts
new file mode 100644
index 00000000000..94cef395e89
--- /dev/null
+++ b/tools/binman/test/192_u_boot_tpl_nodtb.dts
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+/dts-v1/;
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ binman {
+ u-boot-tpl-nodtb {
+ };
+ };
+};
--
2.31.0.rc2.261.g7f71774620-goog
More information about the U-Boot
mailing list