1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-01 16:52:14 +02:00

binman: Record the parent section of each section

At present sections have no record of their parent so it is not possible
to traverse up the tree to the root and figure out the position of a
section within the image.

Change the constructor to record this information.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2018-09-14 04:57:33 -06:00
parent f025363543
commit 08723a7abb
3 changed files with 9 additions and 4 deletions

View File

@@ -24,6 +24,7 @@ class Section(object):
Attributes: Attributes:
_node: Node object that contains the section definition in device tree _node: Node object that contains the section definition in device tree
_parent_section: Parent Section object which created this Section
_size: Section size in bytes, or None if not known yet _size: Section size in bytes, or None if not known yet
_align_size: Section size alignment, or None _align_size: Section size alignment, or None
_pad_before: Number of bytes before the first entry starts. This _pad_before: Number of bytes before the first entry starts. This
@@ -46,14 +47,16 @@ class Section(object):
section section
_entries: OrderedDict() of entries _entries: OrderedDict() of entries
""" """
def __init__(self, name, node, test=False): def __init__(self, name, parent_section, node, image, test=False):
global entry global entry
global Entry global Entry
import entry import entry
from entry import Entry from entry import Entry
self._parent_section = parent_section
self._name = name self._name = name
self._node = node self._node = node
self._image = image
self._offset = 0 self._offset = 0
self._size = None self._size = None
self._align_size = None self._align_size = None

View File

@@ -32,7 +32,8 @@ class Entry_section(Entry):
""" """
def __init__(self, section, etype, node): def __init__(self, section, etype, node):
Entry.__init__(self, section, etype, node) Entry.__init__(self, section, etype, node)
self._section = bsection.Section(node.name, node) self._section = bsection.Section(node.name, section, node,
section._image)
def GetFdtSet(self): def GetFdtSet(self):
return self._section.GetFdtSet() return self._section.GetFdtSet()

View File

@@ -42,7 +42,8 @@ class Image:
self._size = None self._size = None
self._filename = '%s.bin' % self._name self._filename = '%s.bin' % self._name
if test: if test:
self._section = bsection.Section('main-section', self._node, True) self._section = bsection.Section('main-section', None, self._node,
self, True)
else: else:
self._ReadNode() self._ReadNode()
@@ -52,7 +53,7 @@ class Image:
filename = fdt_util.GetString(self._node, 'filename') filename = fdt_util.GetString(self._node, 'filename')
if filename: if filename:
self._filename = filename self._filename = filename
self._section = bsection.Section('main-section', self._node) self._section = bsection.Section('main-section', None, self._node, self)
def GetFdtSet(self): def GetFdtSet(self):
"""Get the set of device tree files used by this image""" """Get the set of device tree files used by this image"""