aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-07-08 13:18:40 -0600
committerSimon Glass <sjg@chromium.org>2019-07-23 20:27:57 -0700
commitaa88b50d8267d0ff53cd6a1300d78004fa40d2c8 (patch)
treec99ae7802850d3044589435f62244242165664e3 /tools
parentcf54904a99ae06e5b38fb670b09dfa60fe1855d5 (diff)
downloadu-boot-aa88b50d8267d0ff53cd6a1300d78004fa40d2c8.zip
u-boot-aa88b50d8267d0ff53cd6a1300d78004fa40d2c8.tar.gz
u-boot-aa88b50d8267d0ff53cd6a1300d78004fa40d2c8.tar.bz2
binman: Allow text directly in the node
At present text entries use an indirect method to specify the text to use, with a label pointing to the text itself. Allow the text to be directly written into the node. This is more convenient in cases where the text is constant. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r--tools/binman/README.entries9
-rw-r--r--tools/binman/etype/text.py23
-rw-r--r--tools/binman/ftest.py2
-rw-r--r--tools/binman/test/066_text.dts5
4 files changed, 34 insertions, 5 deletions
diff --git a/tools/binman/README.entries b/tools/binman/README.entries
index 702fc9f..9cbdbba 100644
--- a/tools/binman/README.entries
+++ b/tools/binman/README.entries
@@ -312,6 +312,8 @@ Properties / Entry arguments:
that contains the string to place in the entry
<xxx> (actual name is the value of text-label): contains the string to
place in the entry.
+ <text>: The text to place in the entry (overrides the above mechanism).
+ This is useful when the text is constant.
Example node:
@@ -334,6 +336,13 @@ It is also possible to put the string directly in the node:
message = "a message directly in the node"
};
+or just:
+
+ text {
+ size = <8>;
+ text = "some text directly in the node"
+ };
+
The text is not itself nul-terminated. This can be achieved, if required,
by setting the size of the entry to something larger than the text.
diff --git a/tools/binman/etype/text.py b/tools/binman/etype/text.py
index 9ee04d7..da1813a 100644
--- a/tools/binman/etype/text.py
+++ b/tools/binman/etype/text.py
@@ -22,6 +22,8 @@ class Entry_text(Entry):
that contains the string to place in the entry
<xxx> (actual name is the value of text-label): contains the string to
place in the entry.
+ <text>: The text to place in the entry (overrides the above mechanism).
+ This is useful when the text is constant.
Example node:
@@ -44,15 +46,28 @@ class Entry_text(Entry):
message = "a message directly in the node"
};
+ or just:
+
+ text {
+ size = <8>;
+ text = "some text directly in the node"
+ };
+
The text is not itself nul-terminated. This can be achieved, if required,
by setting the size of the entry to something larger than the text.
"""
def __init__(self, section, etype, node):
Entry.__init__(self, section, etype, node)
- label, = self.GetEntryArgsOrProps([EntryArg('text-label', str)])
- self.text_label = tools.ToStr(label) if type(label) != str else label
- value, = self.GetEntryArgsOrProps([EntryArg(self.text_label, str)])
- value = tools.ToBytes(value) if value is not None else value
+ value = fdt_util.GetString(self._node, 'text')
+ if value:
+ value = tools.ToBytes(value)
+ else:
+ label, = self.GetEntryArgsOrProps([EntryArg('text-label', str)])
+ self.text_label = label
+ if self.text_label:
+ value, = self.GetEntryArgsOrProps([EntryArg(self.text_label,
+ str)])
+ value = tools.ToBytes(value) if value is not None else value
self.value = value
def ObtainContents(self):
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 8577adb..c74e12d 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -1286,7 +1286,7 @@ class TestFunctional(unittest.TestCase):
expected = (tools.ToBytes(TEXT_DATA) +
tools.GetBytes(0, 8 - len(TEXT_DATA)) +
tools.ToBytes(TEXT_DATA2) + tools.ToBytes(TEXT_DATA3) +
- b'some text')
+ b'some text' + b'more text')
self.assertEqual(expected, data)
def testEntryDocs(self):
diff --git a/tools/binman/test/066_text.dts b/tools/binman/test/066_text.dts
index 59b1fed..f23a75a 100644
--- a/tools/binman/test/066_text.dts
+++ b/tools/binman/test/066_text.dts
@@ -24,5 +24,10 @@
text-label = "test-id4";
test-id4 = "some text";
};
+ /* Put text directly in the node */
+ text5 {
+ type = "text";
+ text = "more text";
+ };
};
};