diff --git a/.ackrc b/.ackrc
deleted file mode 100644
index 0215ca1eeb..0000000000
--- a/.ackrc
+++ /dev/null
@@ -1 +0,0 @@
---ignore-dir=Documentation
diff --git a/.github_changelog_generator b/.github_changelog_generator
deleted file mode 100644
index b89c58ad05..0000000000
--- a/.github_changelog_generator
+++ /dev/null
@@ -1,33 +0,0 @@
-# How to install:
-# gem install github_changelog_generator
-# How to run:
-# github_changelog_generator -u PX4 -p Firmware
-# Description:
-# The following params are sensible defaults for the PX4 project,
-# if you want to do a changelog before a release you need to update since-tag and future-releases,
-
-# Params:
-# github_changelog_generator --help for all options
-
-# max-issues
-# max threshold for github api queries
-# make sure you set your CHANGELOG_GITHUB_TOKEN before
-# running
-max-issues=1500
-
-# exclude-tags-regex
-# excludes release candidates
-exclude-tags-regex=rc[0-9]{1,}|beta[0-9]{1,}
-
-# since-tag
-# version of last stable release
-# you need to change this depending on what you need
-# if you want a changelog between versions this is the lowest version
-since-tag=1.6.5
-
-# future-release
-# version you are about to release
-# if you want a changelog between a version and all unreleased changes grouped as a release
-# eg: v1.6.5 to v1.7.0
-future-release=v1.7.0
-
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 347ccc884c..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-language: cpp
-
-git:
- depth: 100
- submodules: false
-
-matrix:
- fast_finish: true
- include:
- - os: linux
- dist: xenial
- # In order to stay under the coverity rate limit, we only run this weekly
- # and not on push which is configured in travis-ci settings.
- if: branch = main
-
-before_install:
- - echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
-
-install:
- - export PATH=$HOME/.local/bin:$PATH
- - pip install --user --upgrade pip
- - pip install --user -r Tools/setup/requirements.txt
-
-script:
- - make
-
-addons:
- coverity_scan:
- project:
- name: "PX4/Firmware"
- description: "Build submitted via Travis CI"
- notification_email: ci@px4.io
- build_command_prepend: "make distclean"
- build_command: "make px4_sitl_default"
- branch_pattern: coverity_scan
diff --git a/.ycm_extra_conf.py b/.ycm_extra_conf.py
deleted file mode 100644
index 4f7cfc2020..0000000000
--- a/.ycm_extra_conf.py
+++ /dev/null
@@ -1,172 +0,0 @@
-# This file is NOT licensed under the GPLv3, which is the license for the rest
-# of YouCompleteMe.
-#
-# Here's the license text for this file:
-#
-# This is free and unencumbered software released into the public domain.
-#
-# Anyone is free to copy, modify, publish, use, compile, sell, or
-# distribute this software, either in source code form or as a compiled
-# binary, for any purpose, commercial or non-commercial, and by any
-# means.
-#
-# In jurisdictions that recognize copyright laws, the author or authors
-# of this software dedicate any and all copyright interest in the
-# software to the public domain. We make this dedication for the benefit
-# of the public at large and to the detriment of our heirs and
-# successors. We intend this dedication to be an overt act of
-# relinquishment in perpetuity of all present and future rights to this
-# software under copyright law.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-#
-# For more information, please refer to
-
-import os
-import ycm_core
-
-# These are the compilation flags that will be used in case there's no
-# compilation database set (by default, one is not set).
-# CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR.
-flags = [
-'-Wall',
-'-Wextra',
-'-Werror',
-#'-Wc++98-compat',
-'-Wno-long-long',
-'-Wno-variadic-macros',
-'-fexceptions',
-'-DNDEBUG',
-# You 100% do NOT need -DUSE_CLANG_COMPLETER in your flags; only the YCM
-# source code needs it.
-#'-DUSE_CLANG_COMPLETER',
-# THIS IS IMPORTANT! Without a "-std=" flag, clang won't know which
-# language to use when compiling headers. So it will guess. Badly. So C++
-# headers will be compiled as C headers. You don't want that so ALWAYS specify
-# a "-std=".
-# For a C project, you would set this to something like 'c99' instead of
-# 'c++14'.
-'-std=c++14',
-# ...and the same thing goes for the magic -x option which specifies the
-# language that the files to be compiled are written in. This is mostly
-# relevant for c++ headers.
-# For a C project, you would set this to 'c' instead of 'c++'.
-'-x',
-'c++',
-'-undef', # get rid of standard definitions to allow us to include arm math header
-'-I', os.path.join(os.path.expanduser("~"),'gcc-arm-none-eabi-4_7-2013q3/arm-none-eabi/include'),
-'-I', 'Build/px4_io-v2_default.build/nuttx-export/include/',
-'-I', './NuttX/nuttx/arch/arm/include',
-'-include', './src/include/visibility.h',
-'-I', './src',
-'-I', './src/modules',
-'-I', './src/include',
-'-I', './src/lib',
-'-I', './NuttX',
-]
-
-
-# Set this to the absolute path to the folder (NOT the file!) containing the
-# compile_commands.json file to use that instead of 'flags'. See here for
-# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
-#
-# Most projects will NOT need to set this to anything; you can just change the
-# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
-compilation_database_folder = ''
-
-if os.path.exists( compilation_database_folder ):
- database = ycm_core.CompilationDatabase( compilation_database_folder )
-else:
- database = None
-
-SOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ]
-
-def DirectoryOfThisScript():
- return os.path.dirname( os.path.abspath( __file__ ) )
-
-
-def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
- if not working_directory:
- return list( flags )
- new_flags = []
- make_next_absolute = False
- path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
- for flag in flags:
- new_flag = flag
-
- if make_next_absolute:
- make_next_absolute = False
- if not flag.startswith( '/' ):
- new_flag = os.path.join( working_directory, flag )
-
- for path_flag in path_flags:
- if flag == path_flag:
- make_next_absolute = True
- break
-
- if flag.startswith( path_flag ):
- path = flag[ len( path_flag ): ]
- new_flag = path_flag + os.path.join( working_directory, path )
- break
-
- if new_flag:
- new_flags.append( new_flag )
- return new_flags
-
-
-def IsHeaderFile( filename ):
- extension = os.path.splitext( filename )[ 1 ]
- return extension in [ '.h', '.hxx', '.hpp', '.hh' ]
-
-
-def GetCompilationInfoForFile( filename ):
- # The compilation_commands.json file generated by CMake does not have entries
- # for header files. So we do our best by asking the db for flags for a
- # corresponding source file, if any. If one exists, the flags for that file
- # should be good enough.
- if IsHeaderFile( filename ):
- basename = os.path.splitext( filename )[ 0 ]
- for extension in SOURCE_EXTENSIONS:
- replacement_file = basename + extension
- if os.path.exists( replacement_file ):
- compilation_info = database.GetCompilationInfoForFile(
- replacement_file )
- if compilation_info.compiler_flags_:
- return compilation_info
- return None
- return database.GetCompilationInfoForFile( filename )
-
-
-def FlagsForFile( filename, **kwargs ):
- if database:
- # Bear in mind that compilation_info.compiler_flags_ does NOT return a
- # python list, but a "list-like" StringVec object
- compilation_info = GetCompilationInfoForFile( filename )
- if not compilation_info:
- return None
-
- final_flags = MakeRelativePathsInFlagsAbsolute(
- compilation_info.compiler_flags_,
- compilation_info.compiler_working_dir_ )
-
- # NOTE: This is just for YouCompleteMe; it's highly likely that your project
- # does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR
- # ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT.
- #try:
- # final_flags.remove( '-stdlib=libc++' )
- #except ValueError:
- # pass
- else:
- relative_to = DirectoryOfThisScript()
- final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to )
-
- return {
- 'flags': final_flags,
- 'do_cache': True
- }
diff --git a/Firmware.sublime-project b/Firmware.sublime-project
deleted file mode 100644
index d89a58de3f..0000000000
--- a/Firmware.sublime-project
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "folders":
- [
- {
- "path": ".",
- "file_exclude_patterns":
- [
- "*.o",
- "*.a",
- "*.d",
- ".built",
- ".context",
- ".depend",
- ".config",
- ".version",
- "Make.dep",
- ".configured",
- "*.sublime-project",
- "*.sublime-workspace",
- ".project",
- ".cproject",
- "cscope.out"
- ],
- "folder_exclude_patterns":
- [
- ".settings",
- "nuttx/arch/arm/src/board",
- "nuttx/arch/arm/src/chip",
- "build_*"
- ]
- }
- ],
- "settings":
- {
- "tab_size": 8,
- "translate_tabs_to_spaces": false,
- "highlight_line": true,
- "AStyleFormatter":
- {
- "options_c":
- {
- "use_only_additional_options": true,
- "additional_options_file": "${project_path}/Tools/astyle/astylerc"
- },
- "options_c++":
- {
- "use_only_additional_options": true,
- "additional_options_file": "${project_path}/Tools/astyle/astylerc"
- }
- }
- },
- "build_systems":
- [
- {
- "name": "PX4: make all",
- "working_dir": "${project_path}",
- "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
- "cmd": ["make"],
- "shell": true
- },
- {
- "name": "PX4: make and upload",
- "working_dir": "${project_path}",
- "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
- "cmd": ["make upload px4_fmu-v2_default -j8"],
- "shell": true
- },
- {
- "name": "PX4: make posix",
- "working_dir": "${project_path}",
- "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
- "cmd": ["make posix"],
- "shell": true
- },
- {
- "name": "MindPX_V2: make and upload",
- "working_dir": "${project_path}",
- "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
- "cmd": ["make upload mindpx-v2_default -j8"],
- "shell": true
- }
- ]
-}
diff --git a/_last_entry b/_last_entry
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index e7f57cbb2f..0000000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-# Build version
-version: "{build}"
-# do not shallow clone because we want to infer the version from the last tag
-
-branches:
- only:
- - master
- - beta
- - stable
-
-# Build worker image (build VM template)
-image: Visual Studio 2017
-
-environment:
- matrix:
- - PX4_CONFIG: tests # this builds posix in px4_sitl_test folder and runs tests
- - PX4_CONFIG: px4_fmu-v5_default
-
-install:
-# if the toolchain wasn't restored from build cache download and install it
-- ps: >-
- if (-not (Test-Path C:\PX4)) {
- Invoke-WebRequest https://s3-us-west-2.amazonaws.com/px4-tools/PX4+Windows+Cygwin+Toolchain/PX4+Windows+Cygwin+Toolchain+0.9.msi -OutFile C:\Toolchain.msi
- Start-Process -Wait msiexec -ArgumentList '/I C:\Toolchain.msi /quiet /qn /norestart /log C:\install.log'
- }
-
-# Note: using Start-Process -Wait is important
-# because otherwise the install begins but non-blocking and the result cannot be used just after
-
-build_script:
-# FIXME Temporary we need to create the home folder because it's not contained in installer 0.5 and CI fails if it doesn't exist
-- if not exist "C:\PX4\home" mkdir C:\PX4\home
-# setup the environmental variables to work within the installed cygwin toolchain
-- call C:\PX4\toolchain\scripts\setup-environment.bat x
-# safe the repopath for switching to it in cygwin bash
-- for /f %%i in ('cygpath -u %%CD%%') do set repopath=%%i
-# build the make target
-- call bash --login -c "cd $repopath && make $PX4_CONFIG"
-
-# Note: using bash --login is important
-# because otherwise certain things (like python; import numpy) do not work
-
-cache:
-# cache the entire toolchain installation folder to avoid
-# downloading it from AWS S3 and installing the MSI each time
-# it's ~1.8GB > 1GB free limit for build caches
-- C:\PX4 -> appveyor.yml
diff --git a/boards/px4/fmu-v6xrt/init/rc.board_defaults b/boards/px4/fmu-v6xrt/init/rc.board_defaults
index b242eebc90..45282796ef 100644
--- a/boards/px4/fmu-v6xrt/init/rc.board_defaults
+++ b/boards/px4/fmu-v6xrt/init/rc.board_defaults
@@ -16,8 +16,6 @@ param set-default SENS_EN_INA238 0
param set-default SENS_EN_INA228 0
param set-default SENS_EN_INA226 1
-param set-default SYS_USE_IO 1
-
safety_button start
if param greater -s UAVCAN_ENABLE 0
diff --git a/boards/px4/fmu-v6xrt/src/CMakeLists.txt b/boards/px4/fmu-v6xrt/src/CMakeLists.txt
index cd9d6fb6b2..91833ede24 100644
--- a/boards/px4/fmu-v6xrt/src/CMakeLists.txt
+++ b/boards/px4/fmu-v6xrt/src/CMakeLists.txt
@@ -36,7 +36,6 @@ if("${PX4_BOARD_LABEL}" STREQUAL "bootloader")
bootloader_main.c
init.c
usb.c
- imxrt_romapi.c
imxrt_flexspi_nor_boot.c
imxrt_flexspi_nor_flash.c
imxrt_clockconfig.c
@@ -48,6 +47,7 @@ if("${PX4_BOARD_LABEL}" STREQUAL "bootloader")
nuttx_drivers # sdio
px4_layer #gpio
arch_io_pins # iotimer
+ arch_board_romapi
bootloader
)
target_include_directories(drivers_board PRIVATE ${PX4_SOURCE_DIR}/platforms/nuttx/src/bootloader/common)
@@ -72,7 +72,6 @@ else()
spi.cpp
timer_config.cpp
usb.c
- imxrt_romapi.c
imxrt_flexspi_fram.c
imxrt_flexspi_nor_boot.c
imxrt_flexspi_nor_flash.c
@@ -83,6 +82,7 @@ else()
target_link_libraries(drivers_board
PRIVATE
arch_board_hw_info
+ arch_board_romapi
arch_spi
drivers__led # drv_led_start
nuttx_arch # sdio
diff --git a/boards/px4/fmu-v6xrt/src/imxrt_flexspi_nor_flash.c b/boards/px4/fmu-v6xrt/src/imxrt_flexspi_nor_flash.c
index eb079e2009..6ae7589d60 100644
--- a/boards/px4/fmu-v6xrt/src/imxrt_flexspi_nor_flash.c
+++ b/boards/px4/fmu-v6xrt/src/imxrt_flexspi_nor_flash.c
@@ -22,7 +22,7 @@
* Included Files
****************************************************************************/
-#include "imxrt_flexspi_nor_flash.h"
+#include
/****************************************************************************
* Public Data
diff --git a/boards/px4/fmu-v6xrt/src/init.c b/boards/px4/fmu-v6xrt/src/init.c
index daac8cae42..4b2edbc658 100644
--- a/boards/px4/fmu-v6xrt/src/init.c
+++ b/boards/px4/fmu-v6xrt/src/init.c
@@ -66,8 +66,7 @@
#include "arm_internal.h"
#include "imxrt_flexspi_nor_boot.h"
-#include "imxrt_flexspi_nor_flash.h"
-#include "imxrt_romapi.h"
+#include
#include "imxrt_iomuxc.h"
#include "imxrt_flexcan.h"
#include "imxrt_enet.h"
@@ -79,10 +78,12 @@
#include
+
#include
#include
#include
#include
+#include
#include
#include
#include
diff --git a/eclipse.cproject b/eclipse.cproject
deleted file mode 100644
index 711a641270..0000000000
--- a/eclipse.cproject
+++ /dev/null
@@ -1,205 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- make
- px4_fmu-v2_default
- true
- true
- true
-
-
- make
-
- px4_fmu-v4_default
- true
- true
- true
-
-
- make
- all
- true
- true
- true
-
-
- make
-
- px4_sitl_default
- true
- true
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
- clean
- true
- true
- true
-
-
- make
- distclean
- true
- true
- true
-
-
- make
-
- tests
- true
- true
- true
-
-
- make
- submodulesclean
- false
- true
- true
-
-
- make
-
- quick_check
- true
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/eclipse.project b/eclipse.project
deleted file mode 100644
index 0172fa8ceb..0000000000
--- a/eclipse.project
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
- PX4-Firmware
-
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.genmakebuilder
- clean,full,incremental,
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
- full,incremental,
-
-
-
-
-
- org.eclipse.cdt.core.cnature
- org.eclipse.cdt.core.ccnature
- org.eclipse.cdt.managedbuilder.core.managedBuildNature
- org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
-
-
-
- topics_sources
- 2
- uORB_SRC
-
-
- uORB
- 2
- uORB_LOC
-
-
-
-
- 1457837186676
-
- 26
-
- org.eclipse.ui.ide.multiFilter
- 1.0-name-matches-false-false-.git
-
-
-
- 1457837186687
-
- 10
-
- org.eclipse.ui.ide.multiFilter
- 1.0-name-matches-true-false-build*
-
-
-
-
-
- uORB_LOC
- $%7BPROJECT_LOC%7D/build/px4_sitl_default/uORB
-
-
- uORB_SRC
- $%7BPROJECT_LOC%7D/build/px4_sitl_default/msg/topics_sources
-
-
-
diff --git a/platforms/common/include/px4_platform_common/shutdown.h b/platforms/common/include/px4_platform_common/shutdown.h
index f4bd2e9cf6..3e306f3a17 100644
--- a/platforms/common/include/px4_platform_common/shutdown.h
+++ b/platforms/common/include/px4_platform_common/shutdown.h
@@ -70,6 +70,12 @@ __EXPORT int px4_register_shutdown_hook(shutdown_hook_t hook);
*/
__EXPORT int px4_unregister_shutdown_hook(shutdown_hook_t hook);
+/** Types of reboot requests for PX4 */
+typedef enum {
+ REBOOT_REQUEST = 0, ///< Normal reboot
+ REBOOT_TO_BOOTLOADER = 1, ///< Reboot to PX4 bootloader
+ REBOOT_TO_ISP = 2, ///< Reboot to ISP bootloader
+} reboot_request_t;
/**
* Request the system to reboot.
@@ -83,7 +89,7 @@ __EXPORT int px4_unregister_shutdown_hook(shutdown_hook_t hook);
* @return 0 on success, <0 on error
*/
#if defined(CONFIG_BOARDCTL_RESET)
-__EXPORT int px4_reboot_request(bool to_bootloader = false, uint32_t delay_us = 0);
+__EXPORT int px4_reboot_request(reboot_request_t request = REBOOT_REQUEST, uint32_t delay_us = 0);
#endif // CONFIG_BOARDCTL_RESET
diff --git a/platforms/common/shutdown.cpp b/platforms/common/shutdown.cpp
index dcbd733ceb..878d99c62e 100644
--- a/platforms/common/shutdown.cpp
+++ b/platforms/common/shutdown.cpp
@@ -108,6 +108,7 @@ static uint16_t shutdown_counter = 0; ///< count how many times the shutdown wor
#define SHUTDOWN_ARG_IN_PROGRESS (1<<0)
#define SHUTDOWN_ARG_REBOOT (1<<1)
#define SHUTDOWN_ARG_TO_BOOTLOADER (1<<2)
+#define SHUTDOWN_ARG_TO_ISP (1<<3)
static uint8_t shutdown_args = 0;
static constexpr int max_shutdown_hooks = 1;
@@ -175,7 +176,17 @@ static void shutdown_worker(void *arg)
if (shutdown_args & SHUTDOWN_ARG_REBOOT) {
#if defined(CONFIG_BOARDCTL_RESET)
PX4_INFO_RAW("Reboot NOW.");
- boardctl(BOARDIOC_RESET, (shutdown_args & SHUTDOWN_ARG_TO_BOOTLOADER) ? 1 : 0);
+
+ if (shutdown_args & SHUTDOWN_ARG_TO_BOOTLOADER) {
+ boardctl(BOARDIOC_RESET, (uintptr_t)REBOOT_TO_BOOTLOADER);
+
+ } else if (shutdown_args & SHUTDOWN_ARG_TO_ISP) {
+ boardctl(BOARDIOC_RESET, (uintptr_t)REBOOT_TO_ISP);
+
+ } else {
+ boardctl(BOARDIOC_RESET, (uintptr_t)REBOOT_REQUEST);
+ }
+
#else
PX4_PANIC("board reset not available");
#endif
@@ -206,7 +217,7 @@ static void shutdown_worker(void *arg)
}
#if defined(CONFIG_BOARDCTL_RESET)
-int px4_reboot_request(bool to_bootloader, uint32_t delay_us)
+int px4_reboot_request(reboot_request_t request, uint32_t delay_us)
{
pthread_mutex_lock(&shutdown_mutex);
@@ -217,8 +228,11 @@ int px4_reboot_request(bool to_bootloader, uint32_t delay_us)
shutdown_args |= SHUTDOWN_ARG_REBOOT;
- if (to_bootloader) {
+ if (request == REBOOT_TO_BOOTLOADER) {
shutdown_args |= SHUTDOWN_ARG_TO_BOOTLOADER;
+
+ } else if (request == REBOOT_TO_ISP) {
+ shutdown_args |= SHUTDOWN_ARG_TO_ISP;
}
shutdown_time_us = hrt_absolute_time();
diff --git a/platforms/nuttx/src/bootloader/nxp/imxrt_common/main.c b/platforms/nuttx/src/bootloader/nxp/imxrt_common/main.c
index 280bc1ad5b..1197427a94 100644
--- a/platforms/nuttx/src/bootloader/nxp/imxrt_common/main.c
+++ b/platforms/nuttx/src/bootloader/nxp/imxrt_common/main.c
@@ -7,8 +7,8 @@
#include
#include "hw_config.h"
-#include "imxrt_flexspi_nor_flash.h"
-#include "imxrt_romapi.h"
+#include
+#include
#include
#include
#include
diff --git a/platforms/nuttx/src/px4/common/cdc_acm_check.cpp b/platforms/nuttx/src/px4/common/cdc_acm_check.cpp
index d86556894d..09c7771032 100644
--- a/platforms/nuttx/src/px4/common/cdc_acm_check.cpp
+++ b/platforms/nuttx/src/px4/common/cdc_acm_check.cpp
@@ -187,7 +187,7 @@ static void mavlink_usb_check(void *arg)
if (param1 == 1) {
// 1: Reboot autopilot
- px4_reboot_request(false, 0);
+ px4_reboot_request(REBOOT_REQUEST, 0);
} else if (param1 == 2) {
// 2: Shutdown autopilot
@@ -197,7 +197,7 @@ static void mavlink_usb_check(void *arg)
} else if (param1 == 3) {
// 3: Reboot autopilot and keep it in the bootloader until upgraded.
- px4_reboot_request(true, 0);
+ px4_reboot_request(REBOOT_TO_BOOTLOADER, 0);
}
}
}
diff --git a/platforms/nuttx/src/px4/nxp/imxrt/board_reset/board_reset.cpp b/platforms/nuttx/src/px4/nxp/imxrt/board_reset/board_reset.cpp
index aa54650834..ce3e431e53 100644
--- a/platforms/nuttx/src/px4/nxp/imxrt/board_reset/board_reset.cpp
+++ b/platforms/nuttx/src/px4/nxp/imxrt/board_reset/board_reset.cpp
@@ -38,6 +38,7 @@
*/
#include
+#include
#include
#include
#include
@@ -61,7 +62,7 @@ static int board_reset_enter_bootloader()
int board_reset(int status)
{
- if (status == 1) {
+ if (status == REBOOT_TO_BOOTLOADER) {
board_reset_enter_bootloader();
}
diff --git a/boards/px4/fmu-v6xrt/src/imxrt_flexspi_nor_flash.h b/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/imxrt_flexspi_nor_flash.h
similarity index 98%
rename from boards/px4/fmu-v6xrt/src/imxrt_flexspi_nor_flash.h
rename to platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/imxrt_flexspi_nor_flash.h
index 66a425ee9e..727744b974 100644
--- a/boards/px4/fmu-v6xrt/src/imxrt_flexspi_nor_flash.h
+++ b/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/imxrt_flexspi_nor_flash.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/px4/fmu-v6xrt/src/imxrt_flexspi_nor_flash.h
+ * platforms/nuttx/src/px4/nxp/imrt/include/px4_arch/imxrt_flexspi_nor_flash.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -18,8 +18,8 @@
*
****************************************************************************/
-#ifndef __BOARDS_PX4_FMU_V6XRT_SRC_IMXRT_FLEXSPI_NOR_FLASH_H
-#define __BOARDS_PX4_FMU_V6XRT_SRC_IMXRT_FLEXSPI_NOR_FLASH_H
+#ifndef __PX4_ARCH_IMXRT_FLEXSPI_NOR_FLASH_H
+#define __PX4_ARCH_IMXRT_FLEXSPI_NOR_FLASH_H
/****************************************************************************
* Included Files
@@ -349,4 +349,4 @@ extern const struct flexspi_nor_config_s g_flash_config;
extern const struct flexspi_nor_config_s g_flash_fast_config;
-#endif /* __BOARDS_PX4_FMU_V6XRT_SRC_IMXRT_FLEXSPI_NOR_FLASH_H */
+#endif /* __PX4_ARCH_IMXRT_FLEXSPI_NOR_FLASH_H */
diff --git a/boards/px4/fmu-v6xrt/src/imxrt_romapi.h b/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/imxrt_romapi.h
similarity index 98%
rename from boards/px4/fmu-v6xrt/src/imxrt_romapi.h
rename to platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/imxrt_romapi.h
index de076c68cd..f51775e2bd 100644
--- a/boards/px4/fmu-v6xrt/src/imxrt_romapi.h
+++ b/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/imxrt_romapi.h
@@ -1,14 +1,14 @@
/****************************************************************************
- * boards/px4/fmu-v6xrt/src/imxrt_romapi.c
+ * platforms/nuttx/src/px4/nxp/imrt/include/px4_arch/imxrt_romapi.h
*
- * Copyright 2017-2020 NXP
+ * Copyright 2017-2024 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
****************************************************************************/
-#ifndef __BOARDS_PX4_FMU_V6XRT_SRC_IMXRT_ROMAPI_H
-#define __BOARDS_PX4_FMU_V6XRT_SRC_IMXRT_ROMAPI_H
+#ifndef __PX4_ARCH_IMXRT_ROMAPI_H
+#define __PX4_ARCH_IMXRT_ROMAPI_H
/****************************************************************************
*
@@ -370,4 +370,8 @@ void ROM_FLEXSPI_NorFlash_ClearCache(uint32_t instance);
/*@}*/
-#endif /* __BOARDS_PX4_FMU_V6XRT_SRC_IMXRT_ROMAPI_H */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PX4_ARCH_IMXRT_ROMAPI_H */
diff --git a/platforms/nuttx/src/px4/nxp/imxrt/romapi/CMakeLists.txt b/platforms/nuttx/src/px4/nxp/imxrt/romapi/CMakeLists.txt
new file mode 100644
index 0000000000..d6508bdd61
--- /dev/null
+++ b/platforms/nuttx/src/px4/nxp/imxrt/romapi/CMakeLists.txt
@@ -0,0 +1,36 @@
+############################################################################
+#
+# Copyright (c) 2019 PX4 Development Team. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name PX4 nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################################
+
+px4_add_library(arch_board_romapi
+ imxrt_romapi.c
+)
diff --git a/boards/px4/fmu-v6xrt/src/imxrt_romapi.c b/platforms/nuttx/src/px4/nxp/imxrt/romapi/imxrt_romapi.c
similarity index 98%
rename from boards/px4/fmu-v6xrt/src/imxrt_romapi.c
rename to platforms/nuttx/src/px4/nxp/imxrt/romapi/imxrt_romapi.c
index 0f79d88a0e..68443e3353 100644
--- a/boards/px4/fmu-v6xrt/src/imxrt_romapi.c
+++ b/platforms/nuttx/src/px4/nxp/imxrt/romapi/imxrt_romapi.c
@@ -1,7 +1,7 @@
/****************************************************************************
- * boards/px4/fmu-v6xrt/src/imxrt_romapi.c
+ * platforms/nuttx/src/px4/nxp/imrt/romapi/imxrt_romapi.c
*
- * Copyright 2017-2020 NXP
+ * Copyright 2017-2024 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
@@ -22,8 +22,8 @@
#include "arm_internal.h"
-#include "imxrt_flexspi_nor_flash.h"
-#include "imxrt_romapi.h"
+#include
+#include
#include
diff --git a/platforms/nuttx/src/px4/nxp/kinetis/board_reset/board_reset.cpp b/platforms/nuttx/src/px4/nxp/kinetis/board_reset/board_reset.cpp
index 8a073821ce..62066a9cc2 100644
--- a/platforms/nuttx/src/px4/nxp/kinetis/board_reset/board_reset.cpp
+++ b/platforms/nuttx/src/px4/nxp/kinetis/board_reset/board_reset.cpp
@@ -38,6 +38,7 @@
*/
#include
+#include
#include
#include
@@ -72,7 +73,7 @@ static int board_reset_enter_bootloader()
int board_reset(int status)
{
- if (status == 1) {
+ if (status == REBOOT_TO_BOOTLOADER) {
board_reset_enter_bootloader();
}
diff --git a/platforms/nuttx/src/px4/nxp/rt117x/CMakeLists.txt b/platforms/nuttx/src/px4/nxp/rt117x/CMakeLists.txt
index 8875ab56b7..7a1b5a8bdf 100644
--- a/platforms/nuttx/src/px4/nxp/rt117x/CMakeLists.txt
+++ b/platforms/nuttx/src/px4/nxp/rt117x/CMakeLists.txt
@@ -36,7 +36,7 @@ add_subdirectory(adc)
add_subdirectory(../imxrt/board_critmon board_critmon)
add_subdirectory(../imxrt/board_hw_info board_hw_info)
add_subdirectory(../imxrt/board_reset board_reset)
-#add_subdirectory(../imxrt/dshot dshot)
+add_subdirectory(../imxrt/romapi romapi)
add_subdirectory(../imxrt/hrt hrt)
add_subdirectory(../imxrt/led_pwm led_pwm)
add_subdirectory(../imxrt/io_pins io_pins)
diff --git a/platforms/nuttx/src/px4/nxp/rt117x/include/px4_arch/imxrt_flexspi_nor_flash.h b/platforms/nuttx/src/px4/nxp/rt117x/include/px4_arch/imxrt_flexspi_nor_flash.h
new file mode 100644
index 0000000000..3925012e86
--- /dev/null
+++ b/platforms/nuttx/src/px4/nxp/rt117x/include/px4_arch/imxrt_flexspi_nor_flash.h
@@ -0,0 +1,36 @@
+/****************************************************************************
+ *
+ * Copyright (c) 2024 PX4 Development Team. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name PX4 nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+#pragma once
+
+
+#include "../../../imxrt/include/px4_arch/imxrt_flexspi_nor_flash.h"
diff --git a/platforms/nuttx/src/px4/nxp/rt117x/include/px4_arch/imxrt_romapi.h b/platforms/nuttx/src/px4/nxp/rt117x/include/px4_arch/imxrt_romapi.h
new file mode 100644
index 0000000000..aeab841162
--- /dev/null
+++ b/platforms/nuttx/src/px4/nxp/rt117x/include/px4_arch/imxrt_romapi.h
@@ -0,0 +1,36 @@
+/****************************************************************************
+ *
+ * Copyright (c) 2024 PX4 Development Team. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name PX4 nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+#pragma once
+
+
+#include "../../../imxrt/include/px4_arch/imxrt_romapi.h"
diff --git a/platforms/nuttx/src/px4/nxp/s32k1xx/board_reset/board_reset.cpp b/platforms/nuttx/src/px4/nxp/s32k1xx/board_reset/board_reset.cpp
index 6883d77f55..98404ffcb8 100644
--- a/platforms/nuttx/src/px4/nxp/s32k1xx/board_reset/board_reset.cpp
+++ b/platforms/nuttx/src/px4/nxp/s32k1xx/board_reset/board_reset.cpp
@@ -39,6 +39,7 @@
*/
#include
+#include
#include
#include
#include
@@ -96,7 +97,7 @@ int board_configure_reset(reset_mode_e mode, uint32_t arg)
int board_reset(int status)
{
- if (status == 1) {
+ if (status == REBOOT_TO_BOOTLOADER) {
board_reset_enter_bootloader();
}
diff --git a/platforms/nuttx/src/px4/nxp/s32k3xx/board_reset/board_reset.cpp b/platforms/nuttx/src/px4/nxp/s32k3xx/board_reset/board_reset.cpp
index 0607e174c9..68fb865e97 100644
--- a/platforms/nuttx/src/px4/nxp/s32k3xx/board_reset/board_reset.cpp
+++ b/platforms/nuttx/src/px4/nxp/s32k3xx/board_reset/board_reset.cpp
@@ -39,6 +39,7 @@
*/
#include
+#include
#include
#include
#include
diff --git a/platforms/nuttx/src/px4/rpi/rpi_common/board_reset/board_reset.cpp b/platforms/nuttx/src/px4/rpi/rpi_common/board_reset/board_reset.cpp
index 058f07aea1..c5876da853 100644
--- a/platforms/nuttx/src/px4/rpi/rpi_common/board_reset/board_reset.cpp
+++ b/platforms/nuttx/src/px4/rpi/rpi_common/board_reset/board_reset.cpp
@@ -38,6 +38,7 @@
*/
#include
+#include
#include
#include
@@ -119,7 +120,7 @@
int board_reset(int status)
{
- if (status == 1) {
+ if (status == REBOOT_TO_BOOTLOADER) {
// board_configure_reset(BOARD_RESET_MODE_BOOT_TO_BL, 0);
}
diff --git a/platforms/nuttx/src/px4/stm/stm32_common/board_reset/board_reset.cpp b/platforms/nuttx/src/px4/stm/stm32_common/board_reset/board_reset.cpp
index 15dfbd8761..28b5ba5f84 100644
--- a/platforms/nuttx/src/px4/stm/stm32_common/board_reset/board_reset.cpp
+++ b/platforms/nuttx/src/px4/stm/stm32_common/board_reset/board_reset.cpp
@@ -38,6 +38,7 @@
*/
#include
+#include
#include
#include
#include
@@ -117,7 +118,7 @@ int board_configure_reset(reset_mode_e mode, uint32_t arg)
int board_reset(int status)
{
- if (status == 1) {
+ if (status == REBOOT_TO_BOOTLOADER) {
board_configure_reset(BOARD_RESET_MODE_BOOT_TO_BL, 0);
}
diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp
index e7ea1a2100..0b1c41cd67 100644
--- a/src/modules/commander/Commander.cpp
+++ b/src/modules/commander/Commander.cpp
@@ -1201,7 +1201,7 @@ Commander::handle_command(const vehicle_command_s &cmd)
#if defined(CONFIG_BOARDCTL_RESET)
- } else if ((param1 == 1) && !isArmed() && (px4_reboot_request(false, 400_ms) == 0)) {
+ } else if ((param1 == 1) && !isArmed() && (px4_reboot_request(REBOOT_REQUEST, 400_ms) == 0)) {
// 1: Reboot autopilot
answer_command(cmd, vehicle_command_ack_s::VEHICLE_CMD_RESULT_ACCEPTED);
@@ -1221,7 +1221,7 @@ Commander::handle_command(const vehicle_command_s &cmd)
#if defined(CONFIG_BOARDCTL_RESET)
- } else if ((param1 == 3) && !isArmed() && (px4_reboot_request(true, 400_ms) == 0)) {
+ } else if ((param1 == 3) && !isArmed() && (px4_reboot_request(REBOOT_TO_BOOTLOADER, 400_ms) == 0)) {
// 3: Reboot autopilot and keep it in the bootloader until upgraded.
answer_command(cmd, vehicle_command_ack_s::VEHICLE_CMD_RESULT_ACCEPTED);
diff --git a/src/modules/commander/worker_thread.cpp b/src/modules/commander/worker_thread.cpp
index bb73c1e6cc..9859da498b 100644
--- a/src/modules/commander/worker_thread.cpp
+++ b/src/modules/commander/worker_thread.cpp
@@ -177,7 +177,7 @@ void WorkerThread::threadEntry()
param_reset_specific(reset_cal, sizeof(reset_cal) / sizeof(reset_cal[0]));
_ret_value = param_save_default(true);
#if defined(CONFIG_BOARDCTL_RESET)
- px4_reboot_request(false, 400_ms);
+ px4_reboot_request(REBOOT_REQUEST, 400_ms);
#endif // CONFIG_BOARDCTL_RESET
break;
}
diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp
index c730dd0f47..bb26398ba9 100644
--- a/src/modules/mavlink/mavlink_main.cpp
+++ b/src/modules/mavlink/mavlink_main.cpp
@@ -1669,6 +1669,7 @@ Mavlink::configure_streams_to_default(const char *configure_single_stream)
configure_stream_local("SCALED_IMU2", 25.0f);
configure_stream_local("SCALED_IMU3", 25.0f);
configure_stream_local("SCALED_PRESSURE", 1.0f);
+ configure_stream_local("SCALED_PRESSURE2", 1.0f);
configure_stream_local("SERVO_OUTPUT_RAW_0", 20.0f);
configure_stream_local("SERVO_OUTPUT_RAW_1", 20.0f);
configure_stream_local("SYS_STATUS", 1.0f);
diff --git a/src/systemcmds/netman/netman.cpp b/src/systemcmds/netman/netman.cpp
index ec423b8974..0e74bcd586 100644
--- a/src/systemcmds/netman/netman.cpp
+++ b/src/systemcmds/netman/netman.cpp
@@ -375,7 +375,7 @@ write_reboot:
sleep(1);
- px4_reboot_request(false);
+ px4_reboot_request(REBOOT_REQUEST);
while (1) { px4_usleep(1); } // this command should not return on success
diff --git a/src/systemcmds/reboot/reboot.cpp b/src/systemcmds/reboot/reboot.cpp
index 8d0b3419e8..6e5c159d70 100644
--- a/src/systemcmds/reboot/reboot.cpp
+++ b/src/systemcmds/reboot/reboot.cpp
@@ -44,6 +44,7 @@
#include
#include
#include
+#include
static void print_usage()
{
@@ -51,6 +52,9 @@ static void print_usage()
PRINT_MODULE_USAGE_NAME_SIMPLE("reboot", "command");
PRINT_MODULE_USAGE_PARAM_FLAG('b', "Reboot into bootloader", true);
+#ifdef BOARD_HAS_ISP_BOOTLOADER
+ PRINT_MODULE_USAGE_PARAM_FLAG('i', "Reboot into ISP (1st stage bootloader)", true);
+#endif
PRINT_MODULE_USAGE_ARG("lock|unlock", "Take/release the shutdown lock (for testing)", true);
}
@@ -58,17 +62,24 @@ static void print_usage()
extern "C" __EXPORT int reboot_main(int argc, char *argv[])
{
int ch;
- bool to_bootloader = false;
+ reboot_request_t request = REBOOT_REQUEST;
int myoptind = 1;
const char *myoptarg = nullptr;
- while ((ch = px4_getopt(argc, argv, "b", &myoptind, &myoptarg)) != -1) {
+ while ((ch = px4_getopt(argc, argv, "bi", &myoptind, &myoptarg)) != -1) {
switch (ch) {
case 'b':
- to_bootloader = true;
+ request = REBOOT_TO_BOOTLOADER;
break;
+#ifdef BOARD_HAS_ISP_BOOTLOADER
+
+ case 'i':
+ request = REBOOT_TO_ISP;
+ break;
+#endif
+
default:
print_usage();
return 1;
@@ -98,7 +109,7 @@ extern "C" __EXPORT int reboot_main(int argc, char *argv[])
return ret;
}
- int ret = px4_reboot_request(to_bootloader);
+ int ret = px4_reboot_request(request);
if (ret < 0) {
PX4_ERR("reboot failed (%i)", ret);