mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 00:48:52 +09:00
![Simon Glass](/assets/img/avatar_default.png)
In some cases we need to read symbols from U-Boot. At present we have a a few cases which does this via 'nm' and 'grep'. It is better to use objdump since that tells us the size of the symbols and also whether it is weak or not. Add a new module which reads ELF information from files. Update existing uses of 'nm' to use this module. Signed-off-by: Simon Glass <sjg@chromium.org>
28 lines
900 B
Python
28 lines
900 B
Python
# Copyright (c) 2016 Google, Inc
|
|
# Written by Simon Glass <sjg@chromium.org>
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# Entry-type module for BSS padding for spl/u-boot-spl.bin. This padding
|
|
# can be added after the SPL binary to ensure that anything concatenated
|
|
# to it will appear to SPL to be at the end of BSS rather than the start.
|
|
#
|
|
|
|
import command
|
|
import elf
|
|
from entry import Entry
|
|
from blob import Entry_blob
|
|
import tools
|
|
|
|
class Entry_u_boot_spl_bss_pad(Entry_blob):
|
|
def __init__(self, image, etype, node):
|
|
Entry_blob.__init__(self, image, etype, node)
|
|
|
|
def ObtainContents(self):
|
|
fname = tools.GetInputFilename('spl/u-boot-spl')
|
|
bss_size = elf.GetSymbolAddress(fname, '__bss_size')
|
|
if not bss_size:
|
|
self.Raise('Expected __bss_size symbol in spl/u-boot-spl')
|
|
self.data = chr(0) * bss_size
|
|
self.contents_size = bss_size
|