From: Simon Glass Date: Sat, 20 Jul 2019 18:23:39 +0000 (-0600) Subject: dtoc: Update Fdt.GetNode() to handle the root node X-Git-Tag: v2019.10-rc1~1^2~37 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e44bc831e262c2ca7f307ad12074c2eb9adab615;p=oweals%2Fu-boot.git dtoc: Update Fdt.GetNode() to handle the root node This function currently fails if the root node is requested. Requesting the root node is sometimes useful, so fix the bug. Signed-off-by: Simon Glass --- diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py index b341ef3f83..cd7673c7da 100644 --- a/tools/dtoc/fdt.py +++ b/tools/dtoc/fdt.py @@ -574,6 +574,8 @@ class Fdt: parts = path.split('/') if len(parts) < 2: return None + if len(parts) == 2 and parts[1] == '': + return node for part in parts[1:]: node = node.FindNode(part) if not node: diff --git a/tools/dtoc/test_fdt.py b/tools/dtoc/test_fdt.py index c25248ca1f..ed2d982a8f 100755 --- a/tools/dtoc/test_fdt.py +++ b/tools/dtoc/test_fdt.py @@ -77,11 +77,16 @@ class TestFdt(unittest.TestCase): """Test the GetNode() method""" node = self.dtb.GetNode('/spl-test') self.assertTrue(isinstance(node, fdt.Node)) + node = self.dtb.GetNode('/i2c@0/pmic@9') self.assertTrue(isinstance(node, fdt.Node)) self.assertEqual('pmic@9', node.name) self.assertIsNone(self.dtb.GetNode('/i2c@0/pmic@9/missing')) + node = self.dtb.GetNode('/') + self.assertTrue(isinstance(node, fdt.Node)) + self.assertEqual(0, node.Offset()) + def testFlush(self): """Check that we can flush the device tree out to its file""" fname = self.dtb._fname