aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-06-06 15:37:02 -0600
committerDavid Gibson <david@gibson.dropbear.id.au>2018-06-09 23:33:41 +1000
commit29bb05aa4200285ae3de07a45efd4e5bf1999980 (patch)
tree404116d72fc38c11a04d44dd274593693836e81e
parent582a7159a5d0e1f4c96d5bdaab63defc69762c95 (diff)
downloaddtc-29bb05aa4200285ae3de07a45efd4e5bf1999980.zip
dtc-29bb05aa4200285ae3de07a45efd4e5bf1999980.tar.gz
dtc-29bb05aa4200285ae3de07a45efd4e5bf1999980.tar.bz2
pylibfdt: Add support for the rest of the header functions
Export all of these through Python. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--pylibfdt/libfdt.i71
-rw-r--r--tests/pylibfdt_tests.py8
2 files changed, 76 insertions, 3 deletions
diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i
index e8282a4..ce34b60 100644
--- a/pylibfdt/libfdt.i
+++ b/pylibfdt/libfdt.i
@@ -234,21 +234,86 @@ class Fdt:
"""
return check_err(fdt_next_subnode(self._fdt, nodeoffset), quiet)
+ def magic(self):
+ """Return the magic word from the header
+
+ Returns:
+ Magic word
+ """
+ # Use a mask to ensure that this does not return a -ve number
+ return fdt_magic(self._fdt) & 0xffffffff
+
def totalsize(self):
"""Return the total size of the device tree
Returns:
Total tree size in bytes
"""
- return check_err(fdt_totalsize(self._fdt))
+ return fdt_totalsize(self._fdt)
def off_dt_struct(self):
- """Return the start of the device tree struct area
+ """Return the start of the device-tree struct area
+
+ Returns:
+ Start offset of struct area
+ """
+ return fdt_off_dt_struct(self._fdt)
+
+ def off_dt_strings(self):
+ """Return the start of the device-tree string area
+
+ Returns:
+ Start offset of string area
+ """
+ return fdt_off_dt_strings(self._fdt)
+
+ def off_mem_rsvmap(self):
+ """Return the start of the memory reserve map
+
+ Returns:
+ Start offset of memory reserve map
+ """
+ return fdt_off_mem_rsvmap(self._fdt)
+
+ def version(self):
+ """Return the version of the device tree
+
+ Returns:
+ Version number of the device tree
+ """
+ return fdt_version(self._fdt)
+
+ def last_comp_version(self):
+ """Return the last compatible version of the device tree
+
+ Returns:
+ Last compatible version number of the device tree
+ """
+ return fdt_last_comp_version(self._fdt)
+
+ def boot_cpuid_phys(self):
+ """Return the physical boot CPU ID
+
+ Returns:
+ Physical boot CPU ID
+ """
+ return fdt_boot_cpuid_phys(self._fdt)
+
+ def size_dt_strings(self):
+ """Return the start of the device-tree string area
+
+ Returns:
+ Start offset of string area
+ """
+ return fdt_size_dt_strings(self._fdt)
+
+ def size_dt_struct(self):
+ """Return the start of the device-tree struct area
Returns:
Start offset of struct area
"""
- return check_err(fdt_off_dt_struct(self._fdt))
+ return fdt_size_dt_struct(self._fdt)
def subnode_offset(self, parentoffset, name, quiet=()):
"""Get the offset of a named subnode
diff --git a/tests/pylibfdt_tests.py b/tests/pylibfdt_tests.py
index 900644d..75d9bbc 100644
--- a/tests/pylibfdt_tests.py
+++ b/tests/pylibfdt_tests.py
@@ -275,8 +275,16 @@ class PyLibfdtTests(unittest.TestCase):
def testHeader(self):
"""Test that we can access the header values"""
+ self.assertEquals(self.fdt.magic(), 0xd00dfeed)
self.assertEquals(self.fdt.totalsize(), len(self.fdt._fdt))
self.assertEquals(self.fdt.off_dt_struct(), 88)
+ self.assertEquals(self.fdt.off_dt_strings(), 652)
+ self.assertEquals(self.fdt.off_mem_rsvmap(), 40)
+ self.assertEquals(self.fdt.version(), 17)
+ self.assertEquals(self.fdt.last_comp_version(), 16)
+ self.assertEquals(self.fdt.boot_cpuid_phys(), 0)
+ self.assertEquals(self.fdt.size_dt_strings(), 105)
+ self.assertEquals(self.fdt.size_dt_struct(), 564)
def testPack(self):
"""Test that we can pack the tree after deleting something"""