[PATCH 4/6] fdt: Allow copying phandles into templates
Simon Glass
sjg at chromium.org
Fri Jul 21 18:07:04 CEST 2023
Allow phandles to be copied over from a template. This can potentially
cause duplicate phandles, but we can deal with that later.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
tools/dtoc/fdt.py | 2 +-
tools/dtoc/test_fdt.py | 15 ++++++++-------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py
index a0b92d43e8a1..917088041cc4 100644
--- a/tools/dtoc/fdt.py
+++ b/tools/dtoc/fdt.py
@@ -719,7 +719,7 @@ class Node:
"""
tout.debug(f'copy to {self.path}: {src.path}')
for name, src_prop in src.props.items():
- if name != 'phandle' and name not in self.props:
+ if name not in self.props:
self.props[name] = Prop(self, None, name, src_prop.bytes)
tout.debug(f' {name}')
else:
diff --git a/tools/dtoc/test_fdt.py b/tools/dtoc/test_fdt.py
index f77e48b54eaf..4772071d59dd 100755
--- a/tools/dtoc/test_fdt.py
+++ b/tools/dtoc/test_fdt.py
@@ -317,7 +317,8 @@ class TestNode(unittest.TestCase):
chk = dtb.GetNode('/dest/base')
self.assertTrue(chk)
self.assertEqual(
- {'compatible', 'bootph-all', '#address-cells', '#size-cells'},
+ {'compatible', 'bootph-all', '#address-cells', '#size-cells',
+ 'phandle'},
chk.props.keys())
# Check the first property
@@ -340,8 +341,8 @@ class TestNode(unittest.TestCase):
over = dtb.GetNode('/dest/base/over')
self.assertTrue(over)
- # Make sure that the phandle for 'over' is not copied
- self.assertNotIn('phandle', over.props.keys())
+ # Make sure that the phandle for 'over' is copied
+ self.assertIn('phandle', over.props.keys())
second = dtb.GetNode('/dest/base/second')
self.assertTrue(second)
@@ -349,7 +350,7 @@ class TestNode(unittest.TestCase):
[n.name for n in chk.subnodes])
self.assertEqual(chk, over.parent)
self.assertEqual(
- {'bootph-all', 'compatible', 'reg', 'low-power'},
+ {'bootph-all', 'compatible', 'reg', 'low-power', 'phandle'},
over.props.keys())
if expect_none:
@@ -413,14 +414,14 @@ class TestNode(unittest.TestCase):
'/dest/second', '/dest/existing', '/dest/base'],
[n.path for n in dst.subnodes])
- # Make sure that the phandle for 'over' is not copied
+ # Make sure that the phandle for 'over' is copied
over = dst.FindNode('over')
tout.debug(f'keys: {over.props.keys()}')
- self.assertNotIn('phandle', over.props.keys())
+ self.assertIn('phandle', over.props.keys())
# Check the merged properties, first the base ones in '/dest'
expect = {'bootph-all', 'compatible', 'stringarray', 'longbytearray',
- 'maybe-empty-int'}
+ 'maybe-empty-int', 'phandle'}
# Properties from 'base'
expect.update({'#address-cells', '#size-cells'})
--
2.41.0.487.g6d72f3e995-goog
More information about the U-Boot
mailing list