diff options
author | Simon Glass <sjg@chromium.org> | 2019-07-08 13:18:40 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2019-07-23 20:27:57 -0700 |
commit | aa88b50d8267d0ff53cd6a1300d78004fa40d2c8 (patch) | |
tree | c99ae7802850d3044589435f62244242165664e3 /tools/binman/etype/text.py | |
parent | cf54904a99ae06e5b38fb670b09dfa60fe1855d5 (diff) |
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/binman/etype/text.py')
-rw-r--r-- | tools/binman/etype/text.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/tools/binman/etype/text.py b/tools/binman/etype/text.py index 9ee04d7c9d..da1813a638 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): |