aboutsummaryrefslogtreecommitdiff
path: root/tools/dtoc/fdt.py
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-07-06 10:27:27 -0600
committerSimon Glass <sjg@chromium.org>2018-07-09 09:11:00 -0600
commit960662404f492e7088e5a91833dfb0c19ef5450e (patch)
treebb5b76adff977d885754d49a2966017794901db0 /tools/dtoc/fdt.py
parent117f57b75aee2e145d2d23107f600d869b04231a (diff)
downloadu-boot-960662404f492e7088e5a91833dfb0c19ef5450e.zip
u-boot-960662404f492e7088e5a91833dfb0c19ef5450e.tar.gz
u-boot-960662404f492e7088e5a91833dfb0c19ef5450e.tar.bz2
dtoc: Drop use of a local dtb buffer
At present the Fdt class has its own copy of the device tree. This is confusing an unnecessary now that pylibfdt has its own. Drop it and provide access functions to the buffer. This allows us to move the rest of the implementation to use pylibfdt methods instead of directly calling libfdt stubs. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/dtoc/fdt.py')
-rw-r--r--tools/dtoc/fdt.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py
index 18cde26..e24acf1 100644
--- a/tools/dtoc/fdt.py
+++ b/tools/dtoc/fdt.py
@@ -235,12 +235,13 @@ class Node:
Note: This does not take account of property offsets - these will not
be updated.
"""
+ fdt_obj = self._fdt._fdt_obj
if self._offset != my_offset:
self._offset = my_offset
- offset = libfdt.fdt_first_subnode(self._fdt.GetFdt(), self._offset)
+ offset = fdt_obj.first_subnode(self._offset, QUIET_NOTFOUND)
for subnode in self.subnodes:
subnode.Refresh(offset)
- offset = libfdt.fdt_next_subnode(self._fdt.GetFdt(), offset)
+ offset = fdt_obj.next_subnode(offset, QUIET_NOTFOUND)
def DeleteProp(self, prop_name):
"""Delete a property of a node
@@ -252,7 +253,7 @@ class Node:
Raises:
ValueError if the property does not exist
"""
- CheckErr(libfdt.fdt_delprop(self._fdt.GetFdt(), self.Offset(), prop_name),
+ CheckErr(self._fdt._fdt_obj.delprop(self.Offset(), prop_name),
"Node '%s': delete property: '%s'" % (self.path, prop_name))
del self.props[prop_name]
self._fdt.Invalidate()
@@ -272,8 +273,7 @@ class Fdt:
self._fname = fdt_util.EnsureCompiled(self._fname)
with open(self._fname) as fd:
- self._fdt = bytearray(fd.read())
- self._fdt_obj = libfdt.Fdt(self._fdt)
+ self._fdt_obj = libfdt.Fdt(fd.read())
def Scan(self, root='/'):
"""Scan a device tree, building up a tree of Node objects
@@ -317,7 +317,7 @@ class Fdt:
If the device tree has changed in memory, write it back to the file.
"""
with open(self._fname, 'wb') as fd:
- fd.write(self._fdt)
+ fd.write(self._fdt_obj.as_bytearray())
def Pack(self):
"""Pack the device tree down to its minimum size
@@ -328,13 +328,13 @@ class Fdt:
CheckErr(self._fdt_obj.pack(), 'pack')
self.Invalidate()
- def GetFdt(self):
+ def GetContents(self):
"""Get the contents of the FDT
Returns:
The FDT contents as a string of bytes
"""
- return self._fdt
+ return self._fdt_obj.as_bytearray()
def GetFdtObj(self):
"""Get the contents of the FDT