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)
At present patman sets the python path on startup so that it can access the libraries it needs. If we convert to use absolute imports this is not necessary. Move patman to use absolute imports. This requires changes in tools which use the patman libraries (which is most of them). Signed-off-by: Simon Glass <sjg@chromium.org>
43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
# SPDX-License-Identifier: GPL-2.0+
|
|
# Copyright (c) 2016 Google, Inc
|
|
# Written by Simon Glass <sjg@chromium.org>
|
|
#
|
|
# 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.
|
|
#
|
|
|
|
from binman import elf
|
|
from binman.entry import Entry
|
|
from patman import command
|
|
from binman.etype.blob import Entry_blob
|
|
from patman import tools
|
|
|
|
class Entry_u_boot_spl_bss_pad(Entry_blob):
|
|
"""U-Boot SPL binary padded with a BSS region
|
|
|
|
Properties / Entry arguments:
|
|
None
|
|
|
|
This is similar to u_boot_spl except that padding is added after the SPL
|
|
binary to cover the BSS (Block Started by Symbol) region. This region holds
|
|
the various used by SPL. It is set to 0 by SPL when it starts up. If you
|
|
want to append data to the SPL image (such as a device tree file), you must
|
|
pad out the BSS region to avoid the data overlapping with U-Boot variables.
|
|
This entry is useful in that case. It automatically pads out the entry size
|
|
to cover both the code, data and BSS.
|
|
|
|
The ELF file 'spl/u-boot-spl' must also be available for this to work, since
|
|
binman uses that to look up the BSS address.
|
|
"""
|
|
def __init__(self, section, etype, node):
|
|
Entry_blob.__init__(self, section, 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.SetContents(tools.GetBytes(0, bss_size))
|
|
return True
|