diff --git a/.ci/Jenkinsfile-hardware b/.ci/Jenkinsfile-hardware index 509b3a01ab..520857465f 100644 --- a/.ci/Jenkinsfile-hardware +++ b/.ci/Jenkinsfile-hardware @@ -258,6 +258,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply @@ -333,6 +334,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply } @@ -407,6 +409,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply @@ -482,6 +485,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply @@ -560,6 +564,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply @@ -635,6 +640,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply } @@ -713,6 +719,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0"' // limit cpu usage sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply } @@ -787,6 +794,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic vtol standardulticopter + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply } @@ -941,6 +949,7 @@ pipeline { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply } diff --git a/ROMFS/CMakeLists.txt b/ROMFS/CMakeLists.txt index 25add7e336..3b1c1fd496 100644 --- a/ROMFS/CMakeLists.txt +++ b/ROMFS/CMakeLists.txt @@ -31,11 +31,12 @@ # ############################################################################ -message(STATUS "ROMFS: ${config_romfs_root}") - set(romfs_src_dir ${PX4_SOURCE_DIR}/ROMFS/${config_romfs_root}) set(romfs_gen_root_dir ${PX4_BINARY_DIR}/etc) +file(RELATIVE_PATH romfs_path_relative ${PX4_SOURCE_DIR} ${romfs_src_dir}) +message(STATUS "ROMFS: ${romfs_path_relative}") + set_property(GLOBAL PROPERTY PX4_ROMFS_FILES) set_property(GLOBAL PROPERTY PX4_ROMFS_CMAKE_FILES) @@ -149,9 +150,22 @@ if(config_io_board) copy_px4io_bin ${fw_io_bin} ) + file(RELATIVE_PATH iofw_file_relative ${PX4_SOURCE_DIR} ${fw_io_bin}) + message(STATUS "ROMFS: Adding ${iofw_file_relative} -> /etc/extras/${config_io_board}.bin") endif() -if(config_build_bootloader) + +# board bootloader (built or included) +if(TARGET copy_bootloader_bin) + + if(board_bootloader_firmware) + file(RELATIVE_PATH bl_file_relative ${PX4_SOURCE_DIR} ${board_bootloader_firmware}) + message(STATUS "ROMFS: Adding ${bl_file_relative} -> /etc/extras/bootloader.bin") + else() + file(RELATIVE_PATH bl_file_relative ${PX4_SOURCE_DIR} ${bootloader_bin}) + message(STATUS "ROMFS: Adding ${bl_file_relative} -> /etc/extras/bootloader.bin") + endif() + list(APPEND extras_dependencies copy_bootloader_bin ${bootloader_bin} @@ -162,7 +176,8 @@ endif() # optional board architecture defaults set(board_arch_rc_file "rc.board_arch_defaults") if(EXISTS "${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/init/${CONFIG_ARCH_CHIP}/${board_arch_rc_file}") - message(STATUS "ROMFS: Adding ${board_arch_rc_file}") + file(RELATIVE_PATH rc_file_relative ${PX4_SOURCE_DIR} ${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/init/${CONFIG_ARCH_CHIP}/${board_arch_rc_file}) + message(STATUS "ROMFS: Adding ${rc_file_relative} -> /etc/init.d/${board_arch_rc_file}") add_custom_command( OUTPUT @@ -193,7 +208,8 @@ list(APPEND OPTIONAL_BOARD_RC foreach(board_rc_file ${OPTIONAL_BOARD_RC}) if(EXISTS "${PX4_BOARD_DIR}/init/${board_rc_file}") - message(STATUS "ROMFS: Adding ${board_rc_file}") + file(RELATIVE_PATH rc_file_relative ${PX4_SOURCE_DIR} ${PX4_BOARD_DIR}/init/${board_rc_file}) + message(STATUS "ROMFS: Adding ${rc_file_relative} -> /etc/init.d/${board_rc_file}") add_custom_command( OUTPUT @@ -221,7 +237,7 @@ if(config_uavcan_peripheral_firmware) foreach(uavcan_peripheral_config ${config_uavcan_peripheral_firmware}) # include the px4io binary in ROMFS - message(STATUS "ROMFS: Building and including UAVCAN peripheral ${uavcan_peripheral_config}") + message(STATUS "ROMFS: Adding UAVCAN peripheral ${uavcan_peripheral_config} -> /etc/uavcan/fw/") ExternalProject_Add(build_${uavcan_peripheral_config} SOURCE_DIR ${CMAKE_SOURCE_DIR} DOWNLOAD_COMMAND "" diff --git a/ROMFS/px4fmu_common/extras/README.txt b/ROMFS/px4fmu_common/extras/README.txt deleted file mode 100644 index 4f7639784d..0000000000 --- a/ROMFS/px4fmu_common/extras/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -px4fmuv3_bl.bin: Bootloader binary of the PX4 Bootloader - (https://github.com/PX4/Bootloader) - based on commit 184b813699a9cfd6f43a5a21556a06b4372baf5f - for the target px4fmuv3_bl - diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index f4057b465f..6fc79fde28 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -549,6 +549,22 @@ else . ${R}etc/init.d/rc.autostart.post fi + # + # Bootloader upgrade + # + if param compare -s SYS_BL_UPDATE 1 + then + if [ -f "/etc/extras/bootloader.bin" ] + then + param set SYS_BL_UPDATE 0 + param save + echo "bootloader update..." + bl_update "/etc/extras/bootloader.bin" + echo "bootloader update done, rebooting" + reboot + fi + fi + if ! param compare SYS_PARAM_VER ${PARAM_DEFAULTS_VER} then echo "Switched to different parameter version. Resetting parameters." diff --git a/boards/airmind/mindpx-v2/bootloader/airmind_mindpx-v2_bootloader.bin b/boards/airmind/mindpx-v2/bootloader/airmind_mindpx-v2_bootloader.bin new file mode 100644 index 0000000000..591d039060 Binary files /dev/null and b/boards/airmind/mindpx-v2/bootloader/airmind_mindpx-v2_bootloader.bin differ diff --git a/boards/av/x-v1/bootloader/av_x-v1_bootloader.bin b/boards/av/x-v1/bootloader/av_x-v1_bootloader.bin new file mode 100644 index 0000000000..69bb5cee57 Binary files /dev/null and b/boards/av/x-v1/bootloader/av_x-v1_bootloader.bin differ diff --git a/boards/bitcraze/crazyflie/bootloader/bitcraze_crazyflie_bootloader.bin b/boards/bitcraze/crazyflie/bootloader/bitcraze_crazyflie_bootloader.bin new file mode 100644 index 0000000000..954ef6e896 Binary files /dev/null and b/boards/bitcraze/crazyflie/bootloader/bitcraze_crazyflie_bootloader.bin differ diff --git a/boards/bitcraze/crazyflie/default.cmake b/boards/bitcraze/crazyflie/default.cmake index aafac466d3..7547c13ee1 100644 --- a/boards/bitcraze/crazyflie/default.cmake +++ b/boards/bitcraze/crazyflie/default.cmake @@ -14,8 +14,8 @@ px4_add_board( barometer/lps25h distance_sensor/vl53l0x gps - magnetometer/akm/ak8963 imu/invensense/mpu9250 + magnetometer/akm/ak8963 optical_flow/pmw3901 pwm_out MODULES @@ -45,7 +45,7 @@ px4_add_board( #bl_update dmesg dumpfile - esc_calib + #esc_calib hardfault_log i2cdetect led_control diff --git a/boards/bitcraze/crazyflie21/bootloader/bitcraze_crazyflie21_bootloader.bin b/boards/bitcraze/crazyflie21/bootloader/bitcraze_crazyflie21_bootloader.bin new file mode 100644 index 0000000000..c4542ff195 Binary files /dev/null and b/boards/bitcraze/crazyflie21/bootloader/bitcraze_crazyflie21_bootloader.bin differ diff --git a/boards/bitcraze/crazyflie21/default.cmake b/boards/bitcraze/crazyflie21/default.cmake index 7694dc3f21..bddc80c825 100644 --- a/boards/bitcraze/crazyflie21/default.cmake +++ b/boards/bitcraze/crazyflie21/default.cmake @@ -11,12 +11,12 @@ px4_add_board( ROMFSROOT px4fmu_common CONSTRAINED_FLASH DRIVERS + barometer/bmp388 distance_sensor/vl53l1x gps + imu/bosch/bmi088/bmi088_i2c optical_flow/pmw3901 pwm_out - imu/bosch/bmi088/bmi088_i2c - barometer/bmp388 MODULES attitude_estimator_q #camera_feedback @@ -24,7 +24,8 @@ px4_add_board( dataman ekf2 events - gyro_fft + flight_mode_manager + #gyro_fft land_detector landing_target_estimator load_mon @@ -40,10 +41,10 @@ px4_add_board( sensors #temperature_compensation SYSTEMCMDS - bl_update + #bl_update dmesg dumpfile - esc_calib + #esc_calib hardfault_log i2cdetect led_control diff --git a/boards/bitcraze/crazyflie21/src/spi.cpp b/boards/bitcraze/crazyflie21/src/spi.cpp index 8cee5d6ab3..e9beabbdb3 100644 --- a/boards/bitcraze/crazyflie21/src/spi.cpp +++ b/boards/bitcraze/crazyflie21/src/spi.cpp @@ -49,15 +49,14 @@ #include #include "board_config.h" - #include #include #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { initSPIBus(SPI::Bus::SPI1, { - initSPIDevice(DRV_FLOW_DEVTYPE_PMW3901, SPI::CS{GPIO::PortB, GPIO::Pin4}), initSPIDevice(SPIDEV_MMCSD(0), SPI::CS{GPIO::PortC, GPIO::Pin12}), + initSPIDevice(DRV_FLOW_DEVTYPE_PMW3901, SPI::CS{GPIO::PortB, GPIO::Pin4}), initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortB, GPIO::Pin5}), }), }; diff --git a/boards/cuav/nora/init/rc.board_defaults b/boards/cuav/nora/init/rc.board_defaults index 5967c4421e..7491c4b0da 100644 --- a/boards/cuav/nora/init/rc.board_defaults +++ b/boards/cuav/nora/init/rc.board_defaults @@ -3,25 +3,6 @@ # board specific defaults #------------------------------------------------------------------------------ -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/cuav_nora_bootloader.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE - - param set-default BAT_V_DIV 18 param set-default BAT1_V_DIV 18 param set-default BAT2_V_DIV 18 diff --git a/boards/cuav/x7pro/init/rc.board_defaults b/boards/cuav/x7pro/init/rc.board_defaults index 40c6301156..7491c4b0da 100644 --- a/boards/cuav/x7pro/init/rc.board_defaults +++ b/boards/cuav/x7pro/init/rc.board_defaults @@ -3,25 +3,6 @@ # board specific defaults #------------------------------------------------------------------------------ -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/cuav_x7pro_bootloader.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE - - param set-default BAT_V_DIV 18 param set-default BAT1_V_DIV 18 param set-default BAT2_V_DIV 18 diff --git a/boards/cubepilot/cubeorange/init/rc.board_defaults b/boards/cubepilot/cubeorange/init/rc.board_defaults index 444a67d244..d5e3382247 100644 --- a/boards/cubepilot/cubeorange/init/rc.board_defaults +++ b/boards/cubepilot/cubeorange/init/rc.board_defaults @@ -3,24 +3,6 @@ # board specific defaults #------------------------------------------------------------------------------ -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/cubepilot_cubeorange_bootloader.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE - param set-default BAT_V_DIV 10.1 param set-default BAT1_V_DIV 10.1 diff --git a/boards/cubepilot/io-v2/bootloader/cubepilot_io-v2_bootloader.bin b/boards/cubepilot/io-v2/bootloader/cubepilot_io-v2_bootloader.bin new file mode 100644 index 0000000000..235c65c934 Binary files /dev/null and b/boards/cubepilot/io-v2/bootloader/cubepilot_io-v2_bootloader.bin differ diff --git a/boards/holybro/durandal-v1/init/rc.board_defaults b/boards/holybro/durandal-v1/init/rc.board_defaults index b820665a9c..08a6b82a3d 100644 --- a/boards/holybro/durandal-v1/init/rc.board_defaults +++ b/boards/holybro/durandal-v1/init/rc.board_defaults @@ -3,25 +3,5 @@ # Holybro Durandal V1 specific board defaults #------------------------------------------------------------------------------ - -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/holybro_durandal-v1_bootloader.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE - - # Enable IMU thermal control param set-default SENS_EN_THERMAL 1 diff --git a/boards/holybro/kakutef7/bootloader/holybro_kakutef7_bootloader.bin b/boards/holybro/kakutef7/bootloader/holybro_kakutef7_bootloader.bin new file mode 100644 index 0000000000..6948aec707 Binary files /dev/null and b/boards/holybro/kakutef7/bootloader/holybro_kakutef7_bootloader.bin differ diff --git a/boards/holybro/pix32v5/bootloader/holybro_pix32v5_bootloader.bin b/boards/holybro/pix32v5/bootloader/holybro_pix32v5_bootloader.bin new file mode 100644 index 0000000000..76d4bf5367 Binary files /dev/null and b/boards/holybro/pix32v5/bootloader/holybro_pix32v5_bootloader.bin differ diff --git a/boards/modalai/fc-v1/bootloader/modalai_fc-v1_bootloader.bin b/boards/modalai/fc-v1/bootloader/modalai_fc-v1_bootloader.bin new file mode 100644 index 0000000000..ab1887aedd Binary files /dev/null and b/boards/modalai/fc-v1/bootloader/modalai_fc-v1_bootloader.bin differ diff --git a/boards/mro/ctrl-zero-h7-oem/init/rc.board_defaults b/boards/mro/ctrl-zero-h7-oem/init/rc.board_defaults index b3701ff52c..0e211f3539 100644 --- a/boards/mro/ctrl-zero-h7-oem/init/rc.board_defaults +++ b/boards/mro/ctrl-zero-h7-oem/init/rc.board_defaults @@ -3,25 +3,6 @@ # board specific defaults #------------------------------------------------------------------------------ -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/mro_ctrl-zero-h7-oem_bootloader.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE - - param set-default BAT_V_DIV 10.1 param set-default BAT1_V_DIV 10.1 diff --git a/boards/mro/ctrl-zero-h7/init/rc.board_defaults b/boards/mro/ctrl-zero-h7/init/rc.board_defaults index a85ece0156..0e211f3539 100644 --- a/boards/mro/ctrl-zero-h7/init/rc.board_defaults +++ b/boards/mro/ctrl-zero-h7/init/rc.board_defaults @@ -3,25 +3,6 @@ # board specific defaults #------------------------------------------------------------------------------ -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/mro_ctrl-zero-h7_bootloader.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE - - param set-default BAT_V_DIV 10.1 param set-default BAT1_V_DIV 10.1 diff --git a/boards/mro/pixracerpro/init/rc.board_defaults b/boards/mro/pixracerpro/init/rc.board_defaults index 52491421d3..6f1b54fa02 100644 --- a/boards/mro/pixracerpro/init/rc.board_defaults +++ b/boards/mro/pixracerpro/init/rc.board_defaults @@ -3,25 +3,6 @@ # board specific defaults #------------------------------------------------------------------------------ -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/mro_pixracerpro_bootloader.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE - - param set-default BAT_V_DIV 10.1 param set-default BAT1_V_DIV 10.1 diff --git a/boards/mro/x21/bootloader/mro_x21_bootloader.bin b/boards/mro/x21/bootloader/mro_x21_bootloader.bin new file mode 100644 index 0000000000..d21a0484a6 Binary files /dev/null and b/boards/mro/x21/bootloader/mro_x21_bootloader.bin differ diff --git a/boards/nxp/fmuk66-e/bootloader/nxp_fmuk66-e_bootloader.bin b/boards/nxp/fmuk66-e/bootloader/nxp_fmuk66-e_bootloader.bin new file mode 100644 index 0000000000..9193278497 Binary files /dev/null and b/boards/nxp/fmuk66-e/bootloader/nxp_fmuk66-e_bootloader.bin differ diff --git a/boards/nxp/fmuk66-e/default.cmake b/boards/nxp/fmuk66-e/default.cmake index 84427648c6..9049949246 100644 --- a/boards/nxp/fmuk66-e/default.cmake +++ b/boards/nxp/fmuk66-e/default.cmake @@ -82,7 +82,7 @@ px4_add_board( vmount vtol_att_control SYSTEMCMDS - bl_update + #bl_update #dmesg dumpfile esc_calib diff --git a/boards/nxp/fmuk66-v3/bootloader/nxp_fmuk66-v3_bootloader.bin b/boards/nxp/fmuk66-v3/bootloader/nxp_fmuk66-v3_bootloader.bin new file mode 100644 index 0000000000..e97ecced3a Binary files /dev/null and b/boards/nxp/fmuk66-v3/bootloader/nxp_fmuk66-v3_bootloader.bin differ diff --git a/boards/nxp/fmuk66-v3/default.cmake b/boards/nxp/fmuk66-v3/default.cmake index 1b3f21a34d..31d6556a5b 100644 --- a/boards/nxp/fmuk66-v3/default.cmake +++ b/boards/nxp/fmuk66-v3/default.cmake @@ -82,7 +82,7 @@ px4_add_board( vmount vtol_att_control SYSTEMCMDS - bl_update + #bl_update #dmesg dumpfile esc_calib diff --git a/boards/omnibus/f4sd/bootloader/omnibus_f4sd_bootloader.bin b/boards/omnibus/f4sd/bootloader/omnibus_f4sd_bootloader.bin new file mode 100644 index 0000000000..be73a7f0ed Binary files /dev/null and b/boards/omnibus/f4sd/bootloader/omnibus_f4sd_bootloader.bin differ diff --git a/boards/px4/fmu-v2/bootloader/px4_fmu-v2_bootloader.bin b/boards/px4/fmu-v2/bootloader/px4_fmu-v2_bootloader.bin new file mode 100644 index 0000000000..75e1e3a6b8 Binary files /dev/null and b/boards/px4/fmu-v2/bootloader/px4_fmu-v2_bootloader.bin differ diff --git a/boards/px4/fmu-v2/default.cmake b/boards/px4/fmu-v2/default.cmake index f1488131d5..207b06d22a 100644 --- a/boards/px4/fmu-v2/default.cmake +++ b/boards/px4/fmu-v2/default.cmake @@ -8,7 +8,6 @@ px4_add_board( ARCHITECTURE cortex-m4 CONSTRAINED_MEMORY ROMFSROOT px4fmu_common - BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin IO px4_io-v2_default #TESTING #UAVCAN_INTERFACES 2 diff --git a/boards/px4/fmu-v2/init/rc.board_defaults b/boards/px4/fmu-v2/init/rc.board_defaults deleted file mode 100644 index 7a4c20fe16..0000000000 --- a/boards/px4/fmu-v2/init/rc.board_defaults +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# -# board specific defaults -#------------------------------------------------------------------------------ - - -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/px4fmuv3_bl.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE diff --git a/boards/px4/fmu-v3/bootloader/px4_fmu-v3_bootloader.bin b/boards/px4/fmu-v3/bootloader/px4_fmu-v3_bootloader.bin new file mode 100644 index 0000000000..75e1e3a6b8 Binary files /dev/null and b/boards/px4/fmu-v3/bootloader/px4_fmu-v3_bootloader.bin differ diff --git a/boards/px4/fmu-v3/init/rc.board_defaults b/boards/px4/fmu-v3/init/rc.board_defaults deleted file mode 100644 index 7a4c20fe16..0000000000 --- a/boards/px4/fmu-v3/init/rc.board_defaults +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# -# board specific defaults -#------------------------------------------------------------------------------ - - -# -# Bootloader upgrade -# -set BL_FILE /etc/extras/px4fmuv3_bl.bin -if [ -f $BL_FILE ] -then - if param compare SYS_BL_UPDATE 1 - then - param set SYS_BL_UPDATE 0 - param save - echo "BL update..." - bl_update $BL_FILE - echo "BL update done" - reboot - fi -fi -unset BL_FILE diff --git a/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin b/boards/px4/fmu-v4/bootloader/px4_fmu-v4_bootloader.bin old mode 100755 new mode 100644 similarity index 55% rename from ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin rename to boards/px4/fmu-v4/bootloader/px4_fmu-v4_bootloader.bin index 196af2c249..2092568461 Binary files a/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin and b/boards/px4/fmu-v4/bootloader/px4_fmu-v4_bootloader.bin differ diff --git a/boards/px4/fmu-v4pro/bootloader/px4_fmu-v4pro_bootloader.bin b/boards/px4/fmu-v4pro/bootloader/px4_fmu-v4pro_bootloader.bin new file mode 100644 index 0000000000..0cd3e09ef2 Binary files /dev/null and b/boards/px4/fmu-v4pro/bootloader/px4_fmu-v4pro_bootloader.bin differ diff --git a/boards/px4/fmu-v5/bootloader/px4_fmu-v5_bootloader.bin b/boards/px4/fmu-v5/bootloader/px4_fmu-v5_bootloader.bin new file mode 100644 index 0000000000..f5adff96ee Binary files /dev/null and b/boards/px4/fmu-v5/bootloader/px4_fmu-v5_bootloader.bin differ diff --git a/boards/px4/fmu-v5x/bootloader/px4_fmu-v5x_bootloader.bin b/boards/px4/fmu-v5x/bootloader/px4_fmu-v5x_bootloader.bin new file mode 100644 index 0000000000..6a9cba4c8e Binary files /dev/null and b/boards/px4/fmu-v5x/bootloader/px4_fmu-v5x_bootloader.bin differ diff --git a/boards/px4/fmu-v5x/default.cmake b/boards/px4/fmu-v5x/default.cmake index e4925dbddd..44d09fb55b 100644 --- a/boards/px4/fmu-v5x/default.cmake +++ b/boards/px4/fmu-v5x/default.cmake @@ -37,13 +37,13 @@ px4_add_board( imu/invensense/icm20602 imu/invensense/icm42688p irlock - lights/blinkm + #lights/blinkm lights/rgbled lights/rgbled_ncp5623c magnetometer # all available magnetometer drivers optical_flow # all available optical flow drivers #osd - pca9685 + #pca9685 pca9685_pwm_out power_monitor/ina226 #protocol_splitter diff --git a/boards/px4/io-v2/bootloader/px4_io-v2_bootloader.bin b/boards/px4/io-v2/bootloader/px4_io-v2_bootloader.bin new file mode 100644 index 0000000000..235c65c934 Binary files /dev/null and b/boards/px4/io-v2/bootloader/px4_io-v2_bootloader.bin differ diff --git a/boards/uvify/core/bootloader/uvify_core_bootloader.bin b/boards/uvify/core/bootloader/uvify_core_bootloader.bin new file mode 100644 index 0000000000..990cfaf5bc Binary files /dev/null and b/boards/uvify/core/bootloader/uvify_core_bootloader.bin differ diff --git a/cmake/px4_add_board.cmake b/cmake/px4_add_board.cmake index 1cb021a02b..d718359f41 100644 --- a/cmake/px4_add_board.cmake +++ b/cmake/px4_add_board.cmake @@ -48,7 +48,6 @@ # [ ROMFSROOT ] # [ BUILD_BOOTLOADER ] # [ IO ] -# [ BOOTLOADER ] # [ UAVCAN_INTERFACES ] # [ UAVCAN_PERIPHERALS ] # [ DRIVERS ] @@ -74,7 +73,6 @@ # ROMFSROOT : relative path to the ROMFS root directory # BUILD_BOOTLOADER : flag to enable building and including the bootloader config # IO : name of IO board to be built and included in the ROMFS (requires a valid ROMFSROOT) -# BOOTLOADER : bootloader file to include for flashing via bl_update (currently NuttX only) # UAVCAN_INTERFACES : number of interfaces for UAVCAN # UAVCAN_PERIPHERALS : list of UAVCAN peripheral firmware to build and embed # DRIVERS : list of drivers to build for this board (relative to src/drivers) @@ -148,7 +146,6 @@ function(px4_add_board) ARCHITECTURE ROMFSROOT IO - BOOTLOADER UAVCAN_INTERFACES UAVCAN_TIMER_OVERRIDE LINKER_PREFIX @@ -210,9 +207,6 @@ function(px4_add_board) set(romfs_extra_files) set(config_romfs_extra_dependencies) - if(BOOTLOADER) - list(APPEND romfs_extra_files ${BOOTLOADER}) - endif() foreach(metadata ${EMBEDDED_METADATA}) if(${metadata} STREQUAL "parameters") list(APPEND romfs_extra_files ${PX4_BINARY_DIR}/params.json.xz) diff --git a/src/systemcmds/bl_update/CMakeLists.txt b/src/systemcmds/bl_update/CMakeLists.txt index 5a02a677c5..cd774646ec 100644 --- a/src/systemcmds/bl_update/CMakeLists.txt +++ b/src/systemcmds/bl_update/CMakeLists.txt @@ -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()