mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 19:11:53 +00:00
binman: Unwind the end-at-4gb special-case a little
Move the check for this further out, so that base_addr is computed in Entry.WriteSymbols() rather than at lower levels. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
bce055338e
commit
b73d0bb584
3 changed files with 18 additions and 18 deletions
|
@ -711,15 +711,22 @@ class Entry(object):
|
||||||
def WriteSymbols(self, section):
|
def WriteSymbols(self, section):
|
||||||
"""Write symbol values into binary files for access at run time
|
"""Write symbol values into binary files for access at run time
|
||||||
|
|
||||||
|
As a special case, if symbols_base is not specified and this is an
|
||||||
|
end-at-4gb image, a symbols_base of 0 is used
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
section: Section containing the entry
|
section: Section containing the entry
|
||||||
"""
|
"""
|
||||||
if self.auto_write_symbols and not self.no_write_symbols:
|
if self.auto_write_symbols and not self.no_write_symbols:
|
||||||
# Check if we are writing symbols into an ELF file
|
# Check if we are writing symbols into an ELF file
|
||||||
is_elf = self.GetDefaultFilename() == self.elf_fname
|
is_elf = self.GetDefaultFilename() == self.elf_fname
|
||||||
|
|
||||||
|
symbols_base = self.symbols_base
|
||||||
|
if symbols_base is None and self.GetImage()._end_4gb:
|
||||||
|
symbols_base = 0
|
||||||
|
|
||||||
elf.LookupAndWriteSymbols(self.elf_fname, self, section.GetImage(),
|
elf.LookupAndWriteSymbols(self.elf_fname, self, section.GetImage(),
|
||||||
is_elf, self.elf_base_sym,
|
is_elf, self.elf_base_sym, symbols_base)
|
||||||
self.symbols_base)
|
|
||||||
|
|
||||||
def CheckEntries(self):
|
def CheckEntries(self):
|
||||||
"""Check that the entry offsets are correct
|
"""Check that the entry offsets are correct
|
||||||
|
|
|
@ -627,12 +627,10 @@ class Entry_section(Entry):
|
||||||
optional: True if the symbol is optional. If False this function
|
optional: True if the symbol is optional. If False this function
|
||||||
will raise if the symbol is not found
|
will raise if the symbol is not found
|
||||||
msg: Message to display if an error occurs
|
msg: Message to display if an error occurs
|
||||||
base_addr: Base address of image. This is added to the returned
|
base_addr (int): Base address of image. This is added to the
|
||||||
image_pos in most cases so that the returned position indicates
|
returned value of image-pos so that the returned position
|
||||||
where the targetted entry/binary has actually been loaded. But
|
indicates where the targeted entry/binary has actually been
|
||||||
if end-at-4gb is used, this is not done, since the binary is
|
loaded
|
||||||
already assumed to be linked to the ROM position and using
|
|
||||||
execute-in-place (XIP).
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Value that should be assigned to that symbol, or None if it was
|
Value that should be assigned to that symbol, or None if it was
|
||||||
|
@ -655,10 +653,7 @@ class Entry_section(Entry):
|
||||||
if prop_name == 'offset':
|
if prop_name == 'offset':
|
||||||
return entry.offset
|
return entry.offset
|
||||||
elif prop_name == 'image_pos':
|
elif prop_name == 'image_pos':
|
||||||
value = entry.image_pos
|
return base_addr + entry.image_pos
|
||||||
if not self.GetImage()._end_4gb:
|
|
||||||
value += base_addr
|
|
||||||
return value
|
|
||||||
if prop_name == 'size':
|
if prop_name == 'size':
|
||||||
return entry.size
|
return entry.size
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -404,12 +404,10 @@ class Image(section.Entry_section):
|
||||||
optional: True if the symbol is optional. If False this function
|
optional: True if the symbol is optional. If False this function
|
||||||
will raise if the symbol is not found
|
will raise if the symbol is not found
|
||||||
msg: Message to display if an error occurs
|
msg: Message to display if an error occurs
|
||||||
base_addr: Base address of image. This is added to the returned
|
base_addr (int): Base address of image. This is added to the
|
||||||
image_pos in most cases so that the returned position indicates
|
returned value of image-pos so that the returned position
|
||||||
where the targeted entry/binary has actually been loaded. But
|
indicates where the targeted entry/binary has actually been
|
||||||
if end-at-4gb is used, this is not done, since the binary is
|
loaded
|
||||||
already assumed to be linked to the ROM position and using
|
|
||||||
execute-in-place (XIP).
|
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Value that should be assigned to that symbol, or None if it was
|
Value that should be assigned to that symbol, or None if it was
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue