diff options
author | Simon Glass <sjg@chromium.org> | 2018-09-14 04:57:17 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2018-09-28 11:09:01 -0600 |
commit | 746aee3f2f8c0c7534ad7ac7d438ccec35c6c99c (patch) | |
tree | 6a06834c228d21ea5e15ced9751d095fb75c8568 | |
parent | 6434961b2b2099b458e7dc9dcced5d450b45cbb4 (diff) |
dtoc: Add a way to create an Fdt object from a data block
Support creating an Fdt object without having to write the data to a file
first.
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | tools/dtoc/fdt.py | 14 | ||||
-rwxr-xr-x | tools/dtoc/test_fdt.py | 8 |
2 files changed, 22 insertions, 0 deletions
diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py index c5054e8cc9..2df2d4b0cc 100644 --- a/tools/dtoc/fdt.py +++ b/tools/dtoc/fdt.py @@ -472,6 +472,20 @@ class Fdt: with open(self._fname) as fd: self._fdt_obj = libfdt.Fdt(fd.read()) + @staticmethod + def FromData(data): + """Create a new Fdt object from the given data + + Args: + data: Device-tree data blob + + Returns: + Fdt object containing the data + """ + fdt = Fdt(None) + fdt._fdt_obj = libfdt.Fdt(bytearray(data)) + return fdt + def LookupPhandle(self, phandle): """Look up a phandle diff --git a/tools/dtoc/test_fdt.py b/tools/dtoc/test_fdt.py index 22a075d6c5..d259702050 100755 --- a/tools/dtoc/test_fdt.py +++ b/tools/dtoc/test_fdt.py @@ -407,6 +407,14 @@ class TestProp(unittest.TestCase): self.node.SetData('empty', '123') self.assertEqual('123', prop.bytes) + def testFromData(self): + dtb2 = fdt.Fdt.FromData(self.dtb.GetContents()) + self.assertEqual(dtb2.GetContents(), self.dtb.GetContents()) + + self.node.AddEmptyProp('empty', 5) + self.dtb.Sync(auto_resize=True) + self.assertTrue(dtb2.GetContents() != self.dtb.GetContents()) + class TestFdtUtil(unittest.TestCase): """Tests for the fdt_util module |