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>
lime2-spi
Simon Glass 6 years ago
parent 6434961b2b
commit 746aee3f2f
  1. 14
      tools/dtoc/fdt.py
  2. 8
      tools/dtoc/test_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

@ -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

Loading…
Cancel
Save