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>
This commit is contained in:
parent
6434961b2b
commit
746aee3f2f
@ -472,6 +472,20 @@ class Fdt:
|
|||||||
with open(self._fname) as fd:
|
with open(self._fname) as fd:
|
||||||
self._fdt_obj = libfdt.Fdt(fd.read())
|
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):
|
def LookupPhandle(self, phandle):
|
||||||
"""Look up a phandle
|
"""Look up a phandle
|
||||||
|
|
||||||
|
@ -407,6 +407,14 @@ class TestProp(unittest.TestCase):
|
|||||||
self.node.SetData('empty', '123')
|
self.node.SetData('empty', '123')
|
||||||
self.assertEqual('123', prop.bytes)
|
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):
|
class TestFdtUtil(unittest.TestCase):
|
||||||
"""Tests for the fdt_util module
|
"""Tests for the fdt_util module
|
||||||
|
Loading…
Reference in New Issue
Block a user