diff --git a/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py b/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py index 05ef592380..ab76ab6972 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py +++ b/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py @@ -2408,12 +2408,19 @@ def bootloader_path(self): this_dir = os.path.realpath(__file__) rootdir = os.path.relpath(os.path.join(this_dir, "../../../../..")) hwdef_dirname = os.path.basename(os.path.dirname(args.hwdef[0])) + # allow re-using of bootloader from different build: + use_bootloader_from_board = self.get_config('USE_BOOTLOADER_FROM_BOARD', default=None, required=False) + if use_bootloader_from_board is not None: + hwdef_dirname = use_bootloader_from_board bootloader_filename = "%s_bl.bin" % (hwdef_dirname,) bootloader_path = os.path.join(rootdir, - "Tools", - "bootloaders", - bootloader_filename) - return bootloader_path + "Tools", + "bootloaders", + bootloader_filename) + if os.path.exists(bootloader_path): + return os.path.realpath(bootloader_path) + + return None def embed_bootloader(self, f): '''added bootloader to ROMFS'''