mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
rockchip: rk3399: Get bl31.elf via BL31
Right now rockchip platform need to copy bl31.elf into u-boot source directory to make use of building u-boot.itb. So, add environment variable BL31 like Allwinner SoC so-that the bl31.elf would available via BL31. If the builds are not exporting BL31 env, the make_fit_atf.py explicitly create dummy bl31.elf in u-boot root directory to satisfy travis builds and it will show the warning on console as WARNING: BL31 file bl31.elf NOT found, resulting binary is non-functional WARNING: Please read Building section in doc/README.rockchip Note, that the dummy bl31 files were created during not exporting BL31 case would be removed via clean target in Makefile. Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
This commit is contained in:
parent
cca4f576d0
commit
96070460c3
3 changed files with 20 additions and 5 deletions
2
Makefile
2
Makefile
|
@ -1848,7 +1848,7 @@ clean: $(clean-dirs)
|
|||
-o -name 'dsdt.aml' -o -name 'dsdt.asl.tmp' -o -name 'dsdt.c' \
|
||||
-o -name '*.efi' -o -name '*.gcno' -o -name '*.so' \) \
|
||||
-type f -print | xargs rm -f \
|
||||
bl31_*.bin image.map
|
||||
bl31.c bl31.elf bl31_*.bin image.map
|
||||
|
||||
# mrproper - Delete all generated files, including .config
|
||||
#
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
import os
|
||||
import sys
|
||||
import getopt
|
||||
import logging
|
||||
|
||||
# pip install pyelftools
|
||||
from elftools.elf.elffile import ELFFile
|
||||
|
@ -89,13 +90,17 @@ def append_conf_section(file, cnt, dtname, segments):
|
|||
file.write('\t\tconfig_%d {\n' % cnt)
|
||||
file.write('\t\t\tdescription = "%s";\n' % dtname)
|
||||
file.write('\t\t\tfirmware = "atf_1";\n')
|
||||
file.write('\t\t\tloadables = "uboot",')
|
||||
file.write('\t\t\tloadables = "uboot"')
|
||||
if segments != 0:
|
||||
file.write(',')
|
||||
for i in range(1, segments):
|
||||
file.write('"atf_%d"' % (i))
|
||||
if i != (segments - 1):
|
||||
file.write(',')
|
||||
else:
|
||||
file.write(';\n')
|
||||
if segments == 0:
|
||||
file.write(';\n')
|
||||
file.write('\t\t\tfdt = "fdt_1";\n')
|
||||
file.write('\t\t};\n')
|
||||
file.write('\n')
|
||||
|
@ -171,8 +176,18 @@ def generate_atf_binary(bl31_file_name):
|
|||
|
||||
def main():
|
||||
uboot_elf = "./u-boot"
|
||||
bl31_elf = "./bl31.elf"
|
||||
fit_its = sys.stdout
|
||||
if "BL31" in os.environ:
|
||||
bl31_elf=os.getenv("BL31");
|
||||
elif os.path.isfile("./bl31.elf"):
|
||||
bl31_elf = "./bl31.elf"
|
||||
else:
|
||||
os.system("echo 'int main(){}' > bl31.c")
|
||||
os.system("${CROSS_COMPILE}gcc -c bl31.c -o bl31.elf")
|
||||
bl31_elf = "./bl31.elf"
|
||||
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
|
||||
logging.warning(' BL31 file bl31.elf NOT found, resulting binary is non-functional')
|
||||
logging.warning(' Please read Building section in doc/README.rockchip')
|
||||
|
||||
opts, args = getopt.getopt(sys.argv[1:], "o:u:b:h")
|
||||
for opt, val in opts:
|
||||
|
|
|
@ -150,8 +150,8 @@ For example:
|
|||
=> make realclean
|
||||
=> make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399
|
||||
|
||||
(copy bl31.elf into U-Boot root dir)
|
||||
=> cp build/rk3399/release/bl31/bl31.elf /path/to/u-boot
|
||||
(export bl31.elf)
|
||||
=> export BL31=/path/to/arm-trusted-firmware/build/rk3399/release/bl31/bl31.elf
|
||||
|
||||
- Compile PMU M0 firmware
|
||||
|
||||
|
|
Loading…
Reference in a new issue