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 binman 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 binman to use absolute imports. This enables removable of the path adjusting in Entry also. Signed-off-by: Simon Glass <sjg@chromium.org>
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
# SPDX-License-Identifier: GPL-2.0+
|
|
# Copyright (c) 2016 Google, Inc
|
|
# Written by Simon Glass <sjg@chromium.org>
|
|
#
|
|
# Entry-type module for tpl/u-boot-tpl.bin
|
|
#
|
|
|
|
from binman import elf
|
|
from binman.entry import Entry
|
|
from binman.etype.blob import Entry_blob
|
|
|
|
class Entry_u_boot_tpl(Entry_blob):
|
|
"""U-Boot TPL binary
|
|
|
|
Properties / Entry arguments:
|
|
- filename: Filename of u-boot-tpl.bin (default 'tpl/u-boot-tpl.bin')
|
|
|
|
This is the U-Boot TPL (Tertiary Program Loader) binary. This is a small
|
|
binary which loads before SPL, typically into on-chip SRAM. It is
|
|
responsible for locating, loading and jumping to SPL, the next-stage
|
|
loader. Note that SPL is not relocatable so must be loaded to the correct
|
|
address in SRAM, or written to run from the correct address if direct
|
|
flash execution is possible (e.g. on x86 devices).
|
|
|
|
SPL can access binman symbols at runtime. See:
|
|
|
|
'Access to binman entry offsets at run time (symbols)'
|
|
|
|
in the binman README for more information.
|
|
|
|
The ELF file 'tpl/u-boot-tpl' must also be available for this to work, since
|
|
binman uses that to look up symbols to write into the TPL binary.
|
|
"""
|
|
def __init__(self, section, etype, node):
|
|
Entry_blob.__init__(self, section, etype, node)
|
|
self.elf_fname = 'tpl/u-boot-tpl'
|
|
|
|
def GetDefaultFilename(self):
|
|
return 'tpl/u-boot-tpl.bin'
|
|
|
|
def WriteSymbols(self, section):
|
|
elf.LookupAndWriteSymbols(self.elf_fname, self, section.GetImage())
|