diff --git a/Tools/scripts/build_bootloaders.py b/Tools/scripts/build_bootloaders.py index bf6e5c3461..338dcb180a 100755 --- a/Tools/scripts/build_bootloaders.py +++ b/Tools/scripts/build_bootloaders.py @@ -14,6 +14,7 @@ import fnmatch from argparse import ArgumentParser parser = ArgumentParser(description='make_secure_bl') parser.add_argument("--signing-key", type=str, default=None, help="signing key for secure bootloader") +parser.add_argument("--debug", action='store_true', default=False, help="build with debug symbols") parser.add_argument("pattern", type=str, default='*', help="board wildcard pattern") args = parser.parse_args() @@ -50,6 +51,9 @@ def build_board(board): if args.signing_key is not None: print("Building secure bootloader") configure_args.append("--signed-fw") + if args.debug is not None: + print("Building with debug symbols") + configure_args.append("--debug") if not run_program(["./waf", "configure"] + configure_args): return False if not run_program(["./waf", "clean"]): @@ -66,16 +70,24 @@ for board in get_board_list(): failed_boards.add(board) continue bl_file = 'Tools/bootloaders/%s_bl.bin' % board + hex_file = 'Tools/bootloaders/%s_bl.hex' % board + elf_file = 'Tools/bootloaders/%s_bl.elf' % board shutil.copy('build/%s/bin/AP_Bootloader.bin' % board, bl_file) + print("Created %s" % bl_file) + shutil.copy('build/%s/bootloader/AP_Bootloader' % board, elf_file) + print("Created %s" % elf_file) if args.signing_key is not None: print("Signing bootloader with %s" % args.signing_key) if not run_program(["./Tools/scripts/signing/make_secure_bl.py", bl_file, args.signing_key]): print("Failed to sign bootloader for %s" % board) sys.exit(1) - if not run_program([sys.executable, "Tools/scripts/bin2hex.py", "--offset", "0x08000000", 'Tools/bootloaders/%s_bl.bin' % board, 'Tools/bootloaders/%s_bl.hex' % board]): + if not run_program(["./Tools/scripts/signing/make_secure_bl.py", elf_file, args.signing_key]): + print("Failed to sign ELF bootloader for %s" % board) + sys.exit(1) + if not run_program([sys.executable, "Tools/scripts/bin2hex.py", "--offset", "0x08000000", bl_file, hex_file]): failed_boards.add(board) continue - shutil.copy('build/%s/bootloader/AP_Bootloader' % board, 'Tools/bootloaders/%s_bl.elf' % board) + print("Created %s" % hex_file) if len(failed_boards): print("Failed boards: %s" % list(failed_boards))