From 9b55dc81cadd89e0269de8cdcd5b786f752ead6f Mon Sep 17 00:00:00 2001 From: Alexander Lerach Date: Wed, 20 Aug 2025 17:57:52 +0200 Subject: [PATCH] bl_update: Allow booting from SD card (without forced BL copy to ROMFS) --- ROMFS/CMakeLists.txt | 4 ++-- ROMFS/px4fmu_common/init.d/rcS | 20 ++++++++++++++++++- boards/airmind/mindpx-v2/default.px4board | 1 + boards/atl/mantis-edu/default.px4board | 1 + boards/av/x-v1/default.px4board | 1 + boards/cuav/x7pro/test.px4board | 1 + boards/cubepilot/cubeorange/default.px4board | 1 + .../cubepilot/cubeorangeplus/default.px4board | 1 + boards/cubepilot/cubeyellow/default.px4board | 1 + boards/hkust/nxt-dual/default.px4board | 1 + boards/hkust/nxt-v1/default.px4board | 1 + boards/holybro/pix32v5/default.px4board | 1 + boards/micoair/h743-v2/default.px4board | 1 + boards/modalai/fc-v1/default.px4board | 1 + boards/modalai/fc-v2/default.px4board | 1 + boards/mro/ctrl-zero-f7-oem/default.px4board | 1 + boards/mro/ctrl-zero-f7/default.px4board | 1 + boards/mro/x21-777/default.px4board | 1 + boards/mro/x21/default.px4board | 1 + boards/narinfc/h7/test.px4board | 1 + boards/px4/fmu-v2/default.px4board | 1 + boards/px4/fmu-v3/default.px4board | 1 + boards/px4/fmu-v4/default.px4board | 1 + boards/px4/fmu-v4pro/default.px4board | 1 + boards/px4/fmu-v5/default.px4board | 1 + boards/px4/fmu-v5x/default.px4board | 1 + .../smartap-airlink/default.px4board | 1 + boards/thepeach/k1/default.px4board | 1 + boards/thepeach/r1/default.px4board | 1 + boards/uvify/core/default.px4board | 1 + boards/x-mav/ap-h743v2/default.px4board | 1 + boards/xc-fly/xc-slam/default.px4board | 1 + boards/xc-fly/xc-slim/default.px4board | 1 + .../nuttx/init/rc.board_bootloader_upgrade.in | 2 +- src/lib/systemlib/system_params.c | 3 +++ src/systemcmds/bl_update/Kconfig | 7 +++++++ 36 files changed, 63 insertions(+), 4 deletions(-) diff --git a/ROMFS/CMakeLists.txt b/ROMFS/CMakeLists.txt index 424fe1946c..67901f0d02 100644 --- a/ROMFS/CMakeLists.txt +++ b/ROMFS/CMakeLists.txt @@ -208,12 +208,12 @@ set(OPTIONAL_BOARD_EXTRAS) file(GLOB OPTIONAL_BOARD_EXTRAS ${PX4_BOARD_DIR}/extras/*) # bootloader (optional) -# - if systemcmds/bl_update included and board bootloader available then generate rc.board_bootloader_upgrade and copy bootloader binary +# - if systemcmds/bl_update included (with romfs copy) and board bootloader available then generate rc.board_bootloader_upgrade and copy bootloader binary # - otherwise remove bootloader binary from extras in final ROMFS foreach(board_extra_file ${OPTIONAL_BOARD_EXTRAS}) file(RELATIVE_PATH extra_file_base_name ${PX4_BOARD_DIR}/extras/ ${board_extra_file}) if(${extra_file_base_name} MATCHES "${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin") - if(CONFIG_SYSTEMCMDS_BL_UPDATE) + if(CONFIG_SYSTEMCMDS_BL_UPDATE AND CONFIG_BL_UPDATE_BL_ROMFS) # generate rc.board_bootloader_upgrade set(BOARD_FIRMWARE_BIN "${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin") message(STATUS "ROMFS: Adding platforms/nuttx/init/rc.board_bootloader_upgrade -> /etc/init.d/rc.board_bootloader_upgrade") diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 82c39da0db..4bc120e6f6 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -613,7 +613,9 @@ else . ${R}etc/init.d/rc.autostart.post fi - + # + # Bootloader upgrade (ROMFS) + # set BOARD_BOOTLOADER_UPGRADE ${R}etc/init.d/rc.board_bootloader_upgrade if [ -f $BOARD_BOOTLOADER_UPGRADE ] then @@ -621,6 +623,22 @@ else fi unset BOARD_BOOTLOADER_UPGRADE + # + # Bootloader upgrade (SD card) + # + if param compare -s SYS_BL_UPDATE 2 + then + if [ -f "/fs/microsd/bl/bl.bin" ] + then + param set SYS_BL_UPDATE 0 + param save + echo "bootloader update..." + bl_update "/fs/microsd/bl/bl.bin" + echo "bootloader update done, rebooting" + reboot + fi + fi + # # Check if UAVCAN is enabled, default to it for ESCs. # diff --git a/boards/airmind/mindpx-v2/default.px4board b/boards/airmind/mindpx-v2/default.px4board index 50c6679426..f03c3adbcb 100644 --- a/boards/airmind/mindpx-v2/default.px4board +++ b/boards/airmind/mindpx-v2/default.px4board @@ -75,6 +75,7 @@ CONFIG_MODULES_UUV_POS_CONTROL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/atl/mantis-edu/default.px4board b/boards/atl/mantis-edu/default.px4board index fd76e4d6ca..df87909439 100644 --- a/boards/atl/mantis-edu/default.px4board +++ b/boards/atl/mantis-edu/default.px4board @@ -35,6 +35,7 @@ CONFIG_MODULES_SENSORS=y CONFIG_MODULES_SIMULATION_SIMULATOR_SIH=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y diff --git a/boards/av/x-v1/default.px4board b/boards/av/x-v1/default.px4board index 5777261431..6a0dfa5757 100644 --- a/boards/av/x-v1/default.px4board +++ b/boards/av/x-v1/default.px4board @@ -71,6 +71,7 @@ CONFIG_MODULES_UUV_POS_CONTROL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/cuav/x7pro/test.px4board b/boards/cuav/x7pro/test.px4board index a9fb25cc6a..70bfc34a36 100644 --- a/boards/cuav/x7pro/test.px4board +++ b/boards/cuav/x7pro/test.px4board @@ -8,4 +8,5 @@ CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=n CONFIG_BOARD_TESTING=y CONFIG_DRIVERS_TEST_PPM=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_MICROBENCH=y diff --git a/boards/cubepilot/cubeorange/default.px4board b/boards/cubepilot/cubeorange/default.px4board index 83b60c54c1..f47c3384e0 100644 --- a/boards/cubepilot/cubeorange/default.px4board +++ b/boards/cubepilot/cubeorange/default.px4board @@ -74,6 +74,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/cubepilot/cubeorangeplus/default.px4board b/boards/cubepilot/cubeorangeplus/default.px4board index f241768a2a..86a9913fbb 100644 --- a/boards/cubepilot/cubeorangeplus/default.px4board +++ b/boards/cubepilot/cubeorangeplus/default.px4board @@ -75,6 +75,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/cubepilot/cubeyellow/default.px4board b/boards/cubepilot/cubeyellow/default.px4board index 28e3bc6f86..f013119382 100644 --- a/boards/cubepilot/cubeyellow/default.px4board +++ b/boards/cubepilot/cubeyellow/default.px4board @@ -75,6 +75,7 @@ CONFIG_MODULES_UUV_POS_CONTROL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/hkust/nxt-dual/default.px4board b/boards/hkust/nxt-dual/default.px4board index 242c36bea0..76e11a9241 100644 --- a/boards/hkust/nxt-dual/default.px4board +++ b/boards/hkust/nxt-dual/default.px4board @@ -66,6 +66,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/hkust/nxt-v1/default.px4board b/boards/hkust/nxt-v1/default.px4board index 90ff7f0e1b..a791c72d0f 100644 --- a/boards/hkust/nxt-v1/default.px4board +++ b/boards/hkust/nxt-v1/default.px4board @@ -68,6 +68,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/holybro/pix32v5/default.px4board b/boards/holybro/pix32v5/default.px4board index 566d4dea3a..91c8def960 100644 --- a/boards/holybro/pix32v5/default.px4board +++ b/boards/holybro/pix32v5/default.px4board @@ -79,6 +79,7 @@ CONFIG_MODULES_UUV_POS_CONTROL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/micoair/h743-v2/default.px4board b/boards/micoair/h743-v2/default.px4board index 9f6d00a5d0..476efb8306 100644 --- a/boards/micoair/h743-v2/default.px4board +++ b/boards/micoair/h743-v2/default.px4board @@ -84,6 +84,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/modalai/fc-v1/default.px4board b/boards/modalai/fc-v1/default.px4board index 0f386cc2b3..f8ca3b9981 100644 --- a/boards/modalai/fc-v1/default.px4board +++ b/boards/modalai/fc-v1/default.px4board @@ -79,6 +79,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/modalai/fc-v2/default.px4board b/boards/modalai/fc-v2/default.px4board index fb698d437a..a0d9a315a3 100644 --- a/boards/modalai/fc-v2/default.px4board +++ b/boards/modalai/fc-v2/default.px4board @@ -67,6 +67,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/mro/ctrl-zero-f7-oem/default.px4board b/boards/mro/ctrl-zero-f7-oem/default.px4board index 7dfdd1e8b0..9a9560a6f4 100644 --- a/boards/mro/ctrl-zero-f7-oem/default.px4board +++ b/boards/mro/ctrl-zero-f7-oem/default.px4board @@ -73,6 +73,7 @@ CONFIG_MODULES_UUV_POS_CONTROL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/mro/ctrl-zero-f7/default.px4board b/boards/mro/ctrl-zero-f7/default.px4board index ee46ef85c8..e03a1bd95c 100644 --- a/boards/mro/ctrl-zero-f7/default.px4board +++ b/boards/mro/ctrl-zero-f7/default.px4board @@ -73,6 +73,7 @@ CONFIG_MODULES_UUV_POS_CONTROL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/mro/x21-777/default.px4board b/boards/mro/x21-777/default.px4board index 322d80227e..fbac151af3 100644 --- a/boards/mro/x21-777/default.px4board +++ b/boards/mro/x21-777/default.px4board @@ -73,6 +73,7 @@ CONFIG_MODULES_UUV_POS_CONTROL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/mro/x21/default.px4board b/boards/mro/x21/default.px4board index 00d2c84743..18fab68e25 100644 --- a/boards/mro/x21/default.px4board +++ b/boards/mro/x21/default.px4board @@ -75,6 +75,7 @@ CONFIG_MODULES_UUV_POS_CONTROL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/narinfc/h7/test.px4board b/boards/narinfc/h7/test.px4board index a9fb25cc6a..70bfc34a36 100644 --- a/boards/narinfc/h7/test.px4board +++ b/boards/narinfc/h7/test.px4board @@ -8,4 +8,5 @@ CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=n CONFIG_BOARD_TESTING=y CONFIG_DRIVERS_TEST_PPM=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_MICROBENCH=y diff --git a/boards/px4/fmu-v2/default.px4board b/boards/px4/fmu-v2/default.px4board index c5255743df..26cced5eee 100644 --- a/boards/px4/fmu-v2/default.px4board +++ b/boards/px4/fmu-v2/default.px4board @@ -47,6 +47,7 @@ CONFIG_MODULES_SENSORS=y # CONFIG_SENSORS_VEHICLE_AIRSPEED is not set # CONFIG_SENSORS_VEHICLE_OPTICAL_FLOW is not set CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y CONFIG_SYSTEMCMDS_MFT=y CONFIG_SYSTEMCMDS_MTD=y diff --git a/boards/px4/fmu-v3/default.px4board b/boards/px4/fmu-v3/default.px4board index cb25c33762..04b8fb9ac0 100644 --- a/boards/px4/fmu-v3/default.px4board +++ b/boards/px4/fmu-v3/default.px4board @@ -79,6 +79,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/px4/fmu-v4/default.px4board b/boards/px4/fmu-v4/default.px4board index c2f3c26b7f..66d84c7d3e 100644 --- a/boards/px4/fmu-v4/default.px4board +++ b/boards/px4/fmu-v4/default.px4board @@ -80,6 +80,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/px4/fmu-v4pro/default.px4board b/boards/px4/fmu-v4pro/default.px4board index bea7aceac8..7c053b130b 100644 --- a/boards/px4/fmu-v4pro/default.px4board +++ b/boards/px4/fmu-v4pro/default.px4board @@ -77,6 +77,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/px4/fmu-v5/default.px4board b/boards/px4/fmu-v5/default.px4board index 9a36ff1fe7..d8e8f25a2c 100644 --- a/boards/px4/fmu-v5/default.px4board +++ b/boards/px4/fmu-v5/default.px4board @@ -83,6 +83,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/px4/fmu-v5x/default.px4board b/boards/px4/fmu-v5x/default.px4board index d9aa91eae6..8500636507 100644 --- a/boards/px4/fmu-v5x/default.px4board +++ b/boards/px4/fmu-v5x/default.px4board @@ -91,6 +91,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/sky-drones/smartap-airlink/default.px4board b/boards/sky-drones/smartap-airlink/default.px4board index 8c8afa6080..842fb85099 100644 --- a/boards/sky-drones/smartap-airlink/default.px4board +++ b/boards/sky-drones/smartap-airlink/default.px4board @@ -72,6 +72,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/thepeach/k1/default.px4board b/boards/thepeach/k1/default.px4board index d542a2c1b0..6dd226d3de 100644 --- a/boards/thepeach/k1/default.px4board +++ b/boards/thepeach/k1/default.px4board @@ -74,6 +74,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/thepeach/r1/default.px4board b/boards/thepeach/r1/default.px4board index d542a2c1b0..6dd226d3de 100644 --- a/boards/thepeach/r1/default.px4board +++ b/boards/thepeach/r1/default.px4board @@ -74,6 +74,7 @@ CONFIG_MODULES_UXRCE_DDS_CLIENT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/uvify/core/default.px4board b/boards/uvify/core/default.px4board index 8c144aa606..9484e7ed50 100644 --- a/boards/uvify/core/default.px4board +++ b/boards/uvify/core/default.px4board @@ -61,6 +61,7 @@ CONFIG_MODULES_SIMULATION_SIMULATOR_SIH=y CONFIG_MODULES_TEMPERATURE_COMPENSATION=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_BSONDUMP=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y diff --git a/boards/x-mav/ap-h743v2/default.px4board b/boards/x-mav/ap-h743v2/default.px4board index adc930268c..16e9439417 100644 --- a/boards/x-mav/ap-h743v2/default.px4board +++ b/boards/x-mav/ap-h743v2/default.px4board @@ -66,6 +66,7 @@ CONFIG_MODULES_TEMPERATURE_COMPENSATION=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/xc-fly/xc-slam/default.px4board b/boards/xc-fly/xc-slam/default.px4board index 7a7cb9d880..76b8a78a74 100644 --- a/boards/xc-fly/xc-slam/default.px4board +++ b/boards/xc-fly/xc-slam/default.px4board @@ -65,6 +65,7 @@ CONFIG_MODULES_TEMPERATURE_COMPENSATION=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/boards/xc-fly/xc-slim/default.px4board b/boards/xc-fly/xc-slim/default.px4board index 7a7cb9d880..76b8a78a74 100644 --- a/boards/xc-fly/xc-slim/default.px4board +++ b/boards/xc-fly/xc-slim/default.px4board @@ -65,6 +65,7 @@ CONFIG_MODULES_TEMPERATURE_COMPENSATION=y CONFIG_MODULES_VTOL_ATT_CONTROL=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y CONFIG_SYSTEMCMDS_BL_UPDATE=y +CONFIG_BL_UPDATE_BL_ROMFS=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y CONFIG_SYSTEMCMDS_GPIO=y diff --git a/platforms/nuttx/init/rc.board_bootloader_upgrade.in b/platforms/nuttx/init/rc.board_bootloader_upgrade.in index 23ea208507..6d80e726ee 100644 --- a/platforms/nuttx/init/rc.board_bootloader_upgrade.in +++ b/platforms/nuttx/init/rc.board_bootloader_upgrade.in @@ -1,7 +1,7 @@ #! /bin/sh # -# Bootloader upgrade +# Bootloader upgrade (ROMFS) # if param compare -s SYS_BL_UPDATE 1 then diff --git a/src/lib/systemlib/system_params.c b/src/lib/systemlib/system_params.c index 644e849d9d..3b5cf929b8 100644 --- a/src/lib/systemlib/system_params.c +++ b/src/lib/systemlib/system_params.c @@ -286,6 +286,9 @@ PARAM_DEFINE_INT32(SYS_FAC_CAL_MODE, 0); * @reboot_required true * * @group System + * @value 0 No bootloader update is performed + * @value 1 Bootloader update will be performed (using binary in ROMFS) + * @value 2 Bootloader update will be performed (using binary in /fs/microsd/bl/bl.bin) */ PARAM_DEFINE_INT32(SYS_BL_UPDATE, 0); diff --git a/src/systemcmds/bl_update/Kconfig b/src/systemcmds/bl_update/Kconfig index 59e072f5b5..f073eafdcf 100644 --- a/src/systemcmds/bl_update/Kconfig +++ b/src/systemcmds/bl_update/Kconfig @@ -5,6 +5,13 @@ menuconfig SYSTEMCMDS_BL_UPDATE ---help--- Enable support for bl_update +menuconfig BL_UPDATE_BL_ROMFS + bool "include bootloader in ROMFS" + default n + depends on SYSTEMCMDS_BL_UPDATE + ---help--- + Include bootloader in ROMFS + menuconfig USER_BL_UPDATE bool "bl_update running as userspace module" default n