ROMFS handle bl_update generically

- include all available legacy bootloaders
This commit is contained in:
Daniel Agar
2021-03-10 09:40:49 -05:00
committed by Lorenz Meier
parent 3ad0da51c4
commit f8eaa6e46b
42 changed files with 84 additions and 213 deletions
+24 -3
View File
@@ -64,10 +64,10 @@ if(config_build_bootloader)
ExternalProject_Get_Property(bootloader_firmware BINARY_DIR)
set(bootloader_exe "${BINARY_DIR}/${bootloader_config}.elf")
set(bootloader_bin "${PX4_BINARY_DIR}/romfs_extras/${bootloader_config}.bin" CACHE FILEPATH "bootloader binary path")
set(board_bootloader_firmware "${BINARY_DIR}/${bootloader_config}.elf" CACHE FILEPATH "bootloader original binary path")
set(bootloader_bin "${PX4_BINARY_DIR}/romfs_extras/bootloader.bin" CACHE FILEPATH "bootloader binary path")
file(RELATIVE_PATH bootloader_exe_relative ${CMAKE_CURRENT_BINARY_DIR} ${bootloader_exe})
file(RELATIVE_PATH bootloader_exe_relative ${CMAKE_CURRENT_BINARY_DIR} ${board_bootloader_firmware})
file(RELATIVE_PATH bootloader_bin_relative ${CMAKE_CURRENT_BINARY_DIR} ${bootloader_bin})
add_custom_command(OUTPUT ${bootloader_bin}
@@ -77,4 +77,25 @@ if(config_build_bootloader)
COMMENT "Copying ${bootloader_config} to ROMFS extras"
)
add_custom_target(copy_bootloader_bin DEPENDS ${bootloader_bin})
elseif(EXISTS "${PX4_BOARD_DIR}/bootloader/")
if(EXISTS ${PX4_BOARD_DIR}/bootloader/${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin)
set(board_bootloader_firmware ${PX4_BOARD_DIR}/bootloader/${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin CACHE FILEPATH "bootloader original binary path")
set(bootloader_bin "${PX4_BINARY_DIR}/romfs_extras/bootloader.bin" CACHE FILEPATH "bootloader binary path")
add_custom_command(OUTPUT ${bootloader_bin}
COMMAND ${CMAKE_COMMAND} -E make_directory ${PX4_BINARY_DIR}/romfs_extras
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${board_bootloader_firmware} ${PX4_BINARY_DIR}/romfs_extras/bootloader.bin
DEPENDS ${board_bootloader_firmware}
COMMENT "Copying ${board_bootloader_firmware} to ROMFS extras"
)
add_custom_target(copy_bootloader_bin DEPENDS ${bootloader_bin})
else()
file(GLOB bootloader_bin_files ${PX4_BOARD_DIR}/bootloader/*.bin)
foreach(bin_file ${bootloader_bin_files})
message(FATAL_ERROR "incorrect bootloader filename ${bin_file} should be ${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin")
endforeach()
endif()
endif()