aboutsummaryrefslogtreecommitdiff
path: root/tools/binman
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-02-08 11:49:58 -0700
committerSimon Glass <sjg@chromium.org>2022-02-22 10:05:44 -0700
commit5c044ff52362f379b5a9296e724df9546ae98b34 (patch)
treedb6ab3b85941ef4044f74d8b679cfc9ba88e0968 /tools/binman
parent523cde0637f264380eeaaf0cfa82fdbbd99a261f (diff)
downloadu-boot-5c044ff52362f379b5a9296e724df9546ae98b34.zip
u-boot-5c044ff52362f379b5a9296e724df9546ae98b34.tar.gz
u-boot-5c044ff52362f379b5a9296e724df9546ae98b34.tar.bz2
binman: Support a list of strings with the mkimage etype
At present the 'args' property of the mkimage entry type is a string. This makes it difficult to include CONFIG options in that property. In particular, this does not work: args = "-n CONFIG_SYS_SOC -E" since the preprocessor does not operate within strings, nor does this: args = "-n" CONFIG_SYS_SOC" "-E" since the device tree compiler does not understand string concatenation. With this new feature, we can do: args = "-n", CONFIG_SYS_SOC, "-E"; Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/binman')
-rw-r--r--tools/binman/elf_test.py6
-rw-r--r--tools/binman/entries.rst11
-rw-r--r--tools/binman/etype/mkimage.py13
3 files changed, 26 insertions, 4 deletions
diff --git a/tools/binman/elf_test.py b/tools/binman/elf_test.py
index f92352d..a67915b 100644
--- a/tools/binman/elf_test.py
+++ b/tools/binman/elf_test.py
@@ -263,7 +263,7 @@ class TestElf(unittest.TestCase):
if not elf.ELF_TOOLS:
self.skipTest('Python elftools not available')
fname = self.ElfTestFile('embed_data')
- segments, entry = elf.read_segments(tools.ReadFile(fname))
+ segments, entry = elf.read_segments(tools.read_file(fname))
def test_read_segments_fail(self):
"""Test for read_segments() without elftools"""
@@ -272,7 +272,7 @@ class TestElf(unittest.TestCase):
elf.ELF_TOOLS = False
fname = self.ElfTestFile('embed_data')
with self.assertRaises(ValueError) as e:
- elf.read_segments(tools.ReadFile(fname))
+ elf.read_segments(tools.read_file(fname))
self.assertIn('Python elftools package is not available',
str(e.exception))
finally:
@@ -282,7 +282,7 @@ class TestElf(unittest.TestCase):
"""Test for read_segments() with an invalid ELF file"""
fname = self.ElfTestFile('embed_data')
with self.assertRaises(ValueError) as e:
- elf.read_segments(tools.GetBytes(100, 100))
+ elf.read_segments(tools.get_bytes(100, 100))
self.assertIn('Magic number does not match', str(e.exception))
diff --git a/tools/binman/entries.rst b/tools/binman/entries.rst
index 88230a6..c4aa5ff 100644
--- a/tools/binman/entries.rst
+++ b/tools/binman/entries.rst
@@ -931,6 +931,17 @@ This calls mkimage to create an imximage with u-boot-spl.bin as the input
file. The output from mkimage then becomes part of the image produced by
binman.
+To use CONFIG options in the arguments, use a string list instead, as in
+this example which also produces four arguments::
+
+ mkimage {
+ args = "-n", CONFIG_SYS_SOC, "-T imximage";
+
+ u-boot-spl {
+ };
+ };
+
+
Entry: opensbi: RISC-V OpenSBI fw_dynamic blob
diff --git a/tools/binman/etype/mkimage.py b/tools/binman/etype/mkimage.py
index baa16f3..ba4fb25 100644
--- a/tools/binman/etype/mkimage.py
+++ b/tools/binman/etype/mkimage.py
@@ -31,10 +31,21 @@ class Entry_mkimage(Entry):
This calls mkimage to create an imximage with u-boot-spl.bin as the input
file. The output from mkimage then becomes part of the image produced by
binman.
+
+ To use CONFIG options in the arguments, use a string list instead, as in
+ this example which also produces four arguments::
+
+ mkimage {
+ args = "-n", CONFIG_SYS_SOC, "-T imximage";
+
+ u-boot-spl {
+ };
+ };
+
"""
def __init__(self, section, etype, node):
super().__init__(section, etype, node)
- self._args = fdt_util.GetString(self._node, 'args').split(' ')
+ self._args = fdt_util.GetArgs(self._node, 'args')
self._mkimage_entries = OrderedDict()
self.align_default = None
self.ReadEntries()