From f692ad04d0ea22b8874926e9dc0cac23263bbeae Mon Sep 17 00:00:00 2001
From: Daniel Agar <daniel@agar.ca>
Date: Fri, 16 Nov 2018 12:52:37 -0500
Subject: [PATCH] boards organization

---
 .ci/Jenkinsfile-SITL_tests                    |   26 +-
 .ci/Jenkinsfile-compile                       |   28 +-
 .ci/Jenkinsfile-hardware                      |   12 +-
 .gitmodules                                   |    4 +-
 .travis.yml                                   |    2 +-
 CMakeLists.txt                                |  188 +-
 Jenkinsfile                                   |   34 +-
 Makefile                                      |   61 +-
 ROMFS/CMakeLists.txt                          |   10 +-
 ROMFS/px4fmu_common/init.d/rcS                |    4 +-
 Tools/astyle/files_to_check_code_style.sh     |    1 -
 Tools/docker_run.sh                           |    4 +-
 Tools/sitl_multiple_run.sh                    |    4 +-
 .../aerotenna/ocpoc/src}/CMakeLists.txt       |    4 +-
 .../aerotenna/ocpoc/src}/board_config.h       |    2 +-
 boards/aerotenna/ocpoc/ubuntu.cmake           |   86 +
 boards/airmind/mindpx-v2/default.cmake        |  116 ++
 .../airmind/mindpx-v2/firmware.prototype      |    0
 .../mindpx-v2/nuttx-config}/include/board.h   |    0
 .../mindpx-v2/nuttx-config}/nsh/defconfig     |    2 +-
 .../mindpx-v2/nuttx-config/scripts/ld.script  |    2 +-
 .../airmind/mindpx-v2/src}/CMakeLists.txt     |    0
 .../airmind/mindpx-v2/src}/board_config.h     |    2 +-
 .../airmind/mindpx-v2/src}/can.c              |    0
 .../airmind/mindpx-v2/src}/init.c             |    0
 .../airmind/mindpx-v2/src}/led.c              |    0
 .../airmind/mindpx-v2/src}/spi.c              |    0
 .../airmind/mindpx-v2/src}/timer_config.c     |    0
 .../airmind/mindpx-v2/src}/usb.c              |    0
 {cmake => boards/atlflight}/cmake_hexagon     |    0
 boards/atlflight/eagle/default.cmake          |  115 ++
 boards/atlflight/eagle/qurt-default.cmake     |   83 +
 .../atlflight/eagle/src}/CMakeLists.txt       |    4 +-
 .../atlflight/eagle/src}/board_config.h       |    2 +-
 .../atlflight/eagle/src}/sitl_led.c           |    0
 boards/atlflight/excelsior/default.cmake      |  115 ++
 boards/atlflight/excelsior/qurt-default.cmake |   82 +
 .../atlflight/excelsior/src}/board_config.h   |    0
 boards/atmel/same70xplained/default.cmake     |  116 ++
 .../atmel/same70xplained/firmware.prototype   |    2 +-
 .../nuttx-config}/include/board.h             |    0
 .../nuttx-config}/nsh/defconfig               |    4 +-
 .../nuttx-config}/scripts/ld.script           |    0
 .../atmel/same70xplained/src}/CMakeLists.txt  |    0
 .../atmel/same70xplained/src}/README.md       |    4 +-
 .../atmel/same70xplained/src}/board_config.h  |    2 +-
 .../atmel/same70xplained/src}/can.c           |    0
 .../atmel/same70xplained/src}/init.c          |    0
 .../atmel/same70xplained/src}/led.c           |    0
 .../atmel/same70xplained/src}/sdram.c         |    0
 .../atmel/same70xplained/src}/spi.c           |    0
 .../atmel/same70xplained/src}/timer_config.c  |    0
 .../atmel/same70xplained/src}/usb.c           |    0
 .../auav/esc35-v1/default.cmake               |   64 +-
 .../auav/esc35-v1/firmware.prototype          |    0
 .../auav/esc35-v1/nuttx-config}/Kconfig       |    0
 .../esc35-v1/nuttx-config}/include/README.txt |    0
 .../esc35-v1/nuttx-config}/include/board.h    |    0
 .../auav/esc35-v1/nuttx-config}/nsh/defconfig |    4 +-
 .../esc35-v1/nuttx-config}/scripts/ld.script  |    0
 .../auav/esc35-v1/src}/CMakeLists.txt         |    0
 .../auav/esc35-v1/src}/board_config.h         |    2 +-
 .../auav/esc35-v1/src}/init.c                 |    0
 .../auav/esc35-v1/src}/led.c                  |    0
 .../auav/esc35-v1/src}/usb.c                  |    0
 boards/auav/x21/default.cmake                 |  122 ++
 .../auav/x21/firmware.prototype               |    0
 .../auav/x21/nuttx-config}/include/board.h    |    0
 .../auav/x21/nuttx-config}/nsh/defconfig      |    2 +-
 .../auav/x21/nuttx-config}/scripts/ld.script  |   16 +-
 .../auav/x21/src}/CMakeLists.txt              |    0
 .../auav/x21/src}/board_config.h              |    2 +-
 .../auav-x21 => boards/auav/x21/src}/can.c    |    0
 .../auav-x21 => boards/auav/x21/src}/init.c   |    0
 .../auav-x21 => boards/auav/x21/src}/led.c    |    0
 .../auav-x21 => boards/auav/x21/src}/spi.c    |    0
 .../auav/x21/src}/timer_config.c              |    2 +-
 .../auav-x21 => boards/auav/x21/src}/usb.c    |    2 +-
 boards/av/x-v1/default.cmake                  |  121 ++
 .../av/x-v1/firmware.prototype                |    0
 .../av/x-v1/nuttx-config}/include/board.h     |    0
 .../av/x-v1/nuttx-config}/nsh/defconfig       |    4 +-
 .../av/x-v1/nuttx-config}/scripts/ld.script   |    2 +-
 .../av/x-v1/src}/CMakeLists.txt               |    0
 .../av/x-v1/src}/board_config.h               |    2 +-
 .../av-x-v1 => boards/av/x-v1/src}/init.c     |    0
 .../av-x-v1 => boards/av/x-v1/src}/manifest.c |    0
 .../av-x-v1 => boards/av/x-v1/src}/sdio.c     |    0
 .../av-x-v1 => boards/av/x-v1/src}/spi.c      |    0
 .../av/x-v1/src}/timer_config.c               |    0
 boards/beaglebone/blue/cross.cmake            |   84 +
 boards/beaglebone/blue/native.cmake           |   83 +
 .../beaglebone/blue/src}/CMakeLists.txt       |    2 +-
 .../beaglebone/blue/src}/board_config.h       |    2 +-
 .../beaglebone/blue/src}/init.c               |    0
 boards/bitcraze/crazyflie/default.cmake       |   73 +
 .../bitcraze/crazyflie/firmware.prototype     |    0
 .../crazyflie/nuttx-config}/include/board.h   |    0
 .../crazyflie/nuttx-config}/nsh/defconfig     |    2 +-
 .../crazyflie/nuttx-config}/scripts/ld.script |    0
 .../bitcraze/crazyflie/src}/CMakeLists.txt    |    0
 .../bitcraze/crazyflie/src}/board_config.h    |    2 +-
 .../bitcraze/crazyflie/src}/init.c            |    0
 .../bitcraze/crazyflie/src}/led.c             |    0
 .../bitcraze/crazyflie/src}/spi.c             |    0
 .../bitcraze/crazyflie/src}/timer_config.c    |    0
 .../bitcraze/crazyflie/src}/usb.c             |    0
 boards/emlid/navio2/cross.cmake               |   94 +
 boards/emlid/navio2/native.cmake              |   93 +
 .../emlid/navio2/src}/CMakeLists.txt          |    3 +-
 .../emlid/navio2/src}/board_config.h          |    6 +-
 boards/gumstix/aerocore2/default.cmake        |  119 ++
 .../gumstix/aerocore2/firmware.prototype      |    0
 .../gumstix/aerocore2/nuttx-config}/Kconfig   |    0
 .../aerocore2/nuttx-config}/include/board.h   |    0
 .../aerocore2/nuttx-config}/nsh/defconfig     |    2 +-
 .../aerocore2/nuttx-config}/scripts/ld.script |    0
 .../gumstix/aerocore2/src}/CMakeLists.txt     |    0
 .../gumstix/aerocore2/src}/board_config.h     |    2 +-
 .../gumstix/aerocore2/src}/can.c              |    0
 .../gumstix/aerocore2/src}/init.c             |    0
 .../gumstix/aerocore2/src}/led.c              |    0
 .../gumstix/aerocore2/src}/spi.c              |    0
 .../gumstix/aerocore2/src}/timer_config.c     |    0
 .../gumstix/aerocore2/src}/usb.c              |    0
 boards/intel/aerofc-v1/default.cmake          |  101 +
 .../intel/aerofc-v1/firmware.prototype        |    0
 .../intel/aerofc-v1/nuttx-config}/Kconfig     |    0
 .../aerofc-v1/nuttx-config}/include/board.h   |    0
 .../aerofc-v1/nuttx-config}/nsh/defconfig     |    2 +-
 .../aerofc-v1/nuttx-config}/scripts/ld.script |    0
 boards/intel/aerofc-v1/rtps.cmake             |  104 +
 .../intel/aerofc-v1/src}/CMakeLists.txt       |    0
 .../intel/aerofc-v1/src}/board_config.h       |    2 +-
 .../intel/aerofc-v1/src}/init.c               |    0
 .../intel/aerofc-v1/src}/led.c                |    0
 .../intel/aerofc-v1/src}/spi.c                |    0
 .../intel/aerofc-v1/src}/timer_config.c       |    0
 boards/nxp/hlite-v3/default.cmake             |  118 ++
 .../nxp/hlite-v3/firmware.prototype           |    0
 .../nxp/hlite-v3/nuttx-config}/Kconfig        |    0
 .../hlite-v3/nuttx-config}/include/board.h    |    0
 .../nxp/hlite-v3/nuttx-config}/nsh/defconfig  |    0
 .../hlite-v3/nuttx-config}/scripts/ld.script  |    0
 .../nxp/hlite-v3/src}/CMakeLists.txt          |    0
 .../nxp/hlite-v3/src}/autoleds.c              |    0
 .../nxp/hlite-v3/src}/automount.c             |    0
 .../nxp/hlite-v3/src}/board_config.h          |    2 +-
 .../nxp/hlite-v3/src}/can.c                   |    0
 .../nxp/hlite-v3/src}/init.c                  |    0
 .../nxp/hlite-v3/src}/led.c                   |    0
 .../nxp/hlite-v3/src}/sdhc.c                  |    0
 .../nxp/hlite-v3/src}/spi.c                   |    0
 .../nxp/hlite-v3/src}/timer_config.c          |    0
 .../nxp/hlite-v3/src}/usb.c                   |    0
 boards/omnibus/f4sd/default.cmake             |  113 ++
 .../omnibus/f4sd/firmware.prototype           |    0
 .../f4sd/nuttx-config}/include/board.h        |    0
 .../omnibus/f4sd/nuttx-config}/nsh/defconfig  |    4 +-
 .../f4sd/nuttx-config}/scripts/ld.script      |    0
 .../omnibus/f4sd/src}/CMakeLists.txt          |    0
 .../omnibus/f4sd/src}/board_config.h          |    2 +-
 .../omnibus/f4sd/src}/init.c                  |    0
 .../omnibus/f4sd/src}/led.c                   |    0
 .../omnibus/f4sd/src}/spi.c                   |    0
 .../omnibus/f4sd/src}/timer_config.c          |    0
 .../omnibus/f4sd/src}/usb.c                   |    0
 boards/parrot/bebop/default.cmake             |   64 +
 .../parrot/bebop/src}/CMakeLists.txt          |    3 +-
 .../parrot/bebop/src}/board_config.h          |    2 +-
 .../px4/cannode-v1/default.cmake              |   50 +-
 .../px4/cannode-v1/firmware.prototype         |    0
 .../px4/cannode-v1/nuttx-config}/Kconfig      |    0
 .../nuttx-config}/include/README.txt          |    0
 .../cannode-v1/nuttx-config}/include/board.h  |    0
 .../cannode-v1/nuttx-config}/nsh/defconfig    |    0
 .../nuttx-config}/nsh/defconfig.nonsh         |    0
 .../nuttx-config}/nsh/defconfig.nsh           |    0
 .../nuttx-config}/scripts/ld.script           |    0
 .../px4/cannode-v1/src}/CMakeLists.txt        |    0
 .../px4/cannode-v1/src}/board_config.h        |    2 +-
 .../px4/cannode-v1/src}/buttons.c             |    0
 .../px4/cannode-v1/src}/can.c                 |    0
 .../px4/cannode-v1/src}/init.c                |    0
 .../px4/cannode-v1/src}/led.c                 |    0
 .../px4/cannode-v1/src}/spi.c                 |    0
 .../px4/esc-v1/default.cmake                  |   58 +-
 .../px4/esc-v1/firmware.prototype             |    0
 .../px4/esc-v1/nuttx-config}/Kconfig          |    0
 .../esc-v1/nuttx-config}/include/README.txt   |    0
 .../px4/esc-v1/nuttx-config}/include/board.h  |    0
 .../px4/esc-v1/nuttx-config}/nsh/defconfig    |    0
 .../esc-v1/nuttx-config}/scripts/ld.script    |    0
 .../px4/esc-v1/src}/CMakeLists.txt            |    0
 .../px4/esc-v1/src}/board_config.h            |    2 +-
 .../px4/esc-v1/src}/init.c                    |    0
 .../px4esc-v1 => boards/px4/esc-v1/src}/led.c |    0
 .../px4esc-v1 => boards/px4/esc-v1/src}/usb.c |    0
 boards/px4/fmu-v2/default.cmake               |  121 ++
 .../px4/fmu-v2/firmware.prototype             |   10 +-
 boards/px4/fmu-v2/lpe.cmake                   |  118 ++
 .../px4/fmu-v2/nuttx-config}/Kconfig          |    0
 .../px4/fmu-v2/nuttx-config}/include/board.h  |    0
 .../px4/fmu-v2/nuttx-config}/nsh/defconfig    |    0
 .../fmu-v2/nuttx-config}/scripts/ld.script    |    0
 .../px4/fmu-v2/src}/CMakeLists.txt            |    0
 .../px4/fmu-v2/src}/board_config.h            |    2 +-
 .../px4fmu-v2 => boards/px4/fmu-v2/src}/can.c |    0
 .../px4fmu-v2 => boards/px4/fmu-v2/src}/i2c.c |    0
 .../px4/fmu-v2/src}/init.c                    |    0
 .../px4fmu-v2 => boards/px4/fmu-v2/src}/led.c |    0
 .../px4/fmu-v2/src}/manifest.c                |    0
 .../px4fmu-v2 => boards/px4/fmu-v2/src}/spi.c |    0
 .../px4/fmu-v2/src}/timer_config.c            |    0
 .../px4fmu-v2 => boards/px4/fmu-v2/src}/usb.c |    0
 boards/px4/fmu-v2/test.cmake                  |  119 ++
 boards/px4/fmu-v3/default.cmake               |  129 ++
 .../px4/fmu-v3/firmware.prototype             |    0
 .../px4/fmu-v3/nuttx-config}/Kconfig          |    2 +-
 .../px4/fmu-v3/nuttx-config}/include/board.h  |  222 ++-
 boards/px4/fmu-v3/nuttx-config/nsh/defconfig  | 1688 +++++++++++++++++
 .../fmu-v3/nuttx-config}/scripts/ld.script    |   18 +-
 .../fmu-v3/nuttx-config}/stackcheck/defconfig |    4 +-
 boards/px4/fmu-v3/rtps.cmake                  |  130 ++
 .../px4/fmu-v3/src}/CMakeLists.txt            |   17 +-
 boards/px4/fmu-v3/src/board_config.h          |  569 ++++++
 .../px4fmu-v4 => boards/px4/fmu-v3/src}/can.c |    0
 .../px4/fmu-v3/src/i2c.c                      |   25 +-
 boards/px4/fmu-v3/src/init.c                  |  570 ++++++
 boards/px4/fmu-v3/src/led.c                   |   96 +
 boards/px4/fmu-v3/src/manifest.c              |  149 ++
 boards/px4/fmu-v3/src/spi.c                   |  462 +++++
 boards/px4/fmu-v3/src/timer_config.c          |  126 ++
 .../px4/fmu-v3/src}/usb.c                     |    0
 boards/px4/fmu-v3/stackcheck.cmake            |  129 ++
 boards/px4/fmu-v4/default.cmake               |  114 ++
 .../px4/fmu-v4/firmware.prototype             |    0
 .../px4/fmu-v4/nuttx-config}/include/board.h  |    0
 .../px4/fmu-v4/nuttx-config}/nsh/defconfig    |    0
 .../fmu-v4/nuttx-config}/scripts/ld.script    |   24 +-
 .../fmu-v4/nuttx-config}/stackcheck/defconfig |    0
 boards/px4/fmu-v4/rtps.cmake                  |  116 ++
 .../px4/fmu-v4/src}/CMakeLists.txt            |    0
 .../px4/fmu-v4/src}/board_config.h            |    2 +-
 .../px4/fmu-v4/src}/can.c                     |    0
 .../px4/fmu-v4/src}/init.c                    |    0
 .../px4fmu-v4 => boards/px4/fmu-v4/src}/led.c |    0
 .../px4fmu-v4 => boards/px4/fmu-v4/src}/spi.c |    0
 .../px4/fmu-v4/src}/timer_config.c            |    0
 .../px4fmu-v4 => boards/px4/fmu-v4/src}/usb.c |    0
 boards/px4/fmu-v4/stackcheck.cmake            |  114 ++
 boards/px4/fmu-v4pro/default.cmake            |  128 ++
 .../px4/fmu-v4pro/firmware.prototype          |    0
 .../px4/fmu-v4pro/nuttx-config}/Kconfig       |    0
 .../fmu-v4pro/nuttx-config}/include/board.h   |    0
 .../px4/fmu-v4pro/nuttx-config}/nsh/defconfig |    0
 .../fmu-v4pro/nuttx-config}/scripts/ld.script |   16 +-
 boards/px4/fmu-v4pro/rtps.cmake               |  129 ++
 .../px4/fmu-v4pro/src}/CMakeLists.txt         |    0
 .../px4/fmu-v4pro/src}/board_config.h         |    2 +-
 .../px4/fmu-v4pro/src}/can.c                  |   11 +-
 .../px4/fmu-v4pro/src}/init.c                 |    0
 .../px4/fmu-v4pro/src}/led.c                  |    0
 .../px4/fmu-v4pro/src}/spi.c                  |    0
 .../px4/fmu-v4pro/src}/timer_config.c         |    0
 boards/px4/fmu-v4pro/src/usb.c                |  107 ++
 boards/px4/fmu-v5/default.cmake               |  129 ++
 .../px4/fmu-v5/firmware.prototype             |    0
 .../px4/fmu-v5/nuttx-config}/Kconfig          |    0
 .../px4/fmu-v5/nuttx-config}/include/board.h  |    0
 .../px4/fmu-v5/nuttx-config}/nsh/defconfig    |    0
 .../fmu-v5/nuttx-config}/scripts/ld.script    |    2 +-
 .../fmu-v5/nuttx-config}/stackcheck/defconfig |    0
 boards/px4/fmu-v5/rtps.cmake                  |  127 ++
 .../px4/fmu-v5/src}/CMakeLists.txt            |    0
 .../px4/fmu-v5/src}/board_config.h            |    2 +-
 .../px4fmu-v5 => boards/px4/fmu-v5/src}/can.c |    0
 .../px4/fmu-v5/src}/init.c                    |    0
 .../px4fmu-v5 => boards/px4/fmu-v5/src}/led.c |    0
 .../px4/fmu-v5/src}/manifest.c                |    0
 .../px4/fmu-v5/src}/sdio.c                    |    0
 .../px4fmu-v5 => boards/px4/fmu-v5/src}/spi.c |    0
 .../px4/fmu-v5/src}/timer_config.c            |    0
 .../px4fmu-v5 => boards/px4/fmu-v5/src}/usb.c |    0
 boards/px4/fmu-v5/stackcheck.cmake            |  126 ++
 boards/px4/io-v2/default.cmake                |   11 +
 .../px4/io-v2/firmware.prototype              |    0
 .../px4/io-v2/nuttx-config}/include/board.h   |    0
 .../px4/io-v2/nuttx-config}/nsh/defconfig     |    0
 .../px4/io-v2/nuttx-config}/scripts/ld.script |    0
 .../px4/io-v2/src}/CMakeLists.txt             |    0
 .../px4/io-v2/src}/board_config.h             |    2 +-
 .../px4io-v2 => boards/px4/io-v2/src}/init.c  |    0
 .../px4/io-v2/src}/timer_config.c             |    0
 boards/px4/raspberrypi/cross.cmake            |   81 +
 boards/px4/raspberrypi/native.cmake           |   80 +
 .../px4/raspberrypi/src}/CMakeLists.txt       |    3 +-
 boards/px4/raspberrypi/src/board_config.h     |   57 +
 boards/px4/sitl/default.cmake                 |   96 +
 boards/px4/sitl/rtps.cmake                    |   98 +
 .../px4/sitl/src}/CMakeLists.txt              |    4 +-
 .../px4/sitl/src}/board_config.h              |    2 +-
 .../eagle => boards/px4/sitl/src}/sitl_led.c  |    0
 boards/px4/sitl/test.cmake                    |   96 +
 boards/stm/32f4discovery/default.cmake        |  106 ++
 .../stm/32f4discovery/firmware.prototype      |    2 +-
 .../nuttx-config}/include/board.h             |    0
 .../32f4discovery/nuttx-config}/nsh/defconfig |    4 +-
 .../nuttx-config}/scripts/ld.script           |    0
 .../stm/32f4discovery/src}/CMakeLists.txt     |    1 +
 .../stm/32f4discovery/src}/board_config.h     |    2 +-
 .../stm/32f4discovery/src}/init.c             |    0
 .../stm/32f4discovery/src}/led.c              |    0
 boards/stm/32f4discovery/src/timer_config.c   |   76 +
 .../stm/32f4discovery/src}/usb.c              |    0
 boards/stm/nucleo-F767ZI/default.cmake        |  115 ++
 .../stm/nucleo-F767ZI/firmware.prototype      |    4 +-
 .../nuttx-config}/include/board.h             |    2 +-
 .../nucleo-F767ZI/nuttx-config}/nsh/defconfig |    4 +-
 .../nuttx-config}/scripts/ld.script           |    0
 .../stm/nucleo-F767ZI/src}/CMakeLists.txt     |    0
 .../stm/nucleo-F767ZI/src}/board_config.h     |    2 +-
 .../stm/nucleo-F767ZI/src}/can.c              |    0
 .../stm/nucleo-F767ZI/src}/init.c             |    0
 .../stm/nucleo-F767ZI/src}/led.c              |    0
 .../stm/nucleo-F767ZI/src}/sdio.c             |    0
 .../stm/nucleo-F767ZI/src}/spi.c              |    0
 .../stm/nucleo-F767ZI/src}/timer_config.c     |    0
 .../stm/nucleo-F767ZI/src}/usb.c              |    0
 .../thiemar/s2740vc-v1/default.cmake          |   44 +-
 .../thiemar/s2740vc-v1/firmware.prototype     |    0
 .../thiemar/s2740vc-v1/nuttx-config}/Kconfig  |    0
 .../nuttx-config}/include/README.txt          |    0
 .../s2740vc-v1/nuttx-config}/include/board.h  |    0
 .../nuttx-config}/nsh/IMPORTANT_README.txt    |    0
 .../s2740vc-v1/nuttx-config}/nsh/defconfig    |    2 +-
 .../nuttx-config}/scripts/ld.script           |    0
 .../thiemar/s2740vc-v1/src}/CMakeLists.txt    |    0
 .../thiemar/s2740vc-v1/src}/board_config.h    |    2 +-
 .../thiemar/s2740vc-v1/src}/can.c             |    0
 .../thiemar/s2740vc-v1/src}/init.c            |    0
 cmake/configs/nuttx_aerocore2_default.cmake   |  135 --
 cmake/configs/nuttx_aerofc-v1_default.cmake   |   75 -
 cmake/configs/nuttx_aerofc-v1_rtps.cmake      |    7 -
 cmake/configs/nuttx_auav-x21_default.cmake    |  158 --
 cmake/configs/nuttx_av-x-v1_default.cmake     |  154 --
 cmake/configs/nuttx_crazyflie_default.cmake   |  104 -
 cmake/configs/nuttx_mindpx-v2_default.cmake   |  150 --
 cmake/configs/nuttx_nxphlite-v3_default.cmake |  163 --
 .../configs/nuttx_omnibus-f4sd_default.cmake  |  143 --
 .../nuttx_px4-same70xplained-v1_default.cmake |  122 --
 .../nuttx_px4-stm32f4discovery_default.cmake  |   41 -
 cmake/configs/nuttx_px4fmu-v2_default.cmake   |  187 --
 cmake/configs/nuttx_px4fmu-v2_lpe.cmake       |   16 -
 cmake/configs/nuttx_px4fmu-v2_test.cmake      |  163 --
 cmake/configs/nuttx_px4fmu-v3_default.cmake   |  170 --
 cmake/configs/nuttx_px4fmu-v3_rtps.cmake      |    7 -
 .../configs/nuttx_px4fmu-v3_stackcheck.cmake  |  128 --
 cmake/configs/nuttx_px4fmu-v4_default.cmake   |  158 --
 cmake/configs/nuttx_px4fmu-v4_rtps.cmake      |    5 -
 .../configs/nuttx_px4fmu-v4_stackcheck.cmake  |  116 --
 .../configs/nuttx_px4fmu-v4pro_default.cmake  |  162 --
 cmake/configs/nuttx_px4fmu-v4pro_rtps.cmake   |    5 -
 cmake/configs/nuttx_px4fmu-v5_default.cmake   |  164 --
 cmake/configs/nuttx_px4fmu-v5_rtps.cmake      |    5 -
 .../configs/nuttx_px4fmu-v5_stackcheck.cmake  |  121 --
 cmake/configs/nuttx_px4io-v2_default.cmake    |    7 -
 .../nuttx_px4nucleoF767ZI-v1_default.cmake    |  128 --
 cmake/configs/posix_bbblue_common.cmake       |  104 -
 cmake/configs/posix_bbblue_cross.cmake        |    3 -
 cmake/configs/posix_bbblue_native.cmake       |    7 -
 cmake/configs/posix_bebop_default.cmake       |   75 -
 cmake/configs/posix_eagle_default.cmake       |   17 -
 cmake/configs/posix_eagle_hil.cmake           |   38 -
 cmake/configs/posix_eagle_legacy.cmake        |   15 -
 cmake/configs/posix_eagle_muorb.cmake         |   19 -
 cmake/configs/posix_excelsior_default.cmake   |   11 -
 cmake/configs/posix_excelsior_legacy.cmake    |   14 -
 cmake/configs/posix_ocpoc_cross.cmake         |   85 -
 cmake/configs/posix_ocpoc_ubuntu.cmake        |   84 -
 cmake/configs/posix_rpi_common.cmake          |  103 -
 cmake/configs/posix_rpi_cross.cmake           |    3 -
 cmake/configs/posix_rpi_cross_no_shield.cmake |   19 -
 cmake/configs/posix_rpi_native.cmake          |    7 -
 cmake/configs/posix_sdflight_default.cmake    |   66 -
 cmake/configs/posix_sdflight_legacy.cmake     |   56 -
 cmake/configs/posix_sdflight_rtps.cmake       |    5 -
 cmake/configs/posix_sitl_broadcast.cmake      |    3 -
 cmake/configs/posix_sitl_default.cmake        |  164 --
 cmake/configs/posix_sitl_rtps.cmake           |    5 -
 cmake/configs/posix_sitl_test.cmake           |    2 -
 cmake/configs/qurt_eagle_default.cmake        |   12 -
 cmake/configs/qurt_eagle_hello.cmake          |   33 -
 cmake/configs/qurt_eagle_hil.cmake            |   59 -
 cmake/configs/qurt_eagle_legacy.cmake         |   12 -
 cmake/configs/qurt_eagle_muorb.cmake          |   38 -
 cmake/configs/qurt_eagle_test.cmake           |   33 -
 cmake/configs/qurt_eagle_travis.cmake         |   65 -
 cmake/configs/qurt_excelsior_default.cmake    |   12 -
 cmake/configs/qurt_excelsior_legacy.cmake     |   14 -
 cmake/configs/qurt_sdflight_default.cmake     |   93 -
 cmake/configs/qurt_sdflight_legacy.cmake      |   88 -
 cmake/{common => }/coverage.cmake             |    0
 cmake/px4_add_board.cmake                     |  200 ++
 cmake/{common => }/px4_base.cmake             |   95 +-
 cmake/{common => }/px4_git.cmake              |    2 +-
 cmake/px4_make_uavcan_bootloader.cmake        |   99 +
 cmake/{common => }/px4_metadata.cmake         |    2 +-
 cmake/{common => }/sanitizers.cmake           |    0
 .../Toolchain-arm-linux-gnueabihf.cmake       |   30 -
 .../toolchains/Toolchain-arm-none-eabi.cmake  |   82 -
 .../Toolchain-arm-xilinx-linux-gnueabi.cmake  |   88 -
 .../Toolchain-gcc-arm-linux-gnueabihf.cmake   |   74 -
 eclipse.cproject                              |   16 +-
 eclipse.project                               |    4 +-
 platforms/nuttx/CMakeLists.txt                |   30 +-
 platforms/nuttx/Debug/poor-mans-profiler.sh   |    2 +-
 platforms/nuttx/Images/px4flow-v2.prototype   |   13 -
 platforms/nuttx/Images/zubaxgnss-v1.prototype |   13 -
 platforms/nuttx/NuttX/CMakeLists.txt          |   84 +-
 .../{nuttx-configs => NuttX}/Make.defs.in     |   53 +-
 .../include => NuttX}/nsh_romfsimg.h          |    0
 .../nuttx/NuttX/tools/new_nuttx_px_config.sh  |  173 --
 .../Generic-arm-none-eabi-gcc-cortex-m3.cmake |    6 +
 .../Generic-arm-none-eabi-gcc-cortex-m4.cmake |    6 +
 .../Generic-arm-none-eabi-gcc-cortex-m7.cmake |    6 +
 .../nuttx/cmake/Toolchain-arm-none-eabi.cmake |   48 +
 platforms/nuttx/cmake/px4_add_board_os.cmake  |  130 ++
 platforms/nuttx/cmake/px4_impl_os.cmake       |  160 +-
 .../auav-x21/include/nsh_romfsimg.h           |   42 -
 .../av-x-v1/include/nsh_romfsimg.h            |   42 -
 .../crazyflie/include/nsh_romfsimg.h          |   42 -
 .../mindpx-v2/include/nsh_romfsimg.h          |   42 -
 .../nxphlite-v3/include/nsh_romfsimg.h        |   42 -
 .../omnibus-f4sd/include/nsh_romfsimg.h       |   42 -
 .../px4-same70xplained-v1/Kconfig             |   22 -
 .../include/nsh_romfsimg.h                    |   42 -
 .../px4-same70xplained-v1/nsh/setenv.sh       |   80 -
 .../scripts/flash-dtcm.ld                     |  123 --
 .../scripts/flash-sram.ld                     |  120 --
 .../px4-same70xplained-v1/scripts/gnu-elf.ld  |  129 --
 .../scripts/kernel-space.ld                   |  111 --
 .../px4-same70xplained-v1/scripts/memory.ld   |   84 -
 .../scripts/user-space.ld                     |  126 --
 .../include/nsh_romfsimg.h                    |   42 -
 .../nuttx/nuttx-configs/px4flow-v2/Kconfig    |   22 -
 .../px4flow-v2/include/README.txt             |    2 -
 .../nuttx-configs/px4flow-v2/nsh/defconfig    | 1004 ----------
 .../px4flow-v2/scripts/ld.script              |  158 --
 .../px4fmu-v2/include/nsh_romfsimg.h          |   42 -
 .../px4fmu-v4/include/nsh_romfsimg.h          |   42 -
 .../px4fmu-v4pro/include/nsh_romfsimg.h       |   42 -
 .../px4fmu-v5/include/nsh_romfsimg.h          |   42 -
 .../px4nucleoF767ZI-v1/include/nsh_romfsimg.h |   42 -
 .../nuttx/nuttx-configs/zubaxgnss-v1/Kconfig  |   22 -
 .../zubaxgnss-v1/include/README.txt           |    4 -
 .../zubaxgnss-v1/include/board.h              |  251 ---
 .../nuttx-configs/zubaxgnss-v1/nsh/defconfig  | 1070 -----------
 .../zubaxgnss-v1/scripts/ld.script            |  153 --
 platforms/nuttx/src/px4_layer/CMakeLists.txt  |    2 +-
 platforms/posix/CMakeLists.txt                |   26 +-
 ...Linux-arm-linux-gnueabihf-cortex-a53.cmake |    6 +
 .../Linux-arm-linux-gnueabihf-cortex-a8.cmake |    6 +
 .../Linux-arm-linux-gnueabihf-cortex-a9.cmake |    6 +
 .../cmake/Toolchain-arm-linux-gnueabihf.cmake |   45 +
 .../posix/cmake}/Toolchain-native.cmake       |    0
 platforms/posix/cmake/px4_add_board_os.cmake  |  106 ++
 platforms/posix/cmake/px4_impl_os.cmake       |   73 +-
 platforms/posix/src/px4_layer/CMakeLists.txt  |    2 +-
 platforms/qurt/CMakeLists.txt                 |    3 +-
 platforms/qurt/cmake/px4_add_board_os.cmake   |  101 +
 platforms/qurt/cmake/px4_impl_os.cmake        |   15 +-
 platforms/qurt/include/board_config.h         |    2 +-
 platforms/qurt/src/px4_layer/CMakeLists.txt   |    2 +-
 src/drivers/bbblue_adc/CMakeLists.txt         |    2 +-
 src/drivers/boards/CMakeLists.txt             |    9 +-
 src/drivers/boards/common/CMakeLists.txt      |    2 +-
 src/drivers/boards/common/board_common.h      |    2 +-
 .../boards/common/stm32/CMakeLists.txt        |   15 +-
 src/drivers/boards/px4flow-v2/board_config.h  |  385 ----
 src/drivers/boards/px4flow-v2/init.c          |  190 --
 src/drivers/boards/px4flow-v2/led.c           |  192 --
 .../boards/zubaxgnss-v1/board_config.h        |  247 ---
 src/drivers/boards/zubaxgnss-v1/gnss_init.c   |  186 --
 src/drivers/boards/zubaxgnss-v1/gnss_led.c    |  191 --
 .../distance_sensor/sf0x/CMakeLists.txt       |    5 +-
 src/drivers/px4io/CMakeLists.txt              |   28 +-
 src/lib/cdev/CMakeLists.txt                   |    2 +-
 src/lib/controllib/CMakeLists.txt             |    6 +-
 src/lib/drivers/device/CMakeLists.txt         |    4 +-
 src/lib/parameters/CMakeLists.txt             |   22 +-
 src/lib/rc/CMakeLists.txt                     |    4 +
 src/lib/rc/rc_tests/RCTest.cpp                |    1 +
 src/modules/commander/CMakeLists.txt          |    9 +-
 .../failure_detector}/CMakeLists.txt          |    8 +-
 src/modules/mavlink/CMakeLists.txt            |    4 +
 src/modules/micrortps_bridge/CMakeLists.txt   |    2 +-
 src/modules/simulator/CMakeLists.txt          |    2 +-
 src/modules/systemlib/CMakeLists.txt          |    4 +-
 src/modules/uORB/CMakeLists.txt               |    4 +
 src/modules/uavcan/CMakeLists.txt             |   17 +-
 src/modules/uavcanesc/CMakeLists.txt          |    2 +-
 src/modules/uavcannode/CMakeLists.txt         |    2 +-
 src/platforms/common/CMakeLists.txt           |    2 +-
 .../common/work_queue/CMakeLists.txt          |    2 +-
 src/systemcmds/tests/CMakeLists.txt           |    2 +-
 test/rostest_px4_run.sh                       |    2 +-
 507 files changed, 9975 insertions(+), 10989 deletions(-)
 rename {src/drivers/boards/rpi => boards/aerotenna/ocpoc/src}/CMakeLists.txt (94%)
 rename {src/drivers/boards/ocpoc => boards/aerotenna/ocpoc/src}/board_config.h (98%)
 create mode 100644 boards/aerotenna/ocpoc/ubuntu.cmake
 create mode 100644 boards/airmind/mindpx-v2/default.cmake
 rename platforms/nuttx/Images/mindpx-v2.prototype => boards/airmind/mindpx-v2/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/mindpx-v2 => boards/airmind/mindpx-v2/nuttx-config}/include/board.h (100%)
 rename {platforms/nuttx/nuttx-configs/mindpx-v2 => boards/airmind/mindpx-v2/nuttx-config}/nsh/defconfig (99%)
 rename platforms/nuttx/nuttx-configs/px4fmu-v2/scripts/ld_full.script => boards/airmind/mindpx-v2/nuttx-config/scripts/ld.script (99%)
 rename {src/drivers/boards/mindpx-v2 => boards/airmind/mindpx-v2/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/mindpx-v2 => boards/airmind/mindpx-v2/src}/board_config.h (99%)
 rename {src/drivers/boards/mindpx-v2 => boards/airmind/mindpx-v2/src}/can.c (100%)
 rename {src/drivers/boards/mindpx-v2 => boards/airmind/mindpx-v2/src}/init.c (100%)
 rename {src/drivers/boards/mindpx-v2 => boards/airmind/mindpx-v2/src}/led.c (100%)
 rename {src/drivers/boards/mindpx-v2 => boards/airmind/mindpx-v2/src}/spi.c (100%)
 rename {src/drivers/boards/mindpx-v2 => boards/airmind/mindpx-v2/src}/timer_config.c (100%)
 rename {src/drivers/boards/mindpx-v2 => boards/airmind/mindpx-v2/src}/usb.c (100%)
 rename {cmake => boards/atlflight}/cmake_hexagon (100%)
 create mode 100644 boards/atlflight/eagle/default.cmake
 create mode 100644 boards/atlflight/eagle/qurt-default.cmake
 rename {src/drivers/boards/sitl => boards/atlflight/eagle/src}/CMakeLists.txt (94%)
 rename {src/drivers/boards/eagle => boards/atlflight/eagle/src}/board_config.h (97%)
 rename {src/drivers/boards/sitl => boards/atlflight/eagle/src}/sitl_led.c (100%)
 create mode 100644 boards/atlflight/excelsior/default.cmake
 create mode 100644 boards/atlflight/excelsior/qurt-default.cmake
 rename {src/drivers/boards/excelsior => boards/atlflight/excelsior/src}/board_config.h (100%)
 create mode 100644 boards/atmel/same70xplained/default.cmake
 rename platforms/nuttx/Images/px4-same70xplained-v1.prototype => boards/atmel/same70xplained/firmware.prototype (87%)
 rename {platforms/nuttx/nuttx-configs/px4-same70xplained-v1 => boards/atmel/same70xplained/nuttx-config}/include/board.h (100%)
 rename {platforms/nuttx/nuttx-configs/px4-same70xplained-v1 => boards/atmel/same70xplained/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/px4-same70xplained-v1 => boards/atmel/same70xplained/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/README.md (88%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/board_config.h (99%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/can.c (100%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/init.c (100%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/led.c (100%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/sdram.c (100%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/spi.c (100%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/timer_config.c (100%)
 rename {src/drivers/boards/px4-same70xplained-v1 => boards/atmel/same70xplained/src}/usb.c (100%)
 rename cmake/configs/nuttx_esc35-v1_default.cmake => boards/auav/esc35-v1/default.cmake (60%)
 rename platforms/nuttx/Images/esc35-v1.prototype => boards/auav/esc35-v1/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/esc35-v1 => boards/auav/esc35-v1/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/esc35-v1 => boards/auav/esc35-v1/nuttx-config}/include/README.txt (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/esc35-v1 => boards/auav/esc35-v1/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/esc35-v1 => boards/auav/esc35-v1/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/esc35-v1 => boards/auav/esc35-v1/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/esc35-v1 => boards/auav/esc35-v1/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/esc35-v1 => boards/auav/esc35-v1/src}/board_config.h (99%)
 rename {src/drivers/boards/esc35-v1 => boards/auav/esc35-v1/src}/init.c (100%)
 rename {src/drivers/boards/esc35-v1 => boards/auav/esc35-v1/src}/led.c (100%)
 rename {src/drivers/boards/esc35-v1 => boards/auav/esc35-v1/src}/usb.c (100%)
 create mode 100644 boards/auav/x21/default.cmake
 rename platforms/nuttx/Images/auav-x21.prototype => boards/auav/x21/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/auav-x21 => boards/auav/x21/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/auav-x21 => boards/auav/x21/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/auav-x21 => boards/auav/x21/nuttx-config}/scripts/ld.script (93%)
 rename {src/drivers/boards/aerocore2 => boards/auav/x21/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/auav-x21 => boards/auav/x21/src}/board_config.h (99%)
 rename {src/drivers/boards/auav-x21 => boards/auav/x21/src}/can.c (100%)
 rename {src/drivers/boards/auav-x21 => boards/auav/x21/src}/init.c (100%)
 rename {src/drivers/boards/auav-x21 => boards/auav/x21/src}/led.c (100%)
 rename {src/drivers/boards/auav-x21 => boards/auav/x21/src}/spi.c (100%)
 rename {src/drivers/boards/auav-x21 => boards/auav/x21/src}/timer_config.c (99%)
 rename {src/drivers/boards/auav-x21 => boards/auav/x21/src}/usb.c (99%)
 create mode 100644 boards/av/x-v1/default.cmake
 rename platforms/nuttx/Images/av-x-v1.prototype => boards/av/x-v1/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/av-x-v1 => boards/av/x-v1/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/av-x-v1 => boards/av/x-v1/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/av-x-v1 => boards/av/x-v1/nuttx-config}/scripts/ld.script (99%)
 rename {src/drivers/boards/av-x-v1 => boards/av/x-v1/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/av-x-v1 => boards/av/x-v1/src}/board_config.h (99%)
 rename {src/drivers/boards/av-x-v1 => boards/av/x-v1/src}/init.c (100%)
 rename {src/drivers/boards/av-x-v1 => boards/av/x-v1/src}/manifest.c (100%)
 rename {src/drivers/boards/av-x-v1 => boards/av/x-v1/src}/sdio.c (100%)
 rename {src/drivers/boards/av-x-v1 => boards/av/x-v1/src}/spi.c (100%)
 rename {src/drivers/boards/av-x-v1 => boards/av/x-v1/src}/timer_config.c (100%)
 create mode 100644 boards/beaglebone/blue/cross.cmake
 create mode 100644 boards/beaglebone/blue/native.cmake
 rename {src/drivers/boards/bbblue => boards/beaglebone/blue/src}/CMakeLists.txt (94%)
 rename {src/drivers/boards/bbblue => boards/beaglebone/blue/src}/board_config.h (98%)
 rename {src/drivers/boards/bbblue => boards/beaglebone/blue/src}/init.c (100%)
 create mode 100644 boards/bitcraze/crazyflie/default.cmake
 rename platforms/nuttx/Images/crazyflie.prototype => boards/bitcraze/crazyflie/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/crazyflie => boards/bitcraze/crazyflie/nuttx-config}/include/board.h (100%)
 rename {platforms/nuttx/nuttx-configs/crazyflie => boards/bitcraze/crazyflie/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/crazyflie => boards/bitcraze/crazyflie/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/crazyflie => boards/bitcraze/crazyflie/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/crazyflie => boards/bitcraze/crazyflie/src}/board_config.h (99%)
 rename {src/drivers/boards/crazyflie => boards/bitcraze/crazyflie/src}/init.c (100%)
 rename {src/drivers/boards/crazyflie => boards/bitcraze/crazyflie/src}/led.c (100%)
 rename {src/drivers/boards/crazyflie => boards/bitcraze/crazyflie/src}/spi.c (100%)
 rename {src/drivers/boards/crazyflie => boards/bitcraze/crazyflie/src}/timer_config.c (100%)
 rename {src/drivers/boards/crazyflie => boards/bitcraze/crazyflie/src}/usb.c (100%)
 create mode 100644 boards/emlid/navio2/cross.cmake
 create mode 100644 boards/emlid/navio2/native.cmake
 rename {src/drivers/boards/ocpoc => boards/emlid/navio2/src}/CMakeLists.txt (94%)
 rename {src/drivers/boards/rpi => boards/emlid/navio2/src}/board_config.h (94%)
 create mode 100644 boards/gumstix/aerocore2/default.cmake
 rename platforms/nuttx/Images/aerocore2.prototype => boards/gumstix/aerocore2/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/aerocore2 => boards/gumstix/aerocore2/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/aerocore2 => boards/gumstix/aerocore2/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/aerocore2 => boards/gumstix/aerocore2/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/aerocore2 => boards/gumstix/aerocore2/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/auav-x21 => boards/gumstix/aerocore2/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/aerocore2 => boards/gumstix/aerocore2/src}/board_config.h (99%)
 rename {src/drivers/boards/aerocore2 => boards/gumstix/aerocore2/src}/can.c (100%)
 rename {src/drivers/boards/aerocore2 => boards/gumstix/aerocore2/src}/init.c (100%)
 rename {src/drivers/boards/aerocore2 => boards/gumstix/aerocore2/src}/led.c (100%)
 rename {src/drivers/boards/aerocore2 => boards/gumstix/aerocore2/src}/spi.c (100%)
 rename {src/drivers/boards/aerocore2 => boards/gumstix/aerocore2/src}/timer_config.c (100%)
 rename {src/drivers/boards/aerocore2 => boards/gumstix/aerocore2/src}/usb.c (100%)
 create mode 100644 boards/intel/aerofc-v1/default.cmake
 rename platforms/nuttx/Images/aerofc-v1.prototype => boards/intel/aerofc-v1/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/aerofc-v1 => boards/intel/aerofc-v1/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/aerofc-v1 => boards/intel/aerofc-v1/nuttx-config}/include/board.h (100%)
 rename {platforms/nuttx/nuttx-configs/aerofc-v1 => boards/intel/aerofc-v1/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/aerofc-v1 => boards/intel/aerofc-v1/nuttx-config}/scripts/ld.script (100%)
 create mode 100644 boards/intel/aerofc-v1/rtps.cmake
 rename {src/drivers/boards/aerofc-v1 => boards/intel/aerofc-v1/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/aerofc-v1 => boards/intel/aerofc-v1/src}/board_config.h (99%)
 rename {src/drivers/boards/aerofc-v1 => boards/intel/aerofc-v1/src}/init.c (100%)
 rename {src/drivers/boards/aerofc-v1 => boards/intel/aerofc-v1/src}/led.c (100%)
 rename {src/drivers/boards/aerofc-v1 => boards/intel/aerofc-v1/src}/spi.c (100%)
 rename {src/drivers/boards/aerofc-v1 => boards/intel/aerofc-v1/src}/timer_config.c (100%)
 create mode 100644 boards/nxp/hlite-v3/default.cmake
 rename platforms/nuttx/Images/nxphlite-v3.prototype => boards/nxp/hlite-v3/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/nxphlite-v3 => boards/nxp/hlite-v3/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/nxphlite-v3 => boards/nxp/hlite-v3/nuttx-config}/include/board.h (100%)
 rename {platforms/nuttx/nuttx-configs/nxphlite-v3 => boards/nxp/hlite-v3/nuttx-config}/nsh/defconfig (100%)
 rename {platforms/nuttx/nuttx-configs/nxphlite-v3 => boards/nxp/hlite-v3/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/autoleds.c (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/automount.c (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/board_config.h (99%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/can.c (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/init.c (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/led.c (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/sdhc.c (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/spi.c (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/timer_config.c (100%)
 rename {src/drivers/boards/nxphlite-v3 => boards/nxp/hlite-v3/src}/usb.c (100%)
 create mode 100644 boards/omnibus/f4sd/default.cmake
 rename platforms/nuttx/Images/omnibus-f4sd.prototype => boards/omnibus/f4sd/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/omnibus-f4sd => boards/omnibus/f4sd/nuttx-config}/include/board.h (100%)
 rename {platforms/nuttx/nuttx-configs/omnibus-f4sd => boards/omnibus/f4sd/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/omnibus-f4sd => boards/omnibus/f4sd/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/omnibus-f4sd => boards/omnibus/f4sd/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/omnibus-f4sd => boards/omnibus/f4sd/src}/board_config.h (99%)
 rename {src/drivers/boards/omnibus-f4sd => boards/omnibus/f4sd/src}/init.c (100%)
 rename {src/drivers/boards/omnibus-f4sd => boards/omnibus/f4sd/src}/led.c (100%)
 rename {src/drivers/boards/omnibus-f4sd => boards/omnibus/f4sd/src}/spi.c (100%)
 rename {src/drivers/boards/omnibus-f4sd => boards/omnibus/f4sd/src}/timer_config.c (100%)
 rename {src/drivers/boards/omnibus-f4sd => boards/omnibus/f4sd/src}/usb.c (100%)
 create mode 100644 boards/parrot/bebop/default.cmake
 rename {src/drivers/boards/sim => boards/parrot/bebop/src}/CMakeLists.txt (94%)
 rename {src/drivers/boards/bebop => boards/parrot/bebop/src}/board_config.h (97%)
 rename cmake/configs/nuttx_px4cannode-v1_default.cmake => boards/px4/cannode-v1/default.cmake (71%)
 rename platforms/nuttx/Images/px4cannode-v1.prototype => boards/px4/cannode-v1/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/px4cannode-v1 => boards/px4/cannode-v1/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4cannode-v1 => boards/px4/cannode-v1/nuttx-config}/include/README.txt (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4cannode-v1 => boards/px4/cannode-v1/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4cannode-v1 => boards/px4/cannode-v1/nuttx-config}/nsh/defconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4cannode-v1 => boards/px4/cannode-v1/nuttx-config}/nsh/defconfig.nonsh (100%)
 rename {platforms/nuttx/nuttx-configs/px4cannode-v1 => boards/px4/cannode-v1/nuttx-config}/nsh/defconfig.nsh (100%)
 rename {platforms/nuttx/nuttx-configs/px4cannode-v1 => boards/px4/cannode-v1/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/px4cannode-v1 => boards/px4/cannode-v1/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4cannode-v1 => boards/px4/cannode-v1/src}/board_config.h (99%)
 rename {src/drivers/boards/px4cannode-v1 => boards/px4/cannode-v1/src}/buttons.c (100%)
 rename {src/drivers/boards/px4cannode-v1 => boards/px4/cannode-v1/src}/can.c (100%)
 rename {src/drivers/boards/px4cannode-v1 => boards/px4/cannode-v1/src}/init.c (100%)
 rename {src/drivers/boards/px4cannode-v1 => boards/px4/cannode-v1/src}/led.c (100%)
 rename {src/drivers/boards/px4cannode-v1 => boards/px4/cannode-v1/src}/spi.c (100%)
 rename cmake/configs/nuttx_px4esc-v1_default.cmake => boards/px4/esc-v1/default.cmake (62%)
 rename platforms/nuttx/Images/px4esc-v1.prototype => boards/px4/esc-v1/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/px4esc-v1 => boards/px4/esc-v1/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4esc-v1 => boards/px4/esc-v1/nuttx-config}/include/README.txt (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4esc-v1 => boards/px4/esc-v1/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4esc-v1 => boards/px4/esc-v1/nuttx-config}/nsh/defconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4esc-v1 => boards/px4/esc-v1/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/px4esc-v1 => boards/px4/esc-v1/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4esc-v1 => boards/px4/esc-v1/src}/board_config.h (99%)
 rename {src/drivers/boards/px4esc-v1 => boards/px4/esc-v1/src}/init.c (100%)
 rename {src/drivers/boards/px4esc-v1 => boards/px4/esc-v1/src}/led.c (100%)
 rename {src/drivers/boards/px4esc-v1 => boards/px4/esc-v1/src}/usb.c (100%)
 create mode 100644 boards/px4/fmu-v2/default.cmake
 rename platforms/nuttx/Images/px4fmu-v2.prototype => boards/px4/fmu-v2/firmware.prototype (52%)
 create mode 100644 boards/px4/fmu-v2/lpe.cmake
 rename {platforms/nuttx/nuttx-configs/px4fmu-v2 => boards/px4/fmu-v2/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v2 => boards/px4/fmu-v2/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4fmu-v2 => boards/px4/fmu-v2/nuttx-config}/nsh/defconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v2 => boards/px4/fmu-v2/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/board_config.h (99%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/can.c (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/i2c.c (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/init.c (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/led.c (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/manifest.c (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/spi.c (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/timer_config.c (100%)
 rename {src/drivers/boards/px4fmu-v2 => boards/px4/fmu-v2/src}/usb.c (100%)
 create mode 100644 boards/px4/fmu-v2/test.cmake
 create mode 100644 boards/px4/fmu-v3/default.cmake
 rename platforms/nuttx/Images/px4fmu-v3.prototype => boards/px4/fmu-v3/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1 => boards/px4/fmu-v3/nuttx-config}/Kconfig (94%)
 rename {platforms/nuttx/nuttx-configs/px4flow-v2 => boards/px4/fmu-v3/nuttx-config}/include/board.h (62%)
 mode change 100755 => 100644
 create mode 100644 boards/px4/fmu-v3/nuttx-config/nsh/defconfig
 rename {platforms/nuttx/nuttx-configs/px4fmu-v4 => boards/px4/fmu-v3/nuttx-config}/scripts/ld.script (93%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v2 => boards/px4/fmu-v3/nuttx-config}/stackcheck/defconfig (99%)
 create mode 100644 boards/px4/fmu-v3/rtps.cmake
 rename {src/drivers/boards/zubaxgnss-v1 => boards/px4/fmu-v3/src}/CMakeLists.txt (88%)
 create mode 100644 boards/px4/fmu-v3/src/board_config.h
 rename {src/drivers/boards/px4fmu-v4 => boards/px4/fmu-v3/src}/can.c (100%)
 rename platforms/nuttx/nuttx-configs/aerofc-v1/include/nsh_romfsimg.h => boards/px4/fmu-v3/src/i2c.c (81%)
 create mode 100644 boards/px4/fmu-v3/src/init.c
 create mode 100644 boards/px4/fmu-v3/src/led.c
 create mode 100644 boards/px4/fmu-v3/src/manifest.c
 create mode 100644 boards/px4/fmu-v3/src/spi.c
 create mode 100644 boards/px4/fmu-v3/src/timer_config.c
 rename {src/drivers/boards/px4fmu-v4pro => boards/px4/fmu-v3/src}/usb.c (100%)
 create mode 100644 boards/px4/fmu-v3/stackcheck.cmake
 create mode 100644 boards/px4/fmu-v4/default.cmake
 rename platforms/nuttx/Images/px4fmu-v4.prototype => boards/px4/fmu-v4/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v4 => boards/px4/fmu-v4/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4fmu-v4 => boards/px4/fmu-v4/nuttx-config}/nsh/defconfig (100%)
 rename {platforms/nuttx/nuttx-configs/mindpx-v2 => boards/px4/fmu-v4/nuttx-config}/scripts/ld.script (92%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v4 => boards/px4/fmu-v4/nuttx-config}/stackcheck/defconfig (100%)
 create mode 100644 boards/px4/fmu-v4/rtps.cmake
 rename {src/drivers/boards/px4fmu-v4 => boards/px4/fmu-v4/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4fmu-v4 => boards/px4/fmu-v4/src}/board_config.h (99%)
 rename {src/drivers/boards/px4fmu-v4pro => boards/px4/fmu-v4/src}/can.c (100%)
 rename {src/drivers/boards/px4fmu-v4 => boards/px4/fmu-v4/src}/init.c (100%)
 rename {src/drivers/boards/px4fmu-v4 => boards/px4/fmu-v4/src}/led.c (100%)
 rename {src/drivers/boards/px4fmu-v4 => boards/px4/fmu-v4/src}/spi.c (100%)
 rename {src/drivers/boards/px4fmu-v4 => boards/px4/fmu-v4/src}/timer_config.c (100%)
 rename {src/drivers/boards/px4fmu-v4 => boards/px4/fmu-v4/src}/usb.c (100%)
 create mode 100644 boards/px4/fmu-v4/stackcheck.cmake
 create mode 100644 boards/px4/fmu-v4pro/default.cmake
 rename platforms/nuttx/Images/px4fmu-v4pro.prototype => boards/px4/fmu-v4pro/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v4pro => boards/px4/fmu-v4pro/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v4pro => boards/px4/fmu-v4pro/nuttx-config}/include/board.h (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v4pro => boards/px4/fmu-v4pro/nuttx-config}/nsh/defconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v4pro => boards/px4/fmu-v4pro/nuttx-config}/scripts/ld.script (93%)
 create mode 100644 boards/px4/fmu-v4pro/rtps.cmake
 rename {src/drivers/boards/px4fmu-v4pro => boards/px4/fmu-v4pro/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4fmu-v4pro => boards/px4/fmu-v4pro/src}/board_config.h (99%)
 rename {src/drivers/boards/s2740vc-v1 => boards/px4/fmu-v4pro/src}/can.c (94%)
 rename {src/drivers/boards/px4fmu-v4pro => boards/px4/fmu-v4pro/src}/init.c (100%)
 rename {src/drivers/boards/px4fmu-v4pro => boards/px4/fmu-v4pro/src}/led.c (100%)
 rename {src/drivers/boards/px4fmu-v4pro => boards/px4/fmu-v4pro/src}/spi.c (100%)
 rename {src/drivers/boards/px4fmu-v4pro => boards/px4/fmu-v4pro/src}/timer_config.c (100%)
 create mode 100644 boards/px4/fmu-v4pro/src/usb.c
 create mode 100644 boards/px4/fmu-v5/default.cmake
 rename platforms/nuttx/Images/px4fmu-v5.prototype => boards/px4/fmu-v5/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v5 => boards/px4/fmu-v5/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v5 => boards/px4/fmu-v5/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4fmu-v5 => boards/px4/fmu-v5/nuttx-config}/nsh/defconfig (100%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v5 => boards/px4/fmu-v5/nuttx-config}/scripts/ld.script (99%)
 rename {platforms/nuttx/nuttx-configs/px4fmu-v5 => boards/px4/fmu-v5/nuttx-config}/stackcheck/defconfig (100%)
 create mode 100644 boards/px4/fmu-v5/rtps.cmake
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/board_config.h (99%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/can.c (100%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/init.c (100%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/led.c (100%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/manifest.c (100%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/sdio.c (100%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/spi.c (100%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/timer_config.c (100%)
 rename {src/drivers/boards/px4fmu-v5 => boards/px4/fmu-v5/src}/usb.c (100%)
 create mode 100644 boards/px4/fmu-v5/stackcheck.cmake
 create mode 100644 boards/px4/io-v2/default.cmake
 rename platforms/nuttx/Images/px4io-v2.prototype => boards/px4/io-v2/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/px4io-v2 => boards/px4/io-v2/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4io-v2 => boards/px4/io-v2/nuttx-config}/nsh/defconfig (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4io-v2 => boards/px4/io-v2/nuttx-config}/scripts/ld.script (100%)
 mode change 100755 => 100644
 rename {src/drivers/boards/px4io-v2 => boards/px4/io-v2/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4io-v2 => boards/px4/io-v2/src}/board_config.h (99%)
 rename {src/drivers/boards/px4io-v2 => boards/px4/io-v2/src}/init.c (100%)
 rename {src/drivers/boards/px4io-v2 => boards/px4/io-v2/src}/timer_config.c (100%)
 create mode 100644 boards/px4/raspberrypi/cross.cmake
 create mode 100644 boards/px4/raspberrypi/native.cmake
 rename {src/drivers/boards/bebop => boards/px4/raspberrypi/src}/CMakeLists.txt (94%)
 create mode 100644 boards/px4/raspberrypi/src/board_config.h
 create mode 100644 boards/px4/sitl/default.cmake
 create mode 100644 boards/px4/sitl/rtps.cmake
 rename {src/drivers/boards/eagle => boards/px4/sitl/src}/CMakeLists.txt (94%)
 rename {src/drivers/boards/sitl => boards/px4/sitl/src}/board_config.h (98%)
 rename {src/drivers/boards/eagle => boards/px4/sitl/src}/sitl_led.c (100%)
 create mode 100644 boards/px4/sitl/test.cmake
 create mode 100644 boards/stm/32f4discovery/default.cmake
 rename platforms/nuttx/Images/px4-stm32f4discovery.prototype => boards/stm/32f4discovery/firmware.prototype (87%)
 rename {platforms/nuttx/nuttx-configs/px4-stm32f4discovery => boards/stm/32f4discovery/nuttx-config}/include/board.h (100%)
 rename {platforms/nuttx/nuttx-configs/px4-stm32f4discovery => boards/stm/32f4discovery/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/px4-stm32f4discovery => boards/stm/32f4discovery/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/px4-stm32f4discovery => boards/stm/32f4discovery/src}/CMakeLists.txt (99%)
 rename {src/drivers/boards/px4-stm32f4discovery => boards/stm/32f4discovery/src}/board_config.h (99%)
 rename {src/drivers/boards/px4-stm32f4discovery => boards/stm/32f4discovery/src}/init.c (100%)
 rename {src/drivers/boards/px4-stm32f4discovery => boards/stm/32f4discovery/src}/led.c (100%)
 create mode 100644 boards/stm/32f4discovery/src/timer_config.c
 rename {src/drivers/boards/px4-stm32f4discovery => boards/stm/32f4discovery/src}/usb.c (100%)
 create mode 100644 boards/stm/nucleo-F767ZI/default.cmake
 rename platforms/nuttx/Images/px4nucleoF767ZI-v1.prototype => boards/stm/nucleo-F767ZI/firmware.prototype (64%)
 rename {platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/nuttx-config}/include/board.h (99%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/board_config.h (99%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/can.c (100%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/init.c (100%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/led.c (100%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/sdio.c (100%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/spi.c (100%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/timer_config.c (100%)
 rename {src/drivers/boards/px4nucleoF767ZI-v1 => boards/stm/nucleo-F767ZI/src}/usb.c (100%)
 rename cmake/configs/nuttx_s2740vc-v1_default.cmake => boards/thiemar/s2740vc-v1/default.cmake (68%)
 rename platforms/nuttx/Images/s2740vc-v1.prototype => boards/thiemar/s2740vc-v1/firmware.prototype (100%)
 rename {platforms/nuttx/nuttx-configs/s2740vc-v1 => boards/thiemar/s2740vc-v1/nuttx-config}/Kconfig (100%)
 rename {platforms/nuttx/nuttx-configs/s2740vc-v1 => boards/thiemar/s2740vc-v1/nuttx-config}/include/README.txt (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/s2740vc-v1 => boards/thiemar/s2740vc-v1/nuttx-config}/include/board.h (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/s2740vc-v1 => boards/thiemar/s2740vc-v1/nuttx-config}/nsh/IMPORTANT_README.txt (100%)
 mode change 100755 => 100644
 rename {platforms/nuttx/nuttx-configs/s2740vc-v1 => boards/thiemar/s2740vc-v1/nuttx-config}/nsh/defconfig (99%)
 rename {platforms/nuttx/nuttx-configs/s2740vc-v1 => boards/thiemar/s2740vc-v1/nuttx-config}/scripts/ld.script (100%)
 rename {src/drivers/boards/s2740vc-v1 => boards/thiemar/s2740vc-v1/src}/CMakeLists.txt (100%)
 rename {src/drivers/boards/s2740vc-v1 => boards/thiemar/s2740vc-v1/src}/board_config.h (99%)
 rename {src/drivers/boards/px4flow-v2 => boards/thiemar/s2740vc-v1/src}/can.c (100%)
 rename {src/drivers/boards/s2740vc-v1 => boards/thiemar/s2740vc-v1/src}/init.c (100%)
 delete mode 100644 cmake/configs/nuttx_aerocore2_default.cmake
 delete mode 100644 cmake/configs/nuttx_aerofc-v1_default.cmake
 delete mode 100644 cmake/configs/nuttx_aerofc-v1_rtps.cmake
 delete mode 100644 cmake/configs/nuttx_auav-x21_default.cmake
 delete mode 100644 cmake/configs/nuttx_av-x-v1_default.cmake
 delete mode 100644 cmake/configs/nuttx_crazyflie_default.cmake
 delete mode 100644 cmake/configs/nuttx_mindpx-v2_default.cmake
 delete mode 100644 cmake/configs/nuttx_nxphlite-v3_default.cmake
 delete mode 100644 cmake/configs/nuttx_omnibus-f4sd_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4-same70xplained-v1_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4-stm32f4discovery_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v2_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v2_lpe.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v2_test.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v3_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v3_rtps.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v3_stackcheck.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v4_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v4_rtps.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v4_stackcheck.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v4pro_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v4pro_rtps.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v5_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v5_rtps.cmake
 delete mode 100644 cmake/configs/nuttx_px4fmu-v5_stackcheck.cmake
 delete mode 100644 cmake/configs/nuttx_px4io-v2_default.cmake
 delete mode 100644 cmake/configs/nuttx_px4nucleoF767ZI-v1_default.cmake
 delete mode 100644 cmake/configs/posix_bbblue_common.cmake
 delete mode 100644 cmake/configs/posix_bbblue_cross.cmake
 delete mode 100644 cmake/configs/posix_bbblue_native.cmake
 delete mode 100644 cmake/configs/posix_bebop_default.cmake
 delete mode 100644 cmake/configs/posix_eagle_default.cmake
 delete mode 100644 cmake/configs/posix_eagle_hil.cmake
 delete mode 100644 cmake/configs/posix_eagle_legacy.cmake
 delete mode 100644 cmake/configs/posix_eagle_muorb.cmake
 delete mode 100644 cmake/configs/posix_excelsior_default.cmake
 delete mode 100644 cmake/configs/posix_excelsior_legacy.cmake
 delete mode 100644 cmake/configs/posix_ocpoc_cross.cmake
 delete mode 100644 cmake/configs/posix_ocpoc_ubuntu.cmake
 delete mode 100644 cmake/configs/posix_rpi_common.cmake
 delete mode 100644 cmake/configs/posix_rpi_cross.cmake
 delete mode 100644 cmake/configs/posix_rpi_cross_no_shield.cmake
 delete mode 100644 cmake/configs/posix_rpi_native.cmake
 delete mode 100644 cmake/configs/posix_sdflight_default.cmake
 delete mode 100644 cmake/configs/posix_sdflight_legacy.cmake
 delete mode 100644 cmake/configs/posix_sdflight_rtps.cmake
 delete mode 100644 cmake/configs/posix_sitl_broadcast.cmake
 delete mode 100644 cmake/configs/posix_sitl_default.cmake
 delete mode 100644 cmake/configs/posix_sitl_rtps.cmake
 delete mode 100644 cmake/configs/posix_sitl_test.cmake
 delete mode 100644 cmake/configs/qurt_eagle_default.cmake
 delete mode 100644 cmake/configs/qurt_eagle_hello.cmake
 delete mode 100644 cmake/configs/qurt_eagle_hil.cmake
 delete mode 100644 cmake/configs/qurt_eagle_legacy.cmake
 delete mode 100644 cmake/configs/qurt_eagle_muorb.cmake
 delete mode 100644 cmake/configs/qurt_eagle_test.cmake
 delete mode 100644 cmake/configs/qurt_eagle_travis.cmake
 delete mode 100644 cmake/configs/qurt_excelsior_default.cmake
 delete mode 100644 cmake/configs/qurt_excelsior_legacy.cmake
 delete mode 100644 cmake/configs/qurt_sdflight_default.cmake
 delete mode 100644 cmake/configs/qurt_sdflight_legacy.cmake
 rename cmake/{common => }/coverage.cmake (100%)
 create mode 100644 cmake/px4_add_board.cmake
 rename cmake/{common => }/px4_base.cmake (85%)
 rename cmake/{common => }/px4_git.cmake (99%)
 create mode 100644 cmake/px4_make_uavcan_bootloader.cmake
 rename cmake/{common => }/px4_metadata.cmake (98%)
 rename cmake/{common => }/sanitizers.cmake (100%)
 delete mode 100644 cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake
 delete mode 100644 cmake/toolchains/Toolchain-arm-none-eabi.cmake
 delete mode 100644 cmake/toolchains/Toolchain-arm-xilinx-linux-gnueabi.cmake
 delete mode 100644 cmake/toolchains/Toolchain-gcc-arm-linux-gnueabihf.cmake
 delete mode 100644 platforms/nuttx/Images/px4flow-v2.prototype
 delete mode 100644 platforms/nuttx/Images/zubaxgnss-v1.prototype
 rename platforms/nuttx/{nuttx-configs => NuttX}/Make.defs.in (79%)
 rename platforms/nuttx/{nuttx-configs/aerocore2/include => NuttX}/nsh_romfsimg.h (100%)
 delete mode 100755 platforms/nuttx/NuttX/tools/new_nuttx_px_config.sh
 create mode 100644 platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m3.cmake
 create mode 100644 platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m4.cmake
 create mode 100644 platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m7.cmake
 create mode 100644 platforms/nuttx/cmake/Toolchain-arm-none-eabi.cmake
 create mode 100644 platforms/nuttx/cmake/px4_add_board_os.cmake
 delete mode 100644 platforms/nuttx/nuttx-configs/auav-x21/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/av-x-v1/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/crazyflie/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/mindpx-v2/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/nxphlite-v3/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/omnibus-f4sd/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/Kconfig
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/include/nsh_romfsimg.h
 delete mode 100755 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/nsh/setenv.sh
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/flash-dtcm.ld
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/flash-sram.ld
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/gnu-elf.ld
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/kernel-space.ld
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/memory.ld
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/user-space.ld
 delete mode 100644 platforms/nuttx/nuttx-configs/px4-stm32f4discovery/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/px4flow-v2/Kconfig
 delete mode 100755 platforms/nuttx/nuttx-configs/px4flow-v2/include/README.txt
 delete mode 100644 platforms/nuttx/nuttx-configs/px4flow-v2/nsh/defconfig
 delete mode 100644 platforms/nuttx/nuttx-configs/px4flow-v2/scripts/ld.script
 delete mode 100644 platforms/nuttx/nuttx-configs/px4fmu-v2/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/px4fmu-v4/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/px4fmu-v4pro/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/px4fmu-v5/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/include/nsh_romfsimg.h
 delete mode 100644 platforms/nuttx/nuttx-configs/zubaxgnss-v1/Kconfig
 delete mode 100755 platforms/nuttx/nuttx-configs/zubaxgnss-v1/include/README.txt
 delete mode 100755 platforms/nuttx/nuttx-configs/zubaxgnss-v1/include/board.h
 delete mode 100644 platforms/nuttx/nuttx-configs/zubaxgnss-v1/nsh/defconfig
 delete mode 100644 platforms/nuttx/nuttx-configs/zubaxgnss-v1/scripts/ld.script
 create mode 100644 platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a53.cmake
 create mode 100644 platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a8.cmake
 create mode 100644 platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a9.cmake
 create mode 100644 platforms/posix/cmake/Toolchain-arm-linux-gnueabihf.cmake
 rename {cmake/toolchains => platforms/posix/cmake}/Toolchain-native.cmake (100%)
 create mode 100644 platforms/posix/cmake/px4_add_board_os.cmake
 create mode 100644 platforms/qurt/cmake/px4_add_board_os.cmake
 delete mode 100644 src/drivers/boards/px4flow-v2/board_config.h
 delete mode 100644 src/drivers/boards/px4flow-v2/init.c
 delete mode 100644 src/drivers/boards/px4flow-v2/led.c
 delete mode 100644 src/drivers/boards/zubaxgnss-v1/board_config.h
 delete mode 100644 src/drivers/boards/zubaxgnss-v1/gnss_init.c
 delete mode 100644 src/drivers/boards/zubaxgnss-v1/gnss_led.c
 rename src/{drivers/boards/px4flow-v2 => modules/commander/failure_detector}/CMakeLists.txt (93%)

diff --git a/.ci/Jenkinsfile-SITL_tests b/.ci/Jenkinsfile-SITL_tests
index 25a3aafb9c..2d092fec86 100644
--- a/.ci/Jenkinsfile-SITL_tests
+++ b/.ci/Jenkinsfile-SITL_tests
@@ -30,7 +30,7 @@ pipeline {
             sh('make distclean')
             sh "ccache -z"
             sh "git fetch --tags"
-            sh('make posix_sitl_default')
+            sh('make px4sitl_default')
             sh "ccache -s"
           }
         }
@@ -47,8 +47,8 @@ pipeline {
         stage('unit tests') {
           steps {
             sh 'export'
-            sh 'make posix_sitl_default test_results_junit'
-            junit 'build/posix_sitl_default/JUnitTestResults.xml'
+            sh 'make px4sitl_default test_results_junit'
+            junit 'build/px4sitl_default/JUnitTestResults.xml'
           }
         }
 
@@ -56,7 +56,7 @@ pipeline {
           steps {
             sh 'export'
             sh "ccache -z"
-            sh('make posix_sitl_default sitl_gazebo')
+            sh('make px4sitl_default sitl_gazebo')
             sh "ccache -s"
           }
         }
@@ -64,8 +64,8 @@ pipeline {
         stage('package') {
           steps {
             sh 'export'
-            sh('make posix_sitl_default package')
-            stash(name: "px4_sitl_package", includes: "build/posix_sitl_default/*.bz2")
+            sh('make px4sitl_default package')
+            stash(name: "px4_sitl_package", includes: "build/px4sitl_default/*.bz2")
           }
         }
 
@@ -176,7 +176,7 @@ pipeline {
           steps {
             sh 'export'
             sh 'make distclean'
-            sh 'make posix_sitl_default test_results_junit'
+            sh 'make px4sitl_default test_results_junit'
             withCredentials([string(credentialsId: 'FIRMWARE_CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) {
               sh 'curl -s https://codecov.io/bash | bash -s - -F unittest'
             }
@@ -221,11 +221,11 @@ def createTestNode(Map test_def) {
           }
 
           unstash('px4_sitl_package')
-          sh('tar -xjpvf build/posix_sitl_default/px4-posix_sitl_default*.bz2')            
+          sh('tar -xjpvf build/px4sitl_default/px4-px4sitl_default*.bz2')
 
           // run test
           try {
-            sh('px4-posix_sitl_default*/px4/test/rostest_px4_run.sh ' + test_def.test + ' mission:=' + test_def.mission + ' vehicle:=' + test_def.vehicle)
+            sh('px4-px4sitl_default*/px4/test/rostest_px4_run.sh ' + test_def.test + ' mission:=' + test_def.mission + ' vehicle:=' + test_def.vehicle)
 
           } catch (exc) {
             // save all test artifacts for debugging
@@ -240,7 +240,7 @@ def createTestNode(Map test_def) {
 
               // process log data (with python code coverage)
               try {
-                sh('coverage run -p px4-posix_sitl_default*/px4/Tools/ecl_ekf/process_logdata_ekf.py .ros/log/*/*.ulg')
+                sh('coverage run -p px4-px4sitl_default*/px4/Tools/ecl_ekf/process_logdata_ekf.py .ros/log/*/*.ulg')
               } catch (exc) {
                 // save log analysis artifacts for debugging
                 archiveArtifacts(allowEmptyArchive: false, artifacts: '.ros/**/*.pdf, .ros/**/*.csv')
@@ -249,7 +249,7 @@ def createTestNode(Map test_def) {
               }
 
               // upload log to flight review (https://logs.px4.io/) with python code coverage
-              sh('coverage run -p px4-posix_sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg')
+              sh('coverage run -p px4-px4sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg')
 
               // upload python code coverage to codecov.io
               sh 'curl -s https://codecov.io/bash | bash -s - -X gcov -F sitl_python_${STAGE_NAME}'
@@ -257,7 +257,7 @@ def createTestNode(Map test_def) {
           } else { // non code coverage
             // process ekf log data
             try {
-              sh('px4-posix_sitl_default*/px4/Tools/ecl_ekf/process_logdata_ekf.py .ros/log/*/*.ulg')
+              sh('px4-px4sitl_default*/px4/Tools/ecl_ekf/process_logdata_ekf.py .ros/log/*/*.ulg')
             } catch (exc) {
               // save log analysis artifacts for debugging
               archiveArtifacts(allowEmptyArchive: false, artifacts: '.ros/**/*.pdf, .ros/**/*.csv')
@@ -266,7 +266,7 @@ def createTestNode(Map test_def) {
             }
 
             // upload log to flight review (https://logs.px4.io/)
-            sh('px4-posix_sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg')
+            sh('px4-px4sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg')
           }
 
           if (!test_ok) {
diff --git a/.ci/Jenkinsfile-compile b/.ci/Jenkinsfile-compile
index a0c90fdc89..63d86451a3 100644
--- a/.ci/Jenkinsfile-compile
+++ b/.ci/Jenkinsfile-compile
@@ -18,8 +18,8 @@ pipeline {
             snapdragon: "lorenzmeier/px4-dev-snapdragon:2018-09-12"
           ]
 
-          // MAC OSX posix_sitl_default
-          build_nodes["posix_sitl_default (OSX)"] = {
+          // MAC OSX px4sitl_default
+          build_nodes["px4sitl_default (OSX)"] = {
             node("mac") {
               withEnv(["CCACHE_BASEDIR=${pwd()}"]) {
                 stage("sitl (OSX)") {
@@ -28,7 +28,7 @@ pipeline {
                     sh('export')
                     sh('make distclean')
                     sh('ccache -z')
-                    sh('make posix_sitl_default')
+                    sh('make px4sitl_default')
                     sh('ccache -s')
                     sh('make tests')
                   }
@@ -43,7 +43,7 @@ pipeline {
             }
           }
 
-          // MAC OSX nuttx_px4fmu-v4pro_default
+          // MAC OSX px4fmu-v4pro_default
           build_nodes["px4fmu-v4pro_default (OSX)"] = {
             node("mac") {
               withEnv(["CCACHE_BASEDIR=${pwd()}"]) {
@@ -53,7 +53,7 @@ pipeline {
                     sh('export')
                     sh('make distclean')
                     sh('ccache -z')
-                    sh('make nuttx_px4fmu-v4pro_default')
+                    sh('make px4fmu-v4pro_default')
                     sh('ccache -s')
                   }
                   catch (exc) {
@@ -69,46 +69,46 @@ pipeline {
 
           // docker builds:
           def arch_builds = [
-            target: ["posix_sitl_default"],
+            target: ["px4sitl_default"],
             image: docker_images.arch,
             archive: false
           ]
 
           def armhf_builds = [
-            target: ["posix_ocpoc_ubuntu"],
+            target: ["aerotennaocpoc_ubuntu"],
             image: docker_images.armhf,
             archive: false
           ]
 
           def base_builds = [
-            target: ["posix_sitl_rtps"],
+            target: ["px4sitl_rtps"],
             image: docker_images.base,
             archive: false
           ]
 
           def nuttx_builds_archive = [
             target: ["px4fmu-v2_default", "px4fmu-v3_default", "px4fmu-v4_default", "px4fmu-v4pro_default", "px4fmu-v5_default", "px4fmu-v5_rtps", "px4fmu-v5_stackcheck",
-                     "aerofc-v1_default", "aerocore2_default", "auav-x21_default", "av-x-v1_default", "crazyflie_default", "mindpx-v2_default",
-                     "nxphlite-v3_default", "omnibus-f4sd_default"],
+                     "intelaerofc-v1_default", "gumstixaerocore2_default", "auavx21_default", "avx-v1_default", "bitcrazecrazyflie_default", "airmindmindpx-v2_default",
+                     "nxphlite-v3_default", "omnibusf4sd_default"],
             image: docker_images.nuttx,
             archive: true
           ]
 
           def nuttx_builds_other = [
-            target: ["px4-same70xplained-v1_default", "px4-stm32f4discovery_default", "px4cannode-v1_default",
-                     "px4esc-v1_default", "px4nucleoF767ZI-v1_default", "s2740vc-v1_default"],
+            target: ["atmelsame70xplained_default", "stm32f4discovery_default", "px4cannode-v1_default",
+                     "px4esc-v1_default", "stmnucleo-F767ZI_default", "thiemars2740vc-v1_default"],
             image: docker_images.nuttx,
             archive: false
           ]
 
           def rpi_builds = [
-            target: ["posix_rpi_cross", "posix_bebop_default"],
+            target: ["emlidnavio2_cross", "parrotbebop_default"],
             image: docker_images.rpi,
             archive: false
           ]
 
           def snapdragon_builds = [
-            target: ["qurt_eagle_default", "posix_eagle_default"],
+            target: ["atlflighteagle_qurt-default", "atlflighteagle_default"],
             image: docker_images.snapdragon,
             archive: false
           ]
diff --git a/.ci/Jenkinsfile-hardware b/.ci/Jenkinsfile-hardware
index 5825efe7c7..e95c743d4b 100644
--- a/.ci/Jenkinsfile-hardware
+++ b/.ci/Jenkinsfile-hardware
@@ -18,10 +18,10 @@ pipeline {
             sh 'make distclean'
             sh 'ccache -z'
             sh 'git fetch --tags'
-            sh 'make nuttx_px4fmu-v2_test'
+            sh 'make px4fmu-v2_test'
             sh 'make sizes'
             sh 'ccache -s'
-            stash includes: 'build/nuttx_px4fmu-v2_test/nuttx_px4fmu-v2_test.elf', name: 'px4fmu-v2_test'
+            stash includes: 'build/px4fmu-v2_test/px4fmu-v2_test.elf', name: 'px4fmu-v2_test'
             stash includes: 'Tools/HIL/monitor_firmware_upload.py, Tools/HIL/run_tests.py', name: 'scripts-px4fmu-v2'
           }
           post {
@@ -43,10 +43,10 @@ pipeline {
             sh 'make distclean'
             sh 'ccache -z'
             sh 'git fetch --tags'
-            sh 'make nuttx_px4fmu-v4_stackcheck'
+            sh 'make px4fmu-v4_stackcheck'
             sh 'make sizes'
             sh 'ccache -s'
-            stash includes: 'build/nuttx_px4fmu-v4_stackcheck/nuttx_px4fmu-v4_stackcheck.elf', name: 'px4fmu-v4_stackcheck'
+            stash includes: 'build/px4fmu-v4_stackcheck/px4fmu-v4_stackcheck.elf', name: 'px4fmu-v4_stackcheck'
             stash includes: 'Tools/HIL/monitor_firmware_upload.py, Tools/HIL/run_tests.py', name: 'scripts-px4fmu-v4'
           }
           post {
@@ -82,7 +82,7 @@ pipeline {
                       -ex "attach 1" \
                       -ex "load" \
                       -ex "kill" \
-                      build/nuttx_px4fmu-v2_test/nuttx_px4fmu-v2_test.elf
+                      build/px4fmu-v2_test/px4fmu-v2_test.elf
                 '''
                 sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02` --baudrate 57600'
                 sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02`'
@@ -116,7 +116,7 @@ pipeline {
                       -ex "attach 1" \
                       -ex "load" \
                       -ex "kill" \
-                      build/nuttx_px4fmu-v4_stackcheck/nuttx_px4fmu-v4_stackcheck.elf
+                      build/px4fmu-v4_stackcheck/px4fmu-v4_stackcheck.elf
                 '''
                 sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02` --baudrate 57600'
                 sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02`'
diff --git a/.gitmodules b/.gitmodules
index 20028c8155..112c186ef5 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -34,8 +34,8 @@
 	path = src/lib/ecl
 	url = https://github.com/PX4/ecl.git
 	branch = master
-[submodule "cmake/cmake_hexagon"]
-	path = cmake/cmake_hexagon
+[submodule "boards/atlflight/cmake_hexagon"]
+	path = boards/atlflight/cmake_hexagon
 	url = https://github.com/ATLFlight/cmake_hexagon.git
 	branch = master
 [submodule "src/drivers/gps/devices"]
diff --git a/.travis.yml b/.travis.yml
index fcc1e11f63..53399ae06e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -28,5 +28,5 @@ addons:
       description: "Build submitted via Travis CI"
     notification_email: ci@px4.io
     build_command_prepend: "make distclean"
-    build_command: "make posix_sitl_default"
+    build_command: "make px4sitl_default"
     branch_pattern: coverity_scan
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b1e00ca630..fce4003d0d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,7 +40,7 @@
 # * Common functions should be included in px_base.cmake.
 #
 # * OS/ board specific fucntions should be include in
-#	px_impl_${OS}.cmake or px4_impl_${OS}_${BOARD}.cmake.
+#	px_impl_${PX4_PLATFORM}.cmake or px4_impl_${PX4_PLATFORM}_${PX4_BOARD}.cmake.
 #
 # Formatting
 # ---------------------------------------------------------------------------
@@ -92,9 +92,9 @@
 # ---------------------------------------------------------------------------
 #
 # * If referencing a string variable, don't put it in quotes.
-#	Don't do "${OS}" STREQUAL "posix",
-#	instead type ${OS} STREQUAL "posix". This will throw an
-#	error when ${OS} is not defined instead of silently
+#	Don't do "${PX4_PLATFORM}" STREQUAL "posix",
+#	instead type ${PX4_PLATFORM} STREQUAL "posix". This will throw an
+#	error when ${PX4_PLATFORM} is not defined instead of silently
 #	evaluating to false.
 #
 #=============================================================================
@@ -104,12 +104,12 @@ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
 set(PX4_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
 set(PX4_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
 
-list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/cmake")
+list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/cmake)
 
 #=============================================================================
 # git
 #
-include(common/px4_git)
+include(px4_git)
 
 execute_process(
 	COMMAND git describe --always --tags
@@ -132,13 +132,90 @@ define_property(GLOBAL PROPERTY PX4_MODULE_PATHS
 # configuration
 #
 
-set(CONFIG "posix_sitl_default" CACHE STRING "desired configuration")
+set(CONFIG "px4sitl_default" CACHE STRING "desired configuration")
 
-string(REPLACE "_" ";" config_args ${CONFIG})
-list(GET config_args 0 OS)
-list(GET config_args 1 BOARD)
-list(GET config_args 2 LABEL)
+set(config_module_list)
+set(config_df_driver_list)
 
+# find PX4 config
+#  look for in tree board config that matches CONFIG input
+if(NOT PX4_CONFIG_FILE)
+
+	file(GLOB_RECURSE board_configs
+		RELATIVE "${PX4_SOURCE_DIR}/boards"
+		"boards/*.cmake"
+		)
+
+	set(PX4_CONFIGS ${board_configs} CACHE STRINGS "PX4 board configs" FORCE)
+
+	foreach(filename ${board_configs})
+		# parse input CONFIG into components to match with existing in tree configs
+		#  the platform prefix (eg nuttx_) is historical, and removed if present
+		string(REPLACE ".cmake" "" filename_stripped ${filename})
+		string(REPLACE "/" ";" config ${filename_stripped})
+		list(LENGTH config config_len)
+
+		if(${config_len} EQUAL 3)
+
+
+			list(GET config 0 vendor)
+			list(GET config 1 model)
+			list(GET config 2 label)
+
+			set(board "${vendor}${model}")
+
+			# <VENDOR>_<MODEL>_<LABEL> (eg px4_fmu-v2_default)
+			# <VENDOR>_<MODEL>_default (eg px4_fmu-v2) # allow skipping label if "default"
+			if ((${CONFIG} MATCHES "${vendor}_${model}_${label}") OR # match full vendor, model, label
+			    ((${label} STREQUAL "default") AND (${CONFIG} STREQUAL "${vendor}_${model}")) # default label can be omitted
+			)
+				set(PX4_CONFIG_FILE "${PX4_SOURCE_DIR}/boards/${filename}" CACHE FILEPATH "path to PX4 CONFIG file" FORCE)
+				break()
+			endif()
+
+			# <BOARD>_<LABEL> (eg px4fmu-v2_default)
+			# <BOARD>_default (eg px4fmu-v2) # allow skipping label if "default"
+			if ((${CONFIG} MATCHES "${board}_${label}") OR # match full board, label
+			    ((${label} STREQUAL "default") AND (${CONFIG} STREQUAL "${board}")) # default label can be omitted
+			)
+				set(PX4_CONFIG_FILE "${PX4_SOURCE_DIR}/boards/${filename}" CACHE FILEPATH "path to PX4 CONFIG file" FORCE)
+				break()
+			endif()
+
+
+			# LEGACY form
+			# <OS>_<BOARD>_<LABEL> (eg nuttx_px4fmu-v2_default)
+			string(REGEX REPLACE "^nuttx_|^posix_|^qurt_" "" config_no_os ${CONFIG}) # ignore OS prefix
+
+			if ((${config_no_os} MATCHES "${board}_${label}"))
+				set(PX4_CONFIG_FILE "${PX4_SOURCE_DIR}/boards/${filename}" CACHE FILEPATH "path to PX4 CONFIG file" FORCE)
+				break()
+			endif()
+
+
+			# LEGACY form special case to ease board layout transition (2018-11-18)
+			#  match board with model and label only: eg sitl_default -> px4_sitl_default
+			if ((${config_no_os} MATCHES "${model}_${label}"))
+				set(PX4_CONFIG_FILE "${PX4_SOURCE_DIR}/boards/${filename}" CACHE FILEPATH "path to PX4 CONFIG file" FORCE)
+				break()
+			endif()
+
+		endif()
+
+	endforeach()
+endif()
+
+if(NOT PX4_CONFIG_FILE)
+	message(FATAL_ERROR "PX4 config file not set, try one of ${PX4_CONFIGS}")
+endif()
+
+message(STATUS "PX4 config file: ${PX4_CONFIG_FILE}")
+include(px4_add_board)
+include(${PX4_CONFIG_FILE})
+message(STATUS "PX4 config: ${PX4_BOARD_VENDOR} ${PX4_BOARD_MODEL} ${PX4_BOARD_LABEL}")
+message(STATUS "PX4 platform: ${PX4_PLATFORM}")
+
+# external modules
 set(EXTERNAL_MODULES_LOCATION "" CACHE STRING "External modules source location")
 
 if (NOT EXTERNAL_MODULES_LOCATION STREQUAL "")
@@ -147,13 +224,12 @@ endif()
 
 set_property(GLOBAL PROPERTY PX4_MODULE_CONFIG_FILES)
 
-include(platforms/${OS}/cmake/px4_impl_os.cmake)
-include(configs/${CONFIG})
-list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/platforms/${OS}/cmake)
+include(platforms/${PX4_PLATFORM}/cmake/px4_impl_os.cmake)
+list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake)
 
 # CMake build type (Debug Release RelWithDebInfo MinSizeRel Coverage)
 if (NOT CMAKE_BUILD_TYPE)
-	if (${OS} STREQUAL "nuttx")
+	if (${PX4_PLATFORM} STREQUAL "nuttx")
 		set(PX4_BUILD_TYPE "MinSizeRel")
 	else()
 		set(PX4_BUILD_TYPE "RelWithDebInfo")
@@ -166,9 +242,8 @@ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release;RelWithDebIn
 
 #=============================================================================
 
-message(STATUS "PX4 VERSION: ${PX4_GIT_TAG}")
-message(STATUS "CONFIG: ${CONFIG}")
-message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}")
+message(STATUS "PX4 version: ${PX4_GIT_TAG}")
+message(STATUS "cmake build type: ${CMAKE_BUILD_TYPE}")
 
 #=============================================================================
 # project definition
@@ -194,10 +269,10 @@ endif()
 #=============================================================================
 
 # Setup install paths
-if (${OS} STREQUAL "posix")
+if (${PX4_PLATFORM} STREQUAL "posix")
 
-	include(common/coverage)
-	include(common/sanitizers)
+	include(coverage)
+	include(sanitizers)
 
 	# Define GNU standard installation directories
 	include(GNUInstallDirs)
@@ -216,6 +291,7 @@ endif()
 set(px4_required_interface
 	px4_os_prebuild_targets
 	px4_os_add_flags
+	px4_add_board
 	)
 foreach(cmd ${px4_required_interface})
 	if (NOT COMMAND ${cmd})
@@ -223,13 +299,6 @@ foreach(cmd ${px4_required_interface})
 	endif()
 endforeach()
 
-set(px4_required_config config_module_list)
-foreach(conf ${px4_required_config})
-	if (NOT DEFINED ${conf})
-		message(FATAL_ERROR "cmake/${CONFIG} must define ${conf}")
-	endif()
-endforeach()
-
 #=============================================================================
 # ccache
 #
@@ -276,43 +345,11 @@ else()
 	px4_find_python_module(jinja2 REQUIRED)
 endif()
 
-#=============================================================================
-# check required toolchain variables
-#
-
-set(required_variables CMAKE_C_COMPILER_ID CMAKE_CXX_COMPILER_ID)
-foreach(var ${required_variables})
-	if (NOT ${var})
-		message(FATAL_ERROR "Toolchain/config must define ${var}")
-	endif()
-endforeach()
-
-# print full c compiler version
-execute_process(COMMAND ${CMAKE_C_COMPILER} --version
-		OUTPUT_VARIABLE c_compiler_version
-		OUTPUT_STRIP_TRAILING_WHITESPACE
-		)
-STRING(REGEX MATCH "[^\n]*" c_compiler_version_short ${c_compiler_version})
-message(STATUS "C compiler: ${c_compiler_version_short}")
-
-# print full c++ compiler version
-execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version
-		OUTPUT_VARIABLE cxx_compiler_version
-		OUTPUT_STRIP_TRAILING_WHITESPACE
-		)
-STRING(REGEX MATCH "[^\n]*" cxx_compiler_version_short ${cxx_compiler_version})
-message(STATUS "C++ compiler: ${cxx_compiler_version_short}")
-
-#=============================================================================
-# external libraries
-#
-px4_os_prebuild_targets(OUT prebuild_targets BOARD ${BOARD})
-
 #=============================================================================
 # build flags
 #
 px4_os_add_flags(
-	BOARD ${BOARD}
+	BOARD ${PX4_BOARD}
 	C_FLAGS c_flags
 	CXX_FLAGS cxx_flags
 	OPTIMIZATION_FLAGS optimization_flags
@@ -328,16 +365,17 @@ px4_join(OUT CMAKE_CXX_FLAGS LIST "${CMAKE_CXX_FLAGS};${cxx_flags};${optimizatio
 #=============================================================================
 # message, and airframe generation
 #
-include(common/px4_metadata)
+include(px4_metadata)
 
 add_subdirectory(msg EXCLUDE_FROM_ALL)
 
-px4_generate_airframes_xml(BOARD ${BOARD})
+px4_generate_airframes_xml(BOARD ${PX4_BOARD})
 
 #=============================================================================
 # DriverFramework
 #
 px4_add_git_submodule(TARGET git_driverframework PATH "src/lib/DriverFramework")
+set(OS ${PX4_PLATFORM})
 add_subdirectory(src/lib/DriverFramework/framework)
 
 # List the DriverFramework drivers
@@ -398,26 +436,12 @@ add_subdirectory(src/lib/parameters EXCLUDE_FROM_ALL)
 target_link_libraries(parameters_interface INTERFACE parameters)
 
 # firmware added last to generate the builtin for included modules
-add_subdirectory(platforms/${OS})
-
-#=============================================================================
-# generate custom target to print for all executable and module cmake targets
-#
-if (all_posix_cmake_targets)
-	list(SORT all_posix_cmake_targets)
-	px4_join(OUT posix_cmake_target_list LIST ${all_posix_cmake_targets} GLUE "\\n")
-	add_custom_target(list_cmake_targets
-		COMMAND sh -c "printf \"${posix_cmake_target_list}\\n\""
-		COMMENT "List of cmake targets that can be matched by PX4_NO_OPTIMIZATION:"
-		VERBATIM
-		)
-endif()
-
+add_subdirectory(platforms/${PX4_PLATFORM})
 
 #=============================================================================
 # uORB graph generation: add a custom target 'uorb_graph'
 #
-set(uorb_graph_config ${BOARD})
+set(uorb_graph_config ${PX4_BOARD})
 
 set(graph_module_list "")
 foreach(module ${config_module_list})
@@ -471,10 +495,10 @@ endif()
 add_custom_target(metadata_airframes
 	COMMAND ${CMAKE_COMMAND} -E make_directory ${PX4_BINARY_DIR}/docs
 	COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_process_airframes.py
-		-v -a ${PX4_SOURCE_DIR}//ROMFS/px4fmu_common/init.d
+		-v -a ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/init.d
 		--markdown ${PX4_BINARY_DIR}/docs/airframes.md
 	COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_process_airframes.py
-		-v -a ${PX4_SOURCE_DIR}//ROMFS/px4fmu_common/init.d
+		-v -a ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/init.d
 		--xml ${PX4_BINARY_DIR}/docs/airframes.xml
 	COMMENT "Generating full airframe metadata (markdown and xml)"
 	USES_TERMINAL
@@ -521,7 +545,7 @@ add_custom_target(all_metadata
 set(CPACK_PACKAGE_NAME ${PROJECT_NAME}-${CONFIG})
 set(CPACK_PACKAGE_VERSION ${PX4_GIT_TAG})
 set(CPACK_PACKAGE_CONTACT ${package-contact})
-set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF)
+set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) # TODO: review packaging for linux boards
 set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
 set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
 set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "The PX4 Pro autopilot.")
diff --git a/Jenkinsfile b/Jenkinsfile
index c676a55c3d..ca6342f4ec 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -62,12 +62,12 @@ pipeline {
             sh 'make distclean'
             sh 'ccache -z'
             sh 'git fetch --tags'
-            sh 'make nuttx_px4fmu-v2_default'
-            sh 'make nuttx_px4fmu-v2_default bloaty_symbols'
-            sh 'make nuttx_px4fmu-v2_default bloaty_compileunits'
-            sh 'make nuttx_px4fmu-v2_default bloaty_inlines'
-            sh 'make nuttx_px4fmu-v2_default bloaty_templates'
-            sh 'make nuttx_px4fmu-v2_default bloaty_compare_master'
+            sh 'make px4fmu-v2_default'
+            sh 'make px4fmu-v2_default bloaty_symbols'
+            sh 'make px4fmu-v2_default bloaty_compileunits'
+            sh 'make px4fmu-v2_default bloaty_inlines'
+            sh 'make px4fmu-v2_default bloaty_templates'
+            sh 'make px4fmu-v2_default bloaty_compare_master'
             sh 'make sizes'
             sh 'ccache -s'
           }
@@ -90,12 +90,12 @@ pipeline {
             sh 'make distclean'
             sh 'ccache -z'
             sh 'git fetch --tags'
-            sh 'make nuttx_px4fmu-v5_default'
-            sh 'make nuttx_px4fmu-v5_default bloaty_symbols'
-            sh 'make nuttx_px4fmu-v5_default bloaty_compileunits'
-            sh 'make nuttx_px4fmu-v5_default bloaty_inlines'
-            sh 'make nuttx_px4fmu-v5_default bloaty_templates'
-            sh 'make nuttx_px4fmu-v5_default bloaty_compare_master'
+            sh 'make px4fmu-v5_default'
+            sh 'make px4fmu-v5_default bloaty_symbols'
+            sh 'make px4fmu-v5_default bloaty_compileunits'
+            sh 'make px4fmu-v5_default bloaty_inlines'
+            sh 'make px4fmu-v5_default bloaty_templates'
+            sh 'make px4fmu-v5_default bloaty_compare_master'
             sh 'make sizes'
             sh 'ccache -s'
           }
@@ -272,7 +272,7 @@ pipeline {
           steps {
             sh 'make distclean'
             sh 'make airframe_metadata'
-            dir('build/posix_sitl_default/docs') {
+            dir('build/px4sitl_default/docs') {
               archiveArtifacts(artifacts: 'airframes.md, airframes.xml')
               stash includes: 'airframes.md, airframes.xml', name: 'metadata_airframes'
             }
@@ -291,7 +291,7 @@ pipeline {
           steps {
             sh 'make distclean'
             sh 'make parameters_metadata'
-            dir('build/posix_sitl_default/docs') {
+            dir('build/px4sitl_default/docs') {
               archiveArtifacts(artifacts: 'parameters.md, parameters.xml')
               stash includes: 'parameters.md, parameters.xml', name: 'metadata_parameters'
             }
@@ -310,7 +310,7 @@ pipeline {
           steps {
             sh 'make distclean'
             sh 'make module_documentation'
-            dir('build/posix_sitl_default/docs') {
+            dir('build/px4sitl_default/docs') {
               archiveArtifacts(artifacts: 'modules/*.md')
               stash includes: 'modules/*.md', name: 'metadata_module_documentation'
             }
@@ -334,8 +334,8 @@ pipeline {
             sh 'make distclean'
             sh 'make uorb_graphs'
             dir('Tools/uorb_graph') {
-              archiveArtifacts(artifacts: 'graph_sitl.json')
-              stash includes: 'graph_sitl.json', name: 'uorb_graph'
+              archiveArtifacts(artifacts: 'graph_px4sitl.json')
+              stash includes: 'graph_px4sitl.json', name: 'uorb_graph'
             }
           }
           post {
diff --git a/Makefile b/Makefile
index 2be3424dc5..437d952abb 100644
--- a/Makefile
+++ b/Makefile
@@ -53,11 +53,11 @@ endif
 # make px4fmu-v2_default test 		(builds and tests)
 #
 # This tells cmake to build the nuttx px4fmu-v2 default config in the
-# directory build/nuttx_px4fmu-v2_default and then call make
+# directory build/px4fmu-v2_default and then call make
 # in that directory with the target upload.
 
 #  explicity set default build target
-all: posix_sitl_default
+all: px4sitl_default
 
 # Parsing
 # --------------------------------------------------------------------
@@ -156,10 +156,11 @@ define colorecho
 +@echo -e '${COLOR_BLUE}${1} ${NO_COLOR}'
 endef
 
-# Get a list of all config targets cmake/configs/*.cmake
-ALL_CONFIG_TARGETS := $(basename $(shell find "$(SRC_DIR)"/cmake/configs -maxdepth 1 ! -name '*_common*' ! -name '*_sdflight_*' -name '*.cmake' -print | sed  -e 's:^.*/::' | sort))
-# Strip off leading nuttx_
-NUTTX_CONFIG_TARGETS := $(patsubst nuttx_%,%,$(filter nuttx_%,$(ALL_CONFIG_TARGETS)))
+# Get a list of all config targets boards/*/*.cmake
+ALL_CONFIG_TARGETS := $(shell find boards -maxdepth 3 -mindepth 3 ! -name '*common*' ! -name '*sdflight*' -name '*.cmake' -print | sed -e 's/boards\///' | sed -e 's/\.cmake//' | sed -e 's/\///' | sed -e 's/\//_/g'  | sort)
+
+# Strip off default
+CONFIG_TARGETS_DEFAULT := $(patsubst %_default,%,$(filter %_default,$(ALL_CONFIG_TARGETS)))
 
 # ADD CONFIGS HERE
 # --------------------------------------------------------------------
@@ -177,22 +178,26 @@ $(NUTTX_CONFIG_TARGETS):
 
 all_nuttx_targets: $(NUTTX_CONFIG_TARGETS)
 
-posix: posix_sitl_default
-broadcast: posix_sitl_broadcast
+$(CONFIG_TARGETS_DEFAULT):
+	$(call cmake-build,$@_default)
+
+all_default_targets: $(CONFIG_TARGETS_DEFAULT)
+
+posix: px4sitl_default
+posix_sitl_default: px4sitl_default
 
 # All targets with just dependencies but no recipe must either be marked as phony (or have the special @: as recipe).
-.PHONY: all posix broadcast all_nuttx_targets
+.PHONY: all posix posix_sitl_default all_nuttx_targets all_default_targets
 
 # Multi- config targets.
-eagle_default: posix_eagle_default qurt_eagle_default
-eagle_rtps: posix_eagle_rtps qurt_eagle_default
-eagle_legacy_default: posix_eagle_legacy qurt_eagle_legacy
-excelsior_default: posix_excelsior_default qurt_excelsior_default
-excelsior_rtps: posix_excelsior_rtps qurt_excelsior_default
-excelsior_legacy_default: posix_excelsior_legacy qurt_excelsior_legacy
+eagle_default: atlflighteagle_default atlflighteagle_qurt-default
+eagle_rtps: atlflighteagle_rtps atlflighteagle_qurt-rtps
+
+excelsior_default: atlflightexcelsior_default atlflightexcelsior_qurt-default
+excelsior_rtps: atlflightexcelsior_rtps atlflightexcelsior_qurt-rtps
 
-.PHONY: eagle_default eagle_rtps eagle_legacy_default
-.PHONY: excelsior_default excelsior_rtps excelsior_legacy_default
+.PHONY: eagle_default eagle_rtps
+.PHONY: excelsior_default excelsior_rtps
 
 # Other targets
 # --------------------------------------------------------------------
@@ -213,23 +218,23 @@ px4fmu_firmware: \
 	sizes
 
 misc_qgc_extra_firmware: \
-	check_aerocore2_default \
-	check_aerofc-v1_default \
-	check_auav-x21_default \
-	check_crazyflie_default \
-	check_mindpx-v2_default \
+	check_gumstixaerocore2_default \
+	check_intelaerofc-v1_default \
+	check_auavx21_default \
+	check_bitcrazecrazyflie_default \
+	check_airmindmindpx-v2_default \
 	check_px4fmu-v2_lpe \
 	sizes
 
 # Other NuttX firmware
 alt_firmware: \
 	check_nxphlite-v3_default \
-	check_px4-same70xplained-v1_default \
-	check_px4-stm32f4discovery_default \
+	check_atmelsame70xplained_default \
+	check_stm32f4discovery_default \
 	check_px4cannode-v1_default \
 	check_px4esc-v1_default \
-	check_px4nucleoF767ZI-v1_default \
-	check_s2740vc-v1_default \
+	check_stmnucleo-F767ZI_default \
+	check_thiemars2740vc-v1_default \
 	sizes
 
 # builds with RTPS
@@ -237,7 +242,7 @@ check_rtps: \
 	check_px4fmu-v3_rtps \
 	check_px4fmu-v4_rtps \
 	check_px4fmu-v4pro_rtps \
-	check_posix_sitl_rtps \
+	check_px4sitl_rtps \
 	sizes
 
 .PHONY: sizes check quick_check check_rtps uorb_graphs
@@ -443,4 +448,4 @@ help:
 
 # Print a list of all config targets.
 list_config_targets:
-	@for targ in $(patsubst nuttx_%,[nuttx_]%,$(ALL_CONFIG_TARGETS)); do echo $$targ; done
+	@for targ in $(patsubst %_default,%[_default],$(ALL_CONFIG_TARGETS)); do echo $$targ; done
diff --git a/ROMFS/CMakeLists.txt b/ROMFS/CMakeLists.txt
index 1abd3505eb..0b690e804a 100644
--- a/ROMFS/CMakeLists.txt
+++ b/ROMFS/CMakeLists.txt
@@ -87,13 +87,13 @@ add_custom_command(OUTPUT ${romfs_gen_root_dir}/init.d/rcS ${romfs_gen_root_dir}
 	COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_process_airframes.py
 		--airframes-path ${romfs_gen_root_dir}/init.d
 		--start-script ${romfs_gen_root_dir}/init.d/rc.autostart
-		--board ${BOARD}
+		--board ${PX4_BOARD}
 	COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/serial/generate_config.py
 		--rc-dir ${romfs_gen_root_dir}/init.d
 		--serial-ports ${board_serial_ports} ${added_arguments}
 		--config-files ${module_config_files} #--verbose
 	COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_romfs_pruner.py
-		--folder ${romfs_gen_root_dir} --board ${BOARD}
+		--folder ${romfs_gen_root_dir} --board ${PX4_BOARD}
 	DEPENDS
 		${jinja_templates}
 		${module_config_files}
@@ -107,15 +107,17 @@ add_custom_command(OUTPUT ${romfs_gen_root_dir}/init.d/rcS ${romfs_gen_root_dir}
 
 # copy extras into ROMFS
 set(extras_dependencies)
+
 # copy px4io binary if configured
-if (config_io_board)
+if(config_io_board)
 	list(APPEND extras_dependencies
 		copy_px4io_bin
 		${fw_io_bin}
 		)
 endif()
 
-if (config_bl_file)
+
+if(config_bl_file)
 	file(MAKE_DIRECTORY ${PX4_BINARY_DIR}/romfs_extras)
 	configure_file(${config_bl_file} ${PX4_BINARY_DIR}/romfs_extras COPYONLY)
 
diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS
index 02595c3ee3..f5fd17848f 100644
--- a/ROMFS/px4fmu_common/init.d/rcS
+++ b/ROMFS/px4fmu_common/init.d/rcS
@@ -71,7 +71,7 @@ set FEXTRAS /fs/microsd/etc/extras.txt
 set FRC /fs/microsd/etc/rc.txt
 set FMU_ARGS ""
 set FMU_MODE pwm
-set IOFW "/etc/extras/px4io-v2.bin"
+set IOFW "/etc/extras/px4io-v2_default.bin"
 set IO_PRESENT no
 set LOG_FILE /fs/microsd/bootlog.txt
 set MAV_TYPE none
@@ -367,7 +367,7 @@ else
 
 	#
 	# Check if PX4IO present and update firmware if needed.
-	# Assumption IOFW set to firware file and IO_PRESENT = no
+	# Assumption IOFW set to firmware file and IO_PRESENT = no
 	#
 
 	if [ -f $IOFW ]
diff --git a/Tools/astyle/files_to_check_code_style.sh b/Tools/astyle/files_to_check_code_style.sh
index cc3226b4d7..c5bc2169ec 100755
--- a/Tools/astyle/files_to_check_code_style.sh
+++ b/Tools/astyle/files_to_check_code_style.sh
@@ -10,7 +10,6 @@ fi
 
 exec find src platforms \
     -path platforms/nuttx/NuttX -prune -o \
-    -path platforms/nuttx/nuttx-configs -prune -o \
     -path src/lib/DriverFramework -prune -o \
     -path src/lib/ecl -prune -o \
     -path src/lib/matrix -prune -o \
diff --git a/Tools/docker_run.sh b/Tools/docker_run.sh
index f69da86e1d..8b09932ae5 100755
--- a/Tools/docker_run.sh
+++ b/Tools/docker_run.sh
@@ -5,14 +5,14 @@ if [ -z ${PX4_DOCKER_REPO+x} ]; then
 	if [[ $@ =~ .*px4fmu.* ]]; then
 		# nuttx-px4fmu-v{1,2,3,4,5}
 		PX4_DOCKER_REPO="px4io/px4-dev-nuttx:2018-11-22"
-	elif [[ $@ =~ .*rpi.* ]] || [[ $@ =~ .*bebop.* ]]; then
+	elif [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*bebop.* ]]; then
 		# posix_rpi_cross, posix_bebop_default
 		PX4_DOCKER_REPO="px4io/px4-dev-raspi:2018-11-22"
 	elif [[ $@ =~ .*eagle.* ]] || [[ $@ =~ .*excelsior.* ]]; then
 		# eagle, excelsior
 		PX4_DOCKER_REPO="lorenzmeier/px4-dev-snapdragon:2018-09-12"
 	elif [[ $@ =~ .*ocpoc.* ]]; then
-		# posix_ocpoc_ubuntu
+		# aerotennaocpoc_ubuntu
 		PX4_DOCKER_REPO="px4io/px4-dev-armhf:2018-11-22"
 	elif [[ $@ =~ .*clang.* ]] || [[ $@ =~ .*scan-build.* ]]; then	
 		# clang tools
diff --git a/Tools/sitl_multiple_run.sh b/Tools/sitl_multiple_run.sh
index 55d58a00a7..317b8f87d7 100755
--- a/Tools/sitl_multiple_run.sh
+++ b/Tools/sitl_multiple_run.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 # run multiple instances of the 'px4' binary, but w/o starting the simulator.
-# It assumes px4 is already built, with 'make posix_sitl_default'
+# It assumes px4 is already built, with 'make px4sitl_default'
 
 # The simulator is expected to send to UDP port 14560+i for i in [0, N-1]
 # For example jmavsim can be run like this:
@@ -12,7 +12,7 @@ sitl_num=2
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 src_path="$SCRIPT_DIR/.."
 
-build_path=${src_path}/build/posix_sitl_default
+build_path=${src_path}/build/px4sitl_default
 
 echo "killing running instances"
 pkill -x px4 || true
diff --git a/src/drivers/boards/rpi/CMakeLists.txt b/boards/aerotenna/ocpoc/src/CMakeLists.txt
similarity index 94%
rename from src/drivers/boards/rpi/CMakeLists.txt
rename to boards/aerotenna/ocpoc/src/CMakeLists.txt
index 01c98806a1..0b4ba0d6ac 100644
--- a/src/drivers/boards/rpi/CMakeLists.txt
+++ b/boards/aerotenna/ocpoc/src/CMakeLists.txt
@@ -30,7 +30,7 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 ############################################################################
+
 px4_add_library(drivers_board
-	../common/board_identity.c
+	${PX4_SOURCE_DIR}/src/drivers/boards/common/board_identity.c # TODO: this is horrible and should be fixed
 )
-
diff --git a/src/drivers/boards/ocpoc/board_config.h b/boards/aerotenna/ocpoc/src/board_config.h
similarity index 98%
rename from src/drivers/boards/ocpoc/board_config.h
rename to boards/aerotenna/ocpoc/src/board_config.h
index d2a5b1005f..573aaa9c63 100644
--- a/src/drivers/boards/ocpoc/board_config.h
+++ b/boards/aerotenna/ocpoc/src/board_config.h
@@ -58,4 +58,4 @@
 #define ADC_AIRSPEED_VOLTAGE_CHANNEL    11
 
 #include <system_config.h>
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
diff --git a/boards/aerotenna/ocpoc/ubuntu.cmake b/boards/aerotenna/ocpoc/ubuntu.cmake
new file mode 100644
index 0000000000..72cbaf19bc
--- /dev/null
+++ b/boards/aerotenna/ocpoc/ubuntu.cmake
@@ -0,0 +1,86 @@
+
+px4_add_board(
+	VENDOR aerotenna
+	MODEL ocpoc
+	LABEL ubuntu
+	PLATFORM posix
+	ARCH cortex-a9
+	TOOLCHAIN Toolchain-arm-linux-gnueabihf
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		linux_pwm_out
+		linux_sbus
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		ocpoc_adc
+		rgbled
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+	DF_DRIVERS # NOTE: DriverFramework is migrating to intree PX4 drivers
+		mpu9250
+		ms5611
+		hmc5883
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#simulator
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		esc_calib
+		led_control
+		mixer
+		motor_ramp
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/boards/airmind/mindpx-v2/default.cmake b/boards/airmind/mindpx-v2/default.cmake
new file mode 100644
index 0000000000..5efb53b359
--- /dev/null
+++ b/boards/airmind/mindpx-v2/default.cmake
@@ -0,0 +1,116 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR airmind
+	MODEL mindpx-v2
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	TESTING
+	UAVCAN_INTERFACES 1
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/l3gd20
+		imu/lsm303d
+		imu/mpu6000
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		mkblctrl
+		oreoled
+		pca9685
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		rc_input
+		rgbled
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/mindpx-v2.prototype b/boards/airmind/mindpx-v2/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/mindpx-v2.prototype
rename to boards/airmind/mindpx-v2/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/mindpx-v2/include/board.h b/boards/airmind/mindpx-v2/nuttx-config/include/board.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/mindpx-v2/include/board.h
rename to boards/airmind/mindpx-v2/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/mindpx-v2/nsh/defconfig b/boards/airmind/mindpx-v2/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/mindpx-v2/nsh/defconfig
rename to boards/airmind/mindpx-v2/nuttx-config/nsh/defconfig
index 1df40c9596..6fd95f2263 100644
--- a/platforms/nuttx/nuttx-configs/mindpx-v2/nsh/defconfig
+++ b/boards/airmind/mindpx-v2/nuttx-config/nsh/defconfig
@@ -688,7 +688,7 @@ CONFIG_RAM_SIZE=262144
 # Board Selection
 #
 CONFIG_ARCH_BOARD_MINDPX_V2=y
-CONFIG_ARCH_BOARD="mindpx-v2"
+CONFIG_ARCH_BOARD="airmindmindpx-v2"
 
 #
 # Custom Board Configuration
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v2/scripts/ld_full.script b/boards/airmind/mindpx-v2/nuttx-config/scripts/ld.script
similarity index 99%
rename from platforms/nuttx/nuttx-configs/px4fmu-v2/scripts/ld_full.script
rename to boards/airmind/mindpx-v2/nuttx-config/scripts/ld.script
index 1a96d0a738..0d19229c01 100644
--- a/platforms/nuttx/nuttx-configs/px4fmu-v2/scripts/ld_full.script
+++ b/boards/airmind/mindpx-v2/nuttx-config/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * nuttx-configs/px4fmu-v3/scripts/ld.script
+ * scripts/ld.script
  *
  *   Copyright (C) 2011 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
diff --git a/src/drivers/boards/mindpx-v2/CMakeLists.txt b/boards/airmind/mindpx-v2/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/mindpx-v2/CMakeLists.txt
rename to boards/airmind/mindpx-v2/src/CMakeLists.txt
diff --git a/src/drivers/boards/mindpx-v2/board_config.h b/boards/airmind/mindpx-v2/src/board_config.h
similarity index 99%
rename from src/drivers/boards/mindpx-v2/board_config.h
rename to boards/airmind/mindpx-v2/src/board_config.h
index 62bb6e8a54..a046456a90 100644
--- a/src/drivers/boards/mindpx-v2/board_config.h
+++ b/boards/airmind/mindpx-v2/src/board_config.h
@@ -372,7 +372,7 @@ extern void stm32_usbinitialize(void);
 #define board_peripheral_reset(ms)
 
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/mindpx-v2/can.c b/boards/airmind/mindpx-v2/src/can.c
similarity index 100%
rename from src/drivers/boards/mindpx-v2/can.c
rename to boards/airmind/mindpx-v2/src/can.c
diff --git a/src/drivers/boards/mindpx-v2/init.c b/boards/airmind/mindpx-v2/src/init.c
similarity index 100%
rename from src/drivers/boards/mindpx-v2/init.c
rename to boards/airmind/mindpx-v2/src/init.c
diff --git a/src/drivers/boards/mindpx-v2/led.c b/boards/airmind/mindpx-v2/src/led.c
similarity index 100%
rename from src/drivers/boards/mindpx-v2/led.c
rename to boards/airmind/mindpx-v2/src/led.c
diff --git a/src/drivers/boards/mindpx-v2/spi.c b/boards/airmind/mindpx-v2/src/spi.c
similarity index 100%
rename from src/drivers/boards/mindpx-v2/spi.c
rename to boards/airmind/mindpx-v2/src/spi.c
diff --git a/src/drivers/boards/mindpx-v2/timer_config.c b/boards/airmind/mindpx-v2/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/mindpx-v2/timer_config.c
rename to boards/airmind/mindpx-v2/src/timer_config.c
diff --git a/src/drivers/boards/mindpx-v2/usb.c b/boards/airmind/mindpx-v2/src/usb.c
similarity index 100%
rename from src/drivers/boards/mindpx-v2/usb.c
rename to boards/airmind/mindpx-v2/src/usb.c
diff --git a/cmake/cmake_hexagon b/boards/atlflight/cmake_hexagon
similarity index 100%
rename from cmake/cmake_hexagon
rename to boards/atlflight/cmake_hexagon
diff --git a/boards/atlflight/eagle/default.cmake b/boards/atlflight/eagle/default.cmake
new file mode 100644
index 0000000000..7a6fa1573c
--- /dev/null
+++ b/boards/atlflight/eagle/default.cmake
@@ -0,0 +1,115 @@
+
+# The Eagle board is the first generation Snapdragon Flight board by Qualcomm.
+
+include(px4_git)
+px4_add_git_submodule(TARGET git_cmake_hexagon PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
+list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
+
+# Get $QC_SOC_TARGET from environment if existing.
+if (DEFINED ENV{QC_SOC_TARGET})
+	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
+else()
+	set(QC_SOC_TARGET "APQ8074")
+endif()
+
+# Disable the creation of the parameters.xml file by scanning individual
+# source files, and scan all source files.  This will create a parameters.xml
+# file that contains all possible parameters, even if the associated module
+# is not used.  This is necessary for parameter synchronization between the
+# ARM and DSP processors.
+set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
+
+set(CONFIG_SHMEM "1")
+add_definitions(-DORB_COMMUNICATOR)
+
+# This definition allows to differentiate if this just the usual POSIX build
+# or if it is for the Snapdragon.
+add_definitions(-D__PX4_POSIX_EAGLE)
+
+px4_add_board(
+	PLATFORM posix
+	VENDOR atlflight
+	MODEL eagle
+	LABEL default
+	TESTING
+	TOOLCHAIN
+		toolchain/Toolchain-arm-linux-gnueabihf
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		linux_sbus
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		rgbled
+		pwm_out_sim
+		qshell/posix
+		#telemetry # all available telemetry drivers
+		vmount
+
+	MODULES
+		muorb/krait
+
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		simulator
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		#bl_update
+		#config
+		#dumpfile
+		esc_calib
+		#hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		#mtd
+		#nshterm
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/boards/atlflight/eagle/qurt-default.cmake b/boards/atlflight/eagle/qurt-default.cmake
new file mode 100644
index 0000000000..8efdc34ee5
--- /dev/null
+++ b/boards/atlflight/eagle/qurt-default.cmake
@@ -0,0 +1,83 @@
+
+# The Eagle board is the first generation Snapdragon Flight board by Qualcomm.
+#
+# This cmake config builds for QURT which is the operating system running on
+# the DSP side.
+
+# Get $QC_SOC_TARGET from environment if existing.
+if (DEFINED ENV{QC_SOC_TARGET})
+	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
+else()
+	set(QC_SOC_TARGET "APQ8074")
+endif()
+
+include(px4_git)
+px4_add_git_submodule(TARGET git_cmake_hexagon PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
+list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
+
+if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
+	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
+else()
+	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
+endif()
+
+include(toolchain/Toolchain-qurt)
+include(qurt_flags)
+include_directories(${HEXAGON_SDK_INCLUDES})
+
+set(CONFIG_SHMEM "1")
+add_definitions(-DORB_COMMUNICATOR)
+
+# Disable the creation of the parameters.xml file by scanning individual
+# source files, and scan all source files.  This will create a parameters.xml
+# file that contains all possible parameters, even if the associated module
+# is not used.  This is necessary for parameter synchronization between the
+# ARM and DSP processors.
+set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
+
+# This definition allows to differentiate the specific board.
+add_definitions(-D__PX4_QURT_EAGLE)
+
+px4_add_board(
+	PLATFORM qurt
+	VENDOR atlflight
+	MODEL eagle
+	LABEL qurt-default
+
+	DRIVERS
+		gps
+		spektrum_rc
+		qshell/qurt
+		snapdragon_pwm_out
+
+	DF_DRIVERS
+		mpu9250
+		bmp280
+		hmc5883
+		trone
+		isl29501
+		ltc2946
+
+	MODULES
+		muorb/adsp
+
+		attitude_estimator_q
+		commander
+		ekf2
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		land_detector
+		landing_target_estimator
+		local_position_estimator
+		mc_att_control
+		mc_pos_control
+		position_estimator_inav
+		sensors
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		param
+	)
diff --git a/src/drivers/boards/sitl/CMakeLists.txt b/boards/atlflight/eagle/src/CMakeLists.txt
similarity index 94%
rename from src/drivers/boards/sitl/CMakeLists.txt
rename to boards/atlflight/eagle/src/CMakeLists.txt
index 0e1bba3e59..03d93f29ec 100644
--- a/src/drivers/boards/sitl/CMakeLists.txt
+++ b/boards/atlflight/eagle/src/CMakeLists.txt
@@ -32,6 +32,6 @@
 ############################################################################
 
 px4_add_library(drivers_board
+	${PX4_SOURCE_DIR}/src/drivers/boards/common/board_identity.c # TODO: this is horrible and should be fixed
 	sitl_led.c
-	../common/board_identity.c
-	)
+)
diff --git a/src/drivers/boards/eagle/board_config.h b/boards/atlflight/eagle/src/board_config.h
similarity index 97%
rename from src/drivers/boards/eagle/board_config.h
rename to boards/atlflight/eagle/src/board_config.h
index 14149e6657..c52a8a473e 100644
--- a/src/drivers/boards/eagle/board_config.h
+++ b/boards/atlflight/eagle/src/board_config.h
@@ -61,4 +61,4 @@
 #define PX4_NUMBER_I2C_BUSES 3
 
 #include <system_config.h>
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
diff --git a/src/drivers/boards/sitl/sitl_led.c b/boards/atlflight/eagle/src/sitl_led.c
similarity index 100%
rename from src/drivers/boards/sitl/sitl_led.c
rename to boards/atlflight/eagle/src/sitl_led.c
diff --git a/boards/atlflight/excelsior/default.cmake b/boards/atlflight/excelsior/default.cmake
new file mode 100644
index 0000000000..10b66aa1cf
--- /dev/null
+++ b/boards/atlflight/excelsior/default.cmake
@@ -0,0 +1,115 @@
+
+# Excelsior is the code name of a board currently in development.
+
+include(px4_git)
+px4_add_git_submodule(TARGET git_cmake_hexagon PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
+list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
+
+# Get $QC_SOC_TARGET from environment if existing.
+if (DEFINED ENV{QC_SOC_TARGET})
+	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
+else()
+	set(QC_SOC_TARGET "APQ8074")
+endif()
+
+# Disable the creation of the parameters.xml file by scanning individual
+# source files, and scan all source files.  This will create a parameters.xml
+# file that contains all possible parameters, even if the associated module
+# is not used.  This is necessary for parameter synchronization between the
+# ARM and DSP processors.
+set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
+
+set(CONFIG_SHMEM "1")
+add_definitions(-DORB_COMMUNICATOR)
+
+# This definition allows to differentiate if this just the usual POSIX build
+# or if it is for the Snapdragon.
+add_definitions(-D__PX4_POSIX_EXCELSIOR)
+
+px4_add_board(
+	PLATFORM posix
+	VENDOR atlflight
+	MODEL excelsior
+	LABEL default
+	TESTING
+	TOOLCHAIN
+		toolchain/Toolchain-arm-oemllib32-linux-gnueabi
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		linux_sbus
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		rgbled
+		pwm_out_sim
+		qshell/posix
+		#telemetry # all available telemetry drivers
+		vmount
+
+	MODULES
+		muorb/krait
+
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		simulator
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		#bl_update
+		#config
+		#dumpfile
+		esc_calib
+		#hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		#mtd
+		#nshterm
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/boards/atlflight/excelsior/qurt-default.cmake b/boards/atlflight/excelsior/qurt-default.cmake
new file mode 100644
index 0000000000..7840eae554
--- /dev/null
+++ b/boards/atlflight/excelsior/qurt-default.cmake
@@ -0,0 +1,82 @@
+# Excelsior is the code name of a board currently in development.
+#
+# This cmake config builds for QURT which is the operating system running on
+# the DSP side.
+
+# Get $QC_SOC_TARGET from environment if existing.
+if (DEFINED ENV{QC_SOC_TARGET})
+	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
+else()
+	set(QC_SOC_TARGET "APQ8074")
+endif()
+
+include(px4_git)
+px4_add_git_submodule(TARGET git_cmake_hexagon PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
+list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
+
+if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
+	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
+else()
+	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
+endif()
+
+include(toolchain/Toolchain-qurt)
+include(qurt_flags)
+include_directories(${HEXAGON_SDK_INCLUDES})
+
+set(CONFIG_SHMEM "1")
+add_definitions(-DORB_COMMUNICATOR)
+
+# Disable the creation of the parameters.xml file by scanning individual
+# source files, and scan all source files.  This will create a parameters.xml
+# file that contains all possible parameters, even if the associated module
+# is not used.  This is necessary for parameter synchronization between the
+# ARM and DSP processors.
+set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
+
+# This definition allows to differentiate the specific board.
+add_definitions(-D__PX4_QURT_EXCELSIOR)
+
+px4_add_board(
+	PLATFORM qurt
+	VENDOR atlflight
+	MODEL excelsior
+	LABEL qurt-default
+
+	DRIVERS
+		gps
+		spektrum_rc
+		qshell/qurt
+		snapdragon_pwm_out
+
+	DF_DRIVERS
+		mpu9250
+		bmp280
+		hmc5883
+		trone
+		isl29501
+		ltc2946
+
+	MODULES
+		muorb/adsp
+
+		attitude_estimator_q
+		commander
+		ekf2
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		land_detector
+		landing_target_estimator
+		local_position_estimator
+		mc_att_control
+		mc_pos_control
+		position_estimator_inav
+		sensors
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		param
+	)
diff --git a/src/drivers/boards/excelsior/board_config.h b/boards/atlflight/excelsior/src/board_config.h
similarity index 100%
rename from src/drivers/boards/excelsior/board_config.h
rename to boards/atlflight/excelsior/src/board_config.h
diff --git a/boards/atmel/same70xplained/default.cmake b/boards/atmel/same70xplained/default.cmake
new file mode 100644
index 0000000000..78015e0d5a
--- /dev/null
+++ b/boards/atmel/same70xplained/default.cmake
@@ -0,0 +1,116 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR atmel
+	MODEL same70xplained
+	ARCH cortex-m7
+	ROMFS
+	ROMFSROOT px4fmu_common
+	TESTING
+	#UAVCAN_INTERFACES 1
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		#camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/mpu6000
+		imu/mpu9250
+		imu/lsm303d
+		imu/l3gd20
+		irlock
+		magnetometer # all available magnetometer drivers
+		mkblctrl
+		oreoled
+		pca9685
+		#pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		#rc_input
+		rgbled
+		samv7
+		#WIP samv7/adc
+		samv7/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		#test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#WIP uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		#WIP hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		#mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		#usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/px4-same70xplained-v1.prototype b/boards/atmel/same70xplained/firmware.prototype
similarity index 87%
rename from platforms/nuttx/Images/px4-same70xplained-v1.prototype
rename to boards/atmel/same70xplained/firmware.prototype
index 6c809b4a3b..f5596f2ca2 100644
--- a/platforms/nuttx/Images/px4-same70xplained-v1.prototype
+++ b/boards/atmel/same70xplained/firmware.prototype
@@ -4,7 +4,7 @@
     "description": "Firmware for the SAME70xplained board",
     "image": "",
     "build_time": 0,
-    "summary": "PX4/SAME70xplained",
+    "summary": "Atmel/SAME70xplained",
     "version": "0.1",
     "image_size": 0,
     "image_maxsize": 2097152,
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/include/board.h b/boards/atmel/same70xplained/nuttx-config/include/board.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4-same70xplained-v1/include/board.h
rename to boards/atmel/same70xplained/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/nsh/defconfig b/boards/atmel/same70xplained/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/px4-same70xplained-v1/nsh/defconfig
rename to boards/atmel/same70xplained/nuttx-config/nsh/defconfig
index faabb2d5e2..b080131854 100644
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/nsh/defconfig
+++ b/boards/atmel/same70xplained/nuttx-config/nsh/defconfig
@@ -427,9 +427,9 @@ CONFIG_RAM_SIZE=393216
 # Board Selection
 #
 # CONFIG_ARCH_BOARD_SAME70_XPLAINED is not set
-CONFIG_ARCH_BOARD_PX4_SAME70XPLAINED_V1=y
+CONFIG_ARCH_BOARD_ATMELSAME70XPLAINED=y
 # CONFIG_ARCH_BOARD_CUSTOM is not set
-CONFIG_ARCH_BOARD="px4-same70xplained-v1"
+CONFIG_ARCH_BOARD="atmelsame70xplained"
 
 #
 # Common Board Options
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/ld.script b/boards/atmel/same70xplained/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/ld.script
rename to boards/atmel/same70xplained/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/px4-same70xplained-v1/CMakeLists.txt b/boards/atmel/same70xplained/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4-same70xplained-v1/CMakeLists.txt
rename to boards/atmel/same70xplained/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4-same70xplained-v1/README.md b/boards/atmel/same70xplained/src/README.md
similarity index 88%
rename from src/drivers/boards/px4-same70xplained-v1/README.md
rename to boards/atmel/same70xplained/src/README.md
index e382599ca7..cfef569764 100644
--- a/src/drivers/boards/px4-same70xplained-v1/README.md
+++ b/boards/atmel/same70xplained/src/README.md
@@ -8,9 +8,9 @@ http://www.atmel.com/tools/ATSAME70-XPLD.aspx
 2. git checkout same70xplained
 3. make clean
 4. git submudule update --init --recursive
-5. make px4-same70xplained-v1_default
+5. make px4same70xplained-v1_default
 
-The ELF file Firmare will be in `build_px4-same70xplained-v1_default/src/firmware/nuttx/`
+The ELF file Firmare will be in `build/px4same70xplained-v1_default/`
 
 The EFL file name is `firmware_nuttx`
 
diff --git a/src/drivers/boards/px4-same70xplained-v1/board_config.h b/boards/atmel/same70xplained/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4-same70xplained-v1/board_config.h
rename to boards/atmel/same70xplained/src/board_config.h
index 45dfcc8022..46dc3b8967 100644
--- a/src/drivers/boards/px4-same70xplained-v1/board_config.h
+++ b/boards/atmel/same70xplained/src/board_config.h
@@ -549,7 +549,7 @@ bool sam_writeprotected(int slotno);
 int sam_at24config(void);
 #endif
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4-same70xplained-v1/can.c b/boards/atmel/same70xplained/src/can.c
similarity index 100%
rename from src/drivers/boards/px4-same70xplained-v1/can.c
rename to boards/atmel/same70xplained/src/can.c
diff --git a/src/drivers/boards/px4-same70xplained-v1/init.c b/boards/atmel/same70xplained/src/init.c
similarity index 100%
rename from src/drivers/boards/px4-same70xplained-v1/init.c
rename to boards/atmel/same70xplained/src/init.c
diff --git a/src/drivers/boards/px4-same70xplained-v1/led.c b/boards/atmel/same70xplained/src/led.c
similarity index 100%
rename from src/drivers/boards/px4-same70xplained-v1/led.c
rename to boards/atmel/same70xplained/src/led.c
diff --git a/src/drivers/boards/px4-same70xplained-v1/sdram.c b/boards/atmel/same70xplained/src/sdram.c
similarity index 100%
rename from src/drivers/boards/px4-same70xplained-v1/sdram.c
rename to boards/atmel/same70xplained/src/sdram.c
diff --git a/src/drivers/boards/px4-same70xplained-v1/spi.c b/boards/atmel/same70xplained/src/spi.c
similarity index 100%
rename from src/drivers/boards/px4-same70xplained-v1/spi.c
rename to boards/atmel/same70xplained/src/spi.c
diff --git a/src/drivers/boards/px4-same70xplained-v1/timer_config.c b/boards/atmel/same70xplained/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/px4-same70xplained-v1/timer_config.c
rename to boards/atmel/same70xplained/src/timer_config.c
diff --git a/src/drivers/boards/px4-same70xplained-v1/usb.c b/boards/atmel/same70xplained/src/usb.c
similarity index 100%
rename from src/drivers/boards/px4-same70xplained-v1/usb.c
rename to boards/atmel/same70xplained/src/usb.c
diff --git a/cmake/configs/nuttx_esc35-v1_default.cmake b/boards/auav/esc35-v1/default.cmake
similarity index 60%
rename from cmake/configs/nuttx_esc35-v1_default.cmake
rename to boards/auav/esc35-v1/default.cmake
index 316814eab2..f99e4bd815 100644
--- a/cmake/configs/nuttx_esc35-v1_default.cmake
+++ b/boards/auav/esc35-v1/default.cmake
@@ -6,8 +6,6 @@ add_definitions(
 	-DPARAMETER_BUFFER_SIZE=1024
 )
 
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh)
-
 # UAVCAN boot loadable Module ID
 set(uavcanblid_sw_version_major 0)
 set(uavcanblid_sw_version_minor 1)
@@ -17,17 +15,20 @@ add_definitions(
 	)
 
 # Bring in common uavcan hardware identity definitions
-include(common/px4_git)
+include(px4_git)
 px4_add_git_submodule(TARGET git_uavcan_board_ident PATH "cmake/configs/uavcan_board_ident")
 include(configs/uavcan_board_ident/esc35-v1)
+
 add_definitions(
 	-DHW_UAVCAN_NAME=${uavcanblid_name}
 	-DHW_VERSION_MAJOR=${uavcanblid_hw_version_major}
 	-DHW_VERSION_MINOR=${uavcanblid_hw_version_minor}
 )
 
-px4_nuttx_make_uavcan_bootloadable(BOARD ${BOARD}
-	BIN ${PX4_BINARY_DIR}/esc35-v1.bin
+include(px4_make_uavcan_bootloader)
+px4_make_uavcan_bootloadable(
+	BOARD auavesc35
+	BIN ${PX4_BINARY_DIR}/auavesc35-v1.bin
 	HWNAME ${uavcanblid_name}
 	HW_MAJOR ${uavcanblid_hw_version_major}
 	HW_MINOR ${uavcanblid_hw_version_minor}
@@ -35,29 +36,30 @@ px4_nuttx_make_uavcan_bootloadable(BOARD ${BOARD}
 	SW_MINOR ${uavcanblid_sw_version_minor}
 )
 
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/stm32
-
-	#
-	# System commands
-	#
-	systemcmds/config
-	systemcmds/reboot
-	systemcmds/top
-	systemcmds/param
-	systemcmds/ver
-
-	#
-	# General system control
-	#
-	modules/uavcanesc
-	modules/uavcanesc/nshterm
-	modules/uavcanesc/commands/cfg
-	modules/uavcanesc/commands/selftest
-	modules/uavcanesc/commands/dc
-	modules/uavcanesc/commands/rpm
-	modules/uavcanesc/commands/stat
-)
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR auav
+	MODEL esc35-v1
+	ARCH cortex-m4
+
+	DRIVERS
+		bootloaders
+		stm32
+
+	MODULES
+		uavcanesc
+		uavcanesc/nshterm
+		uavcanesc/commands/cfg
+		uavcanesc/commands/selftest
+		uavcanesc/commands/dc
+		uavcanesc/commands/rpm
+		uavcanesc/commands/stat
+
+	SYSTEMCMDS
+		config
+		reboot
+		param
+		top
+		ver
+
+	)
diff --git a/platforms/nuttx/Images/esc35-v1.prototype b/boards/auav/esc35-v1/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/esc35-v1.prototype
rename to boards/auav/esc35-v1/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/esc35-v1/Kconfig b/boards/auav/esc35-v1/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/esc35-v1/Kconfig
rename to boards/auav/esc35-v1/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/esc35-v1/include/README.txt b/boards/auav/esc35-v1/nuttx-config/include/README.txt
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/esc35-v1/include/README.txt
rename to boards/auav/esc35-v1/nuttx-config/include/README.txt
diff --git a/platforms/nuttx/nuttx-configs/esc35-v1/include/board.h b/boards/auav/esc35-v1/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/esc35-v1/include/board.h
rename to boards/auav/esc35-v1/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/esc35-v1/nsh/defconfig b/boards/auav/esc35-v1/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/esc35-v1/nsh/defconfig
rename to boards/auav/esc35-v1/nuttx-config/nsh/defconfig
index e344fbe3f7..f9b2beffe9 100644
--- a/platforms/nuttx/nuttx-configs/esc35-v1/nsh/defconfig
+++ b/boards/auav/esc35-v1/nuttx-config/nsh/defconfig
@@ -559,8 +559,8 @@ CONFIG_RAM_SIZE=131072
 #
 # Board Selection
 #
-CONFIG_ARCH_BOARD_ESC35_V1=y
-CONFIG_ARCH_BOARD="esc35-v1"
+CONFIG_ARCH_BOARD_AUAVESC35_V1=y
+CONFIG_ARCH_BOARD="auavesc35-v1"
 
 #
 # Custom Board Configuration
diff --git a/platforms/nuttx/nuttx-configs/esc35-v1/scripts/ld.script b/boards/auav/esc35-v1/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/esc35-v1/scripts/ld.script
rename to boards/auav/esc35-v1/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/esc35-v1/CMakeLists.txt b/boards/auav/esc35-v1/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/esc35-v1/CMakeLists.txt
rename to boards/auav/esc35-v1/src/CMakeLists.txt
diff --git a/src/drivers/boards/esc35-v1/board_config.h b/boards/auav/esc35-v1/src/board_config.h
similarity index 99%
rename from src/drivers/boards/esc35-v1/board_config.h
rename to boards/auav/esc35-v1/src/board_config.h
index 63dedcc7a2..5776c41f59 100644
--- a/src/drivers/boards/esc35-v1/board_config.h
+++ b/boards/auav/esc35-v1/src/board_config.h
@@ -275,7 +275,7 @@ int usbmsc_archinitialize(void);
 extern int composite_archinitialize(void);
 #endif
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/esc35-v1/init.c b/boards/auav/esc35-v1/src/init.c
similarity index 100%
rename from src/drivers/boards/esc35-v1/init.c
rename to boards/auav/esc35-v1/src/init.c
diff --git a/src/drivers/boards/esc35-v1/led.c b/boards/auav/esc35-v1/src/led.c
similarity index 100%
rename from src/drivers/boards/esc35-v1/led.c
rename to boards/auav/esc35-v1/src/led.c
diff --git a/src/drivers/boards/esc35-v1/usb.c b/boards/auav/esc35-v1/src/usb.c
similarity index 100%
rename from src/drivers/boards/esc35-v1/usb.c
rename to boards/auav/esc35-v1/src/usb.c
diff --git a/boards/auav/x21/default.cmake b/boards/auav/x21/default.cmake
new file mode 100644
index 0000000000..01d545775e
--- /dev/null
+++ b/boards/auav/x21/default.cmake
@@ -0,0 +1,122 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR auav
+	MODEL x21
+	LABEL default
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	UAVCAN_INTERFACES 1
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/mpu6000
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		#pmw3901
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		#rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/auav-x21.prototype b/boards/auav/x21/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/auav-x21.prototype
rename to boards/auav/x21/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/auav-x21/include/board.h b/boards/auav/x21/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/auav-x21/include/board.h
rename to boards/auav/x21/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/auav-x21/nsh/defconfig b/boards/auav/x21/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/auav-x21/nsh/defconfig
rename to boards/auav/x21/nuttx-config/nsh/defconfig
index 04be1628ce..b25df9dc59 100644
--- a/platforms/nuttx/nuttx-configs/auav-x21/nsh/defconfig
+++ b/boards/auav/x21/nuttx-config/nsh/defconfig
@@ -688,7 +688,7 @@ CONFIG_RAM_SIZE=262144
 # Board Selection
 #
 CONFIG_ARCH_BOARD_AUAV_X21=y
-CONFIG_ARCH_BOARD="auav-x21"
+CONFIG_ARCH_BOARD="auavx21"
 
 #
 # Custom Board Configuration
diff --git a/platforms/nuttx/nuttx-configs/auav-x21/scripts/ld.script b/boards/auav/x21/nuttx-config/scripts/ld.script
similarity index 93%
rename from platforms/nuttx/nuttx-configs/auav-x21/scripts/ld.script
rename to boards/auav/x21/nuttx-config/scripts/ld.script
index c981791f1f..0d19229c01 100644
--- a/platforms/nuttx/nuttx-configs/auav-x21/scripts/ld.script
+++ b/boards/auav/x21/nuttx-config/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * configs/auav_x21/common/ld.script
+ * scripts/ld.script
  *
  *   Copyright (C) 2011 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
@@ -72,13 +72,13 @@ SECTIONS
 	.text : {
 		_stext = ABSOLUTE(.);
 		*(.vectors)
-                . = ALIGN(32);
-                /*
-                This signature provides the bootloader with a way to delay booting
-                */
-                _bootdelay_signature = ABSOLUTE(.);
-                FILL(0xffecc2925d7d05c5)
-                . += 8;
+		. = ALIGN(32);
+		/*
+		This signature provides the bootloader with a way to delay booting
+		*/
+		_bootdelay_signature = ABSOLUTE(.);
+		FILL(0xffecc2925d7d05c5)
+		. += 8;
 		*(.text .text.*)
 		*(.fixup)
 		*(.gnu.warning)
diff --git a/src/drivers/boards/aerocore2/CMakeLists.txt b/boards/auav/x21/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/aerocore2/CMakeLists.txt
rename to boards/auav/x21/src/CMakeLists.txt
diff --git a/src/drivers/boards/auav-x21/board_config.h b/boards/auav/x21/src/board_config.h
similarity index 99%
rename from src/drivers/boards/auav-x21/board_config.h
rename to boards/auav/x21/src/board_config.h
index 5ebeedba96..0751728e84 100644
--- a/src/drivers/boards/auav-x21/board_config.h
+++ b/boards/auav/x21/src/board_config.h
@@ -300,7 +300,7 @@ extern void stm32_usbinitialize(void);
 
 extern void stm32_spiinitialize(void);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 __END_DECLS
diff --git a/src/drivers/boards/auav-x21/can.c b/boards/auav/x21/src/can.c
similarity index 100%
rename from src/drivers/boards/auav-x21/can.c
rename to boards/auav/x21/src/can.c
diff --git a/src/drivers/boards/auav-x21/init.c b/boards/auav/x21/src/init.c
similarity index 100%
rename from src/drivers/boards/auav-x21/init.c
rename to boards/auav/x21/src/init.c
diff --git a/src/drivers/boards/auav-x21/led.c b/boards/auav/x21/src/led.c
similarity index 100%
rename from src/drivers/boards/auav-x21/led.c
rename to boards/auav/x21/src/led.c
diff --git a/src/drivers/boards/auav-x21/spi.c b/boards/auav/x21/src/spi.c
similarity index 100%
rename from src/drivers/boards/auav-x21/spi.c
rename to boards/auav/x21/src/spi.c
diff --git a/src/drivers/boards/auav-x21/timer_config.c b/boards/auav/x21/src/timer_config.c
similarity index 99%
rename from src/drivers/boards/auav-x21/timer_config.c
rename to boards/auav/x21/src/timer_config.c
index b5197dd46d..66f375b0a6 100644
--- a/src/drivers/boards/auav-x21/timer_config.c
+++ b/boards/auav/x21/src/timer_config.c
@@ -48,7 +48,7 @@
 #include <drivers/drv_pwm_output.h>
 #include <drivers/stm32/drv_io_timer.h>
 
-#include "../auav-x21/board_config.h"
+#include "board_config.h"
 
 __EXPORT const io_timers_t io_timers[MAX_IO_TIMERS] = {
 	{
diff --git a/src/drivers/boards/auav-x21/usb.c b/boards/auav/x21/src/usb.c
similarity index 99%
rename from src/drivers/boards/auav-x21/usb.c
rename to boards/auav/x21/src/usb.c
index 0e4d8ed279..4d43e8bea2 100644
--- a/src/drivers/boards/auav-x21/usb.c
+++ b/boards/auav/x21/src/usb.c
@@ -54,7 +54,7 @@
 #include <up_arch.h>
 #include <stm32.h>
 
-#include "../auav-x21/board_config.h"
+#include "board_config.h"
 
 /************************************************************************************
  * Definitions
diff --git a/boards/av/x-v1/default.cmake b/boards/av/x-v1/default.cmake
new file mode 100644
index 0000000000..5f35ca58eb
--- /dev/null
+++ b/boards/av/x-v1/default.cmake
@@ -0,0 +1,121 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR av
+	MODEL x-v1
+	ARCH cortex-m7
+	ROMFS
+	ROMFSROOT px4fmu_common
+	TESTING
+	UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS6
+		TEL1:/dev/ttyS0
+		TEL2:/dev/ttyS1
+		TEL3:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/adis16477
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		#oreoled
+		#pca8574
+		pca9685
+		#pmw3901
+		protocol_splitter
+		#pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		rc_input
+		#rgbled
+		#rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		#stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		#usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/av-x-v1.prototype b/boards/av/x-v1/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/av-x-v1.prototype
rename to boards/av/x-v1/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/av-x-v1/include/board.h b/boards/av/x-v1/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/av-x-v1/include/board.h
rename to boards/av/x-v1/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/av-x-v1/nsh/defconfig b/boards/av/x-v1/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/av-x-v1/nsh/defconfig
rename to boards/av/x-v1/nuttx-config/nsh/defconfig
index 480d450895..9f8ce9c53e 100644
--- a/platforms/nuttx/nuttx-configs/av-x-v1/nsh/defconfig
+++ b/boards/av/x-v1/nuttx-config/nsh/defconfig
@@ -533,8 +533,8 @@ CONFIG_RAM_SIZE=376832
 #
 # Board Selection
 #
-CONFIG_ARCH_BOARD_AV_X_V1=y
-CONFIG_ARCH_BOARD="av-x-v1"
+CONFIG_ARCH_BOARD_AVX_V1=y
+CONFIG_ARCH_BOARD="avx-v1"
 
 #
 # Common Board Options
diff --git a/platforms/nuttx/nuttx-configs/av-x-v1/scripts/ld.script b/boards/av/x-v1/nuttx-config/scripts/ld.script
similarity index 99%
rename from platforms/nuttx/nuttx-configs/av-x-v1/scripts/ld.script
rename to boards/av/x-v1/nuttx-config/scripts/ld.script
index 098afbafd9..fae1d95de0 100644
--- a/platforms/nuttx/nuttx-configs/av-x-v1/scripts/ld.script
+++ b/boards/av/x-v1/nuttx-config/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * nuttx-configs/av-x/scripts/script.ld
+ * scripts/script.ld
  *
  *   Copyright (C) 2016 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
diff --git a/src/drivers/boards/av-x-v1/CMakeLists.txt b/boards/av/x-v1/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/av-x-v1/CMakeLists.txt
rename to boards/av/x-v1/src/CMakeLists.txt
diff --git a/src/drivers/boards/av-x-v1/board_config.h b/boards/av/x-v1/src/board_config.h
similarity index 99%
rename from src/drivers/boards/av-x-v1/board_config.h
rename to boards/av/x-v1/src/board_config.h
index 75ad3c569c..6c55b92ac7 100644
--- a/src/drivers/boards/av-x-v1/board_config.h
+++ b/boards/av/x-v1/src/board_config.h
@@ -471,7 +471,7 @@ void board_spi_reset(int ms);
 int nsh_archinitialize(void);
 #endif
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/av-x-v1/init.c b/boards/av/x-v1/src/init.c
similarity index 100%
rename from src/drivers/boards/av-x-v1/init.c
rename to boards/av/x-v1/src/init.c
diff --git a/src/drivers/boards/av-x-v1/manifest.c b/boards/av/x-v1/src/manifest.c
similarity index 100%
rename from src/drivers/boards/av-x-v1/manifest.c
rename to boards/av/x-v1/src/manifest.c
diff --git a/src/drivers/boards/av-x-v1/sdio.c b/boards/av/x-v1/src/sdio.c
similarity index 100%
rename from src/drivers/boards/av-x-v1/sdio.c
rename to boards/av/x-v1/src/sdio.c
diff --git a/src/drivers/boards/av-x-v1/spi.c b/boards/av/x-v1/src/spi.c
similarity index 100%
rename from src/drivers/boards/av-x-v1/spi.c
rename to boards/av/x-v1/src/spi.c
diff --git a/src/drivers/boards/av-x-v1/timer_config.c b/boards/av/x-v1/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/av-x-v1/timer_config.c
rename to boards/av/x-v1/src/timer_config.c
diff --git a/boards/beaglebone/blue/cross.cmake b/boards/beaglebone/blue/cross.cmake
new file mode 100644
index 0000000000..b94d2670d8
--- /dev/null
+++ b/boards/beaglebone/blue/cross.cmake
@@ -0,0 +1,84 @@
+
+px4_add_board(
+	VENDOR beaglebone
+	MODEL blue
+	LABEL cross
+	PLATFORM posix
+	ARCH cortex-a8
+	TOOLCHAIN Toolchain-arm-linux-gnueabihf
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+		linux_gpio
+		linux_pwm_out
+		linux_sbus
+		bbblue_adc
+
+	DF_DRIVERS # NOTE: DriverFramework is migrating to intree PX4 drivers
+		mpu9250
+		bmp280
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		esc_calib
+		led_control
+		mixer
+		motor_ramp
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/boards/beaglebone/blue/native.cmake b/boards/beaglebone/blue/native.cmake
new file mode 100644
index 0000000000..8cf471663e
--- /dev/null
+++ b/boards/beaglebone/blue/native.cmake
@@ -0,0 +1,83 @@
+
+px4_add_board(
+	VENDOR beaglebone
+	MODEL blue
+	LABEL native
+	PLATFORM posix
+	TOOLCHAIN Toolchain-native
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+		linux_gpio
+		linux_pwm_out
+		linux_sbus
+		bbblue_adc
+
+	DF_DRIVERS # NOTE: DriverFramework is migrating to intree PX4 drivers
+		mpu9250
+		bmp280
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		esc_calib
+		led_control
+		mixer
+		motor_ramp
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/src/drivers/boards/bbblue/CMakeLists.txt b/boards/beaglebone/blue/src/CMakeLists.txt
similarity index 94%
rename from src/drivers/boards/bbblue/CMakeLists.txt
rename to boards/beaglebone/blue/src/CMakeLists.txt
index d8ae2238c3..5ee92a9916 100644
--- a/src/drivers/boards/bbblue/CMakeLists.txt
+++ b/boards/beaglebone/blue/src/CMakeLists.txt
@@ -35,6 +35,6 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error")
 
 px4_add_library(drivers_board
 	init.c
-	../common/board_identity.c
+	${PX4_SOURCE_DIR}/src/drivers/boards/common/board_identity.c # TODO: this is horrible and should be fixed
 )
 
diff --git a/src/drivers/boards/bbblue/board_config.h b/boards/beaglebone/blue/src/board_config.h
similarity index 98%
rename from src/drivers/boards/bbblue/board_config.h
rename to boards/beaglebone/blue/src/board_config.h
index e34202172d..efa670c83a 100644
--- a/src/drivers/boards/bbblue/board_config.h
+++ b/boards/beaglebone/blue/src/board_config.h
@@ -66,7 +66,7 @@
 #define PX4_NUMBER_I2C_BUSES    1
 
 #include <system_config.h>
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #ifdef  __cplusplus
 extern "C" {
diff --git a/src/drivers/boards/bbblue/init.c b/boards/beaglebone/blue/src/init.c
similarity index 100%
rename from src/drivers/boards/bbblue/init.c
rename to boards/beaglebone/blue/src/init.c
diff --git a/boards/bitcraze/crazyflie/default.cmake b/boards/bitcraze/crazyflie/default.cmake
new file mode 100644
index 0000000000..0cbd417131
--- /dev/null
+++ b/boards/bitcraze/crazyflie/default.cmake
@@ -0,0 +1,73 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR bitcraze
+	MODEL crazyflie
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+
+	DRIVERS
+		barometer/lps25h
+		distance_sensor/vl53lxx
+		gps
+		imu/mpu9250
+		pmw3901
+		px4fmu
+		stm32
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		#fw_att_control
+		#fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		syslink
+		#uavcan
+		#vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		#tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	)
diff --git a/platforms/nuttx/Images/crazyflie.prototype b/boards/bitcraze/crazyflie/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/crazyflie.prototype
rename to boards/bitcraze/crazyflie/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/crazyflie/include/board.h b/boards/bitcraze/crazyflie/nuttx-config/include/board.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/crazyflie/include/board.h
rename to boards/bitcraze/crazyflie/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/crazyflie/nsh/defconfig b/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/crazyflie/nsh/defconfig
rename to boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig
index d9d6eb0128..a236d585e3 100644
--- a/platforms/nuttx/nuttx-configs/crazyflie/nsh/defconfig
+++ b/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig
@@ -653,7 +653,7 @@ CONFIG_RAM_SIZE=196608
 # Board Selection
 #
 CONFIG_ARCH_BOARD_CRAZYFLIE=y
-CONFIG_ARCH_BOARD="crazyflie"
+CONFIG_ARCH_BOARD="bitcrazecrazyflie"
 
 #
 # Custom Board Configuration
diff --git a/platforms/nuttx/nuttx-configs/crazyflie/scripts/ld.script b/boards/bitcraze/crazyflie/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/crazyflie/scripts/ld.script
rename to boards/bitcraze/crazyflie/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/crazyflie/CMakeLists.txt b/boards/bitcraze/crazyflie/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/crazyflie/CMakeLists.txt
rename to boards/bitcraze/crazyflie/src/CMakeLists.txt
diff --git a/src/drivers/boards/crazyflie/board_config.h b/boards/bitcraze/crazyflie/src/board_config.h
similarity index 99%
rename from src/drivers/boards/crazyflie/board_config.h
rename to boards/bitcraze/crazyflie/src/board_config.h
index 5fce4046c2..0b675b83ae 100644
--- a/src/drivers/boards/crazyflie/board_config.h
+++ b/boards/bitcraze/crazyflie/src/board_config.h
@@ -291,7 +291,7 @@ extern int stm32_spi_bus_initialize(void);
 void board_spi_reset(int ms);
 
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/crazyflie/init.c b/boards/bitcraze/crazyflie/src/init.c
similarity index 100%
rename from src/drivers/boards/crazyflie/init.c
rename to boards/bitcraze/crazyflie/src/init.c
diff --git a/src/drivers/boards/crazyflie/led.c b/boards/bitcraze/crazyflie/src/led.c
similarity index 100%
rename from src/drivers/boards/crazyflie/led.c
rename to boards/bitcraze/crazyflie/src/led.c
diff --git a/src/drivers/boards/crazyflie/spi.c b/boards/bitcraze/crazyflie/src/spi.c
similarity index 100%
rename from src/drivers/boards/crazyflie/spi.c
rename to boards/bitcraze/crazyflie/src/spi.c
diff --git a/src/drivers/boards/crazyflie/timer_config.c b/boards/bitcraze/crazyflie/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/crazyflie/timer_config.c
rename to boards/bitcraze/crazyflie/src/timer_config.c
diff --git a/src/drivers/boards/crazyflie/usb.c b/boards/bitcraze/crazyflie/src/usb.c
similarity index 100%
rename from src/drivers/boards/crazyflie/usb.c
rename to boards/bitcraze/crazyflie/src/usb.c
diff --git a/boards/emlid/navio2/cross.cmake b/boards/emlid/navio2/cross.cmake
new file mode 100644
index 0000000000..d2da059530
--- /dev/null
+++ b/boards/emlid/navio2/cross.cmake
@@ -0,0 +1,94 @@
+
+px4_add_board(
+	VENDOR emlid
+	MODEL navio2
+	LABEL cross
+	PLATFORM posix
+	ARCH cortex-a53
+	TOOLCHAIN Toolchain-arm-linux-gnueabihf
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+		linux_gpio
+		linux_pwm_out
+		linux_sbus
+		navio_adc
+		navio_rgbled
+		navio_sysfs_rc_in
+		rpi_rc_in
+
+	DF_DRIVERS # NOTE: DriverFramework is migrating to intree PX4 drivers
+		hmc5883
+		isl29501
+		lsm9ds1
+		mpu9250
+		ms5611
+		trone
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#simulator
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		dyn
+		esc_calib
+		led_control
+		mixer
+		motor_ramp
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/boards/emlid/navio2/native.cmake b/boards/emlid/navio2/native.cmake
new file mode 100644
index 0000000000..c435f6b3cf
--- /dev/null
+++ b/boards/emlid/navio2/native.cmake
@@ -0,0 +1,93 @@
+
+px4_add_board(
+	VENDOR emlid
+	MODEL navio2
+	LABEL native
+	PLATFORM posix
+	TOOLCHAIN Toolchain-native
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+		linux_gpio
+		linux_pwm_out
+		linux_sbus
+		navio_adc
+		navio_rgbled
+		navio_sysfs_rc_in
+		rpi_rc_in
+
+	DF_DRIVERS # NOTE: DriverFramework is migrating to intree PX4 drivers
+		hmc5883
+		isl29501
+		lsm9ds1
+		mpu9250
+		ms5611
+		trone
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#simulator
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		dyn
+		esc_calib
+		led_control
+		mixer
+		motor_ramp
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/src/drivers/boards/ocpoc/CMakeLists.txt b/boards/emlid/navio2/src/CMakeLists.txt
similarity index 94%
rename from src/drivers/boards/ocpoc/CMakeLists.txt
rename to boards/emlid/navio2/src/CMakeLists.txt
index d95d0043bc..0b4ba0d6ac 100644
--- a/src/drivers/boards/ocpoc/CMakeLists.txt
+++ b/boards/emlid/navio2/src/CMakeLists.txt
@@ -30,6 +30,7 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 ############################################################################
+
 px4_add_library(drivers_board
-	../common/board_identity.c
+	${PX4_SOURCE_DIR}/src/drivers/boards/common/board_identity.c # TODO: this is horrible and should be fixed
 )
diff --git a/src/drivers/boards/rpi/board_config.h b/boards/emlid/navio2/src/board_config.h
similarity index 94%
rename from src/drivers/boards/rpi/board_config.h
rename to boards/emlid/navio2/src/board_config.h
index dcf2c4b7cf..2cd6af040f 100644
--- a/src/drivers/boards/rpi/board_config.h
+++ b/boards/emlid/navio2/src/board_config.h
@@ -34,7 +34,7 @@
 /**
  * @file board_config.h
  *
- * RPI internal definitions
+ * Emlid Navio2 RPI internal definitions
  */
 
 #pragma once
@@ -42,7 +42,7 @@
 #define BOARD_OVERRIDE_UUID "RPIID00000000000" // must be of length 16
 #define PX4_SOC_ARCH_ID     PX4_SOC_ARCH_ID_RPI
 
-#define BOARD_NAME "RPI"
+#define BOARD_NAME "EMLIDNAVIO2"
 
 #define ADC_BATTERY_VOLTAGE_CHANNEL 2
 #define ADC_BATTERY_CURRENT_CHANNEL 3
@@ -62,4 +62,4 @@
 #define PX4_NUMBER_I2C_BUSES 1
 
 #include <system_config.h>
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
diff --git a/boards/gumstix/aerocore2/default.cmake b/boards/gumstix/aerocore2/default.cmake
new file mode 100644
index 0000000000..b672ab98d9
--- /dev/null
+++ b/boards/gumstix/aerocore2/default.cmake
@@ -0,0 +1,119 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR gumstix
+	MODEL aerocore2
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	UAVCAN_INTERFACES 1
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+
+	DRIVERS
+		barometer # all available barometer drivers
+		#batt_smbus
+		#blinkm
+		#camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/l3gd20
+		imu/lsm303d
+		#irlock
+		#magnetometer # all available magnetometer drivers
+		#md25
+		#mkblctrl
+		#oreoled
+		#pca8574
+		#pca9685
+		#pmw3901
+		#protocol_splitter
+		#pwm_input
+		pwm_out_sim
+		#px4flow
+		px4fmu
+		rc_input
+		#rgbled
+		#rgbled_pwm
+		#roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		#tap_esc
+		#telemetry # all available telemetry drivers
+		#test_ppm
+		#vmount
+
+	MODULES
+		#attitude_estimator_q
+		#camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		#fw_att_control
+		#fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		#landing_target_estimator
+		load_mon
+		#local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		#position_estimator_inav
+		sensors
+		#uavcan
+		#vtol_att_control
+		#wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		#dumpfile
+		#esc_calib
+		hardfault_log
+		led_control
+		mixer
+		#motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		#sd_bench
+		shutdown
+		#tests # tests and test runner
+		top
+		#topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+		#subscriber
+		#uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/aerocore2.prototype b/boards/gumstix/aerocore2/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/aerocore2.prototype
rename to boards/gumstix/aerocore2/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/aerocore2/Kconfig b/boards/gumstix/aerocore2/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/aerocore2/Kconfig
rename to boards/gumstix/aerocore2/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/aerocore2/include/board.h b/boards/gumstix/aerocore2/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/aerocore2/include/board.h
rename to boards/gumstix/aerocore2/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/aerocore2/nsh/defconfig b/boards/gumstix/aerocore2/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/aerocore2/nsh/defconfig
rename to boards/gumstix/aerocore2/nuttx-config/nsh/defconfig
index f0df9c26ab..1a9dd2d0b3 100644
--- a/platforms/nuttx/nuttx-configs/aerocore2/nsh/defconfig
+++ b/boards/gumstix/aerocore2/nuttx-config/nsh/defconfig
@@ -674,7 +674,7 @@ CONFIG_RAM_SIZE=262144
 # Board Selection
 #
 CONFIG_ARCH_BOARD_AEROCORE2=y
-CONFIG_ARCH_BOARD="aerocore2"
+CONFIG_ARCH_BOARD="gumstixaerocore2"
 
 #
 # Custom Board Configuration
diff --git a/platforms/nuttx/nuttx-configs/aerocore2/scripts/ld.script b/boards/gumstix/aerocore2/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/aerocore2/scripts/ld.script
rename to boards/gumstix/aerocore2/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/auav-x21/CMakeLists.txt b/boards/gumstix/aerocore2/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/auav-x21/CMakeLists.txt
rename to boards/gumstix/aerocore2/src/CMakeLists.txt
diff --git a/src/drivers/boards/aerocore2/board_config.h b/boards/gumstix/aerocore2/src/board_config.h
similarity index 99%
rename from src/drivers/boards/aerocore2/board_config.h
rename to boards/gumstix/aerocore2/src/board_config.h
index 2843a3793c..2ec3de378e 100644
--- a/src/drivers/boards/aerocore2/board_config.h
+++ b/boards/gumstix/aerocore2/src/board_config.h
@@ -252,7 +252,7 @@ extern void board_spi_reset(int ms);
 extern void stm32_usbinitialize(void);
 extern void board_peripheral_reset(int ms);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/aerocore2/can.c b/boards/gumstix/aerocore2/src/can.c
similarity index 100%
rename from src/drivers/boards/aerocore2/can.c
rename to boards/gumstix/aerocore2/src/can.c
diff --git a/src/drivers/boards/aerocore2/init.c b/boards/gumstix/aerocore2/src/init.c
similarity index 100%
rename from src/drivers/boards/aerocore2/init.c
rename to boards/gumstix/aerocore2/src/init.c
diff --git a/src/drivers/boards/aerocore2/led.c b/boards/gumstix/aerocore2/src/led.c
similarity index 100%
rename from src/drivers/boards/aerocore2/led.c
rename to boards/gumstix/aerocore2/src/led.c
diff --git a/src/drivers/boards/aerocore2/spi.c b/boards/gumstix/aerocore2/src/spi.c
similarity index 100%
rename from src/drivers/boards/aerocore2/spi.c
rename to boards/gumstix/aerocore2/src/spi.c
diff --git a/src/drivers/boards/aerocore2/timer_config.c b/boards/gumstix/aerocore2/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/aerocore2/timer_config.c
rename to boards/gumstix/aerocore2/src/timer_config.c
diff --git a/src/drivers/boards/aerocore2/usb.c b/boards/gumstix/aerocore2/src/usb.c
similarity index 100%
rename from src/drivers/boards/aerocore2/usb.c
rename to boards/gumstix/aerocore2/src/usb.c
diff --git a/boards/intel/aerofc-v1/default.cmake b/boards/intel/aerofc-v1/default.cmake
new file mode 100644
index 0000000000..2517a8187d
--- /dev/null
+++ b/boards/intel/aerofc-v1/default.cmake
@@ -0,0 +1,101 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR intel
+	MODEL aerofc-v1
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS5
+		TEL1:/dev/ttyS3
+		TEL2:/dev/ttyS1
+
+	DRIVERS
+		aerofc_adc
+		barometer/ms5611
+		#camera_trigger
+		#differential_pressure # all available differential pressure drivers
+		distance_sensor
+		gps
+		#irlock
+		imu/mpu9250
+		#magnetometer # all available magnetometer drivers
+		magnetometer/hmc5883
+		magnetometer/ist8310
+		pwm_out_sim
+		#px4flow
+		px4fmu
+		rc_input
+		stm32
+		tap_esc
+		#telemetry # all available telemetry drivers
+		#vmount
+
+	MODULES
+		attitude_estimator_q
+		#camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		#fw_att_control
+		#fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		#position_estimator_inav
+		sensors
+		#uavcan
+		#vtol_att_control
+		#wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		#tests # tests and test runner
+		top
+		#topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+		#subscriber
+		#uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/aerofc-v1.prototype b/boards/intel/aerofc-v1/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/aerofc-v1.prototype
rename to boards/intel/aerofc-v1/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/aerofc-v1/Kconfig b/boards/intel/aerofc-v1/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/aerofc-v1/Kconfig
rename to boards/intel/aerofc-v1/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/aerofc-v1/include/board.h b/boards/intel/aerofc-v1/nuttx-config/include/board.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/aerofc-v1/include/board.h
rename to boards/intel/aerofc-v1/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/aerofc-v1/nsh/defconfig b/boards/intel/aerofc-v1/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/aerofc-v1/nsh/defconfig
rename to boards/intel/aerofc-v1/nuttx-config/nsh/defconfig
index 70201452dd..ee254cb3e4 100644
--- a/platforms/nuttx/nuttx-configs/aerofc-v1/nsh/defconfig
+++ b/boards/intel/aerofc-v1/nuttx-config/nsh/defconfig
@@ -671,7 +671,7 @@ CONFIG_RAM_SIZE=262144
 # Board Selection
 #
 CONFIG_ARCH_BOARD_AEROFC_V1=y
-CONFIG_ARCH_BOARD="aerofc-v1"
+CONFIG_ARCH_BOARD="intelaerofc-v1"
 
 #
 # Common Board Options
diff --git a/platforms/nuttx/nuttx-configs/aerofc-v1/scripts/ld.script b/boards/intel/aerofc-v1/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/aerofc-v1/scripts/ld.script
rename to boards/intel/aerofc-v1/nuttx-config/scripts/ld.script
diff --git a/boards/intel/aerofc-v1/rtps.cmake b/boards/intel/aerofc-v1/rtps.cmake
new file mode 100644
index 0000000000..d5f76d4172
--- /dev/null
+++ b/boards/intel/aerofc-v1/rtps.cmake
@@ -0,0 +1,104 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR intel
+	MODEL aerofc-v1
+	LABEL rtsp
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS5
+		TEL1:/dev/ttyS3
+		TEL2:/dev/ttyS1
+
+	DRIVERS
+		aerofc_adc
+		barometer/ms5611
+		#camera_trigger
+		#differential_pressure # all available differential pressure drivers
+		distance_sensor
+		gps
+		#irlock
+		imu/mpu9250
+		#magnetometer # all available magnetometer drivers
+		magnetometer/hmc5883
+		magnetometer/ist8310
+		protocol_splitter
+		pwm_out_sim
+		#px4flow
+		px4fmu
+		rc_input
+		stm32
+		tap_esc
+		#telemetry # all available telemetry drivers
+		#vmount
+
+	MODULES
+		attitude_estimator_q
+		#camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		#fw_att_control
+		#fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		micrortps_bridge
+		navigator
+		#position_estimator_inav
+		sensors
+		#uavcan
+		#vtol_att_control
+		#wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		#tests # tests and test runner
+		top
+		#topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+		#subscriber
+		#uuv_example_app
+
+	)
diff --git a/src/drivers/boards/aerofc-v1/CMakeLists.txt b/boards/intel/aerofc-v1/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/aerofc-v1/CMakeLists.txt
rename to boards/intel/aerofc-v1/src/CMakeLists.txt
diff --git a/src/drivers/boards/aerofc-v1/board_config.h b/boards/intel/aerofc-v1/src/board_config.h
similarity index 99%
rename from src/drivers/boards/aerofc-v1/board_config.h
rename to boards/intel/aerofc-v1/src/board_config.h
index 9b18bd181a..c008a8a1ce 100644
--- a/src/drivers/boards/aerofc-v1/board_config.h
+++ b/boards/intel/aerofc-v1/src/board_config.h
@@ -182,7 +182,7 @@ extern void stm32_spiinitialize(void);
 
 extern int board_sdio_initialize(void);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/aerofc-v1/init.c b/boards/intel/aerofc-v1/src/init.c
similarity index 100%
rename from src/drivers/boards/aerofc-v1/init.c
rename to boards/intel/aerofc-v1/src/init.c
diff --git a/src/drivers/boards/aerofc-v1/led.c b/boards/intel/aerofc-v1/src/led.c
similarity index 100%
rename from src/drivers/boards/aerofc-v1/led.c
rename to boards/intel/aerofc-v1/src/led.c
diff --git a/src/drivers/boards/aerofc-v1/spi.c b/boards/intel/aerofc-v1/src/spi.c
similarity index 100%
rename from src/drivers/boards/aerofc-v1/spi.c
rename to boards/intel/aerofc-v1/src/spi.c
diff --git a/src/drivers/boards/aerofc-v1/timer_config.c b/boards/intel/aerofc-v1/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/aerofc-v1/timer_config.c
rename to boards/intel/aerofc-v1/src/timer_config.c
diff --git a/boards/nxp/hlite-v3/default.cmake b/boards/nxp/hlite-v3/default.cmake
new file mode 100644
index 0000000000..2299590e33
--- /dev/null
+++ b/boards/nxp/hlite-v3/default.cmake
@@ -0,0 +1,118 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR nxp
+	MODEL hlite-v3
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	TESTING
+	UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS4
+
+	DRIVERS
+		barometer # all available barometer drivers
+		barometer/mpl3115a2
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		kinetis
+		kinetis/adc
+		kinetis/tone_alarm
+		#heater
+		#imu # all available imu drivers
+		imu/fxas21002c
+		imu/fxos8701cq
+		imu/l3gd20
+		imu/mpu6000
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		mkblctrl
+		oreoled
+		pca9685
+		#pwm_input # NOT Portable YET drivers
+		pwm_out_sim
+		px4flow
+		px4fmu
+		rc_input
+		rgbled
+		rgbled_pwm
+		tap_esc
+		telemetry # all available telemetry drivers
+		#test_ppm # NOT Portable YET
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		#hardfault_log # Needs bbsrm
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/nxphlite-v3.prototype b/boards/nxp/hlite-v3/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/nxphlite-v3.prototype
rename to boards/nxp/hlite-v3/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/nxphlite-v3/Kconfig b/boards/nxp/hlite-v3/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/nxphlite-v3/Kconfig
rename to boards/nxp/hlite-v3/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/nxphlite-v3/include/board.h b/boards/nxp/hlite-v3/nuttx-config/include/board.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/nxphlite-v3/include/board.h
rename to boards/nxp/hlite-v3/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/nxphlite-v3/nsh/defconfig b/boards/nxp/hlite-v3/nuttx-config/nsh/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/nxphlite-v3/nsh/defconfig
rename to boards/nxp/hlite-v3/nuttx-config/nsh/defconfig
diff --git a/platforms/nuttx/nuttx-configs/nxphlite-v3/scripts/ld.script b/boards/nxp/hlite-v3/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/nxphlite-v3/scripts/ld.script
rename to boards/nxp/hlite-v3/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/nxphlite-v3/CMakeLists.txt b/boards/nxp/hlite-v3/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/CMakeLists.txt
rename to boards/nxp/hlite-v3/src/CMakeLists.txt
diff --git a/src/drivers/boards/nxphlite-v3/autoleds.c b/boards/nxp/hlite-v3/src/autoleds.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/autoleds.c
rename to boards/nxp/hlite-v3/src/autoleds.c
diff --git a/src/drivers/boards/nxphlite-v3/automount.c b/boards/nxp/hlite-v3/src/automount.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/automount.c
rename to boards/nxp/hlite-v3/src/automount.c
diff --git a/src/drivers/boards/nxphlite-v3/board_config.h b/boards/nxp/hlite-v3/src/board_config.h
similarity index 99%
rename from src/drivers/boards/nxphlite-v3/board_config.h
rename to boards/nxp/hlite-v3/src/board_config.h
index e3ab307594..648f8c0e31 100644
--- a/src/drivers/boards/nxphlite-v3/board_config.h
+++ b/boards/nxp/hlite-v3/src/board_config.h
@@ -687,7 +687,7 @@ void nxphlite_automount_event(bool inserted);
 
 void nxphlite_timer_initialize(void);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/nxphlite-v3/can.c b/boards/nxp/hlite-v3/src/can.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/can.c
rename to boards/nxp/hlite-v3/src/can.c
diff --git a/src/drivers/boards/nxphlite-v3/init.c b/boards/nxp/hlite-v3/src/init.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/init.c
rename to boards/nxp/hlite-v3/src/init.c
diff --git a/src/drivers/boards/nxphlite-v3/led.c b/boards/nxp/hlite-v3/src/led.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/led.c
rename to boards/nxp/hlite-v3/src/led.c
diff --git a/src/drivers/boards/nxphlite-v3/sdhc.c b/boards/nxp/hlite-v3/src/sdhc.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/sdhc.c
rename to boards/nxp/hlite-v3/src/sdhc.c
diff --git a/src/drivers/boards/nxphlite-v3/spi.c b/boards/nxp/hlite-v3/src/spi.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/spi.c
rename to boards/nxp/hlite-v3/src/spi.c
diff --git a/src/drivers/boards/nxphlite-v3/timer_config.c b/boards/nxp/hlite-v3/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/timer_config.c
rename to boards/nxp/hlite-v3/src/timer_config.c
diff --git a/src/drivers/boards/nxphlite-v3/usb.c b/boards/nxp/hlite-v3/src/usb.c
similarity index 100%
rename from src/drivers/boards/nxphlite-v3/usb.c
rename to boards/nxp/hlite-v3/src/usb.c
diff --git a/boards/omnibus/f4sd/default.cmake b/boards/omnibus/f4sd/default.cmake
new file mode 100644
index 0000000000..c65106130c
--- /dev/null
+++ b/boards/omnibus/f4sd/default.cmake
@@ -0,0 +1,113 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR omnibus
+	MODEL f4sd
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+
+	SERIAL_PORTS
+		TEL2:/dev/ttyS1
+		URT6:/dev/ttyS2
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		barometer/bmp280
+		#batt_smbus
+		#blinkm
+		#camera_trigger
+		#differential_pressure # all available differential pressure drivers
+		#distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/mpu6000
+		#irlock
+		#magnetometer # all available magnetometer drivers
+		magnetometer/hmc5883
+		#mkblctrl
+		#oreoled
+		#pca9685
+		#pwm_input
+		#pwm_out_sim
+		px4flow
+		px4fmu
+		rc_input
+		rgbled
+		stm32
+		stm32/adc
+		#stm32/tone_alarm
+		#tap_esc
+		#telemetry # all available telemetry drivers
+		telemetry/frsky_telemetry
+		#test_ppm
+		#vmount
+
+	MODULES
+		attitude_estimator_q
+		#camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		#fw_att_control
+		#fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		#position_estimator_inav
+		sensors
+		#uavcan
+		#vtol_att_control
+		#wind_estimator
+
+	SYSTEMCMDS
+		#bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		#motor_ramp
+		motor_test
+		#mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		#tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+		#subscriber
+		#uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/omnibus-f4sd.prototype b/boards/omnibus/f4sd/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/omnibus-f4sd.prototype
rename to boards/omnibus/f4sd/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/omnibus-f4sd/include/board.h b/boards/omnibus/f4sd/nuttx-config/include/board.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/omnibus-f4sd/include/board.h
rename to boards/omnibus/f4sd/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/omnibus-f4sd/nsh/defconfig b/boards/omnibus/f4sd/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/omnibus-f4sd/nsh/defconfig
rename to boards/omnibus/f4sd/nuttx-config/nsh/defconfig
index b9da4652e7..e5b0d61a8c 100644
--- a/platforms/nuttx/nuttx-configs/omnibus-f4sd/nsh/defconfig
+++ b/boards/omnibus/f4sd/nuttx-config/nsh/defconfig
@@ -662,8 +662,8 @@ CONFIG_RAM_SIZE=196608
 #
 # Board Selection
 #
-CONFIG_ARCH_BOARD_OMNIBUS_F4SD=y
-CONFIG_ARCH_BOARD="omnibus-f4sd"
+CONFIG_ARCH_BOARD_OMNIBUSF4SD=y
+CONFIG_ARCH_BOARD="omnibusf4sd"
 
 #
 # Custom Board Configuration
diff --git a/platforms/nuttx/nuttx-configs/omnibus-f4sd/scripts/ld.script b/boards/omnibus/f4sd/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/omnibus-f4sd/scripts/ld.script
rename to boards/omnibus/f4sd/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/omnibus-f4sd/CMakeLists.txt b/boards/omnibus/f4sd/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/omnibus-f4sd/CMakeLists.txt
rename to boards/omnibus/f4sd/src/CMakeLists.txt
diff --git a/src/drivers/boards/omnibus-f4sd/board_config.h b/boards/omnibus/f4sd/src/board_config.h
similarity index 99%
rename from src/drivers/boards/omnibus-f4sd/board_config.h
rename to boards/omnibus/f4sd/src/board_config.h
index 26f4f08be7..96a6c63b58 100644
--- a/src/drivers/boards/omnibus-f4sd/board_config.h
+++ b/boards/omnibus/f4sd/src/board_config.h
@@ -321,7 +321,7 @@ extern void stm32_usbinitialize(void);
 
 extern void board_peripheral_reset(int ms);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/omnibus-f4sd/init.c b/boards/omnibus/f4sd/src/init.c
similarity index 100%
rename from src/drivers/boards/omnibus-f4sd/init.c
rename to boards/omnibus/f4sd/src/init.c
diff --git a/src/drivers/boards/omnibus-f4sd/led.c b/boards/omnibus/f4sd/src/led.c
similarity index 100%
rename from src/drivers/boards/omnibus-f4sd/led.c
rename to boards/omnibus/f4sd/src/led.c
diff --git a/src/drivers/boards/omnibus-f4sd/spi.c b/boards/omnibus/f4sd/src/spi.c
similarity index 100%
rename from src/drivers/boards/omnibus-f4sd/spi.c
rename to boards/omnibus/f4sd/src/spi.c
diff --git a/src/drivers/boards/omnibus-f4sd/timer_config.c b/boards/omnibus/f4sd/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/omnibus-f4sd/timer_config.c
rename to boards/omnibus/f4sd/src/timer_config.c
diff --git a/src/drivers/boards/omnibus-f4sd/usb.c b/boards/omnibus/f4sd/src/usb.c
similarity index 100%
rename from src/drivers/boards/omnibus-f4sd/usb.c
rename to boards/omnibus/f4sd/src/usb.c
diff --git a/boards/parrot/bebop/default.cmake b/boards/parrot/bebop/default.cmake
new file mode 100644
index 0000000000..ca5c60b567
--- /dev/null
+++ b/boards/parrot/bebop/default.cmake
@@ -0,0 +1,64 @@
+
+px4_add_board(
+	VENDOR parrot
+	MODEL bebop
+	PLATFORM posix
+	ARCH cortex-a53
+	TOOLCHAIN Toolchain-arm-linux-gnueabihf
+
+	DRIVERS
+		gps
+		linux_sbus
+		pwm_out_sim
+
+	DF_DRIVERS # NOTE: DriverFramework is migrating to intree PX4 drivers
+		ms5607
+		mpu6050
+		ak8963
+		bebop_bus
+		bebop_rangefinder
+		#bebop_flow
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		#fw_att_control
+		#fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		#config
+		esc_calib
+		led_control
+		mixer
+		motor_ramp
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		#tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+	)
diff --git a/src/drivers/boards/sim/CMakeLists.txt b/boards/parrot/bebop/src/CMakeLists.txt
similarity index 94%
rename from src/drivers/boards/sim/CMakeLists.txt
rename to boards/parrot/bebop/src/CMakeLists.txt
index d95d0043bc..0b4ba0d6ac 100644
--- a/src/drivers/boards/sim/CMakeLists.txt
+++ b/boards/parrot/bebop/src/CMakeLists.txt
@@ -30,6 +30,7 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 ############################################################################
+
 px4_add_library(drivers_board
-	../common/board_identity.c
+	${PX4_SOURCE_DIR}/src/drivers/boards/common/board_identity.c # TODO: this is horrible and should be fixed
 )
diff --git a/src/drivers/boards/bebop/board_config.h b/boards/parrot/bebop/src/board_config.h
similarity index 97%
rename from src/drivers/boards/bebop/board_config.h
rename to boards/parrot/bebop/src/board_config.h
index d9a6d0999f..07d6177114 100644
--- a/src/drivers/boards/bebop/board_config.h
+++ b/boards/parrot/bebop/src/board_config.h
@@ -56,4 +56,4 @@
 #define PX4_NUMBER_I2C_BUSES 1
 
 #include <system_config.h>
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
diff --git a/cmake/configs/nuttx_px4cannode-v1_default.cmake b/boards/px4/cannode-v1/default.cmake
similarity index 71%
rename from cmake/configs/nuttx_px4cannode-v1_default.cmake
rename to boards/px4/cannode-v1/default.cmake
index 3db9dfad6c..a139189188 100644
--- a/cmake/configs/nuttx_px4cannode-v1_default.cmake
+++ b/boards/px4/cannode-v1/default.cmake
@@ -4,8 +4,6 @@ add_definitions(
 	-DPARAM_NO_AUTOSAVE
 	)
 
-px4_nuttx_configure(HWCLASS m3 CONFIG nsh)
-
 # UAVCAN boot loadable Module ID
 set(uavcanblid_sw_version_major 0)
 set(uavcanblid_sw_version_minor 1)
@@ -15,16 +13,19 @@ add_definitions(
 	)
 
 # Bring in common uavcan hardware identity definitions
-include(common/px4_git)
+include(px4_git)
 px4_add_git_submodule(TARGET git_uavcan_board_ident PATH "cmake/configs/uavcan_board_ident")
 include(configs/uavcan_board_ident/px4cannode-v1)
+
 add_definitions(
 	-DHW_UAVCAN_NAME=${uavcanblid_name}
 	-DHW_VERSION_MAJOR=${uavcanblid_hw_version_major}
 	-DHW_VERSION_MINOR=${uavcanblid_hw_version_minor}
 )
 
-px4_nuttx_make_uavcan_bootloadable(BOARD ${BOARD}
+include(px4_make_uavcan_bootloader)
+px4_make_uavcan_bootloadable(
+	BOARD px4cannode-v1
 	BIN ${PX4_BINARY_DIR}/px4cannode-v1.bin
 	HWNAME ${uavcanblid_name}
 	HW_MAJOR ${uavcanblid_hw_version_major}
@@ -33,24 +34,23 @@ px4_nuttx_make_uavcan_bootloadable(BOARD ${BOARD}
 	SW_MINOR ${uavcanblid_sw_version_minor}
 )
 
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/bootloaders
-	drivers/stm32
-
-	#
-	# System commands
-	#
-	systemcmds/config
-	systemcmds/reboot
-	systemcmds/top
-	systemcmds/ver
-
-	#
-	# General system control
-	#
-	modules/uavcannode
-
-)
\ No newline at end of file
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL cannode-v1
+	ARCH cortex-m3
+
+	DRIVERS
+		bootloaders
+		stm32
+
+	MODULES
+		uavcannode
+
+	SYSTEMCMDS
+		config
+		reboot
+		top
+		ver
+
+	)
diff --git a/platforms/nuttx/Images/px4cannode-v1.prototype b/boards/px4/cannode-v1/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/px4cannode-v1.prototype
rename to boards/px4/cannode-v1/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/px4cannode-v1/Kconfig b/boards/px4/cannode-v1/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4cannode-v1/Kconfig
rename to boards/px4/cannode-v1/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/px4cannode-v1/include/README.txt b/boards/px4/cannode-v1/nuttx-config/include/README.txt
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4cannode-v1/include/README.txt
rename to boards/px4/cannode-v1/nuttx-config/include/README.txt
diff --git a/platforms/nuttx/nuttx-configs/px4cannode-v1/include/board.h b/boards/px4/cannode-v1/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4cannode-v1/include/board.h
rename to boards/px4/cannode-v1/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4cannode-v1/nsh/defconfig b/boards/px4/cannode-v1/nuttx-config/nsh/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4cannode-v1/nsh/defconfig
rename to boards/px4/cannode-v1/nuttx-config/nsh/defconfig
diff --git a/platforms/nuttx/nuttx-configs/px4cannode-v1/nsh/defconfig.nonsh b/boards/px4/cannode-v1/nuttx-config/nsh/defconfig.nonsh
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4cannode-v1/nsh/defconfig.nonsh
rename to boards/px4/cannode-v1/nuttx-config/nsh/defconfig.nonsh
diff --git a/platforms/nuttx/nuttx-configs/px4cannode-v1/nsh/defconfig.nsh b/boards/px4/cannode-v1/nuttx-config/nsh/defconfig.nsh
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4cannode-v1/nsh/defconfig.nsh
rename to boards/px4/cannode-v1/nuttx-config/nsh/defconfig.nsh
diff --git a/platforms/nuttx/nuttx-configs/px4cannode-v1/scripts/ld.script b/boards/px4/cannode-v1/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4cannode-v1/scripts/ld.script
rename to boards/px4/cannode-v1/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/px4cannode-v1/CMakeLists.txt b/boards/px4/cannode-v1/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4cannode-v1/CMakeLists.txt
rename to boards/px4/cannode-v1/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4cannode-v1/board_config.h b/boards/px4/cannode-v1/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4cannode-v1/board_config.h
rename to boards/px4/cannode-v1/src/board_config.h
index 496b0e5a87..4b777416a6 100644
--- a/src/drivers/boards/px4cannode-v1/board_config.h
+++ b/boards/px4/cannode-v1/src/board_config.h
@@ -283,7 +283,7 @@ int usbmsc_archinitialize(void);
 extern int composite_archinitialize(void);
 #endif
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4cannode-v1/buttons.c b/boards/px4/cannode-v1/src/buttons.c
similarity index 100%
rename from src/drivers/boards/px4cannode-v1/buttons.c
rename to boards/px4/cannode-v1/src/buttons.c
diff --git a/src/drivers/boards/px4cannode-v1/can.c b/boards/px4/cannode-v1/src/can.c
similarity index 100%
rename from src/drivers/boards/px4cannode-v1/can.c
rename to boards/px4/cannode-v1/src/can.c
diff --git a/src/drivers/boards/px4cannode-v1/init.c b/boards/px4/cannode-v1/src/init.c
similarity index 100%
rename from src/drivers/boards/px4cannode-v1/init.c
rename to boards/px4/cannode-v1/src/init.c
diff --git a/src/drivers/boards/px4cannode-v1/led.c b/boards/px4/cannode-v1/src/led.c
similarity index 100%
rename from src/drivers/boards/px4cannode-v1/led.c
rename to boards/px4/cannode-v1/src/led.c
diff --git a/src/drivers/boards/px4cannode-v1/spi.c b/boards/px4/cannode-v1/src/spi.c
similarity index 100%
rename from src/drivers/boards/px4cannode-v1/spi.c
rename to boards/px4/cannode-v1/src/spi.c
diff --git a/cmake/configs/nuttx_px4esc-v1_default.cmake b/boards/px4/esc-v1/default.cmake
similarity index 62%
rename from cmake/configs/nuttx_px4esc-v1_default.cmake
rename to boards/px4/esc-v1/default.cmake
index 56b187cef1..8694b3f275 100644
--- a/cmake/configs/nuttx_px4esc-v1_default.cmake
+++ b/boards/px4/esc-v1/default.cmake
@@ -6,8 +6,6 @@ add_definitions(
 	-DPARAMETER_BUFFER_SIZE=1024
 )
 
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh)
-
 # UAVCAN boot loadable Module ID
 set(uavcanblid_sw_version_major 0)
 set(uavcanblid_sw_version_minor 1)
@@ -17,16 +15,19 @@ add_definitions(
 	)
 
 # Bring in common uavcan hardware identity definitions
-include(common/px4_git)
+include(px4_git)
 px4_add_git_submodule(TARGET git_uavcan_board_ident PATH "cmake/configs/uavcan_board_ident")
 include(configs/uavcan_board_ident/px4esc-v1)
+
 add_definitions(
 	-DHW_UAVCAN_NAME=${uavcanblid_name}
 	-DHW_VERSION_MAJOR=${uavcanblid_hw_version_major}
 	-DHW_VERSION_MINOR=${uavcanblid_hw_version_minor}
 )
 
-px4_nuttx_make_uavcan_bootloadable(BOARD ${BOARD}
+include(px4_make_uavcan_bootloader)
+px4_make_uavcan_bootloadable(
+	BOARD px4esc-v1
 	BIN ${PX4_BINARY_DIR}/px4esc-v1.bin
 	HWNAME ${uavcanblid_name}
 	HW_MAJOR ${uavcanblid_hw_version_major}
@@ -35,31 +36,30 @@ px4_nuttx_make_uavcan_bootloadable(BOARD ${BOARD}
 	SW_MINOR ${uavcanblid_sw_version_minor}
 )
 
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/bootloaders
-	drivers/stm32
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL esc-v1
+	ARCH cortex-m4
 
-	#
-	# System commands
-	#
-	systemcmds/config
-	systemcmds/reboot
-	systemcmds/top
-	systemcmds/param
-	systemcmds/ver
+	DRIVERS
+		bootloaders
+		stm32
 
-	#
-	# General system control
-	#
-	modules/uavcanesc
-	modules/uavcanesc/nshterm
-	modules/uavcanesc/commands/cfg
-	modules/uavcanesc/commands/selftest
-	modules/uavcanesc/commands/dc
-	modules/uavcanesc/commands/rpm
-	modules/uavcanesc/commands/stat
+	MODULES
+		uavcanesc
+		uavcanesc/nshterm
+		uavcanesc/commands/cfg
+		uavcanesc/commands/selftest
+		uavcanesc/commands/dc
+		uavcanesc/commands/rpm
+		uavcanesc/commands/stat
 
-)
\ No newline at end of file
+	SYSTEMCMDS
+		config
+		reboot
+		param
+		top
+		ver
+
+	)
diff --git a/platforms/nuttx/Images/px4esc-v1.prototype b/boards/px4/esc-v1/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/px4esc-v1.prototype
rename to boards/px4/esc-v1/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/px4esc-v1/Kconfig b/boards/px4/esc-v1/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4esc-v1/Kconfig
rename to boards/px4/esc-v1/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/px4esc-v1/include/README.txt b/boards/px4/esc-v1/nuttx-config/include/README.txt
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4esc-v1/include/README.txt
rename to boards/px4/esc-v1/nuttx-config/include/README.txt
diff --git a/platforms/nuttx/nuttx-configs/px4esc-v1/include/board.h b/boards/px4/esc-v1/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4esc-v1/include/board.h
rename to boards/px4/esc-v1/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4esc-v1/nsh/defconfig b/boards/px4/esc-v1/nuttx-config/nsh/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4esc-v1/nsh/defconfig
rename to boards/px4/esc-v1/nuttx-config/nsh/defconfig
diff --git a/platforms/nuttx/nuttx-configs/px4esc-v1/scripts/ld.script b/boards/px4/esc-v1/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4esc-v1/scripts/ld.script
rename to boards/px4/esc-v1/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/px4esc-v1/CMakeLists.txt b/boards/px4/esc-v1/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4esc-v1/CMakeLists.txt
rename to boards/px4/esc-v1/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4esc-v1/board_config.h b/boards/px4/esc-v1/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4esc-v1/board_config.h
rename to boards/px4/esc-v1/src/board_config.h
index 28b9d39cab..33cc7875c7 100644
--- a/src/drivers/boards/px4esc-v1/board_config.h
+++ b/boards/px4/esc-v1/src/board_config.h
@@ -356,7 +356,7 @@ int usbmsc_archinitialize(void);
 extern int composite_archinitialize(void);
 #endif
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4esc-v1/init.c b/boards/px4/esc-v1/src/init.c
similarity index 100%
rename from src/drivers/boards/px4esc-v1/init.c
rename to boards/px4/esc-v1/src/init.c
diff --git a/src/drivers/boards/px4esc-v1/led.c b/boards/px4/esc-v1/src/led.c
similarity index 100%
rename from src/drivers/boards/px4esc-v1/led.c
rename to boards/px4/esc-v1/src/led.c
diff --git a/src/drivers/boards/px4esc-v1/usb.c b/boards/px4/esc-v1/src/usb.c
similarity index 100%
rename from src/drivers/boards/px4esc-v1/usb.c
rename to boards/px4/esc-v1/src/usb.c
diff --git a/boards/px4/fmu-v2/default.cmake b/boards/px4/fmu-v2/default.cmake
new file mode 100644
index 0000000000..0331448acb
--- /dev/null
+++ b/boards/px4/fmu-v2/default.cmake
@@ -0,0 +1,121 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v2
+	LABEL default
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin
+	IO px4io-v2_default
+	#TESTING
+	CONSTRAINED_FLASH
+	#UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		barometer/ms5611
+		#batt_smbus
+		#blinkm
+		#camera_trigger
+		#differential_pressure # all available differential pressure drivers
+		differential_pressure/ms4525
+		#distance_sensor # all available distance sensor drivers
+		distance_sensor/ll40ls
+		distance_sensor/sf0x
+		gps
+		#heater
+		#imu # all available imu drivers
+		#imu/adis16448
+		imu/l3gd20
+		imu/lsm303d
+		imu/mpu6000
+		imu/mpu9250
+		#iridiumsbd
+		#irlock
+		#magnetometer # all available magnetometer drivers
+		magnetometer/hmc5883
+		#mkblctrl
+		#oreoled
+		#protocol_splitter
+		#pca9685
+		#pwm_input
+		#pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		#tap_esc
+		#telemetry # all available telemetry drivers
+		#test_ppm
+		vmount
+
+	MODULES
+		#attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		#landing_target_estimator
+		load_mon
+		#local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		#position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		#wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		#config
+		#dumpfile
+		#esc_calib
+		hardfault_log
+		#led_control
+		mixer
+		#motor_ramp
+		#motor_test
+		mtd
+		#nshterm
+		param
+		perf
+		pwm
+		reboot
+		#sd_bench
+		#tests # tests and test runner
+		top
+		#topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+	)
diff --git a/platforms/nuttx/Images/px4fmu-v2.prototype b/boards/px4/fmu-v2/firmware.prototype
similarity index 52%
rename from platforms/nuttx/Images/px4fmu-v2.prototype
rename to boards/px4/fmu-v2/firmware.prototype
index 07362b57c5..f60598196c 100644
--- a/platforms/nuttx/Images/px4fmu-v2.prototype
+++ b/boards/px4/fmu-v2/firmware.prototype
@@ -1,9 +1,9 @@
 {
-    "board_id": 9, 
-    "magic": "PX4FWv1", 
-    "description": "Firmware for the PX4FMUv2 board", 
-    "image": "", 
-    "build_time": 0, 
+    "board_id": 9,
+    "magic": "PX4FWv1",
+    "description": "Firmware for the PX4FMUv2 board",
+    "image": "",
+    "build_time": 0,
     "summary": "PX4FMUv2",
     "version": "0.1",
     "image_size": 0,
diff --git a/boards/px4/fmu-v2/lpe.cmake b/boards/px4/fmu-v2/lpe.cmake
new file mode 100644
index 0000000000..0877a4a327
--- /dev/null
+++ b/boards/px4/fmu-v2/lpe.cmake
@@ -0,0 +1,118 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v2
+	LABEL lpe
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin
+	IO px4io-v2_default
+	#TESTING
+	#UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		barometer/ms5611
+		#batt_smbus
+		#blinkm
+		camera_trigger
+		#differential_pressure # all available differential pressure drivers
+		#differential_pressure/ms4525
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		#imu/adis16448
+		imu/l3gd20
+		imu/lsm303d
+		imu/mpu6000
+		#imu/mpu9250
+		#iridiumsbd
+		irlock
+		#magnetometer # all available magnetometer drivers
+		magnetometer/hmc5883
+		#mkblctrl
+		#oreoled
+		#protocol_splitter
+		#pca9685
+		#pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		#tap_esc
+		#telemetry # all available telemetry drivers
+		#test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		#ekf2
+		events
+		#fw_att_control
+		#fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		#position_estimator_inav
+		sensors
+		#uavcan
+		#vtol_att_control
+		#wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		#config
+		#dumpfile
+		#esc_calib
+		hardfault_log
+		#led_control
+		mixer
+		#motor_ramp
+		motor_test
+		mtd
+		#nshterm
+		param
+		perf
+		pwm
+		reboot
+		#sd_bench
+		#tests # tests and test runner
+		top
+		#topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+	)
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v2/Kconfig b/boards/px4/fmu-v2/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v2/Kconfig
rename to boards/px4/fmu-v2/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v2/include/board.h b/boards/px4/fmu-v2/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v2/include/board.h
rename to boards/px4/fmu-v2/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v2/nsh/defconfig b/boards/px4/fmu-v2/nuttx-config/nsh/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v2/nsh/defconfig
rename to boards/px4/fmu-v2/nuttx-config/nsh/defconfig
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v2/scripts/ld.script b/boards/px4/fmu-v2/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v2/scripts/ld.script
rename to boards/px4/fmu-v2/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/px4fmu-v2/CMakeLists.txt b/boards/px4/fmu-v2/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/CMakeLists.txt
rename to boards/px4/fmu-v2/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4fmu-v2/board_config.h b/boards/px4/fmu-v2/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4fmu-v2/board_config.h
rename to boards/px4/fmu-v2/src/board_config.h
index e3da7692c2..bce4f8f6e4 100644
--- a/src/drivers/boards/px4fmu-v2/board_config.h
+++ b/boards/px4/fmu-v2/src/board_config.h
@@ -562,7 +562,7 @@ extern void board_peripheral_reset(int ms);
 
 extern void stm32_usbinitialize(void);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4fmu-v2/can.c b/boards/px4/fmu-v2/src/can.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/can.c
rename to boards/px4/fmu-v2/src/can.c
diff --git a/src/drivers/boards/px4fmu-v2/i2c.c b/boards/px4/fmu-v2/src/i2c.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/i2c.c
rename to boards/px4/fmu-v2/src/i2c.c
diff --git a/src/drivers/boards/px4fmu-v2/init.c b/boards/px4/fmu-v2/src/init.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/init.c
rename to boards/px4/fmu-v2/src/init.c
diff --git a/src/drivers/boards/px4fmu-v2/led.c b/boards/px4/fmu-v2/src/led.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/led.c
rename to boards/px4/fmu-v2/src/led.c
diff --git a/src/drivers/boards/px4fmu-v2/manifest.c b/boards/px4/fmu-v2/src/manifest.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/manifest.c
rename to boards/px4/fmu-v2/src/manifest.c
diff --git a/src/drivers/boards/px4fmu-v2/spi.c b/boards/px4/fmu-v2/src/spi.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/spi.c
rename to boards/px4/fmu-v2/src/spi.c
diff --git a/src/drivers/boards/px4fmu-v2/timer_config.c b/boards/px4/fmu-v2/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/timer_config.c
rename to boards/px4/fmu-v2/src/timer_config.c
diff --git a/src/drivers/boards/px4fmu-v2/usb.c b/boards/px4/fmu-v2/src/usb.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v2/usb.c
rename to boards/px4/fmu-v2/src/usb.c
diff --git a/boards/px4/fmu-v2/test.cmake b/boards/px4/fmu-v2/test.cmake
new file mode 100644
index 0000000000..5c032c3e01
--- /dev/null
+++ b/boards/px4/fmu-v2/test.cmake
@@ -0,0 +1,119 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v2
+	LABEL test
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_test
+	IO px4io-v2_default
+	TESTING
+	#UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		barometer/ms5611
+		#batt_smbus
+		#blinkm
+		camera_trigger
+		#differential_pressure # all available differential pressure drivers
+		differential_pressure/ms4525
+		#distance_sensor # all available distance sensor drivers
+		distance_sensor/ll40ls
+		distance_sensor/sf0x
+		gps
+		#heater
+		#imu # all available imu drivers
+		#imu/adis16448
+		imu/l3gd20
+		imu/lsm303d
+		imu/mpu6000
+		imu/mpu9250
+		#iridiumsbd
+		#irlock
+		#magnetometer # all available magnetometer drivers
+		magnetometer/hmc5883
+		#mkblctrl
+		#oreoled
+		#protocol_splitter
+		#pca9685
+		#pwm_input
+		#pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		#tap_esc
+		#telemetry # all available telemetry drivers
+		#test_ppm
+		vmount
+
+	MODULES
+		#attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		#ekf2
+		events
+		#fw_att_control
+		#fw_pos_control_l1
+		#gnd_att_control
+		#gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		#local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		#position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		#wind_estimator
+
+	SYSTEMCMDS
+		#bl_update
+		#config
+		#dumpfile
+		#esc_calib
+		hardfault_log
+		#led_control
+		mixer
+		#motor_ramp
+		motor_test
+		mtd
+		#nshterm
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		tests # tests and test runner
+		top
+		#topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+	)
diff --git a/boards/px4/fmu-v3/default.cmake b/boards/px4/fmu-v3/default.cmake
new file mode 100644
index 0000000000..b2646ad6d0
--- /dev/null
+++ b/boards/px4/fmu-v3/default.cmake
@@ -0,0 +1,129 @@
+
+# FMUv3 is FMUv2 with access to the full 2MB flash
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v3
+	LABEL default
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/adis16448
+		imu/l3gd20
+		imu/lsm303d
+		imu/mpu6000
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		#pmw3901
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		rgbled_ncp5623c
+		#rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/px4fmu-v3.prototype b/boards/px4/fmu-v3/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/px4fmu-v3.prototype
rename to boards/px4/fmu-v3/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/Kconfig b/boards/px4/fmu-v3/nuttx-config/Kconfig
similarity index 94%
rename from platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/Kconfig
rename to boards/px4/fmu-v3/nuttx-config/Kconfig
index eab8596bb6..f9f0c5e6a8 100644
--- a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/Kconfig
+++ b/boards/px4/fmu-v3/nuttx-config/Kconfig
@@ -3,7 +3,7 @@
 # see misc/tools/kconfig-language.txt.
 #
 
-if ARCH_BOARD_PX4NUCLEOF767ZI_V1
+if ARCH_BOARD_PX4FMU_V2
 
 config BOARD_HAS_PROBES
 	bool "Board provides GPIO or other Hardware for signaling to timing analyze."
diff --git a/platforms/nuttx/nuttx-configs/px4flow-v2/include/board.h b/boards/px4/fmu-v3/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 62%
rename from platforms/nuttx/nuttx-configs/px4flow-v2/include/board.h
rename to boards/px4/fmu-v3/nuttx-config/include/board.h
index 94dbf98b7e..827d4f1221
--- a/platforms/nuttx/nuttx-configs/px4flow-v2/include/board.h
+++ b/boards/px4/fmu-v3/nuttx-config/include/board.h
@@ -1,9 +1,9 @@
 /************************************************************************************
- * nuttx-configs/px4flow-v2/include/board.h
+ * nuttx-configs/px4fmu-v3/include/board.h
+ * include/arch/board/board.h
  *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
+ *   Copyright (C) 2009 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
- *           David Sidrane <david_s5@nscdg.com>
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -34,28 +34,26 @@
  *
  ************************************************************************************/
 
-#ifndef __CONFIGS_PX4FLOW_V2_INCLUDE_BOARD_H
-#define __CONFIGS_PX4FLOW_V2_INCLUDE_BOARD_H
+#ifndef __ARCH_BOARD_BOARD_H
+#define __ARCH_BOARD_BOARD_H
 
 /************************************************************************************
  * Included Files
  ************************************************************************************/
 
 #include <nuttx/config.h>
-
 #ifndef __ASSEMBLY__
 # include <stdint.h>
 #endif
-#include "stm32_rcc.h"
-#include "stm32_sdio.h"
-#include "stm32.h"
+
+#include <stm32.h>
 
 /************************************************************************************
- * Pre-processor Definitions
+ * Definitions
  ************************************************************************************/
 
 /* Clocking *************************************************************************/
-/* The PX4FLOW uses a 24MHz crystal connected to the HSE.
+/* The PX4FMUV2 uses a 24MHz crystal connected to the HSE.
  *
  * This is the "standard" configuration as set up by arch/arm/src/stm32f40xx_rcc.c:
  *   System Clock source           : PLL (HSE)
@@ -167,79 +165,160 @@
 #define BOARD_TIM13_FREQUENCY   STM32_APB1_TIM13_CLKIN
 #define BOARD_TIM14_FREQUENCY   STM32_APB1_TIM14_CLKIN
 
+/* SDIO dividers.  Note that slower clocking is required when DMA is disabled
+ * in order to avoid RX overrun/TX underrun errors due to delayed responses
+ * to service FIFOs in interrupt driven mode.  These values have not been
+ * tuned!!!
+ *
+ * SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(118+2)=400 KHz
+ */
 
-/* Leds *************************************************************************/
+#define SDIO_INIT_CLKDIV        (118 << SDIO_CLKCR_CLKDIV_SHIFT)
 
-/* LED index values for use with board_setled() */
+/* DMA ON:  SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(1+2)=16 MHz
+ * DMA OFF: SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(2+2)=12 MHz
+ */
 
-#define BOARD_LED1                0
-#define BOARD_LED_RED             BOARD_LED1
-#define BOARD_LED2                1
-#define BOARD_LED_GREEN           BOARD_LED2
-#define BOARD_LED3                2
-#define BOARD_LED_BLUE            BOARD_LED3
-#define BOARD_NLEDS               3
+#ifdef CONFIG_STM32_SDIO_DMA
+#  define SDIO_MMCXFR_CLKDIV    (1 << SDIO_CLKCR_CLKDIV_SHIFT)
+#else
+#  define SDIO_MMCXFR_CLKDIV    (2 << SDIO_CLKCR_CLKDIV_SHIFT)
+#endif
 
-/* LED bits for use with board_setleds() */
+/* DMA ON:  SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(1+2)=16 MHz
+ * DMA OFF: SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(2+2)=12 MHz
+ */
 
-#define BOARD_LED_RED_BIT         (1 << BOARD_LED_RED)
-#define BOARD_LED_GREEN_BIT       (1 << BOARD_LED_GREEN)
-#define BOARD_LED_BLUE_BIT        (1 << BOARD_LED_BLUE)
+#ifdef CONFIG_STM32_SDIO_DMA
+#  define SDIO_SDXFR_CLKDIV     (1 << SDIO_CLKCR_CLKDIV_SHIFT)
+#else
+#  define SDIO_SDXFR_CLKDIV     (2 << SDIO_CLKCR_CLKDIV_SHIFT)
+#endif
 
-/* TODO:define these
- * These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
- *
- * defined.  In that case, the usage by the board port is as follows:
- *
- *   SYMBOL                     Meaning                      LED state
- *                                                         Red   Green Blue
- *   ------------------------  --------------------------  ------ ------ ----*/
-
-#define LED_STARTED          0 /* NuttX has been started   OFF    OFF   OFF */
-#define LED_HEAPALLOCATE     1 /* Heap has been allocated  OFF    OFF   ON  */
-#define LED_IRQSENABLED      2 /* Interrupts enabled       OFF    ON    OFF */
-#define LED_STACKCREATED     3 /* Idle stack created       OFF    ON    ON  */
-#define LED_INIRQ            4 /* In an interrupt          N/C    GLOW  N/C */
-#define LED_SIGNAL           5 /* In a signal handler      N/C    GLOW  N/C */
-#define LED_ASSERTION        6 /* An assertion failed      GLOW   GLOW  N/C */
-#define LED_PANIC            7 /* The system has crashed   Blk    OFF   N/C */
-#define LED_IDLE             8  /* MCU is is sleep mode    ON     OFF   OFF */
-
-/*
- * Thus if the blue is statically on, NuttX has successfully booted and is,
- * apparently, running normally.  If the Red LED is flashing at
- * approximately 2Hz, then a fatal error has been detected and the system
- * has halted.
+/* DMA Channl/Stream Selections *****************************************************/
+/* Stream selections are arbitrary for now but might become important in the future
+ * is we set aside more DMA channels/streams.
  *
+ * SDIO DMA
+ *   DMAMAP_SDIO_1 = Channel 4, Stream 3 <- may later be used by SPI DMA
+ *   DMAMAP_SDIO_2 = Channel 4, Stream 6
  */
 
+#define DMAMAP_SDIO DMAMAP_SDIO_1
+
 /* Alternate function pin selections ************************************************/
 
 /* UARTs */
 
+#define GPIO_USART1_RX   GPIO_USART1_RX_1    /* Console in from IO */
+#define GPIO_USART1_TX   0                   /* USART1 is RX-only */
+
+#define GPIO_USART2_RX   GPIO_USART2_RX_2
+#define GPIO_USART2_TX   GPIO_USART2_TX_2
+#define GPIO_USART2_RTS  GPIO_USART2_RTS_2
+#define GPIO_USART2_CTS  GPIO_USART2_CTS_2
+
 #define GPIO_USART3_RX   GPIO_USART3_RX_3
 #define GPIO_USART3_TX   GPIO_USART3_TX_3
+#define GPIO_USART3_RTS  GPIO_USART3_RTS_2
+#define GPIO_USART3_CTS  GPIO_USART3_CTS_2
+
+#define GPIO_UART4_RX    GPIO_UART4_RX_1
+#define GPIO_UART4_TX    GPIO_UART4_TX_1
+
+#define GPIO_USART6_RX   GPIO_USART6_RX_1
+#define GPIO_USART6_TX   GPIO_USART6_TX_1
+
+#define GPIO_UART7_RX    GPIO_UART7_RX_1
+#define GPIO_UART7_TX    GPIO_UART7_TX_1
+
+/* UART8 has no alternate pin config */
+
+/* UART RX DMA configurations */
+
+#define DMAMAP_USART1_RX DMAMAP_USART1_RX_2
+#define DMAMAP_USART6_RX DMAMAP_USART6_RX_2
 
 /* CAN
  *
  * CAN1 is routed to the onboard transceiver.
+ * CAN2 is routed to the expansion connector.
  */
 
 #define GPIO_CAN1_RX     GPIO_CAN1_RX_3
 #define GPIO_CAN1_TX     GPIO_CAN1_TX_3
+#define GPIO_CAN2_RX     GPIO_CAN2_RX_1
+#define GPIO_CAN2_TX     GPIO_CAN2_TX_2
+
+/* I2C
+ *
+ * The optional _GPIO configurations allow the I2C driver to manually
+ * reset the bus to clear stuck slaves.  They match the pin configuration,
+ * but are normally-high GPIOs.
+ */
+
+#define GPIO_I2C1_SCL    GPIO_I2C1_SCL_2
+#define GPIO_I2C1_SDA    GPIO_I2C1_SDA_2
+#define GPIO_I2C1_SCL_GPIO \
+   (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN8)
+#define GPIO_I2C1_SDA_GPIO \
+   (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9)
+
+#define GPIO_I2C2_SCL    GPIO_I2C2_SCL_1
+#define GPIO_I2C2_SDA    GPIO_I2C2_SDA_1
+#define GPIO_I2C2_SCL_GPIO \
+   (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10)
+#define GPIO_I2C2_SDA_GPIO \
+   (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN11)
+
+/* SPI
+ *
+ * There are sensors on SPI1, and SPI2 is connected to the FRAM.
+ */
+
+#define GPIO_SPI1_MISO   GPIO_SPI1_MISO_1
+#define GPIO_SPI1_MOSI   GPIO_SPI1_MOSI_1
+#define GPIO_SPI1_SCK    GPIO_SPI1_SCK_1
+
+#define GPIO_SPI2_MISO   GPIO_SPI2_MISO_1
+#define GPIO_SPI2_MOSI   GPIO_SPI2_MOSI_1
+#define GPIO_SPI2_SCK    GPIO_SPI2_SCK_2
+
+#define GPIO_SPI4_MISO	GPIO_SPI4_MISO_1
+#define GPIO_SPI4_MOSI	GPIO_SPI4_MOSI_1
+#define GPIO_SPI4_SCK	GPIO_SPI4_SCK_1
+
+/* LED Definitions.  Needed if CONFIG_ARCH_LEDs is defined */
+
+#define LED_STARTED      0
+#define LED_HEAPALLOCATE 0
+#define LED_IRQSENABLED  0
+#define LED_STACKCREATED 1
+#define LED_INIRQ        1
+#define LED_SIGNAL       1
+#define LED_ASSERTION    1
+#define LED_PANIC        1
+
+/* Board provides GPIO or other Hardware for signaling to timing analyzer */
 
 #if defined(CONFIG_BOARD_USE_PROBES)
 # define PROBE_N(n) (1<<((n)-1))
-# define PROBE_1        (GPIO_OUTPUT|GPIO_PUSHPULL | GPIO_SPEED_50MHz | GPIO_OUTPUT_CLEAR | GPIO_PORTC | GPIO_PIN2)
-# define PROBE_2        (GPIO_OUTPUT|GPIO_PUSHPULL | GPIO_SPEED_50MHz | GPIO_OUTPUT_CLEAR | GPIO_PORTC | GPIO_PIN4)
-# define PROBE_3        (GPIO_OUTPUT|GPIO_PUSHPULL | GPIO_SPEED_50MHz | GPIO_OUTPUT_CLEAR | GPIO_PORTC | GPIO_PIN5)
+# define PROBE_1	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN14)
+# define PROBE_2	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN13)
+# define PROBE_3	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN11)
+# define PROBE_4	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN9)
+# define PROBE_5	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN13)
+# define PROBE_6	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN14)
 
 # define PROBE_INIT(mask) \
-        do { \
-                if ((mask)& PROBE_N(1)) { stm32_configgpio(PROBE_1); } \
-                if ((mask)& PROBE_N(2)) { stm32_configgpio(PROBE_2); } \
-                if ((mask)& PROBE_N(3)) { stm32_configgpio(PROBE_3); } \
-        } while(0)
+	do { \
+		if ((mask)& PROBE_N(1)) { stm32_configgpio(PROBE_1); } \
+		if ((mask)& PROBE_N(2)) { stm32_configgpio(PROBE_2); } \
+		if ((mask)& PROBE_N(3)) { stm32_configgpio(PROBE_3); } \
+		if ((mask)& PROBE_N(4)) { stm32_configgpio(PROBE_4); } \
+		if ((mask)& PROBE_N(5)) { stm32_configgpio(PROBE_5); } \
+		if ((mask)& PROBE_N(6)) { stm32_configgpio(PROBE_6); } \
+	} while(0)
 
 # define PROBE(n,s)  do {stm32_gpiowrite(PROBE_##n,(s));}while(0)
 # define PROBE_MARK(n) PROBE(n,false);PROBE(n,true)
@@ -249,6 +328,8 @@
 # define PROBE_MARK(n)
 #endif
 
+
+
 /************************************************************************************
  * Public Data
  ************************************************************************************/
@@ -258,8 +339,7 @@
 #undef EXTERN
 #if defined(__cplusplus)
 #define EXTERN extern "C"
-extern "C"
-{
+extern "C" {
 #else
 #define EXTERN extern
 #endif
@@ -277,29 +357,7 @@ extern "C"
  *
  ************************************************************************************/
 
-void stm32_boardinitialize(void);
-
-/************************************************************************************
- * Name: stm32_ledinit, stm32_setled, and stm32_setleds
- *
- * Description:
- *   If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board LEDs.  If
- *   CONFIG_ARCH_LEDS is not defined, then the following interfaces are available to
- *   control the LEDs from user applications.
- *
- ************************************************************************************/
-
-#ifndef CONFIG_ARCH_LEDS
-void stm32_led_initialize(void);
-void stm32_setled(int led, bool ledon);
-void stm32_setleds(uint8_t ledset);
-#endif
-
-#if  !defined(CONFIG_NSH_LIBRARY)
-int app_archinitialize(void);
-#else
-#define app_archinitialize()  (-ENOSYS)
-#endif
+EXTERN void stm32_boardinitialize(void);
 
 #undef EXTERN
 #if defined(__cplusplus)
@@ -307,4 +365,4 @@ int app_archinitialize(void);
 #endif
 
 #endif /* __ASSEMBLY__ */
-#endif /* __CONFIGS_PX4FLOW_V2_INCLUDE_BOARD_H */
+#endif  /* __ARCH_BOARD_BOARD_H */
diff --git a/boards/px4/fmu-v3/nuttx-config/nsh/defconfig b/boards/px4/fmu-v3/nuttx-config/nsh/defconfig
new file mode 100644
index 0000000000..629b05cbfe
--- /dev/null
+++ b/boards/px4/fmu-v3/nuttx-config/nsh/defconfig
@@ -0,0 +1,1688 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Nuttx/ Configuration
+#
+
+#
+# Build Setup
+#
+# CONFIG_EXPERIMENTAL is not set
+# CONFIG_DEFAULT_SMALL is not set
+CONFIG_HOST_LINUX=y
+# CONFIG_HOST_OSX is not set
+# CONFIG_HOST_WINDOWS is not set
+# CONFIG_HOST_OTHER is not set
+
+#
+# Build Configuration
+#
+CONFIG_APPS_DIR="../apps"
+CONFIG_BUILD_FLAT=y
+# CONFIG_BUILD_2PASS is not set
+
+#
+# Binary Output Formats
+#
+# CONFIG_RRLOAD_BINARY is not set
+# CONFIG_INTELHEX_BINARY is not set
+# CONFIG_MOTOROLA_SREC is not set
+CONFIG_RAW_BINARY=y
+# CONFIG_UBOOT_UIMAGE is not set
+# CONFIG_DFU_BINARY is not set
+
+#
+# Customize Header Files
+#
+# CONFIG_ARCH_STDINT_H is not set
+# CONFIG_ARCH_STDBOOL_H is not set
+CONFIG_ARCH_MATH_H=y
+# CONFIG_ARCH_FLOAT_H is not set
+# CONFIG_ARCH_STDARG_H is not set
+# CONFIG_ARCH_DEBUG_H is not set
+
+#
+# Debug Options
+#
+CONFIG_DEBUG_ALERT=y
+# CONFIG_DEBUG_FEATURES is not set
+CONFIG_ARCH_HAVE_STACKCHECK=y
+CONFIG_STACK_COLORATION=y
+CONFIG_ARCH_HAVE_HEAPCHECK=y
+# CONFIG_HEAP_COLORATION is not set
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_ARCH_HAVE_CUSTOMOPT=y
+CONFIG_DEBUG_NOOPT=y
+# CONFIG_DEBUG_CUSTOMOPT is not set
+# CONFIG_DEBUG_FULLOPT is not set
+
+#
+# System Type
+#
+CONFIG_ARCH_ARM=y
+# CONFIG_ARCH_AVR is not set
+# CONFIG_ARCH_HC is not set
+# CONFIG_ARCH_MIPS is not set
+# CONFIG_ARCH_MISOC is not set
+# CONFIG_ARCH_RENESAS is not set
+# CONFIG_ARCH_RISCV is not set
+# CONFIG_ARCH_SIM is not set
+# CONFIG_ARCH_X86 is not set
+# CONFIG_ARCH_XTENSA is not set
+# CONFIG_ARCH_Z16 is not set
+# CONFIG_ARCH_Z80 is not set
+CONFIG_ARCH="arm"
+
+#
+# ARM Options
+#
+# CONFIG_ARCH_CHIP_A1X is not set
+# CONFIG_ARCH_CHIP_C5471 is not set
+# CONFIG_ARCH_CHIP_DM320 is not set
+# CONFIG_ARCH_CHIP_EFM32 is not set
+# CONFIG_ARCH_CHIP_IMX1 is not set
+# CONFIG_ARCH_CHIP_IMX6 is not set
+# CONFIG_ARCH_CHIP_KINETIS is not set
+# CONFIG_ARCH_CHIP_KL is not set
+# CONFIG_ARCH_CHIP_LC823450 is not set
+# CONFIG_ARCH_CHIP_LM is not set
+# CONFIG_ARCH_CHIP_TIVA is not set
+# CONFIG_ARCH_CHIP_LPC11XX is not set
+# CONFIG_ARCH_CHIP_LPC17XX is not set
+# CONFIG_ARCH_CHIP_LPC214X is not set
+# CONFIG_ARCH_CHIP_LPC2378 is not set
+# CONFIG_ARCH_CHIP_LPC31XX is not set
+# CONFIG_ARCH_CHIP_LPC43XX is not set
+# CONFIG_ARCH_CHIP_MOXART is not set
+# CONFIG_ARCH_CHIP_NUC1XX is not set
+# CONFIG_ARCH_CHIP_SAMA5 is not set
+# CONFIG_ARCH_CHIP_SAMD is not set
+# CONFIG_ARCH_CHIP_SAML is not set
+# CONFIG_ARCH_CHIP_SAM34 is not set
+# CONFIG_ARCH_CHIP_SAMV7 is not set
+CONFIG_ARCH_CHIP_STM32=y
+# CONFIG_ARCH_CHIP_STM32F0 is not set
+# CONFIG_ARCH_CHIP_STM32F7 is not set
+# CONFIG_ARCH_CHIP_STM32L4 is not set
+# CONFIG_ARCH_CHIP_STR71X is not set
+# CONFIG_ARCH_CHIP_TMS570 is not set
+# CONFIG_ARCH_CHIP_XMC4 is not set
+# CONFIG_ARCH_ARM7TDMI is not set
+# CONFIG_ARCH_ARM920T is not set
+# CONFIG_ARCH_ARM926EJS is not set
+# CONFIG_ARCH_ARM1136J is not set
+# CONFIG_ARCH_ARM1156T2 is not set
+# CONFIG_ARCH_ARM1176JZ is not set
+# CONFIG_ARCH_CORTEXM0 is not set
+# CONFIG_ARCH_CORTEXM23 is not set
+# CONFIG_ARCH_CORTEXM3 is not set
+# CONFIG_ARCH_CORTEXM33 is not set
+CONFIG_ARCH_CORTEXM4=y
+# CONFIG_ARCH_CORTEXM7 is not set
+# CONFIG_ARCH_CORTEXA5 is not set
+# CONFIG_ARCH_CORTEXA8 is not set
+# CONFIG_ARCH_CORTEXA9 is not set
+# CONFIG_ARCH_CORTEXR4 is not set
+# CONFIG_ARCH_CORTEXR4F is not set
+# CONFIG_ARCH_CORTEXR5 is not set
+# CONFIG_ARCH_CORTEXR5F is not set
+# CONFIG_ARCH_CORTEXR7 is not set
+# CONFIG_ARCH_CORTEXR7F is not set
+CONFIG_ARCH_FAMILY="armv7-m"
+CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARMV7M_USEBASEPRI=y
+CONFIG_ARCH_HAVE_CMNVECTOR=y
+CONFIG_ARMV7M_CMNVECTOR=y
+# CONFIG_ARMV7M_LAZYFPU is not set
+CONFIG_ARCH_HAVE_FPU=y
+# CONFIG_ARCH_HAVE_DPFPU is not set
+CONFIG_ARCH_FPU=y
+# CONFIG_ARCH_HAVE_TRUSTZONE is not set
+CONFIG_ARM_HAVE_MPU_UNIFIED=y
+# CONFIG_ARM_MPU is not set
+
+#
+# ARMV7M Configuration Options
+#
+# CONFIG_ARMV7M_HAVE_ICACHE is not set
+# CONFIG_ARMV7M_HAVE_DCACHE is not set
+# CONFIG_ARMV7M_HAVE_ITCM is not set
+# CONFIG_ARMV7M_HAVE_DTCM is not set
+# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set
+# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
+# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
+# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
+CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y
+# CONFIG_ARMV7M_TOOLCHAIN_CLANGL is not set
+CONFIG_ARMV7M_HAVE_STACKCHECK=y
+# CONFIG_ARMV7M_STACKCHECK is not set
+# CONFIG_ARMV7M_ITMSYSLOG is not set
+CONFIG_SERIAL_TERMIOS=y
+
+#
+# STM32 Configuration Options
+#
+# CONFIG_ARCH_CHIP_STM32L151C6 is not set
+# CONFIG_ARCH_CHIP_STM32L151C8 is not set
+# CONFIG_ARCH_CHIP_STM32L151CB is not set
+# CONFIG_ARCH_CHIP_STM32L151R6 is not set
+# CONFIG_ARCH_CHIP_STM32L151R8 is not set
+# CONFIG_ARCH_CHIP_STM32L151RB is not set
+# CONFIG_ARCH_CHIP_STM32L151V6 is not set
+# CONFIG_ARCH_CHIP_STM32L151V8 is not set
+# CONFIG_ARCH_CHIP_STM32L151VB is not set
+# CONFIG_ARCH_CHIP_STM32L152C6 is not set
+# CONFIG_ARCH_CHIP_STM32L152C8 is not set
+# CONFIG_ARCH_CHIP_STM32L152CB is not set
+# CONFIG_ARCH_CHIP_STM32L152R6 is not set
+# CONFIG_ARCH_CHIP_STM32L152R8 is not set
+# CONFIG_ARCH_CHIP_STM32L152RB is not set
+# CONFIG_ARCH_CHIP_STM32L152V6 is not set
+# CONFIG_ARCH_CHIP_STM32L152V8 is not set
+# CONFIG_ARCH_CHIP_STM32L152VB is not set
+# CONFIG_ARCH_CHIP_STM32L152CC is not set
+# CONFIG_ARCH_CHIP_STM32L152RC is not set
+# CONFIG_ARCH_CHIP_STM32L152VC is not set
+# CONFIG_ARCH_CHIP_STM32L162ZD is not set
+# CONFIG_ARCH_CHIP_STM32L162VE is not set
+# CONFIG_ARCH_CHIP_STM32F100C8 is not set
+# CONFIG_ARCH_CHIP_STM32F100CB is not set
+# CONFIG_ARCH_CHIP_STM32F100R8 is not set
+# CONFIG_ARCH_CHIP_STM32F100RB is not set
+# CONFIG_ARCH_CHIP_STM32F100RC is not set
+# CONFIG_ARCH_CHIP_STM32F100RD is not set
+# CONFIG_ARCH_CHIP_STM32F100RE is not set
+# CONFIG_ARCH_CHIP_STM32F100V8 is not set
+# CONFIG_ARCH_CHIP_STM32F100VB is not set
+# CONFIG_ARCH_CHIP_STM32F100VC is not set
+# CONFIG_ARCH_CHIP_STM32F100VD is not set
+# CONFIG_ARCH_CHIP_STM32F100VE is not set
+# CONFIG_ARCH_CHIP_STM32F102CB is not set
+# CONFIG_ARCH_CHIP_STM32F103T8 is not set
+# CONFIG_ARCH_CHIP_STM32F103TB is not set
+# CONFIG_ARCH_CHIP_STM32F103C4 is not set
+# CONFIG_ARCH_CHIP_STM32F103C8 is not set
+# CONFIG_ARCH_CHIP_STM32F103CB is not set
+# CONFIG_ARCH_CHIP_STM32F103R8 is not set
+# CONFIG_ARCH_CHIP_STM32F103RB is not set
+# CONFIG_ARCH_CHIP_STM32F103RC is not set
+# CONFIG_ARCH_CHIP_STM32F103RD is not set
+# CONFIG_ARCH_CHIP_STM32F103RE is not set
+# CONFIG_ARCH_CHIP_STM32F103RG is not set
+# CONFIG_ARCH_CHIP_STM32F103V8 is not set
+# CONFIG_ARCH_CHIP_STM32F103VB is not set
+# CONFIG_ARCH_CHIP_STM32F103VC is not set
+# CONFIG_ARCH_CHIP_STM32F103VE is not set
+# CONFIG_ARCH_CHIP_STM32F103ZE is not set
+# CONFIG_ARCH_CHIP_STM32F105VB is not set
+# CONFIG_ARCH_CHIP_STM32F105RB is not set
+# CONFIG_ARCH_CHIP_STM32F107VC is not set
+# CONFIG_ARCH_CHIP_STM32F205RG is not set
+# CONFIG_ARCH_CHIP_STM32F207IG is not set
+# CONFIG_ARCH_CHIP_STM32F207ZE is not set
+# CONFIG_ARCH_CHIP_STM32F302K6 is not set
+# CONFIG_ARCH_CHIP_STM32F302K8 is not set
+# CONFIG_ARCH_CHIP_STM32F302CB is not set
+# CONFIG_ARCH_CHIP_STM32F302CC is not set
+# CONFIG_ARCH_CHIP_STM32F302RB is not set
+# CONFIG_ARCH_CHIP_STM32F302RC is not set
+# CONFIG_ARCH_CHIP_STM32F302VB is not set
+# CONFIG_ARCH_CHIP_STM32F302VC is not set
+# CONFIG_ARCH_CHIP_STM32F303K6 is not set
+# CONFIG_ARCH_CHIP_STM32F303K8 is not set
+# CONFIG_ARCH_CHIP_STM32F303C6 is not set
+# CONFIG_ARCH_CHIP_STM32F303C8 is not set
+# CONFIG_ARCH_CHIP_STM32F303CB is not set
+# CONFIG_ARCH_CHIP_STM32F303CC is not set
+# CONFIG_ARCH_CHIP_STM32F303RB is not set
+# CONFIG_ARCH_CHIP_STM32F303RC is not set
+# CONFIG_ARCH_CHIP_STM32F303RD is not set
+# CONFIG_ARCH_CHIP_STM32F303RE is not set
+# CONFIG_ARCH_CHIP_STM32F303VB is not set
+# CONFIG_ARCH_CHIP_STM32F303VC is not set
+# CONFIG_ARCH_CHIP_STM32F334K4 is not set
+# CONFIG_ARCH_CHIP_STM32F334K6 is not set
+# CONFIG_ARCH_CHIP_STM32F334K8 is not set
+# CONFIG_ARCH_CHIP_STM32F334C4 is not set
+# CONFIG_ARCH_CHIP_STM32F334C6 is not set
+# CONFIG_ARCH_CHIP_STM32F334C8 is not set
+# CONFIG_ARCH_CHIP_STM32F334R4 is not set
+# CONFIG_ARCH_CHIP_STM32F334R6 is not set
+# CONFIG_ARCH_CHIP_STM32F334R8 is not set
+# CONFIG_ARCH_CHIP_STM32F372C8 is not set
+# CONFIG_ARCH_CHIP_STM32F372R8 is not set
+# CONFIG_ARCH_CHIP_STM32F372V8 is not set
+# CONFIG_ARCH_CHIP_STM32F372CB is not set
+# CONFIG_ARCH_CHIP_STM32F372RB is not set
+# CONFIG_ARCH_CHIP_STM32F372VB is not set
+# CONFIG_ARCH_CHIP_STM32F372CC is not set
+# CONFIG_ARCH_CHIP_STM32F372RC is not set
+# CONFIG_ARCH_CHIP_STM32F372VC is not set
+# CONFIG_ARCH_CHIP_STM32F373C8 is not set
+# CONFIG_ARCH_CHIP_STM32F373R8 is not set
+# CONFIG_ARCH_CHIP_STM32F373V8 is not set
+# CONFIG_ARCH_CHIP_STM32F373CB is not set
+# CONFIG_ARCH_CHIP_STM32F373RB is not set
+# CONFIG_ARCH_CHIP_STM32F373VB is not set
+# CONFIG_ARCH_CHIP_STM32F373CC is not set
+# CONFIG_ARCH_CHIP_STM32F373RC is not set
+# CONFIG_ARCH_CHIP_STM32F373VC is not set
+# CONFIG_ARCH_CHIP_STM32F401RE is not set
+# CONFIG_ARCH_CHIP_STM32F410RB is not set
+# CONFIG_ARCH_CHIP_STM32F411RE is not set
+# CONFIG_ARCH_CHIP_STM32F411VE is not set
+# CONFIG_ARCH_CHIP_STM32F405RG is not set
+# CONFIG_ARCH_CHIP_STM32F405VG is not set
+# CONFIG_ARCH_CHIP_STM32F405ZG is not set
+# CONFIG_ARCH_CHIP_STM32F407VE is not set
+# CONFIG_ARCH_CHIP_STM32F407VG is not set
+# CONFIG_ARCH_CHIP_STM32F407ZE is not set
+# CONFIG_ARCH_CHIP_STM32F407ZG is not set
+# CONFIG_ARCH_CHIP_STM32F407IE is not set
+# CONFIG_ARCH_CHIP_STM32F407IG is not set
+CONFIG_ARCH_CHIP_STM32F427V=y
+# CONFIG_ARCH_CHIP_STM32F427Z is not set
+# CONFIG_ARCH_CHIP_STM32F427I is not set
+# CONFIG_ARCH_CHIP_STM32F429V is not set
+# CONFIG_ARCH_CHIP_STM32F429Z is not set
+# CONFIG_ARCH_CHIP_STM32F429I is not set
+# CONFIG_ARCH_CHIP_STM32F429B is not set
+# CONFIG_ARCH_CHIP_STM32F429N is not set
+# CONFIG_ARCH_CHIP_STM32F446M is not set
+# CONFIG_ARCH_CHIP_STM32F446R is not set
+# CONFIG_ARCH_CHIP_STM32F446V is not set
+# CONFIG_ARCH_CHIP_STM32F446Z is not set
+# CONFIG_ARCH_CHIP_STM32F469A is not set
+# CONFIG_ARCH_CHIP_STM32F469I is not set
+# CONFIG_ARCH_CHIP_STM32F469B is not set
+# CONFIG_ARCH_CHIP_STM32F469N is not set
+# CONFIG_STM32_FLASH_CONFIG_DEFAULT is not set
+# CONFIG_STM32_FLASH_CONFIG_4 is not set
+# CONFIG_STM32_FLASH_CONFIG_6 is not set
+# CONFIG_STM32_FLASH_CONFIG_8 is not set
+# CONFIG_STM32_FLASH_CONFIG_B is not set
+# CONFIG_STM32_FLASH_CONFIG_C is not set
+# CONFIG_STM32_FLASH_CONFIG_D is not set
+# CONFIG_STM32_FLASH_CONFIG_E is not set
+# CONFIG_STM32_FLASH_CONFIG_F is not set
+# CONFIG_STM32_FLASH_CONFIG_G is not set
+CONFIG_STM32_FLASH_CONFIG_I=y
+# CONFIG_STM32_STM32L15XX is not set
+# CONFIG_STM32_ENERGYLITE is not set
+# CONFIG_STM32_STM32F10XX is not set
+# CONFIG_STM32_VALUELINE is not set
+# CONFIG_STM32_CONNECTIVITYLINE is not set
+# CONFIG_STM32_PERFORMANCELINE is not set
+# CONFIG_STM32_USBACCESSLINE is not set
+# CONFIG_STM32_HIGHDENSITY is not set
+# CONFIG_STM32_MEDIUMDENSITY is not set
+# CONFIG_STM32_LOWDENSITY is not set
+# CONFIG_STM32_STM32F20XX is not set
+# CONFIG_STM32_STM32F205 is not set
+# CONFIG_STM32_STM32F207 is not set
+# CONFIG_STM32_STM32F30XX is not set
+# CONFIG_STM32_STM32F302 is not set
+# CONFIG_STM32_STM32F303 is not set
+# CONFIG_STM32_STM32F33XX is not set
+# CONFIG_STM32_STM32F37XX is not set
+CONFIG_STM32_STM32F4XXX=y
+# CONFIG_STM32_STM32F401 is not set
+# CONFIG_STM32_STM32F410 is not set
+# CONFIG_STM32_STM32F411 is not set
+# CONFIG_STM32_STM32F405 is not set
+# CONFIG_STM32_STM32F407 is not set
+CONFIG_STM32_STM32F427=y
+# CONFIG_STM32_STM32F429 is not set
+# CONFIG_STM32_STM32F446 is not set
+# CONFIG_STM32_STM32F469 is not set
+# CONFIG_STM32_DFU is not set
+
+#
+# STM32 Peripheral Support
+#
+CONFIG_STM32_HAVE_CCM=y
+# CONFIG_STM32_HAVE_USBDEV is not set
+CONFIG_STM32_HAVE_OTGFS=y
+CONFIG_STM32_HAVE_FSMC=y
+# CONFIG_STM32_HAVE_HRTIM1 is not set
+# CONFIG_STM32_HAVE_LTDC is not set
+CONFIG_STM32_HAVE_USART3=y
+CONFIG_STM32_HAVE_UART4=y
+CONFIG_STM32_HAVE_UART5=y
+CONFIG_STM32_HAVE_USART6=y
+CONFIG_STM32_HAVE_UART7=y
+CONFIG_STM32_HAVE_UART8=y
+CONFIG_STM32_HAVE_TIM1=y
+# CONFIG_STM32_HAVE_TIM2 is not set
+CONFIG_STM32_HAVE_TIM3=y
+CONFIG_STM32_HAVE_TIM4=y
+CONFIG_STM32_HAVE_TIM5=y
+CONFIG_STM32_HAVE_TIM6=y
+CONFIG_STM32_HAVE_TIM7=y
+CONFIG_STM32_HAVE_TIM8=y
+CONFIG_STM32_HAVE_TIM9=y
+CONFIG_STM32_HAVE_TIM10=y
+CONFIG_STM32_HAVE_TIM11=y
+CONFIG_STM32_HAVE_TIM12=y
+CONFIG_STM32_HAVE_TIM13=y
+CONFIG_STM32_HAVE_TIM14=y
+# CONFIG_STM32_HAVE_TIM15 is not set
+# CONFIG_STM32_HAVE_TIM16 is not set
+# CONFIG_STM32_HAVE_TIM17 is not set
+CONFIG_STM32_HAVE_ADC2=y
+CONFIG_STM32_HAVE_ADC3=y
+# CONFIG_STM32_HAVE_ADC4 is not set
+CONFIG_STM32_HAVE_ADC1_DMA=y
+# CONFIG_STM32_HAVE_ADC2_DMA is not set
+# CONFIG_STM32_HAVE_ADC3_DMA is not set
+# CONFIG_STM32_HAVE_ADC4_DMA is not set
+# CONFIG_STM32_HAVE_SDADC1 is not set
+# CONFIG_STM32_HAVE_SDADC2 is not set
+# CONFIG_STM32_HAVE_SDADC3 is not set
+# CONFIG_STM32_HAVE_SDADC1_DMA is not set
+# CONFIG_STM32_HAVE_SDADC2_DMA is not set
+# CONFIG_STM32_HAVE_SDADC3_DMA is not set
+CONFIG_STM32_HAVE_CAN1=y
+CONFIG_STM32_HAVE_CAN2=y
+# CONFIG_STM32_HAVE_COMP1 is not set
+# CONFIG_STM32_HAVE_COMP2 is not set
+# CONFIG_STM32_HAVE_COMP3 is not set
+# CONFIG_STM32_HAVE_COMP4 is not set
+# CONFIG_STM32_HAVE_COMP5 is not set
+# CONFIG_STM32_HAVE_COMP6 is not set
+# CONFIG_STM32_HAVE_COMP7 is not set
+CONFIG_STM32_HAVE_DAC1=y
+CONFIG_STM32_HAVE_DAC2=y
+CONFIG_STM32_HAVE_RNG=y
+CONFIG_STM32_HAVE_ETHMAC=y
+CONFIG_STM32_HAVE_I2C2=y
+CONFIG_STM32_HAVE_I2C3=y
+CONFIG_STM32_HAVE_SPI2=y
+CONFIG_STM32_HAVE_SPI3=y
+CONFIG_STM32_HAVE_I2S3=y
+CONFIG_STM32_HAVE_SPI4=y
+CONFIG_STM32_HAVE_SPI5=y
+CONFIG_STM32_HAVE_SPI6=y
+# CONFIG_STM32_HAVE_SAIPLL is not set
+# CONFIG_STM32_HAVE_I2SPLL is not set
+# CONFIG_STM32_HAVE_OPAMP1 is not set
+# CONFIG_STM32_HAVE_OPAMP2 is not set
+# CONFIG_STM32_HAVE_OPAMP3 is not set
+# CONFIG_STM32_HAVE_OPAMP4 is not set
+CONFIG_STM32_ADC1=y
+# CONFIG_STM32_ADC2 is not set
+# CONFIG_STM32_ADC3 is not set
+CONFIG_STM32_BKPSRAM=y
+# CONFIG_STM32_CAN1 is not set
+# CONFIG_STM32_CAN2 is not set
+CONFIG_STM32_CCMDATARAM=y
+# CONFIG_STM32_CRC is not set
+# CONFIG_STM32_CRYP is not set
+CONFIG_STM32_DMA1=y
+CONFIG_STM32_DMA2=y
+# CONFIG_STM32_DAC1 is not set
+# CONFIG_STM32_DAC2 is not set
+# CONFIG_STM32_DCMI is not set
+# CONFIG_STM32_ETHMAC is not set
+# CONFIG_STM32_FSMC is not set
+# CONFIG_STM32_HASH is not set
+CONFIG_STM32_I2C1=y
+CONFIG_STM32_I2C2=y
+# CONFIG_STM32_I2C3 is not set
+# CONFIG_STM32_OPAMP is not set
+CONFIG_STM32_OTGFS=y
+# CONFIG_STM32_OTGHS is not set
+CONFIG_STM32_PWR=y
+# CONFIG_STM32_RNG is not set
+CONFIG_STM32_SDIO=y
+CONFIG_STM32_SPI1=y
+CONFIG_STM32_SPI2=y
+# CONFIG_STM32_SPI3 is not set
+# CONFIG_STM32_I2S3 is not set
+CONFIG_STM32_SPI4=y
+# CONFIG_STM32_SPI5 is not set
+# CONFIG_STM32_SPI6 is not set
+CONFIG_STM32_SYSCFG=y
+CONFIG_STM32_TIM1=y
+# CONFIG_STM32_TIM2 is not set
+CONFIG_STM32_TIM3=y
+CONFIG_STM32_TIM4=y
+# CONFIG_STM32_TIM5 is not set
+# CONFIG_STM32_TIM6 is not set
+# CONFIG_STM32_TIM7 is not set
+# CONFIG_STM32_TIM8 is not set
+CONFIG_STM32_TIM9=y
+CONFIG_STM32_TIM10=y
+CONFIG_STM32_TIM11=y
+# CONFIG_STM32_TIM12 is not set
+# CONFIG_STM32_TIM13 is not set
+# CONFIG_STM32_TIM14 is not set
+CONFIG_STM32_USART1=y
+CONFIG_STM32_USART2=y
+CONFIG_STM32_USART3=y
+CONFIG_STM32_UART4=y
+# CONFIG_STM32_UART5 is not set
+CONFIG_STM32_USART6=y
+CONFIG_STM32_UART7=y
+CONFIG_STM32_UART8=y
+# CONFIG_STM32_IWDG is not set
+CONFIG_STM32_WWDG=y
+CONFIG_STM32_ADC=y
+CONFIG_STM32_SPI=y
+CONFIG_STM32_I2C=y
+# CONFIG_STM32_NOEXT_VECTORS is not set
+
+#
+# Alternate Pin Mapping
+#
+CONFIG_STM32_FLASH_PREFETCH=y
+# CONFIG_STM32_FLASH_WORKAROUND_DATA_CACHE_CORRUPTION_ON_RWW is not set
+# CONFIG_STM32_JTAG_DISABLE is not set
+# CONFIG_STM32_JTAG_FULL_ENABLE is not set
+# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set
+CONFIG_STM32_JTAG_SW_ENABLE=y
+CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y
+# CONFIG_STM32_FORCEPOWER is not set
+# CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set
+# CONFIG_STM32_CCMEXCLUDE is not set
+# CONFIG_STM32_CCM_PROCFS is not set
+CONFIG_STM32_DMACAPABLE=y
+
+#
+# Timer Configuration
+#
+# CONFIG_STM32_ONESHOT is not set
+# CONFIG_STM32_FREERUN is not set
+# CONFIG_STM32_TIM1_PWM is not set
+# CONFIG_STM32_TIM3_PWM is not set
+# CONFIG_STM32_TIM4_PWM is not set
+# CONFIG_STM32_TIM9_PWM is not set
+# CONFIG_STM32_TIM10_PWM is not set
+# CONFIG_STM32_TIM11_PWM is not set
+# CONFIG_STM32_TIM1_ADC is not set
+# CONFIG_STM32_TIM3_ADC is not set
+# CONFIG_STM32_TIM4_ADC is not set
+# CONFIG_STM32_TIM1_CAP is not set
+# CONFIG_STM32_TIM3_CAP is not set
+# CONFIG_STM32_TIM4_CAP is not set
+# CONFIG_STM32_TIM5_CAP is not set
+# CONFIG_STM32_TIM8_CAP is not set
+# CONFIG_STM32_TIM9_CAP is not set
+# CONFIG_STM32_TIM10_CAP is not set
+# CONFIG_STM32_TIM11_CAP is not set
+# CONFIG_STM32_TIM12_CAP is not set
+# CONFIG_STM32_TIM13_CAP is not set
+# CONFIG_STM32_TIM14_CAP is not set
+
+#
+# ADC Configuration
+#
+# CONFIG_STM32_ADC_NO_STARTUP_CONV is not set
+# CONFIG_STM32_ADC1_DMA is not set
+CONFIG_STM32_USART=y
+CONFIG_STM32_SERIALDRIVER=y
+
+#
+# U[S]ART Configuration
+#
+
+#
+# U[S]ART Device Configuration
+#
+CONFIG_STM32_USART1_SERIALDRIVER=y
+# CONFIG_STM32_USART1_1WIREDRIVER is not set
+# CONFIG_USART1_RS485 is not set
+CONFIG_USART1_RXDMA=y
+CONFIG_STM32_USART2_SERIALDRIVER=y
+# CONFIG_STM32_USART2_1WIREDRIVER is not set
+# CONFIG_USART2_RS485 is not set
+CONFIG_USART2_RXDMA=y
+CONFIG_STM32_USART3_SERIALDRIVER=y
+# CONFIG_STM32_USART3_1WIREDRIVER is not set
+# CONFIG_USART3_RS485 is not set
+CONFIG_USART3_RXDMA=y
+CONFIG_STM32_UART4_SERIALDRIVER=y
+# CONFIG_STM32_UART4_1WIREDRIVER is not set
+# CONFIG_UART4_RS485 is not set
+CONFIG_UART4_RXDMA=y
+CONFIG_STM32_USART6_SERIALDRIVER=y
+# CONFIG_STM32_USART6_1WIREDRIVER is not set
+# CONFIG_USART6_RS485 is not set
+CONFIG_USART6_RXDMA=y
+CONFIG_STM32_UART7_SERIALDRIVER=y
+# CONFIG_STM32_UART7_1WIREDRIVER is not set
+# CONFIG_UART7_RS485 is not set
+CONFIG_UART7_RXDMA=y
+CONFIG_STM32_UART8_SERIALDRIVER=y
+# CONFIG_STM32_UART8_1WIREDRIVER is not set
+# CONFIG_UART8_RS485 is not set
+CONFIG_UART8_RXDMA=y
+
+#
+# Serial Driver Configuration
+#
+CONFIG_STM32_SERIAL_RXDMA_BUFFER_SIZE=32
+CONFIG_SERIAL_DISABLE_REORDERING=y
+CONFIG_STM32_FLOWCONTROL_BROKEN=y
+CONFIG_STM32_USART_BREAKS=y
+CONFIG_STM32_SERIALBRK_BSDCOMPAT=y
+CONFIG_STM32_USART_SINGLEWIRE=y
+
+#
+# SPI Configuration
+#
+# CONFIG_STM32_SPI_INTERRUPTS is not set
+# CONFIG_STM32_SPI_DMA is not set
+
+#
+# I2C Configuration
+#
+# CONFIG_STM32_I2C_ALT is not set
+# CONFIG_STM32_I2C_DYNTIMEO is not set
+CONFIG_STM32_I2CTIMEOSEC=0
+CONFIG_STM32_I2CTIMEOMS=10
+CONFIG_STM32_I2CTIMEOTICKS=10
+# CONFIG_STM32_I2C_DUTY16_9 is not set
+# CONFIG_STM32_I2C_DMA is not set
+
+#
+# SDIO Configuration
+#
+CONFIG_STM32_SDIO_DMA=y
+CONFIG_STM32_SDIO_DMAPRIO=0x00010000
+# CONFIG_STM32_SDIO_WIDTH_D1_ONLY is not set
+CONFIG_STM32_BBSRAM=y
+CONFIG_STM32_BBSRAM_FILES=5
+CONFIG_STM32_SAVE_CRASHDUMP=y
+# CONFIG_STM32_HAVE_RTC_COUNTER is not set
+# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set
+
+#
+# RTC Configuration
+#
+CONFIG_RTC_MAGIC_REG=1
+CONFIG_RTC_MAGIC=0xfacefeee
+CONFIG_RTC_MAGIC_TIME_SET=0xfacefeef
+# CONFIG_RTC_LSECLOCK is not set
+# CONFIG_RTC_LSICLOCK is not set
+CONFIG_RTC_HSECLOCK=y
+
+#
+# USB FS Host Configuration
+#
+
+#
+# USB HS Host Configuration
+#
+
+#
+# USB Host Debug Configuration
+#
+
+#
+# USB Device Configuration
+#
+# CONFIG_ARCH_TOOLCHAIN_IAR is not set
+CONFIG_ARCH_TOOLCHAIN_GNU=y
+
+#
+# Architecture Options
+#
+# CONFIG_ARCH_NOINTC is not set
+# CONFIG_ARCH_VECNOTIRQ is not set
+CONFIG_ARCH_DMA=y
+CONFIG_ARCH_HAVE_IRQPRIO=y
+# CONFIG_ARCH_L2CACHE is not set
+# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set
+# CONFIG_ARCH_HAVE_ADDRENV is not set
+# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set
+# CONFIG_ARCH_HAVE_MULTICPU is not set
+CONFIG_ARCH_HAVE_VFORK=y
+# CONFIG_ARCH_HAVE_MMU is not set
+CONFIG_ARCH_HAVE_MPU=y
+# CONFIG_ARCH_NAND_HWECC is not set
+# CONFIG_ARCH_HAVE_EXTCLK is not set
+# CONFIG_ARCH_HAVE_POWEROFF is not set
+CONFIG_ARCH_HAVE_RESET=y
+# CONFIG_ARCH_HAVE_RTC_SUBSECONDS is not set
+# CONFIG_ARCH_USE_MPU is not set
+# CONFIG_ARCH_IRQPRIO is not set
+CONFIG_ARCH_STACKDUMP=y
+# CONFIG_ENDIAN_BIG is not set
+# CONFIG_ARCH_IDLE_CUSTOM is not set
+# CONFIG_ARCH_HAVE_RAMFUNCS is not set
+CONFIG_ARCH_HAVE_RAMVECTORS=y
+# CONFIG_ARCH_RAMVECTORS is not set
+# CONFIG_ARCH_MINIMAL_VECTORTABLE is not set
+
+#
+# Board Settings
+#
+CONFIG_BOARD_LOOPSPERMSEC=16717
+# CONFIG_ARCH_CALIBRATION is not set
+
+#
+# Interrupt options
+#
+CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
+CONFIG_ARCH_INTERRUPTSTACK=750
+CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
+# CONFIG_ARCH_HIPRI_INTERRUPT is not set
+
+#
+# Boot options
+#
+# CONFIG_BOOT_RUNFROMEXTSRAM is not set
+CONFIG_BOOT_RUNFROMFLASH=y
+# CONFIG_BOOT_RUNFROMISRAM is not set
+# CONFIG_BOOT_RUNFROMSDRAM is not set
+# CONFIG_BOOT_COPYTORAM is not set
+
+#
+# Boot Memory Configuration
+#
+CONFIG_RAM_START=0x20000000
+CONFIG_RAM_SIZE=262144
+# CONFIG_ARCH_HAVE_SDRAM is not set
+
+#
+# Board Selection
+#
+CONFIG_ARCH_BOARD_PX4FMU_V3=y
+CONFIG_ARCH_BOARD="px4fmu-v3"
+
+#
+# Custom Board Configuration
+#
+# CONFIG_BOARD_CUSTOM_LEDS is not set
+# CONFIG_BOARD_CUSTOM_BUTTONS is not set
+CONFIG_BOARD_HAS_PROBES=y
+# CONFIG_BOARD_USE_PROBES is not set
+
+#
+# Common Board Options
+#
+
+#
+# Board-Specific Options
+#
+CONFIG_BOARD_CRASHDUMP=y
+CONFIG_BOARD_RESET_ON_CRASH=y
+CONFIG_LIB_BOARDCTL=y
+CONFIG_BOARDCTL_RESET=y
+# CONFIG_BOARDCTL_UNIQUEID is not set
+CONFIG_BOARDCTL_USBDEVCTRL=y
+# CONFIG_BOARDCTL_TSCTEST is not set
+# CONFIG_BOARDCTL_GRAPHICS is not set
+# CONFIG_BOARDCTL_IOCTL is not set
+
+#
+# RTOS Features
+#
+# CONFIG_DISABLE_OS_API is not set
+
+#
+# Clocks and Timers
+#
+CONFIG_ARCH_HAVE_TICKLESS=y
+# CONFIG_SCHED_TICKLESS is not set
+CONFIG_USEC_PER_TICK=1000
+# CONFIG_SYSTEM_TIME64 is not set
+# CONFIG_CLOCK_MONOTONIC is not set
+CONFIG_ARCH_HAVE_TIMEKEEPING=y
+# CONFIG_JULIAN_TIME is not set
+CONFIG_START_YEAR=2016
+CONFIG_START_MONTH=11
+CONFIG_START_DAY=30
+CONFIG_MAX_WDOGPARMS=2
+CONFIG_PREALLOC_WDOGS=50
+CONFIG_WDOG_INTRESERVE=4
+CONFIG_PREALLOC_TIMERS=50
+
+#
+# Tasks and Scheduling
+#
+# CONFIG_SPINLOCK is not set
+# CONFIG_INIT_NONE is not set
+CONFIG_INIT_ENTRYPOINT=y
+# CONFIG_INIT_FILEPATH is not set
+CONFIG_USER_ENTRYPOINT="nsh_main"
+CONFIG_RR_INTERVAL=0
+# CONFIG_SCHED_SPORADIC is not set
+CONFIG_TASK_NAME_SIZE=24
+CONFIG_MAX_TASKS=32
+# CONFIG_SCHED_HAVE_PARENT is not set
+CONFIG_SCHED_WAITPID=y
+
+#
+# Pthread Options
+#
+# CONFIG_PTHREAD_MUTEX_TYPES is not set
+CONFIG_PTHREAD_MUTEX_ROBUST=y
+# CONFIG_PTHREAD_MUTEX_UNSAFE is not set
+# CONFIG_PTHREAD_MUTEX_BOTH is not set
+CONFIG_NPTHREAD_KEYS=4
+# CONFIG_PTHREAD_CLEANUP is not set
+# CONFIG_CANCELLATION_POINTS is not set
+
+#
+# Performance Monitoring
+#
+# CONFIG_SCHED_CPULOAD is not set
+CONFIG_SCHED_INSTRUMENTATION=y
+# CONFIG_SCHED_INSTRUMENTATION_PREEMPTION is not set
+# CONFIG_SCHED_INSTRUMENTATION_CSECTION is not set
+# CONFIG_SCHED_INSTRUMENTATION_SPINLOCKS is not set
+# CONFIG_SCHED_INSTRUMENTATION_BUFFER is not set
+
+#
+# Files and I/O
+#
+CONFIG_DEV_CONSOLE=y
+# CONFIG_FDCLONE_DISABLE is not set
+CONFIG_FDCLONE_STDIO=y
+CONFIG_SDCLONE_DISABLE=y
+CONFIG_NFILE_DESCRIPTORS=54
+CONFIG_NFILE_STREAMS=8
+CONFIG_NAME_MAX=32
+CONFIG_PRIORITY_INHERITANCE=y
+CONFIG_SEM_PREALLOCHOLDERS=0
+CONFIG_SEM_NNESTPRIO=8
+
+#
+# RTOS hooks
+#
+# CONFIG_BOARD_INITIALIZE is not set
+# CONFIG_SCHED_STARTHOOK is not set
+CONFIG_SCHED_ATEXIT=y
+CONFIG_SCHED_ATEXIT_MAX=1
+# CONFIG_SCHED_ONEXIT is not set
+# CONFIG_SIG_EVTHREAD is not set
+
+#
+# Signal Numbers
+#
+CONFIG_SIG_SIGUSR1=1
+CONFIG_SIG_SIGUSR2=2
+CONFIG_SIG_SIGALARM=3
+CONFIG_SIG_SIGCONDTIMEDOUT=16
+CONFIG_SIG_SIGWORK=4
+
+#
+# POSIX Message Queue Options
+#
+CONFIG_PREALLOC_MQ_MSGS=4
+CONFIG_MQ_MAXMSGSIZE=32
+# CONFIG_MODULE is not set
+
+#
+# Work queue support
+#
+CONFIG_SCHED_WORKQUEUE=y
+CONFIG_SCHED_HPWORK=y
+CONFIG_SCHED_HPWORKPRIORITY=249
+CONFIG_SCHED_HPWORKPERIOD=5000
+CONFIG_SCHED_HPWORKSTACKSIZE=1800
+CONFIG_SCHED_LPWORK=y
+CONFIG_SCHED_LPNTHREADS=1
+CONFIG_SCHED_LPWORKPRIORITY=50
+CONFIG_SCHED_LPWORKPRIOMAX=176
+CONFIG_SCHED_LPWORKPERIOD=50000
+CONFIG_SCHED_LPWORKSTACKSIZE=1800
+
+#
+# Stack and heap information
+#
+CONFIG_IDLETHREAD_STACKSIZE=750
+CONFIG_USERMAIN_STACKSIZE=2500
+CONFIG_PTHREAD_STACK_MIN=512
+CONFIG_PTHREAD_STACK_DEFAULT=2048
+# CONFIG_LIB_SYSCALL is not set
+
+#
+# Device Drivers
+#
+# CONFIG_DISABLE_POLL is not set
+CONFIG_DEV_NULL=y
+# CONFIG_DEV_ZERO is not set
+# CONFIG_DEV_URANDOM is not set
+# CONFIG_DEV_LOOP is not set
+
+#
+# Buffering
+#
+# CONFIG_DRVR_WRITEBUFFER is not set
+# CONFIG_DRVR_READAHEAD is not set
+# CONFIG_RAMDISK is not set
+# CONFIG_CAN is not set
+# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set
+# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set
+# CONFIG_PWM is not set
+CONFIG_ARCH_HAVE_I2CRESET=y
+CONFIG_I2C=y
+# CONFIG_I2C_SLAVE is not set
+# CONFIG_I2C_POLLED is not set
+CONFIG_I2C_RESET=y
+# CONFIG_I2C_TRACE is not set
+# CONFIG_I2C_DRIVER is not set
+# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set
+# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set
+CONFIG_ARCH_HAVE_SPI_BITORDER=y
+CONFIG_SPI=y
+# CONFIG_SPI_SLAVE is not set
+CONFIG_SPI_EXCHANGE=y
+# CONFIG_SPI_CMDDATA is not set
+# CONFIG_SPI_CALLBACK is not set
+# CONFIG_SPI_HWFEATURES is not set
+# CONFIG_SPI_BITORDER is not set
+# CONFIG_SPI_CS_DELAY_CONTROL is not set
+# CONFIG_SPI_DRIVER is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_I2S is not set
+
+#
+# Timer Driver Support
+#
+# CONFIG_TIMER is not set
+# CONFIG_ONESHOT is not set
+CONFIG_RTC=y
+CONFIG_RTC_DATETIME=y
+# CONFIG_RTC_ALARM is not set
+# CONFIG_RTC_DRIVER is not set
+# CONFIG_RTC_EXTERNAL is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0"
+# CONFIG_TIMERS_CS2100CP is not set
+# CONFIG_ANALOG is not set
+# CONFIG_DRIVERS_AUDIO is not set
+# CONFIG_DRIVERS_VIDEO is not set
+# CONFIG_BCH is not set
+# CONFIG_INPUT is not set
+
+#
+# IO Expander/GPIO Support
+#
+# CONFIG_IOEXPANDER is not set
+# CONFIG_DEV_GPIO is not set
+
+#
+# LCD Driver Support
+#
+# CONFIG_LCD is not set
+# CONFIG_SLCD is not set
+
+#
+# LED Support
+#
+# CONFIG_LEDS_APA102 is not set
+# CONFIG_RGBLED is not set
+# CONFIG_PCA9635PW is not set
+# CONFIG_NCP5623C is not set
+CONFIG_MMCSD=y
+CONFIG_MMCSD_NSLOTS=1
+# CONFIG_MMCSD_READONLY is not set
+CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
+# CONFIG_MMCSD_MMCSUPPORT is not set
+# CONFIG_MMCSD_HAVECARDDETECT is not set
+# CONFIG_MMCSD_SPI is not set
+CONFIG_ARCH_HAVE_SDIO=y
+CONFIG_SDIO_DMA=y
+CONFIG_ARCH_HAVE_SDIOWAIT_WRCOMPLETE=y
+CONFIG_MMCSD_SDIO=y
+CONFIG_SDIO_PREFLIGHT=y
+# CONFIG_SDIO_MUXBUS is not set
+CONFIG_MMCSD_SDIOWAIT_WRCOMPLETE=y
+# CONFIG_SDIO_WIDTH_D1_ONLY is not set
+# CONFIG_SDIO_BLOCKSETUP is not set
+# CONFIG_MODEM is not set
+CONFIG_MTD=y
+
+#
+# MTD Configuration
+#
+CONFIG_MTD_PARTITION=y
+# CONFIG_MTD_SECT512 is not set
+# CONFIG_MTD_PARTITION_NAMES is not set
+CONFIG_MTD_BYTE_WRITE=y
+# CONFIG_MTD_PROGMEM is not set
+# CONFIG_MTD_CONFIG is not set
+
+#
+# MTD Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+# CONFIG_RAMMTD is not set
+# CONFIG_FILEMTD is not set
+# CONFIG_MTD_AT24XX is not set
+# CONFIG_MTD_AT25 is not set
+# CONFIG_MTD_AT45DB is not set
+# CONFIG_MTD_IS25XP is not set
+# CONFIG_MTD_M25P is not set
+# CONFIG_MTD_MX25L is not set
+# CONFIG_MTD_S25FL1 is not set
+# CONFIG_MTD_N25QXXX is not set
+# CONFIG_MTD_MX25RXX is not set
+# CONFIG_MTD_SMART is not set
+CONFIG_MTD_RAMTRON=y
+CONFIG_RAMTRON_WRITEWAIT=y
+CONFIG_RAMTRON_SETSPEED=y
+# CONFIG_RAMTRON_CHUNKING is not set
+# CONFIG_MTD_SST25 is not set
+# CONFIG_MTD_SST25XX is not set
+# CONFIG_MTD_SST26 is not set
+# CONFIG_MTD_SST39FV is not set
+# CONFIG_MTD_W25 is not set
+# CONFIG_EEPROM is not set
+CONFIG_PIPES=y
+CONFIG_DEV_PIPE_MAXSIZE=1024
+CONFIG_DEV_PIPE_SIZE=70
+CONFIG_DEV_FIFO_SIZE=0
+# CONFIG_PM is not set
+# CONFIG_DRIVERS_SMPS is not set
+# CONFIG_POWER is not set
+# CONFIG_SENSORS is not set
+CONFIG_SERIAL=y
+# CONFIG_DEV_LOWCONSOLE is not set
+CONFIG_SERIAL_REMOVABLE=y
+CONFIG_SERIAL_CONSOLE=y
+# CONFIG_16550_UART is not set
+# CONFIG_UART_SERIALDRIVER is not set
+# CONFIG_UART0_SERIALDRIVER is not set
+# CONFIG_UART1_SERIALDRIVER is not set
+# CONFIG_UART2_SERIALDRIVER is not set
+# CONFIG_UART3_SERIALDRIVER is not set
+CONFIG_UART4_SERIALDRIVER=y
+# CONFIG_UART5_SERIALDRIVER is not set
+# CONFIG_UART6_SERIALDRIVER is not set
+CONFIG_UART7_SERIALDRIVER=y
+CONFIG_UART8_SERIALDRIVER=y
+# CONFIG_SCI0_SERIALDRIVER is not set
+# CONFIG_SCI1_SERIALDRIVER is not set
+# CONFIG_USART0_SERIALDRIVER is not set
+CONFIG_USART1_SERIALDRIVER=y
+CONFIG_USART2_SERIALDRIVER=y
+CONFIG_USART3_SERIALDRIVER=y
+# CONFIG_USART4_SERIALDRIVER is not set
+# CONFIG_USART5_SERIALDRIVER is not set
+CONFIG_USART6_SERIALDRIVER=y
+# CONFIG_USART7_SERIALDRIVER is not set
+# CONFIG_USART8_SERIALDRIVER is not set
+# CONFIG_OTHER_UART_SERIALDRIVER is not set
+CONFIG_MCU_SERIAL=y
+CONFIG_STANDARD_SERIAL=y
+CONFIG_SERIAL_NPOLLWAITERS=2
+CONFIG_SERIAL_IFLOWCONTROL=y
+CONFIG_SERIAL_OFLOWCONTROL=y
+# CONFIG_SERIAL_DMA is not set
+CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
+CONFIG_SERIAL_IFLOWCONTROL_LOWER_WATERMARK=10
+CONFIG_SERIAL_IFLOWCONTROL_UPPER_WATERMARK=90
+CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
+# CONFIG_USART1_SERIAL_CONSOLE is not set
+# CONFIG_USART2_SERIAL_CONSOLE is not set
+# CONFIG_USART3_SERIAL_CONSOLE is not set
+# CONFIG_UART4_SERIAL_CONSOLE is not set
+# CONFIG_USART6_SERIAL_CONSOLE is not set
+CONFIG_UART7_SERIAL_CONSOLE=y
+# CONFIG_UART8_SERIAL_CONSOLE is not set
+# CONFIG_OTHER_SERIAL_CONSOLE is not set
+# CONFIG_NO_SERIAL_CONSOLE is not set
+
+#
+# USART1 Configuration
+#
+CONFIG_USART1_RXBUFSIZE=128
+CONFIG_USART1_TXBUFSIZE=32
+CONFIG_USART1_BAUD=115200
+CONFIG_USART1_BITS=8
+CONFIG_USART1_PARITY=0
+CONFIG_USART1_2STOP=0
+# CONFIG_USART1_IFLOWCONTROL is not set
+# CONFIG_USART1_OFLOWCONTROL is not set
+# CONFIG_USART1_DMA is not set
+
+#
+# USART2 Configuration
+#
+CONFIG_USART2_RXBUFSIZE=600
+CONFIG_USART2_TXBUFSIZE=1100
+CONFIG_USART2_BAUD=57600
+CONFIG_USART2_BITS=8
+CONFIG_USART2_PARITY=0
+CONFIG_USART2_2STOP=0
+CONFIG_USART2_IFLOWCONTROL=y
+CONFIG_USART2_OFLOWCONTROL=y
+# CONFIG_USART2_DMA is not set
+
+#
+# USART3 Configuration
+#
+CONFIG_USART3_RXBUFSIZE=300
+CONFIG_USART3_TXBUFSIZE=600
+CONFIG_USART3_BAUD=57600
+CONFIG_USART3_BITS=8
+CONFIG_USART3_PARITY=0
+CONFIG_USART3_2STOP=0
+CONFIG_USART3_IFLOWCONTROL=y
+CONFIG_USART3_OFLOWCONTROL=y
+# CONFIG_USART3_DMA is not set
+
+#
+# UART4 Configuration
+#
+CONFIG_UART4_RXBUFSIZE=300
+CONFIG_UART4_TXBUFSIZE=300
+CONFIG_UART4_BAUD=57600
+CONFIG_UART4_BITS=8
+CONFIG_UART4_PARITY=0
+CONFIG_UART4_2STOP=0
+# CONFIG_UART4_IFLOWCONTROL is not set
+# CONFIG_UART4_OFLOWCONTROL is not set
+# CONFIG_UART4_DMA is not set
+
+#
+# USART6 Configuration
+#
+CONFIG_USART6_RXBUFSIZE=300
+CONFIG_USART6_TXBUFSIZE=300
+CONFIG_USART6_BAUD=57600
+CONFIG_USART6_BITS=8
+CONFIG_USART6_PARITY=0
+CONFIG_USART6_2STOP=0
+# CONFIG_USART6_IFLOWCONTROL is not set
+# CONFIG_USART6_OFLOWCONTROL is not set
+# CONFIG_USART6_DMA is not set
+
+#
+# UART7 Configuration
+#
+CONFIG_UART7_RXBUFSIZE=300
+CONFIG_UART7_TXBUFSIZE=300
+CONFIG_UART7_BAUD=57600
+CONFIG_UART7_BITS=8
+CONFIG_UART7_PARITY=0
+CONFIG_UART7_2STOP=0
+# CONFIG_UART7_IFLOWCONTROL is not set
+# CONFIG_UART7_OFLOWCONTROL is not set
+# CONFIG_UART7_DMA is not set
+
+#
+# UART8 Configuration
+#
+CONFIG_UART8_RXBUFSIZE=300
+CONFIG_UART8_TXBUFSIZE=300
+CONFIG_UART8_BAUD=57600
+CONFIG_UART8_BITS=8
+CONFIG_UART8_PARITY=0
+CONFIG_UART8_2STOP=0
+# CONFIG_UART8_IFLOWCONTROL is not set
+# CONFIG_UART8_OFLOWCONTROL is not set
+# CONFIG_UART8_DMA is not set
+# CONFIG_PSEUDOTERM is not set
+CONFIG_USBDEV=y
+
+#
+# USB Device Controller Driver Options
+#
+# CONFIG_USBDEV_ISOCHRONOUS is not set
+# CONFIG_USBDEV_DUALSPEED is not set
+# CONFIG_USBDEV_SELFPOWERED is not set
+CONFIG_USBDEV_BUSPOWERED=y
+CONFIG_USBDEV_MAXPOWER=500
+# CONFIG_USBDEV_DMA is not set
+# CONFIG_ARCH_USBDEV_STALLQUEUE is not set
+# CONFIG_USBDEV_TRACE is not set
+
+#
+# USB Device Class Driver Options
+#
+# CONFIG_USBDEV_COMPOSITE is not set
+# CONFIG_PL2303 is not set
+CONFIG_CDCACM=y
+# CONFIG_CDCACM_CONSOLE is not set
+# CONFIG_CDCACM_IFLOWCONTROL is not set
+CONFIG_CDCACM_EP0MAXPACKET=64
+CONFIG_CDCACM_EPINTIN=1
+CONFIG_CDCACM_EPINTIN_FSSIZE=64
+CONFIG_CDCACM_EPINTIN_HSSIZE=64
+CONFIG_CDCACM_EPBULKOUT=3
+CONFIG_CDCACM_EPBULKOUT_FSSIZE=64
+CONFIG_CDCACM_EPBULKOUT_HSSIZE=512
+CONFIG_CDCACM_EPBULKIN=2
+CONFIG_CDCACM_EPBULKIN_FSSIZE=64
+CONFIG_CDCACM_EPBULKIN_HSSIZE=512
+CONFIG_CDCACM_NRDREQS=4
+CONFIG_CDCACM_NWRREQS=4
+CONFIG_CDCACM_BULKIN_REQLEN=96
+CONFIG_CDCACM_RXBUFSIZE=600
+CONFIG_CDCACM_TXBUFSIZE=2000
+CONFIG_CDCACM_VENDORID=0x26ac
+CONFIG_CDCACM_PRODUCTID=0x0011
+CONFIG_CDCACM_VENDORSTR="3D Robotics"
+CONFIG_CDCACM_PRODUCTSTR="PX4 FMU v2.x"
+# CONFIG_USBMSC is not set
+# CONFIG_RNDIS is not set
+# CONFIG_USBHOST is not set
+# CONFIG_USBMISC is not set
+# CONFIG_HAVE_USBTRACE is not set
+# CONFIG_DRIVERS_WIRELESS is not set
+# CONFIG_DRIVERS_CONTACTLESS is not set
+
+#
+# System Logging
+#
+# CONFIG_ARCH_SYSLOG is not set
+CONFIG_SYSLOG_WRITE=y
+# CONFIG_RAMLOG is not set
+# CONFIG_SYSLOG_BUFFER is not set
+# CONFIG_SYSLOG_INTBUFFER is not set
+# CONFIG_SYSLOG_TIMESTAMP is not set
+CONFIG_SYSLOG_SERIAL_CONSOLE=y
+# CONFIG_SYSLOG_CHAR is not set
+CONFIG_SYSLOG_CONSOLE=y
+# CONFIG_SYSLOG_NONE is not set
+# CONFIG_SYSLOG_FILE is not set
+# CONFIG_SYSLOG_CHARDEV is not set
+
+#
+# Networking Support
+#
+# CONFIG_ARCH_HAVE_NET is not set
+# CONFIG_ARCH_HAVE_PHY is not set
+# CONFIG_NET is not set
+
+#
+# Crypto API
+#
+# CONFIG_CRYPTO is not set
+
+#
+# File Systems
+#
+
+#
+# File system configuration
+#
+# CONFIG_DISABLE_MOUNTPOINT is not set
+# CONFIG_FS_AUTOMOUNTER is not set
+# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
+# CONFIG_PSEUDOFS_SOFTLINKS is not set
+CONFIG_FS_READABLE=y
+CONFIG_FS_WRITABLE=y
+# CONFIG_FS_AIO is not set
+# CONFIG_FS_NAMED_SEMAPHORES is not set
+CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
+# CONFIG_FS_RAMMAP is not set
+CONFIG_FS_FAT=y
+CONFIG_FAT_LCNAMES=y
+CONFIG_FAT_LFN=y
+CONFIG_FAT_MAXFNAME=32
+CONFIG_FS_FATTIME=y
+# CONFIG_FAT_FORCE_INDIRECT is not set
+CONFIG_FAT_DMAMEMORY=y
+CONFIG_FAT_DIRECT_RETRY=y
+# CONFIG_FS_NXFFS is not set
+CONFIG_FS_ROMFS=y
+# CONFIG_FS_TMPFS is not set
+# CONFIG_FS_SMARTFS is not set
+CONFIG_FS_BINFS=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+
+#
+# Exclude individual procfs entries
+#
+# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set
+# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set
+# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set
+# CONFIG_FS_PROCFS_EXCLUDE_MTD is not set
+# CONFIG_FS_PROCFS_EXCLUDE_PARTITIONS is not set
+# CONFIG_FS_UNIONFS is not set
+
+#
+# Graphics Support
+#
+# CONFIG_NX is not set
+
+#
+# Memory Management
+#
+# CONFIG_MM_SMALL is not set
+CONFIG_MM_REGIONS=2
+# CONFIG_ARCH_HAVE_HEAP2 is not set
+CONFIG_GRAN=y
+# CONFIG_GRAN_SINGLE is not set
+CONFIG_GRAN_INTR=y
+
+#
+# Common I/O Buffer Support
+#
+# CONFIG_MM_IOB is not set
+
+#
+# Audio Support
+#
+# CONFIG_AUDIO is not set
+
+#
+# Wireless Support
+#
+# CONFIG_WIRELESS is not set
+
+#
+# Binary Loader
+#
+# CONFIG_BINFMT_DISABLE is not set
+# CONFIG_BINFMT_EXEPATH is not set
+# CONFIG_NXFLAT is not set
+# CONFIG_ELF is not set
+CONFIG_BUILTIN=y
+# CONFIG_PIC is not set
+# CONFIG_SYMTAB_ORDEREDBYNAME is not set
+
+#
+# Library Routines
+#
+
+#
+# Standard C Library Options
+#
+
+#
+# Standard C I/O
+#
+# CONFIG_STDIO_DISABLE_BUFFERING is not set
+CONFIG_STDIO_BUFFER_SIZE=32
+CONFIG_STDIO_LINEBUFFER=y
+CONFIG_NUNGET_CHARS=2
+# CONFIG_NOPRINTF_FIELDWIDTH is not set
+CONFIG_LIBC_FLOATINGPOINT=y
+CONFIG_LIBC_LONG_LONG=y
+# CONFIG_LIBC_SCANSET is not set
+# CONFIG_EOL_IS_CR is not set
+# CONFIG_EOL_IS_LF is not set
+# CONFIG_EOL_IS_BOTH_CRLF is not set
+CONFIG_EOL_IS_EITHER_CRLF=y
+
+#
+# Architecture-Specific Support
+#
+CONFIG_ARCH_LOWPUTC=y
+# CONFIG_ARCH_ROMGETC is not set
+CONFIG_LIBC_ARCH_MEMCPY=y
+# CONFIG_LIBC_ARCH_MEMCMP is not set
+# CONFIG_LIBC_ARCH_MEMMOVE is not set
+# CONFIG_LIBC_ARCH_MEMSET is not set
+# CONFIG_LIBC_ARCH_STRCHR is not set
+# CONFIG_LIBC_ARCH_STRCMP is not set
+# CONFIG_LIBC_ARCH_STRCPY is not set
+# CONFIG_LIBC_ARCH_STRNCPY is not set
+# CONFIG_LIBC_ARCH_STRLEN is not set
+# CONFIG_LIBC_ARCH_STRNLEN is not set
+# CONFIG_LIBC_ARCH_ELF is not set
+CONFIG_ARMV7M_MEMCPY=y
+
+#
+# stdlib Options
+#
+CONFIG_LIB_RAND_ORDER=1
+CONFIG_LIB_HOMEDIR="/"
+CONFIG_LIBC_TMPDIR="/tmp"
+CONFIG_LIBC_MAX_TMPFILE=32
+
+#
+# Program Execution Options
+#
+# CONFIG_LIBC_EXECFUNCS is not set
+CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024
+CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048
+
+#
+# errno Decode Support
+#
+# CONFIG_LIBC_STRERROR is not set
+# CONFIG_LIBC_PERROR_STDOUT is not set
+
+#
+# memcpy/memset Options
+#
+CONFIG_MEMSET_OPTSPEED=y
+CONFIG_MEMSET_64BIT=y
+# CONFIG_LIBC_DLLFCN is not set
+# CONFIG_LIBC_MODLIB is not set
+# CONFIG_LIBC_WCHAR is not set
+# CONFIG_LIBC_LOCALE is not set
+
+#
+# Time/Time Zone Support
+#
+# CONFIG_LIBC_LOCALTIME is not set
+CONFIG_TIME_EXTENDED=y
+CONFIG_ARCH_HAVE_TLS=y
+
+#
+# Thread Local Storage (TLS)
+#
+# CONFIG_TLS is not set
+
+#
+# Network-Related Options
+#
+# CONFIG_LIBC_IPv4_ADDRCONV is not set
+# CONFIG_LIBC_IPv6_ADDRCONV is not set
+# CONFIG_LIBC_NETDB is not set
+
+#
+# NETDB Support
+#
+# CONFIG_NETDB_HOSTFILE is not set
+# CONFIG_LIBC_IOCTL_VARIADIC is not set
+CONFIG_LIB_SENDFILE_BUFSIZE=512
+
+#
+# Non-standard Library Support
+#
+# CONFIG_LIB_CRC64_FAST is not set
+# CONFIG_LIB_KBDCODEC is not set
+# CONFIG_LIB_SLCDCODEC is not set
+# CONFIG_LIB_HEX2BIN is not set
+
+#
+# Basic CXX Support
+#
+CONFIG_C99_BOOL8=y
+CONFIG_HAVE_CXX=y
+# CONFIG_CXX_NEWLONG is not set
+
+#
+# LLVM C++ Library (libcxx)
+#
+# CONFIG_LIBCXX is not set
+
+#
+# uClibc++ Standard C++ Library
+#
+# CONFIG_UCLIBCXX is not set
+
+#
+# Application Configuration
+#
+
+#
+# Built-In Applications
+#
+CONFIG_BUILTIN_PROXY_STACKSIZE=1024
+
+#
+# CAN Utilities
+#
+# CONFIG_CANUTILS_LIBUAVCAN is not set
+
+#
+# Examples
+#
+# CONFIG_EXAMPLES_APA102 is not set
+# CONFIG_EXAMPLES_CCTYPE is not set
+# CONFIG_EXAMPLES_CHAT is not set
+# CONFIG_EXAMPLES_CONFIGDATA is not set
+# CONFIG_EXAMPLES_CPUHOG is not set
+# CONFIG_EXAMPLES_CXXTEST is not set
+# CONFIG_EXAMPLES_DHCPD is not set
+# CONFIG_EXAMPLES_ELF is not set
+# CONFIG_EXAMPLES_FLOWC is not set
+# CONFIG_EXAMPLES_FSTEST is not set
+# CONFIG_EXAMPLES_FTPC is not set
+# CONFIG_EXAMPLES_FTPD is not set
+# CONFIG_EXAMPLES_HELLO is not set
+# CONFIG_EXAMPLES_HELLOXX is not set
+# CONFIG_EXAMPLES_HIDKBD is not set
+# CONFIG_EXAMPLES_IGMP is not set
+# CONFIG_EXAMPLES_JSON is not set
+# CONFIG_EXAMPLES_MEDIA is not set
+# CONFIG_EXAMPLES_MM is not set
+# CONFIG_EXAMPLES_MODBUS is not set
+# CONFIG_EXAMPLES_MOUNT is not set
+# CONFIG_EXAMPLES_MTDPART is not set
+CONFIG_EXAMPLES_NSH=y
+# CONFIG_EXAMPLES_NSH_CXXINITIALIZE is not set
+# CONFIG_EXAMPLES_NULL is not set
+# CONFIG_EXAMPLES_NXFFS is not set
+# CONFIG_EXAMPLES_NXHELLO is not set
+# CONFIG_EXAMPLES_NXIMAGE is not set
+# CONFIG_EXAMPLES_NX is not set
+# CONFIG_EXAMPLES_NXLINES is not set
+# CONFIG_EXAMPLES_NXTERM is not set
+# CONFIG_EXAMPLES_NXTEXT is not set
+# CONFIG_EXAMPLES_OSTEST is not set
+# CONFIG_EXAMPLES_PCA9635 is not set
+# CONFIG_EXAMPLES_PIPE is not set
+# CONFIG_EXAMPLES_POSIXSPAWN is not set
+# CONFIG_EXAMPLES_POWERMONITOR is not set
+# CONFIG_EXAMPLES_PPPD is not set
+# CONFIG_EXAMPLES_RFID_READUID is not set
+# CONFIG_EXAMPLES_RGBLED is not set
+# CONFIG_EXAMPLES_ROMFS is not set
+# CONFIG_EXAMPLES_SENDMAIL is not set
+# CONFIG_EXAMPLES_SERIALBLASTER is not set
+# CONFIG_EXAMPLES_SERIALRX is not set
+# CONFIG_EXAMPLES_SERLOOP is not set
+# CONFIG_EXAMPLES_SLCD is not set
+# CONFIG_EXAMPLES_SMART is not set
+# CONFIG_EXAMPLES_SMART_TEST is not set
+# CONFIG_EXAMPLES_SMP is not set
+# CONFIG_EXAMPLES_STAT is not set
+# CONFIG_EXAMPLES_TCPECHO is not set
+# CONFIG_EXAMPLES_THTTPD is not set
+# CONFIG_EXAMPLES_TIFF is not set
+# CONFIG_EXAMPLES_TOUCHSCREEN is not set
+# CONFIG_EXAMPLES_UNIONFS is not set
+# CONFIG_EXAMPLES_USBSERIAL is not set
+# CONFIG_EXAMPLES_WATCHDOG is not set
+# CONFIG_EXAMPLES_WEBSERVER is not set
+# CONFIG_EXAMPLES_XBC_TEST is not set
+
+#
+# File System Utilities
+#
+# CONFIG_FSUTILS_FLASH_ERASEALL is not set
+# CONFIG_FSUTILS_INIFILE is not set
+# CONFIG_FSUTILS_PASSWD is not set
+
+#
+# GPS Utilities
+#
+# CONFIG_GPSUTILS_MINMEA_LIB is not set
+
+#
+# Graphics Support
+#
+# CONFIG_TIFF is not set
+# CONFIG_GRAPHICS_TRAVELER is not set
+
+#
+# Interpreters
+#
+# CONFIG_INTERPRETERS_BAS is not set
+# CONFIG_INTERPRETERS_FICL is not set
+# CONFIG_INTERPRETERS_MICROPYTHON is not set
+# CONFIG_INTERPRETERS_MINIBASIC is not set
+# CONFIG_INTERPRETERS_PCODE is not set
+
+#
+# FreeModBus
+#
+# CONFIG_MODBUS is not set
+
+#
+# Network Utilities
+#
+# CONFIG_NETUTILS_CHAT is not set
+# CONFIG_NETUTILS_CODECS is not set
+# CONFIG_NETUTILS_ESP8266 is not set
+# CONFIG_NETUTILS_FTPC is not set
+# CONFIG_NETUTILS_JSON is not set
+# CONFIG_NETUTILS_SMTP is not set
+# CONFIG_NETUTILS_THTTPD is not set
+
+#
+# NSH Library
+#
+CONFIG_NSH_LIBRARY=y
+# CONFIG_NSH_MOTD is not set
+
+#
+# Command Line Configuration
+#
+CONFIG_NSH_READLINE=y
+# CONFIG_NSH_CLE is not set
+CONFIG_NSH_LINELEN=128
+# CONFIG_NSH_DISABLE_SEMICOLON is not set
+CONFIG_NSH_CMDPARMS=y
+CONFIG_NSH_MAXARGUMENTS=12
+CONFIG_NSH_ARGCAT=y
+CONFIG_NSH_NESTDEPTH=8
+# CONFIG_NSH_DISABLEBG is not set
+CONFIG_NSH_BUILTIN_APPS=y
+
+#
+# Disable Individual commands
+#
+CONFIG_NSH_DISABLE_BASENAME=y
+# CONFIG_NSH_DISABLE_CAT is not set
+# CONFIG_NSH_DISABLE_CD is not set
+# CONFIG_NSH_DISABLE_CP is not set
+CONFIG_NSH_DISABLE_CMP=y
+# CONFIG_NSH_DISABLE_DATE is not set
+CONFIG_NSH_DISABLE_DD=y
+# CONFIG_NSH_DISABLE_DF is not set
+CONFIG_NSH_DISABLE_DIRNAME=y
+# CONFIG_NSH_DISABLE_ECHO is not set
+# CONFIG_NSH_DISABLE_EXEC is not set
+# CONFIG_NSH_DISABLE_EXIT is not set
+# CONFIG_NSH_DISABLE_FREE is not set
+# CONFIG_NSH_DISABLE_GET is not set
+# CONFIG_NSH_DISABLE_HELP is not set
+CONFIG_NSH_DISABLE_HEXDUMP=y
+CONFIG_NSH_DISABLE_IFCONFIG=y
+CONFIG_NSH_DISABLE_IFUPDOWN=y
+# CONFIG_NSH_DISABLE_KILL is not set
+CONFIG_NSH_DISABLE_LOSETUP=y
+CONFIG_NSH_DISABLE_LOSMART=y
+# CONFIG_NSH_DISABLE_LS is not set
+CONFIG_NSH_DISABLE_MB=y
+# CONFIG_NSH_DISABLE_MKDIR is not set
+# CONFIG_NSH_DISABLE_MKFATFS is not set
+CONFIG_NSH_DISABLE_MKFIFO=y
+CONFIG_NSH_DISABLE_MKRD=y
+CONFIG_NSH_DISABLE_MH=y
+# CONFIG_NSH_DISABLE_MOUNT is not set
+# CONFIG_NSH_DISABLE_MV is not set
+# CONFIG_NSH_DISABLE_MW is not set
+CONFIG_NSH_DISABLE_PRINTF=y
+# CONFIG_NSH_DISABLE_PS is not set
+CONFIG_NSH_DISABLE_PSSTACKUSAGE=y
+CONFIG_NSH_DISABLE_PUT=y
+# CONFIG_NSH_DISABLE_PWD is not set
+CONFIG_NSH_DISABLE_REBOOT=y
+# CONFIG_NSH_DISABLE_RM is not set
+# CONFIG_NSH_DISABLE_RMDIR is not set
+# CONFIG_NSH_DISABLE_SET is not set
+# CONFIG_NSH_DISABLE_SH is not set
+CONFIG_NSH_DISABLE_SHUTDOWN=y
+# CONFIG_NSH_DISABLE_SLEEP is not set
+# CONFIG_NSH_DISABLE_TIME is not set
+# CONFIG_NSH_DISABLE_TEST is not set
+CONFIG_NSH_DISABLE_TELNETD=y
+# CONFIG_NSH_DISABLE_UMOUNT is not set
+CONFIG_NSH_DISABLE_UNAME=y
+# CONFIG_NSH_DISABLE_UNSET is not set
+# CONFIG_NSH_DISABLE_USLEEP is not set
+CONFIG_NSH_DISABLE_WGET=y
+CONFIG_NSH_DISABLE_XD=y
+CONFIG_NSH_MMCSDMINOR=0
+CONFIG_NSH_MMCSDSLOTNO=0
+
+#
+# Configure Command Options
+#
+# CONFIG_NSH_CMDOPT_DF_H is not set
+CONFIG_NSH_CODECS_BUFSIZE=128
+CONFIG_NSH_PROC_MOUNTPOINT="/proc"
+CONFIG_NSH_FILEIOSIZE=512
+
+#
+# Scripting Support
+#
+# CONFIG_NSH_DISABLESCRIPT is not set
+# CONFIG_NSH_DISABLE_ITEF is not set
+# CONFIG_NSH_DISABLE_LOOPS is not set
+CONFIG_NSH_ROMFSETC=y
+# CONFIG_NSH_ROMFSRC is not set
+CONFIG_NSH_ROMFSMOUNTPT="/etc"
+CONFIG_NSH_INITSCRIPT="init.d/rcS"
+CONFIG_NSH_ROMFSDEVNO=0
+CONFIG_NSH_ROMFSSECTSIZE=128
+# CONFIG_NSH_DEFAULTROMFS is not set
+CONFIG_NSH_ARCHROMFS=y
+# CONFIG_NSH_CUSTOMROMFS is not set
+CONFIG_NSH_FATDEVNO=1
+CONFIG_NSH_FATSECTSIZE=512
+CONFIG_NSH_FATNSECTORS=1024
+CONFIG_NSH_FATMOUNTPT="/tmp"
+
+#
+# Console Configuration
+#
+CONFIG_NSH_CONSOLE=y
+# CONFIG_NSH_USBCONSOLE is not set
+# CONFIG_NSH_ALTCONDEV is not set
+CONFIG_NSH_ARCHINIT=y
+# CONFIG_NSH_LOGIN is not set
+# CONFIG_NSH_CONSOLE_LOGIN is not set
+
+#
+# NxWidgets/NxWM
+#
+
+#
+# Platform-specific Support
+#
+# CONFIG_PLATFORM_CONFIGDATA is not set
+CONFIG_HAVE_CXXINITIALIZE=y
+
+#
+# System Libraries and NSH Add-Ons
+#
+CONFIG_SYSTEM_CDCACM=y
+CONFIG_SYSTEM_CDCACM_DEVMINOR=0
+# CONFIG_SYSTEM_CLE is not set
+# CONFIG_SYSTEM_CUTERM is not set
+# CONFIG_SYSTEM_FLASH_ERASEALL is not set
+# CONFIG_SYSTEM_FREE is not set
+# CONFIG_SYSTEM_HEX2BIN is not set
+# CONFIG_SYSTEM_HEXED is not set
+# CONFIG_SYSTEM_I2CTOOL is not set
+# CONFIG_SYSTEM_INSTALL is not set
+# CONFIG_SYSTEM_RAMTEST is not set
+CONFIG_READLINE_HAVE_EXTMATCH=y
+CONFIG_SYSTEM_READLINE=y
+CONFIG_READLINE_ECHO=y
+# CONFIG_READLINE_TABCOMPLETION is not set
+# CONFIG_READLINE_CMD_HISTORY is not set
+# CONFIG_SYSTEM_STACKMONITOR is not set
+# CONFIG_SYSTEM_SUDOKU is not set
+# CONFIG_SYSTEM_SYSTEM is not set
+# CONFIG_SYSTEM_TEE is not set
+# CONFIG_SYSTEM_UBLOXMODEM is not set
+# CONFIG_SYSTEM_VI is not set
+# CONFIG_SYSTEM_ZMODEM is not set
+
+#
+# Wireless Libraries and NSH Add-Ons
+#
+
+#
+# IEEE 802.15.4 applications
+#
+# CONFIG_IEEE802154_LIBMAC is not set
+# CONFIG_IEEE802154_LIBUTILS is not set
+# CONFIG_IEEE802154_I8SAK is not set
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4/scripts/ld.script b/boards/px4/fmu-v3/nuttx-config/scripts/ld.script
similarity index 93%
rename from platforms/nuttx/nuttx-configs/px4fmu-v4/scripts/ld.script
rename to boards/px4/fmu-v3/nuttx-config/scripts/ld.script
index 6bc104a02e..0d19229c01 100644
--- a/platforms/nuttx/nuttx-configs/px4fmu-v4/scripts/ld.script
+++ b/boards/px4/fmu-v3/nuttx-config/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * configs/px4fmu/common/ld.script
+ * scripts/ld.script
  *
  *   Copyright (C) 2011 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
@@ -60,7 +60,7 @@ OUTPUT_ARCH(arm)
 ENTRY(__start)		/* treat __start as the anchor for dead code stripping */
 EXTERN(_vectors)	/* force the vectors to be included in the output */
 
-/* 
+/*
  * Ensure that abort() is present in the final object.  The exception handling
  * code pulled in by libgcc.a requires it (and that code cannot be easily avoided).
  */
@@ -72,13 +72,13 @@ SECTIONS
 	.text : {
 		_stext = ABSOLUTE(.);
 		*(.vectors)
-                . = ALIGN(32);
-                /*
-                This signature provides the bootloader with a way to delay booting
-                */
-                _bootdelay_signature = ABSOLUTE(.);
-                FILL(0xffecc2925d7d05c5)
-                . += 8;
+		. = ALIGN(32);
+		/*
+		This signature provides the bootloader with a way to delay booting
+		*/
+		_bootdelay_signature = ABSOLUTE(.);
+		FILL(0xffecc2925d7d05c5)
+		. += 8;
 		*(.text .text.*)
 		*(.fixup)
 		*(.gnu.warning)
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v2/stackcheck/defconfig b/boards/px4/fmu-v3/nuttx-config/stackcheck/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/px4fmu-v2/stackcheck/defconfig
rename to boards/px4/fmu-v3/nuttx-config/stackcheck/defconfig
index e6c0ff74bc..4773d2b3e7 100644
--- a/platforms/nuttx/nuttx-configs/px4fmu-v2/stackcheck/defconfig
+++ b/boards/px4/fmu-v3/nuttx-config/stackcheck/defconfig
@@ -687,8 +687,8 @@ CONFIG_RAM_SIZE=262144
 #
 # Board Selection
 #
-CONFIG_ARCH_BOARD_PX4FMU_V2=y
-CONFIG_ARCH_BOARD="px4fmu-v2"
+CONFIG_ARCH_BOARD_PX4FMU_V3=y
+CONFIG_ARCH_BOARD="px4fmu-v3"
 
 #
 # Custom Board Configuration
diff --git a/boards/px4/fmu-v3/rtps.cmake b/boards/px4/fmu-v3/rtps.cmake
new file mode 100644
index 0000000000..21ddccc054
--- /dev/null
+++ b/boards/px4/fmu-v3/rtps.cmake
@@ -0,0 +1,130 @@
+
+# FMUv3 is FMUv2 with access to the full 2MB flash
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v3
+	LABEL rtps
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/adis16448
+		imu/l3gd20
+		imu/lsm303d
+		imu/mpu6000
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		#pmw3901
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		rgbled_ncp5623c
+		#rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		micrortps_bridge
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/src/drivers/boards/zubaxgnss-v1/CMakeLists.txt b/boards/px4/fmu-v3/src/CMakeLists.txt
similarity index 88%
rename from src/drivers/boards/zubaxgnss-v1/CMakeLists.txt
rename to boards/px4/fmu-v3/src/CMakeLists.txt
index 2260df1ab4..d482115f8e 100644
--- a/src/drivers/boards/zubaxgnss-v1/CMakeLists.txt
+++ b/boards/px4/fmu-v3/src/CMakeLists.txt
@@ -31,9 +31,22 @@
 #
 ############################################################################
 
-message(FATAL_ERROR Configuraton is incomplete")
-
 px4_add_library(drivers_board
+	can.c
+	i2c.c
 	init.c
 	led.c
+	spi.c
+	timer_config.c
+	usb.c
+	manifest.c
+)
+
+target_link_libraries(drivers_board
+	PRIVATE
+		drivers__led # drv_led_start
+		nuttx_apps # up_cxxinitialize
+		nuttx_arch # sdio
+		nuttx_drivers # sdio
+		parameters # param_init
 )
diff --git a/boards/px4/fmu-v3/src/board_config.h b/boards/px4/fmu-v3/src/board_config.h
new file mode 100644
index 0000000000..bce4f8f6e4
--- /dev/null
+++ b/boards/px4/fmu-v3/src/board_config.h
@@ -0,0 +1,569 @@
+/****************************************************************************
+ *
+ *   Copyright (c) 2013-2016 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.
+ *
+ ****************************************************************************/
+
+/**
+ * @file board_config.h
+ *
+ * PX4FMUv2 internal definitions
+ */
+
+#pragma once
+
+/****************************************************************************************************
+ * Included Files
+ ****************************************************************************************************/
+
+#include <px4_config.h>
+#include <nuttx/compiler.h>
+#include <stdint.h>
+
+/* Run time Hardware detection */
+#define BOARD_HAS_SIMPLE_HW_VERSIONING 1
+#define HW_VER_PA8             (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTA|GPIO_PIN8)
+#define HW_VER_PB4             (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN4)
+#define HW_VER_PB12            (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN12)
+#define HW_VER_PA8_INIT        (GPIO_VDD_5V_PERIPH_EN)
+#define HW_VER_PB4_INIT        (GPIO_SPI1_EXTI_DRDY_PB4)
+#define HW_VER_PB12_INIT       (GPIO_CAN2_RX | GPIO_PULLUP) /* Assume V2 needing pull up */
+#define HW_VER_FMUV2_STATE     0x8 /* PB12:PU:1 PB12:PD:0 PB4:PU:0 PB4PD:0 */
+#define HW_VER_FMUV3_STATE     0xE /* PB12:PU:1 PB12:PD:1 PB4:PU:1 PB4PD:0 */
+#define HW_VER_FMUV2MINI_STATE 0xA /* PB12:PU:1 PB12:PD:0 PB4:PU:1 PB4PD:0 */
+#define HW_VER_FMUV2X_STATE    0xB /* PB12:PU:1 PB12:PD:0 PB4:PU:1 PB4PD:1 */
+#define HW_VER_TYPE_INIT {'V','2',0, 0}
+
+/****************************************************************************************************
+ * Definitions
+ ****************************************************************************************************/
+/* Configuration ************************************************************************************/
+
+/* PX4IO connection configuration */
+#define BOARD_USES_PX4IO_VERSION       2
+#define PX4IO_SERIAL_DEVICE	"/dev/ttyS4"
+#define PX4IO_SERIAL_TX_GPIO	GPIO_USART6_TX
+#define PX4IO_SERIAL_RX_GPIO	GPIO_USART6_RX
+#define PX4IO_SERIAL_BASE	STM32_USART6_BASE	/* hardwired on the board */
+#define PX4IO_SERIAL_VECTOR	STM32_IRQ_USART6
+#define PX4IO_SERIAL_TX_DMAMAP	DMAMAP_USART6_TX_2
+#define PX4IO_SERIAL_RX_DMAMAP	DMAMAP_USART6_RX_2
+#define PX4IO_SERIAL_RCC_REG	STM32_RCC_APB2ENR
+#define PX4IO_SERIAL_RCC_EN	RCC_APB2ENR_USART6EN
+#define PX4IO_SERIAL_CLOCK	STM32_PCLK2_FREQUENCY
+#define PX4IO_SERIAL_BITRATE	1500000			/* 1.5Mbps -> max rate for IO */
+
+
+/* PX4FMU GPIOs ***********************************************************************************/
+/* LEDs */
+
+#define GPIO_LED1		(GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN12)
+#define BOARD_OVERLOAD_LED LED_AMBER
+
+/*
+ *  Define the ability to shut off off the sensor signals
+ *  by changing the signals to inputs
+ */
+
+#define _PIN_OFF(def) (((def) & (GPIO_PORT_MASK | GPIO_PIN_MASK)) | (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_50MHz))
+
+/* Due to inconsistent use of chip select and dry signal on
+ * different board that use this build. We are defining the GPIO
+ * inclusive of the SPI port and GPIO to help identify pins the
+ * are part of the sensor Net's controlled by different power
+ * domains.
+ *
+ *  Only the GPIO_SPIb_xxx_Ppi will be used in the code to insure this are no
+ *  cross connections.
+ *
+ *  --------------- SPI1 -------------------- SPI4 --------------     Incompatibilities    ---------
+ *  FMUv2:                                                        FmuV3 Cube        PixhawkMini
+ *   Power Domain:  VDD_3V3_SENSORS_EN        nVDD_5V_PERIPH_EN    V3V:SPI1&SPI4    V3V:SPI1 No SPI4
+ *   PA5            SPI_INT_SCK
+ *   PA6            SPI_INT_MISO
+ *   PA7            SPI_INT_MOSI
+ *   PB0            GYRO_DRDY                                      SPI4:EXTERN_DRDY        NC
+ *   PB1            MAG_DRDY                                       +SPI4:nEXTERN_CS        NC
+ *   PB4            ACCEL_DRDY                                     NC                      NC
+ *   PC1            Spare ADC ( NC )                               +SPI1:SPI_INT_MAG_!CS
+ *   PC2            nMPU_CS                                        @MPU6000|MPU9250        @MPU9250
+ *   PC13           nGYRO_CS                                       SPI4:nGYRO_EXT_CS       NC
+ *   PC14                                     GPIO_EXT_1           nBARO_EXT_CS            -20608_DRDY
+ *   PC15           nACCEL_MAG_CS                                  SPI4:nACCEL_MAG_EXT_CS  20608_CS
+ *   PD7            nBARO_CS
+ *   PD15           nMPU_DRDY                                      @MPU6000|MPU9250        @MPU9250
+ *   PE2                                      SPI_EXT_SCK                                  NC
+ *   PE4                                      nSPI_EXT_NSS         SPI4:nMPU_EXT_CS        NC
+ *   PE5                                      SPI_EXT_MISO                                 NC
+ *   PE6                                      SPI_EXT_MOSI                                 NC
+ *
+ *   Notes: Prefixed with @ Does not effect board control
+ *          Prefixed with + Input used as Output
+ *          Prefixed with - Output used as Input
+ *          Prefixed with SPIn: Bus changed
+ *
+ *  The board API provides for mechanism to perform a SPI bus reset.
+ *  To facilitate a SPI bus reset
+ *
+ *    1) All the pins: SPIn, CD, DRDY associated with the SPI bus are turned to inputs
+ *       with outputs driven low. (OFFIng)
+ *    2) The power domain of that bus is turned off.
+ *    3) A usleep it done for ms.
+ *    4) The power domain of that bus is turned back on.
+ *    5) The SPIn pins are re-initialized.
+ *    6) The SPI CS, DRDY pins are re-initialized.
+ *
+ * To insure the complete net is de-energized and is not bing back fed, it is important to
+ * note the all signals in the net list of the parts/bus.
+ *
+ * I.E. Not OFFIng PC1 on V3 would leave that pin back feeding the HMC part. As would not
+ * OFFIng PE4, not associated with SPI1 on V2, but would back feed an MPUxxxx on V3
+ *
+ */
+
+
+/*----------------------------------------------------------*/
+/*            FMUv2 SPI chip selects and DRDY               */
+/*----------------------------------------------------------*/
+
+/* FMUv2 SPI1 chip selects */
+/*                   PC1 Spare ADC IN10                     */
+#define GPIO_SPI1_CS_PC2                 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN2)
+#define GPIO_SPI1_CS_PC13                (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN13)
+#define GPIO_SPI1_CS_PC15                (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN15)
+#define GPIO_SPI1_CS_PD7                 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN7)
+
+/* FMUv2 SPI2 chip selects */
+#define GPIO_SPI2_CS_PD10                (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN10)
+
+/* FMUv2 SPI4 chip selects */
+#define GPIO_SPI4_GPIO_PC14  /* !V2M */  (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN14)
+#define GPIO_SPI4_NSS_PE4                (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN4)
+
+/* FMUv2 SPI1 chip selects Assignments */
+
+#define GPIO_SPI1_CS_MPU                 GPIO_SPI1_CS_PC2
+#define GPIO_SPI1_CS_GYRO                GPIO_SPI1_CS_PC13
+#define GPIO_SPI1_CS_ACCEL_MAG           GPIO_SPI1_CS_PC15
+#define GPIO_SPI1_CS_BARO                GPIO_SPI1_CS_PD7
+
+/* FMUv2 SPI2 chip selects Assignments */
+
+#define GPIO_SPI2_CS_FRAM                GPIO_SPI2_CS_PD10
+
+/* FMUv2 SPI4 chip selects Assignments */
+
+#define GPIO_SPI4_GPIO_EXT               GPIO_SPI4_GPIO_PC14
+#define GPIO_SPI4_EXT_NSS                GPIO_SPI4_NSS_PE4
+
+/* FMUv2 DRDY */
+
+#define GPIO_SPI1_EXTI_DRDY_PB0          (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTB|GPIO_PIN0)
+#define GPIO_SPI1_EXTI_DRDY_PB1 /*!V3 */ (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTB|GPIO_PIN1)
+#define GPIO_SPI1_EXTI_DRDY_PB4          (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTB|GPIO_PIN4)
+#define GPIO_SPI1_EXTI_DRDY_PD15         (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTD|GPIO_PIN15)
+
+/* FMUv2 DRDY Assignments */
+
+#define GPIO_SPI1_EXTI_GYRO_DRDY         GPIO_SPI1_EXTI_DRDY_PB0
+#define GPIO_SPI1_EXTI_MAG_DRDY          GPIO_SPI1_EXTI_DRDY_PB1
+#define GPIO_SPI1_EXTI_ACCEL_DRDY        GPIO_SPI1_EXTI_DRDY_PB4
+#define GPIO_SPI1_EXTI_MPU_DRDY          GPIO_SPI1_EXTI_DRDY_PD15
+
+/*----------------------------------------------------------*/
+/*        End FMUv2 SPI chip selects and DRDY               */
+/*----------------------------------------------------------*/
+
+#define PX4_SPI_BUS_SENSORS      1
+#define PX4_SPI_BUS_RAMTRON      2
+#define PX4_SPI_BUS_EXT          4
+#define PX4_SPI_BUS_BARO         PX4_SPI_BUS_SENSORS
+
+/* Use these to select a specific SPI device on SPI1 */
+
+#define PX4_SPIDEV_GYRO       PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 1)
+#define PX4_SPIDEV_ACCEL_MAG  PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 2)
+#define PX4_SPIDEV_BARO       PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 3)
+#define PX4_SPIDEV_MPU        PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 4)
+
+/* FMUv3 SPI on external bus */
+
+#define PX4_SPIDEV_EXT_GYRO      PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 1)
+#define PX4_SPIDEV_EXT_ACCEL_MAG PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 2)
+#define PX4_SPIDEV_EXT_BARO      PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 3)
+#define PX4_SPIDEV_EXT_MPU       PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 4)
+#define PX4_SPIDEV_EXT_BMI       PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 5)
+
+/* I2C busses */
+#define PX4_I2C_BUS_EXPANSION	1
+#define PX4_I2C_BUS_ONBOARD	2
+#define PX4_I2C_BUS_LED		PX4_I2C_BUS_ONBOARD
+
+/*----------------------------------------------------------*/
+/*           FMUv3 Cube SPI chip selects and DRDY           */
+/*----------------------------------------------------------*/
+/* Due to inconsistent use of chip select and dry signal on
+ * different board that use this build. We are defining the GPIO
+ * inclusive of the SPI port and GPIO to help identify pins the
+ * are part of the sensor Net's controlled by different power
+ * domains.
+ *
+ *  --------------- SPI1 -------------------- SPI4 --------------     Incompatibilities    ---------
+ *  FMUv3 Cube:                                                       FmuV2            PixhawkMini
+ *   Power Domain:  VDD_3V3_SENSORS_EN         NA			      V3V:SPI V5:SPI4   V3V:SPI1 No SPI4
+ *   PA5            SPI_INT_SCK
+ *   PA6            SPI_INT_MISO
+ *   PA7            SPI_INT_MOSI
+ *   PB0                                      EXTERN_DRDY          SPI1:GYRO_DRDY          NC
+ *   PB1            MAG_DRDY                  nEXTERN_CS           -SPI1:MAG_DRDY          NC
+ *   PB4                                          NC               SPI1:ACCEL_DRDY         NC
+ *   PC1            SPI_INT_MAG_!CS                                -ADC1_IN11              NC
+ *   PC2            nMPU_CS                                        @MPU6000             @MPU9250
+ *   PC13                                     nGYRO_EXT_CS         SPI1:nGYRO_CS           NC
+ *   PC14                                     nBARO_EXT_CS         GPIO_EXT_1            -20608_DRDY
+ *   PC15                                     nACCEL_MAG_EXT_CS    SPI1:nACCEL_MAG_CS     20608_CS
+ *   PD7            nBARO_CS
+ *   PD15           nMPU_DRDY                                      @MPU6000              @MPU9250
+ *   PE2                                      SPI_EXT_SCK                                  NC
+ *   PE4                                      MPU_EXT_CS           SPI4:nSPI_EXT_NSS       NC
+ *   PE5                                      SPI_EXT_MISO                                 NC
+ *   PE6                                      SPI_EXT_MOSI                                 NC
+ *
+ *
+ *   Notes: Prefixed with @ Does not effect board control
+ *          Prefixed with + Input used as Output
+ *          Prefixed with - Output used as Input
+ *          Prefixed with SPIn: Bus changed
+ *
+ */
+
+/* FMUv3 Cube SPI1 chip selects */
+/*      Was a spare ACD IN10 on V2 */
+#define GPIO_SPI1_CS_PC1                 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN1)
+#define GPIO_SPI4_CS_PB1                 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN1)
+#define GPIO_SPI4_CS_PC13                GPIO_SPI1_CS_PC13
+#define GPIO_SPI4_CS_PC14                GPIO_SPI4_GPIO_PC14
+#define GPIO_SPI4_CS_PC15                GPIO_SPI1_CS_PC15
+
+/* FMUv3 Cube chip selects Assignments */
+/*                                                        Cube 2.0   V2.1    */
+#define GPIO_SPI1_CS_MPU                 GPIO_SPI1_CS_PC2  /* MPU600    MPU9250 */
+#define GPIO_SPI1_CS_BARO                GPIO_SPI1_CS_PD7  /* MS5611    MS5611  */
+#define GPIO_SPI1_CS_HMC                 GPIO_SPI1_CS_PC1  /* HMC5983   Removed */
+
+/* N.B. bus moves from SPI1 to SPI4 */
+#define GPIO_SPI4_GYRO_EXT_CS            GPIO_SPI4_CS_PC13
+#define GPIO_SPI4_BARO_EXT_CS            GPIO_SPI4_CS_PC14
+#define GPIO_SPI4_ACCEL_MAG_EXT_CS       GPIO_SPI4_CS_PC15
+
+/* No move */
+#define GPIO_SPI4_MPU_EXT_CS             GPIO_SPI4_NSS_PE4
+
+/* FMUv3 DRDY Assignments */
+#define GPIO_SPI4_EXTI_DRDY_PB0          GPIO_SPI1_EXTI_DRDY_PB0
+#define GPIO_SPI4_EXTI_EXTERN_DRDY       GPIO_SPI4_EXTI_DRDY_PB0
+#define GPIO_SPI4_EXTERN_CS              GPIO_SPI4_CS_PB1
+/* PB1 is an External CS on V3 */
+
+#define PX4_SPIDEV_HMC            5
+
+/*----------------------------------------------------------*/
+/*       End FMUv3 Cube SPI chip selects and DRDY           */
+/*----------------------------------------------------------*/
+/*----------------------------------------------------------*/
+/* Due to inconsistent use of chip select and dry signal on
+ * different board that use this build. We are defining the GPIO
+ * inclusive of the SPI port and GPIO to help identify pins the
+ * are part of the sensor Net's controlled by different power
+ * domains.
+ *
+ *  --------------- SPI1 -------------------- SPI4 --------------      Incompatibilities    ---------
+ *  FMUv2 Pixhawk Mini                                                FmuV2               FmuV3 Cube
+ *   Power Domain:  VDD_3V3_SENSORS_EN        NA                  V3V:SPI V5:SPI4        V3V:SPI1&SPI4
+ *   PA5            SPI_INT_SCK
+ *   PA6            SPI_INT_MISO
+ *   PA7            SPI_INT_MOSI
+ *   PB0            NC                                             SPI1:GYRO_DRDY      SPI4:EXTERN_DRDY
+ *   PB1            NC                                             -SPI1:MAG_DRDY      +SPI4:nEXTERN_CS
+ *   PB4            NC                                             SPI1:ACCEL_DRDY     NC
+ *   PC1            Spare ADC ( NC )                                                   +SPI1:SPI_INT_MAG_!CS
+ *   PC2            nMPU_CS                                        @MPU6000            @MPU6000|MPU9250
+ *   PC13           NC                                             SPI1:nGYRO_CS       SPI4:nGYRO_EXT_CS
+ *   PC14           20608_DRDY                                     +GPIO_EXT_1         nBARO_EXT_CS
+ *   PC15           20608_CS                                       nACCEL_MAG_CS       SPI4:nACCEL_MAG_EXT_CS
+ *   PD7            nBARO_CS
+ *   PD15           nMPU_DRDY                                      @MPU6000            @MPU6000|MPU9250
+ *   PE2                                      NC                   SPI_EXT_SCK         SPI_EXT_SCK
+ *   PE4                                      NC                   SPI4:nSPI_EXT_NSS   SPI4:nMPU_EXT_CS
+ *   PE5                                      NC                   SPI_EXT_MISO        SPI_EXT_MISO
+ *   PE6                                      NC                   SPI_EXT_MOSI        SPI_EXT_MOSI
+ *
+ *   Notes: Prefixed with @ Does not effect board control
+ *          Prefixed with + Input used as Output
+ *          Prefixed with - Output used as Input
+ *          Prefixed with SPIn: Bus changed
+ *
+ */
+
+/*----------------------------------------------------------*/
+/*           FMUv2 PixhawkMini SPI chip selects and DRDY    */
+/*----------------------------------------------------------*/
+
+/* FMUv2 PixhawkMini SPI1 chip selects */
+
+/* FMUv3 Cube chip selects Assignments */
+
+#define GPIO_SPI1_CS_MPU                 GPIO_SPI1_CS_PC2  /* MPU9250  */
+#define GPIO_SPI1_CS_BARO                GPIO_SPI1_CS_PD7  /* MS5611   */
+#define GPIO_SPI1_CS_20608               GPIO_SPI1_CS_PC15 /* ICM20608 */
+
+/* FMUv3 DRDY Assignments */
+
+/* Pixhawk mini has reused the PC14 GPIO_SPI_CS_EXT1 signal that was associated
+ * with SPI4.
+ */
+#define GPIO_SPI1_EXTI_20608_DRDY_PC14   (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN14)
+
+#define PX4_SPIDEV_ICM_20608         6   /* ICM_20608 on PC15 */
+
+
+
+/*
+ * ADC channels
+ *
+ * These are the channel numbers of the ADCs of the microcontroller that can be used by the Px4 Firmware in the adc driver
+ */
+#define ADC_CHANNELS (1 << 2) | (1 << 3) | (1 << 4) | (1 << 10) | (1 << 11) | (1 << 12) | (1 << 13) | (1 << 14) | (1 << 15)
+
+// ADC defines to be used in sensors.cpp to read from a particular channel
+#define ADC_BATTERY_VOLTAGE_CHANNEL	2
+#define ADC_BATTERY_CURRENT_CHANNEL	3
+#define ADC_5V_RAIL_SENSE		4
+#define ADC_AIRSPEED_VOLTAGE_CHANNEL	15
+
+/* Define Battery 1 Voltage Divider and A per V
+ */
+
+#define BOARD_BATTERY1_V_DIV   (10.177939394f)
+#define BOARD_BATTERY1_A_PER_V (15.391030303f)
+
+/* User GPIOs
+ *
+ * GPIO0-5 are the PWM servo outputs.
+ */
+#define GPIO_GPIO0_INPUT	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN14)
+#define GPIO_GPIO1_INPUT	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN13)
+#define GPIO_GPIO2_INPUT	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN11)
+#define GPIO_GPIO3_INPUT	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN9)
+#define GPIO_GPIO4_INPUT	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN13)
+#define GPIO_GPIO5_INPUT	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTD|GPIO_PIN14)
+#define GPIO_GPIO0_OUTPUT	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN14)
+#define GPIO_GPIO1_OUTPUT	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN13)
+#define GPIO_GPIO2_OUTPUT	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN11)
+#define GPIO_GPIO3_OUTPUT	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN9)
+#define GPIO_GPIO4_OUTPUT	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN13)
+#define GPIO_GPIO5_OUTPUT	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN14)
+
+/* Power supply control and monitoring GPIOs */
+#define GPIO_VDD_5V_PERIPH_EN	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN8)
+#define GPIO_VDD_BRICK_VALID	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN5)
+#define GPIO_VDD_SERVO_VALID	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN7)
+#define GPIO_VDD_USB_VALID		(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN0)
+#define GPIO_VDD_3V3_SENSORS_EN	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN3)
+#define GPIO_VDD_5V_HIPOWER_OC	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN10)
+#define GPIO_VDD_5V_PERIPH_OC	(GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN15)
+
+/* Tone alarm output */
+#define TONE_ALARM_TIMER	2	/* timer 2 */
+#define TONE_ALARM_CHANNEL	1	/* channel 1 */
+#define GPIO_TONE_ALARM_IDLE	(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN15)
+#define GPIO_TONE_ALARM		(GPIO_ALT|GPIO_AF1|GPIO_SPEED_2MHz|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN15)
+
+/* PWM
+ *
+ * Six PWM outputs are configured.
+ *
+ * Pins:
+ *
+ * CH1 : PE14 : TIM1_CH4
+ * CH2 : PE13 : TIM1_CH3
+ * CH3 : PE11 : TIM1_CH2
+ * CH4 : PE9  : TIM1_CH1
+ * CH5 : PD13 : TIM4_CH2
+ * CH6 : PD14 : TIM4_CH3
+ */
+#define GPIO_TIM1_CH1OUT	(GPIO_ALT|GPIO_AF1|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN9)
+#define GPIO_TIM1_CH2OUT	(GPIO_ALT|GPIO_AF1|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN11)
+#define GPIO_TIM1_CH3OUT	(GPIO_ALT|GPIO_AF1|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN13)
+#define GPIO_TIM1_CH4OUT	(GPIO_ALT|GPIO_AF1|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PUSHPULL|GPIO_PORTE|GPIO_PIN14)
+#define GPIO_TIM4_CH2OUT	(GPIO_ALT|GPIO_AF2|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN13)
+#define GPIO_TIM4_CH3OUT	(GPIO_ALT|GPIO_AF2|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PUSHPULL|GPIO_PORTD|GPIO_PIN14)
+#define DIRECT_PWM_OUTPUT_CHANNELS	6
+
+#define GPIO_TIM1_CH1IN		GPIO_TIM1_CH1IN_2
+#define GPIO_TIM1_CH2IN		GPIO_TIM1_CH2IN_2
+#define GPIO_TIM1_CH3IN		GPIO_TIM1_CH3IN_2
+#define GPIO_TIM1_CH4IN		GPIO_TIM1_CH4IN_2
+#define GPIO_TIM4_CH2IN		GPIO_TIM4_CH2IN_2
+#define GPIO_TIM4_CH3IN		GPIO_TIM4_CH3IN_2
+#define DIRECT_INPUT_TIMER_CHANNELS  6
+
+/* USB OTG FS
+ *
+ * PA9  OTG_FS_VBUS VBUS sensing (also connected to the green LED)
+ */
+#define GPIO_OTGFS_VBUS		(GPIO_INPUT|GPIO_FLOAT|GPIO_SPEED_100MHz|GPIO_OPENDRAIN|GPIO_PORTA|GPIO_PIN9)
+
+/* High-resolution timer */
+#define HRT_TIMER		8	/* use timer8 for the HRT */
+#define HRT_TIMER_CHANNEL	1	/* use capture/compare channel */
+
+/* PWM input driver. Use FMU AUX5 pins attached to timer4 channel 2 */
+#define PWMIN_TIMER		4
+#define PWMIN_TIMER_CHANNEL	2
+#define GPIO_PWM_IN		GPIO_TIM4_CH2IN_2
+
+#define BOARD_NAME "PX4FMU_V2"
+
+/* By Providing BOARD_ADC_USB_CONNECTED (using the px4_arch abstraction)
+ * this board support the ADC system_power interface, and therefore
+ * provides the true logic GPIO BOARD_ADC_xxxx macros.
+ */
+#define BOARD_ADC_USB_CONNECTED (px4_arch_gpioread(GPIO_OTGFS_VBUS))
+#define BOARD_ADC_BRICK_VALID   (!px4_arch_gpioread(GPIO_VDD_BRICK_VALID))
+#define BOARD_ADC_SERVO_VALID   (!px4_arch_gpioread(GPIO_VDD_SERVO_VALID))
+#define BOARD_ADC_USB_VALID     (!px4_arch_gpioread(GPIO_VDD_USB_VALID))
+#define BOARD_ADC_PERIPH_5V_OC  (!px4_arch_gpioread(GPIO_VDD_5V_PERIPH_OC))
+#define BOARD_ADC_HIPOWER_5V_OC (!px4_arch_gpioread(GPIO_VDD_5V_HIPOWER_OC))
+
+#define BOARD_HAS_PWM	DIRECT_PWM_OUTPUT_CHANNELS
+
+#define BOARD_FMU_GPIO_TAB { \
+		{GPIO_GPIO0_INPUT,       GPIO_GPIO0_OUTPUT,       0}, \
+		{GPIO_GPIO1_INPUT,       GPIO_GPIO1_OUTPUT,       0}, \
+		{GPIO_GPIO2_INPUT,       GPIO_GPIO2_OUTPUT,       0}, \
+		{GPIO_GPIO3_INPUT,       GPIO_GPIO3_OUTPUT,       0}, \
+		{GPIO_GPIO4_INPUT,       GPIO_GPIO4_OUTPUT,       0}, \
+		{GPIO_GPIO5_INPUT,       GPIO_GPIO5_OUTPUT,       0}, \
+		{0,                      GPIO_VDD_5V_PERIPH_EN,   0}, \
+		{0,                      GPIO_VDD_3V3_SENSORS_EN, 0}, \
+		{GPIO_VDD_BRICK_VALID,   0,                       0}, \
+		{GPIO_VDD_SERVO_VALID,   0,                       0}, \
+		{GPIO_VDD_USB_VALID,     0,                       0}, \
+		{GPIO_VDD_5V_HIPOWER_OC, 0,                       0}, \
+		{GPIO_VDD_5V_PERIPH_OC,  0,                       0}, }
+
+/*
+ * GPIO numbers.
+ *
+ * There are no alternate functions on this board.
+ */
+#define GPIO_SERVO_1          (1<<0)  /**< servo 1 output */
+#define GPIO_SERVO_2          (1<<1)  /**< servo 2 output */
+#define GPIO_SERVO_3          (1<<2)  /**< servo 3 output */
+#define GPIO_SERVO_4          (1<<3)  /**< servo 4 output */
+#define GPIO_SERVO_5          (1<<4)  /**< servo 5 output */
+#define GPIO_SERVO_6          (1<<5)  /**< servo 6 output */
+
+#define GPIO_5V_PERIPH_EN     (1<<6)  /**< PA8 - !VDD_5V_PERIPH_EN */
+#define GPIO_3V3_SENSORS_EN   (1<<7)  /**< PE3 - VDD_3V3_SENSORS_EN */
+#define GPIO_BRICK_VALID      (1<<8)  /**< PB5 - !VDD_BRICK_VALID */
+#define GPIO_SERVO_VALID      (1<<9)  /**< PB7 - !VDD_SERVO_VALID */
+#define GPIO_USB_VALID        (1<<10) /**< PC0 - !GPIO_VDD_USB_VALID */
+#define GPIO_5V_HIPOWER_OC    (1<<11) /**< PE10 - !VDD_5V_HIPOWER_OC */
+#define GPIO_5V_PERIPH_OC     (1<<12) /**< PE10 - !VDD_5V_PERIPH_OC */
+
+/* This board provides a DMA pool and APIs */
+#define BOARD_DMA_ALLOC_POOL_SIZE 5120
+
+#define BOARD_HAS_ON_RESET 1
+
+__BEGIN_DECLS
+
+/****************************************************************************************************
+ * Public Types
+ ****************************************************************************************************/
+
+/****************************************************************************************************
+ * Public data
+ ****************************************************************************************************/
+
+#ifndef __ASSEMBLY__
+
+/****************************************************************************************************
+ * Public Functions
+ ****************************************************************************************************/
+
+/****************************************************************************************************
+ * Name: stm32_spiinitialize
+ *
+ * Description:
+ *   Called to configure SPI chip select GPIO pins for the PX4FMU board.
+ *
+ ****************************************************************************************************/
+
+extern void stm32_spiinitialize(void);
+
+/************************************************************************************
+ * Name: stm32_spi_bus_initialize
+ *
+ * Description:
+ *   Called to configure SPI Buses.
+ *
+ ************************************************************************************/
+
+extern int stm32_spi_bus_initialize(void);
+
+/****************************************************************************************************
+ * Name: board_spi_reset board_peripheral_reset
+ *
+ * Description:
+ *   Called to reset SPI and the perferal bus
+ *
+ ****************************************************************************************************/
+
+void board_spi_reset(int ms);
+extern void board_peripheral_reset(int ms);
+
+/****************************************************************************************************
+ * Name: stm32_usbinitialize
+ *
+ * Description:
+ *   Called to configure USB IO.
+ *
+ ****************************************************************************************************/
+
+extern void stm32_usbinitialize(void);
+
+#include <drivers/boards/common/board_common.h>
+
+#endif /* __ASSEMBLY__ */
+
+__END_DECLS
diff --git a/src/drivers/boards/px4fmu-v4/can.c b/boards/px4/fmu-v3/src/can.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4/can.c
rename to boards/px4/fmu-v3/src/can.c
diff --git a/platforms/nuttx/nuttx-configs/aerofc-v1/include/nsh_romfsimg.h b/boards/px4/fmu-v3/src/i2c.c
similarity index 81%
rename from platforms/nuttx/nuttx-configs/aerofc-v1/include/nsh_romfsimg.h
rename to boards/px4/fmu-v3/src/i2c.c
index beb1a924cf..55d559976e 100644
--- a/platforms/nuttx/nuttx-configs/aerofc-v1/include/nsh_romfsimg.h
+++ b/boards/px4/fmu-v3/src/i2c.c
@@ -1,6 +1,6 @@
 /****************************************************************************
  *
- *   Copyright (C) 2016 PX4 Development Team. All rights reserved.
+ *   Copyright (C) 2017 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
@@ -32,11 +32,24 @@
  ****************************************************************************/
 
 /**
- * nsh_romfsetc.h
+ * @file px4fmu_i2c.c
  *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
+ * Board-specific I2C functions.
  */
 
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
+#include "board_config.h"
+
+__EXPORT bool px4_i2c_bus_external(int bus)
+{
+	if (HW_VER_FMUV3 == board_get_hw_version()) {
+		/* All FMUV3 2.1 i2c buses are external */
+		return true;
+
+	} else {
+		if (bus != PX4_I2C_BUS_ONBOARD) {
+			return true;
+		}
+	}
+
+	return false;
+}
diff --git a/boards/px4/fmu-v3/src/init.c b/boards/px4/fmu-v3/src/init.c
new file mode 100644
index 0000000000..a031f8dbfa
--- /dev/null
+++ b/boards/px4/fmu-v3/src/init.c
@@ -0,0 +1,570 @@
+/****************************************************************************
+ *
+ *   Copyright (c) 2012-2015 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.
+ *
+ ****************************************************************************/
+
+/**
+ * @file px4fmu2_init.c
+ *
+ * PX4FMUv2-specific early startup code.  This file implements the
+ * board_app_initialize() function that is called early by nsh during startup.
+ *
+ * Code here is run before the rcS script is invoked; it should start required
+ * subsystems and perform board-specific initialization.
+ */
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <px4_config.h>
+#include <px4_tasks.h>
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include <debug.h>
+#include <errno.h>
+
+#include "platform/cxxinitialize.h"
+#include <nuttx/board.h>
+#include <nuttx/spi/spi.h>
+#include <nuttx/i2c/i2c_master.h>
+#include <nuttx/sdio.h>
+#include <nuttx/mmcsd.h>
+#include <nuttx/analog/adc.h>
+
+#include <stm32.h>
+#include "board_config.h"
+#include <stm32_uart.h>
+
+#include <arch/board/board.h>
+
+#include <drivers/drv_hrt.h>
+#include <drivers/drv_board_led.h>
+
+#include <systemlib/px4_macros.h>
+#include <systemlib/cpuload.h>
+#include <perf/perf_counter.h>
+#include <systemlib/err.h>
+
+#include <parameters/param.h>
+
+/****************************************************************************
+ * Pre-Processor Definitions
+ ****************************************************************************/
+
+/* Configuration ************************************************************/
+
+/* Debug ********************************************************************/
+
+#ifdef CONFIG_CPP_HAVE_VARARGS
+#  ifdef CONFIG_DEBUG
+#    define message(...) syslog(__VA_ARGS__)
+#  else
+#    define message(...) printf(__VA_ARGS__)
+#  endif
+#else
+#  ifdef CONFIG_DEBUG
+#    define message syslog
+#  else
+#    define message printf
+#  endif
+#endif
+
+/*
+ * Ideally we'd be able to get these from up_internal.h,
+ * but since we want to be able to disable the NuttX use
+ * of leds for system indication at will and there is no
+ * separate switch, we need to build independent of the
+ * CONFIG_ARCH_LEDS configuration switch.
+ */
+__BEGIN_DECLS
+extern void led_init(void);
+extern void led_on(int led);
+extern void led_off(int led);
+__END_DECLS
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+static int hw_version = 0;
+static int hw_revision = 0;
+static char hw_type[4] = HW_VER_TYPE_INIT;
+
+/************************************************************************************
+ * Name: board_peripheral_reset
+ *
+ * Description:
+ *
+ ************************************************************************************/
+__EXPORT void board_peripheral_reset(int ms)
+{
+	/* set the peripheral rails off */
+	stm32_configgpio(GPIO_VDD_5V_PERIPH_EN);
+	stm32_gpiowrite(GPIO_VDD_5V_PERIPH_EN, 1);
+
+	/* wait for the peripheral rail to reach GND */
+	usleep(ms * 1000);
+	warnx("reset done, %d ms", ms);
+
+	/* re-enable power */
+
+	/* switch the peripheral rail back on */
+	stm32_gpiowrite(GPIO_VDD_5V_PERIPH_EN, 0);
+}
+
+/************************************************************************************
+  * Name: board_on_reset
+ *
+ * Description:
+ * Optionally provided function called on entry to board_system_reset
+ * It should perform any house keeping prior to the rest.
+ *
+ * status - 1 if resetting to boot loader
+ *          0 if just resetting
+ *
+ ************************************************************************************/
+
+__EXPORT void board_on_reset(int status)
+{
+	UNUSED(status);
+	/* configure the GPIO pins to outputs and keep them low */
+
+	stm32_configgpio(GPIO_GPIO0_OUTPUT);
+	stm32_configgpio(GPIO_GPIO1_OUTPUT);
+	stm32_configgpio(GPIO_GPIO2_OUTPUT);
+	stm32_configgpio(GPIO_GPIO3_OUTPUT);
+	stm32_configgpio(GPIO_GPIO4_OUTPUT);
+	stm32_configgpio(GPIO_GPIO5_OUTPUT);
+
+	/* On resets invoked from system (not boot) insure we establish a low
+	 * output state (discharge the pins) on PWM pins before they become inputs.
+	 *
+	 * We also delay the onset of the that 3.1 Ms pulse as boot. This has
+	 * triggered some ESC to spin. By adding this delay here the reset
+	 * is pushed out > 400 ms. So the ESC PWM input can not mistake
+	 * the 3.1 Ms pulse as a valid PWM command.
+	 *
+	 * fixme:Establish in upstream NuttX an CONFIG_IO_INIT_STATE to
+	 * the initialize the IO lines in the clock config.
+	 *
+	 */
+
+	if (status >= 0) {
+		up_mdelay(400);
+
+		/* on reboot (status >= 0) reset sensors and peripherals */
+		board_spi_reset(10);
+	}
+}
+
+/************************************************************************************
+  * Name: determin_hw_version
+ *
+ * Description:
+ *
+ * This function looks at HW deltas to determine what the
+ * build is running on using the following criteria:
+ *
+ * MSN  PB12   FMUv2                Cube             MINI
+ * CAN2_RX       CONECTOR             MX30521          NC
+ * PU.PD         1,0                   1,1             1,0
+ *
+ * LSN  PB4    FMUv2                Cube             MINI
+ *               ACCEL_DRDY LSM303D    NC              NC
+ * PU.PD         0,0                   1,0             1,0
+
+ *  PB12:PB4
+ *  ud   ud
+ *  10   00 - 0x8 FMUv2
+ *  11   10 - 0xE Cube AKA V2.0
+ *  10   10 - 0xA PixhawkMini
+ *  10   11 - 0xB FMUv2 questionable hardware (should be treated like regular FMUv2)
+ *
+ *  This will return OK on success and -1 on not supported
+ *
+ *  hw_type Initial state is {'V','2',0, 0}
+ *   V 2    - FMUv2
+ *   V 3 0  - FMUv3 2.0
+ *   V 3 1  - FMUv3 2.1 - not differentiateable,
+ *   V 2 M  - FMUv2 Mini
+ *
+ ************************************************************************************/
+
+static int determin_hw_version(int *version, int *revision)
+{
+	*revision = 0; /* default revision */
+	int rv = 0;
+	int pos = 0;
+	stm32_configgpio(GPIO_PULLDOWN | (HW_VER_PB4 & ~GPIO_PUPD_MASK));
+	up_udelay(10);
+	rv |= stm32_gpioread(HW_VER_PB4) << pos++;
+	stm32_configgpio(HW_VER_PB4);
+	up_udelay(10);
+	rv |= stm32_gpioread(HW_VER_PB4) << pos++;
+
+	int votes = 16;
+	int ones[2] = {0, 0};
+	int zeros[2] = {0, 0};
+
+	while (votes--) {
+		stm32_configgpio(GPIO_PULLDOWN | (HW_VER_PB12 & ~GPIO_PUPD_MASK));
+		up_udelay(10);
+		stm32_gpioread(HW_VER_PB12) ? ones[0]++ : zeros[0]++;
+		stm32_configgpio(HW_VER_PB12);
+		up_udelay(10);
+		stm32_gpioread(HW_VER_PB12) ? ones[1]++ : zeros[1]++;
+	}
+
+	if (ones[0] > zeros[0]) {
+		rv |= 1 << pos;
+	}
+
+	pos++;
+
+	if (ones[1] > zeros[1]) {
+		rv |= 1 << pos;
+	}
+
+	stm32_configgpio(HW_VER_PB4_INIT);
+	stm32_configgpio(HW_VER_PB12_INIT);
+	*version = rv;
+	return OK;
+}
+
+/************************************************************************************
+ * Name: board_get_hw_type_name
+ *
+ * Description:
+ *   Optional returns a string defining the HW type
+ *
+ *
+ ************************************************************************************/
+
+__EXPORT const char *board_get_hw_type_name()
+{
+	return (const char *) hw_type;
+}
+
+/************************************************************************************
+ * Name: board_get_hw_version
+ *
+ * Description:
+ *   Optional returns a integer HW version
+ *
+ *
+ ************************************************************************************/
+
+__EXPORT int board_get_hw_version()
+{
+	return  HW_VER_SIMPLE(hw_version);
+}
+
+/************************************************************************************
+ * Name: board_get_hw_revision
+ *
+ * Description:
+ *   Optional returns a integer HW revision
+ *
+ *
+ ************************************************************************************/
+
+__EXPORT int board_get_hw_revision()
+{
+	return  hw_revision;
+}
+
+/************************************************************************************
+ * Name: stm32_boardinitialize
+ *
+ * Description:
+ *   All STM32 architectures must provide the following entry point.  This entry point
+ *   is called early in the intitialization -- after all memory has been configured
+ *   and mapped but before any devices have been initialized.
+ *
+ ************************************************************************************/
+
+__EXPORT void
+stm32_boardinitialize(void)
+{
+	board_on_reset(-1);
+
+	/* configure LEDs */
+	board_autoled_initialize();
+
+	/* configure ADC pins */
+
+	stm32_configgpio(GPIO_ADC1_IN2);	/* BATT_VOLTAGE_SENS */
+	stm32_configgpio(GPIO_ADC1_IN3);	/* BATT_CURRENT_SENS */
+	stm32_configgpio(GPIO_ADC1_IN4);	/* VDD_5V_SENS */
+	stm32_configgpio(GPIO_ADC1_IN13);	/* FMU_AUX_ADC_1 */
+	stm32_configgpio(GPIO_ADC1_IN14);	/* FMU_AUX_ADC_2 */
+	stm32_configgpio(GPIO_ADC1_IN15);	/* PRESSURE_SENS */
+
+	/* configure power supply control/sense pins */
+	stm32_configgpio(GPIO_VDD_5V_PERIPH_EN);
+	stm32_configgpio(GPIO_VDD_3V3_SENSORS_EN);
+	stm32_configgpio(GPIO_VDD_BRICK_VALID);
+	stm32_configgpio(GPIO_VDD_SERVO_VALID);
+	stm32_configgpio(GPIO_VDD_USB_VALID);
+	stm32_configgpio(GPIO_VDD_5V_HIPOWER_OC);
+	stm32_configgpio(GPIO_VDD_5V_PERIPH_OC);
+
+	/*
+	 * CAN GPIO config.
+	 * Forced pull up on CAN2 is required for FMUv2  where the second interface lacks a transceiver.
+	 * If no transceiver is connected, the RX pin will float, occasionally causing CAN controller to
+	 * fail during initialization.
+	 */
+	stm32_configgpio(GPIO_CAN1_RX);
+	stm32_configgpio(GPIO_CAN1_TX);
+	stm32_configgpio(GPIO_CAN2_RX | GPIO_PULLUP);
+	stm32_configgpio(GPIO_CAN2_TX);
+
+}
+
+/****************************************************************************
+ * Name: board_app_initialize
+ *
+ * Description:
+ *   Perform application specific initialization.  This function is never
+ *   called directly from application code, but only indirectly via the
+ *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
+ *
+ * Input Parameters:
+ *   arg - The boardctl() argument is passed to the board_app_initialize()
+ *         implementation without modification.  The argument has no
+ *         meaning to NuttX; the meaning of the argument is a contract
+ *         between the board-specific initalization logic and the the
+ *         matching application logic.  The value cold be such things as a
+ *         mode enumeration value, a set of DIP switch switch settings, a
+ *         pointer to configuration data read from a file or serial FLASH,
+ *         or whatever you would like to do with it.  Every implementation
+ *         should accept zero/NULL as a default configuration.
+ *
+ * Returned Value:
+ *   Zero (OK) is returned on success; a negated errno value is returned on
+ *   any failure to indicate the nature of the failure.
+ *
+ ****************************************************************************/
+
+static struct spi_dev_s *spi1;
+static struct spi_dev_s *spi2;
+static struct spi_dev_s *spi4;
+static struct sdio_dev_s *sdio;
+
+__EXPORT int board_app_initialize(uintptr_t arg)
+{
+#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
+	/* run C++ ctors before we go any further */
+	up_cxxinitialize();
+
+#else
+#  error platform is dependent on c++ both CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE must be defined.
+#endif
+
+	/* Ensure the power is on 1 ms before we drive the GPIO pins */
+	usleep(1000);
+
+	if (OK == determin_hw_version(&hw_version, & hw_revision)) {
+		switch (hw_version) {
+		case HW_VER_FMUV2_STATE:
+			break;
+
+		case HW_VER_FMUV3_STATE:
+			hw_type[1]++;
+			hw_type[2] = '0';
+
+			/* Has CAN2 transceiver Remove pull up */
+
+			stm32_configgpio(GPIO_CAN2_RX);
+
+			break;
+
+		case HW_VER_FMUV2MINI_STATE:
+
+			/* Detection for a Pixhack3 */
+
+			stm32_configgpio(HW_VER_PA8);
+			up_udelay(10);
+			bool isph3 = stm32_gpioread(HW_VER_PA8);
+			stm32_configgpio(HW_VER_PA8_INIT);
+
+
+			if (isph3) {
+
+				/* Pixhack3 looks like a FMuV3 Cube */
+
+				hw_version = HW_VER_FMUV3_STATE;
+				hw_type[1]++;
+				hw_type[2] = '0';
+				message("\nPixhack V3 detected, forcing to fmu-v3");
+
+			} else {
+
+				/* It is a mini */
+
+				hw_type[2] = 'M';
+			}
+
+			break;
+
+		default:
+
+			/* questionable px4fmu-v2 hardware, try forcing regular FMUv2 (not much else we can do) */
+
+			message("\nbad version detected, forcing to fmu-v2");
+			hw_version = HW_VER_FMUV2_STATE;
+			break;
+		}
+
+		message("\nFMUv2 ver 0x%1X : Rev %x %s\n", hw_version, hw_revision, hw_type);
+	}
+
+	/* configure SPI interfaces */
+	stm32_spiinitialize();
+
+	/* configure the high-resolution time/callout interface */
+	hrt_init();
+
+	param_init();
+
+	/* configure the DMA allocator */
+
+	if (board_dma_alloc_init() < 0) {
+		message("DMA alloc FAILED");
+	}
+
+	/* configure CPU load estimation */
+#ifdef CONFIG_SCHED_INSTRUMENTATION
+	cpuload_initialize_once();
+#endif
+
+	/* set up the serial DMA polling */
+	static struct hrt_call serial_dma_call;
+	struct timespec ts;
+
+	/*
+	 * Poll at 1ms intervals for received bytes that have not triggered
+	 * a DMA event.
+	 */
+	ts.tv_sec = 0;
+	ts.tv_nsec = 1000000;
+
+	hrt_call_every(&serial_dma_call,
+		       ts_to_abstime(&ts),
+		       ts_to_abstime(&ts),
+		       (hrt_callout)stm32_serial_dma_poll,
+		       NULL);
+
+	/* initial LED state */
+	drv_led_start();
+	led_off(LED_AMBER);
+
+	if (board_hardfault_init(2, true) != 0) {
+		led_on(LED_AMBER);
+	}
+
+	/* Configure SPI-based devices */
+
+	spi1 = stm32_spibus_initialize(PX4_SPI_BUS_SENSORS);
+
+	if (!spi1) {
+		message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_SENSORS);
+		led_on(LED_AMBER);
+		return -ENODEV;
+	}
+
+	/* Default SPI1 to 1MHz and de-assert the known chip selects. */
+	SPI_SETFREQUENCY(spi1, 10000000);
+	SPI_SETBITS(spi1, 8);
+	SPI_SETMODE(spi1, SPIDEV_MODE3);
+	up_udelay(20);
+
+	/* Get the SPI port for the FRAM */
+
+	spi2 = stm32_spibus_initialize(PX4_SPI_BUS_RAMTRON);
+
+	if (!spi2) {
+		message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_RAMTRON);
+		led_on(LED_AMBER);
+		return -ENODEV;
+	}
+
+	/* Default SPI2 to 37.5 MHz (40 MHz rounded to nearest valid divider, F4 max)
+	 * and de-assert the known chip selects. */
+
+	// XXX start with 10.4 MHz in FRAM usage and go up to 37.5 once validated
+	SPI_SETFREQUENCY(spi2, 12 * 1000 * 1000);
+	SPI_SETBITS(spi2, 8);
+	SPI_SETMODE(spi2, SPIDEV_MODE3);
+
+	spi4 = stm32_spibus_initialize(PX4_SPI_BUS_EXT);
+
+	if (!spi4) {
+		message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_EXT);
+		led_on(LED_AMBER);
+		return -ENODEV;
+	}
+
+	/* Default SPI4 to 1MHz and de-assert the known chip selects. */
+	SPI_SETFREQUENCY(spi4, 10000000);
+	SPI_SETBITS(spi4, 8);
+	SPI_SETMODE(spi4, SPIDEV_MODE3);
+
+#ifdef CONFIG_MMCSD
+	/* First, get an instance of the SDIO interface */
+
+	sdio = sdio_initialize(CONFIG_NSH_MMCSDSLOTNO);
+
+	if (!sdio) {
+		led_on(LED_AMBER);
+		message("[boot] Failed to initialize SDIO slot %d\n", CONFIG_NSH_MMCSDSLOTNO);
+		return -ENODEV;
+	}
+
+	/* Now bind the SDIO interface to the MMC/SD driver */
+	int ret = mmcsd_slotinitialize(CONFIG_NSH_MMCSDMINOR, sdio);
+
+	if (ret != OK) {
+		led_on(LED_AMBER);
+		message("[boot] Failed to bind SDIO to the MMC/SD driver: %d\n", ret);
+		return ret;
+	}
+
+	/* Then let's guess and say that there is a card in the slot. There is no card detect GPIO. */
+	sdio_mediachange(sdio, true);
+
+#endif
+
+	return OK;
+}
diff --git a/boards/px4/fmu-v3/src/led.c b/boards/px4/fmu-v3/src/led.c
new file mode 100644
index 0000000000..09edb2ba66
--- /dev/null
+++ b/boards/px4/fmu-v3/src/led.c
@@ -0,0 +1,96 @@
+/****************************************************************************
+ *
+ *   Copyright (c) 2013 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.
+ *
+ ****************************************************************************/
+
+/**
+ * @file px4fmu2_led.c
+ *
+ * PX4FMU LED backend.
+ */
+
+#include <px4_config.h>
+
+#include <stdbool.h>
+
+#include "stm32.h"
+#include "board_config.h"
+
+#include <arch/board/board.h>
+
+/*
+ * Ideally we'd be able to get these from up_internal.h,
+ * but since we want to be able to disable the NuttX use
+ * of leds for system indication at will and there is no
+ * separate switch, we need to build independent of the
+ * CONFIG_ARCH_LEDS configuration switch.
+ */
+__BEGIN_DECLS
+extern void led_init(void);
+extern void led_on(int led);
+extern void led_off(int led);
+extern void led_toggle(int led);
+__END_DECLS
+
+__EXPORT void led_init()
+{
+	/* Configure LED1 GPIO for output */
+
+	stm32_configgpio(GPIO_LED1);
+}
+
+__EXPORT void led_on(int led)
+{
+	if (led == 1) {
+		/* Pull down to switch on */
+		stm32_gpiowrite(GPIO_LED1, false);
+	}
+}
+
+__EXPORT void led_off(int led)
+{
+	if (led == 1) {
+		/* Pull up to switch off */
+		stm32_gpiowrite(GPIO_LED1, true);
+	}
+}
+
+__EXPORT void led_toggle(int led)
+{
+	if (led == 1) {
+		if (stm32_gpioread(GPIO_LED1)) {
+			stm32_gpiowrite(GPIO_LED1, false);
+
+		} else {
+			stm32_gpiowrite(GPIO_LED1, true);
+		}
+	}
+}
diff --git a/boards/px4/fmu-v3/src/manifest.c b/boards/px4/fmu-v3/src/manifest.c
new file mode 100644
index 0000000000..7639b59cd3
--- /dev/null
+++ b/boards/px4/fmu-v3/src/manifest.c
@@ -0,0 +1,149 @@
+/****************************************************************************
+ *
+ *   Copyright (c) 2018 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.
+ *
+ ****************************************************************************/
+
+/**
+ * @file manifest.c
+ *
+ * This module supplies the interface to the manifest of hardware that is
+ * optional and dependent on the simple Hardware versioning
+ * BOARD_HAS_SIMPLE_HW_VERSIONING
+ *
+ * The manifest allows the system to know whether a hardware option
+ * say for example the PX4IO is an no-pop option vs it is broken.
+ *
+ */
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <px4_config.h>
+#include <stdbool.h>
+#include "systemlib/px4_macros.h"
+#include "px4_log.h"
+
+/****************************************************************************
+ * Pre-Processor Definitions
+ ****************************************************************************/
+
+typedef struct {
+	uint32_t                hw_ver_rev; /* the version and revision */
+	const px4_hw_mft_item_t *mft;       /* The first entry */
+	uint32_t                entries;    /* the lenght of the list */
+} px4_hw_mft_list_entry_t;
+
+typedef px4_hw_mft_list_entry_t *px4_hw_mft_list_entry;
+#define px4_hw_mft_list_uninitialized (px4_hw_mft_list_entry) -1
+
+static const px4_hw_mft_item_t device_unsupported = {0, 0, 0};
+
+static const px4_hw_mft_item_t hw_mft_list_FMUv2[] = {
+	{
+		.present     = 1,
+		.mandatory   = 1,
+		.connection  = px4_hw_con_onboard,
+	},
+};
+
+static const px4_hw_mft_item_t hw_mft_list_FMUv2Mini[] = {
+	{
+		.present     = 1,
+		.mandatory   = 1,
+		.connection  = px4_hw_con_onboard,
+	},
+};
+static const px4_hw_mft_item_t hw_mft_list_FMUv2X[] = {
+	{
+		.present     = 1,
+		.mandatory   = 1,
+		.connection  = px4_hw_con_onboard,
+	},
+};
+static const px4_hw_mft_item_t hw_mft_list_FMUv3[] = {
+	{
+		.present     = 1,
+		.mandatory   = 1,
+		.connection  = px4_hw_con_onboard,
+	},
+};
+
+static px4_hw_mft_list_entry_t mft_lists[] = {
+	{HW_VER_FMUV2,        hw_mft_list_FMUv2,     arraySize(hw_mft_list_FMUv2)},
+	{HW_VER_FMUV2MINI,    hw_mft_list_FMUv2Mini, arraySize(hw_mft_list_FMUv2Mini)},
+	{HW_VER_FMUV2X,       hw_mft_list_FMUv2X,    arraySize(hw_mft_list_FMUv2X)},
+	{HW_VER_FMUV3,        hw_mft_list_FMUv3,     arraySize(hw_mft_list_FMUv3)},
+};
+
+/************************************************************************************
+ * Name: board_query_manifest
+ *
+ * Description:
+ *   Optional returns manifest item.
+ *
+ * Input Parameters:
+ *   manifest_id - the ID for the manifest item to retrieve
+ *
+ * Returned Value:
+ *   0 - item is not in manifest => assume legacy operations
+ *   pointer to a manifest item
+ *
+ ************************************************************************************/
+
+__EXPORT px4_hw_mft_item board_query_manifest(px4_hw_mft_item_id_t id)
+{
+	static px4_hw_mft_list_entry boards_manifest = px4_hw_mft_list_uninitialized;
+
+	if (boards_manifest == px4_hw_mft_list_uninitialized) {
+		uint32_t ver_rev = board_get_hw_version();
+
+		for (unsigned i = 0; i < arraySize(mft_lists); i++) {
+			if (mft_lists[i].hw_ver_rev == ver_rev) {
+				boards_manifest = &mft_lists[i];
+				break;
+			}
+		}
+
+		if (boards_manifest == px4_hw_mft_list_uninitialized) {
+			PX4_ERR("Board %4x is not supported!", ver_rev);
+		}
+	}
+
+	px4_hw_mft_item rv = &device_unsupported;
+
+	if (boards_manifest != px4_hw_mft_list_uninitialized &&
+	    id < boards_manifest->entries) {
+		rv = &boards_manifest->mft[id];
+	}
+
+	return rv;
+}
diff --git a/boards/px4/fmu-v3/src/spi.c b/boards/px4/fmu-v3/src/spi.c
new file mode 100644
index 0000000000..ca29b39c32
--- /dev/null
+++ b/boards/px4/fmu-v3/src/spi.c
@@ -0,0 +1,462 @@
+/****************************************************************************
+ *
+ *   Copyright (C) 2012 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.
+ *
+ ****************************************************************************/
+
+/**
+ * @file px4fmu_spi.c
+ *
+ * Board-specific SPI functions.
+ */
+
+/************************************************************************************
+ * Included Files
+ ************************************************************************************/
+
+#include <px4_config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <unistd.h>
+
+#include <nuttx/spi/spi.h>
+#include <arch/board/board.h>
+
+#include <up_arch.h>
+#include <chip.h>
+#include <stm32.h>
+#include "board_config.h"
+#include <systemlib/err.h>
+
+/************************************************************************************
+ * Public Functions
+ ************************************************************************************/
+
+/************************************************************************************
+ * Name: stm32_spiinitialize
+ *
+ * Description:
+ *   Called to configure SPI chip select GPIO pins for the PX4FMU board.
+ *
+ ************************************************************************************/
+
+#ifdef CONFIG_STM32_SPI1
+/*   Verification
+ *        PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6
+ * driver  X   X   X                                               X       X   X
+ * local               V2  v2   V2  V3  a   V2  V2M  V2x   a    a        4
+ */
+static void stm32_spi1_initialize(void)
+{
+	stm32_configgpio(GPIO_SPI1_CS_PC2);
+	stm32_configgpio(GPIO_SPI1_CS_PD7);
+
+	stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PD15);
+
+	if (HW_VER_FMUV2MINI == board_get_hw_version()) {
+		stm32_configgpio(GPIO_SPI1_EXTI_20608_DRDY_PC14);
+		stm32_configgpio(GPIO_SPI1_CS_PC15);
+
+	} else if (HW_VER_FMUV3 == board_get_hw_version()) {
+		stm32_configgpio(GPIO_SPI1_CS_PC1);
+
+	} else {
+		stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB0);
+		stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB1);
+		stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB4);
+		stm32_configgpio(GPIO_SPI1_CS_PC13);
+		stm32_configgpio(GPIO_SPI1_CS_PC15);
+	}
+}
+#endif // CONFIG_STM32_SPI1
+
+#ifdef CONFIG_STM32_SPI4
+/*   Verification
+ *        PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6
+ * driver   X   X   X                                               X       X   X
+ * local               V3 V3   -  V3  a   V3    V23  V3   -    -
+ */
+static void stm32_spi4_initialize(void)
+{
+	stm32_configgpio(GPIO_SPI4_NSS_PE4);
+
+	if (HW_VER_FMUV3 == board_get_hw_version()) {
+		stm32_configgpio(GPIO_SPI4_EXTI_DRDY_PB0);
+		stm32_configgpio(GPIO_SPI4_CS_PB1);
+		stm32_configgpio(GPIO_SPI4_CS_PC13);
+		stm32_configgpio(GPIO_SPI4_CS_PC15);
+	}
+
+	if (HW_VER_FMUV2MINI != board_get_hw_version()) {
+		stm32_configgpio(GPIO_SPI4_GPIO_PC14);
+	}
+}
+#endif //CONFIG_STM32_SPI4
+
+__EXPORT void stm32_spiinitialize(void)
+{
+#ifdef CONFIG_STM32_SPI1
+	stm32_spi1_initialize();
+#endif
+
+#ifdef CONFIG_STM32_SPI2
+	stm32_configgpio(GPIO_SPI2_CS_PD10);
+#endif
+
+#ifdef CONFIG_STM32_SPI4
+	stm32_spi4_initialize();
+#endif
+}
+
+#ifdef CONFIG_STM32_SPI1
+__EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
+{
+	/* SPI select is active low, so write !selected to select the device */
+	/*   Verification
+	 *        PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6
+	 * driver  X   X   X                                               X       X   X
+	 * local               -   -   -  V3   a   V2   -   V2M   a    -       -
+	 */
+
+	switch (devid) {
+	case PX4_SPIDEV_GYRO:
+
+		/* Making sure the other peripherals are not selected */
+		if (HW_VER_FMUV2 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC13, !selected);
+		}
+
+		if (HW_VER_FMUV3 != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1);
+		}
+
+		stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1);
+		stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1);
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC1, 1);
+		}
+
+		break;
+
+	case PX4_SPIDEV_ICM_20608:
+	case PX4_SPIDEV_ACCEL_MAG:
+
+		/* Making sure the other peripherals are not selected */
+		if (HW_VER_FMUV2 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1);
+		}
+
+		if (HW_VER_FMUV3 != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC15, !selected);
+		}
+
+		stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1);
+		stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1);
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC1, 1);
+		}
+
+		break;
+
+	case PX4_SPIDEV_BARO:
+
+		/* Making sure the other peripherals are not selected */
+		if (HW_VER_FMUV2 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1);
+		}
+
+		if (HW_VER_FMUV3 != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1);
+		}
+
+		stm32_gpiowrite(GPIO_SPI1_CS_PD7, !selected);
+		stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1);
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC1, 1);
+		}
+
+		break;
+
+	case PX4_SPIDEV_MPU:
+
+		/* Making sure the other peripherals are not selected */
+		if (HW_VER_FMUV2 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1);
+		}
+
+		if (HW_VER_FMUV3 != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1);
+		}
+
+		stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1);
+		stm32_gpiowrite(GPIO_SPI1_CS_PC2, !selected);
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC1, 1);
+		}
+
+		break;
+
+	case PX4_SPIDEV_HMC:
+		if (HW_VER_FMUV2 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1);
+		}
+
+		if (HW_VER_FMUV3 != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1);
+		}
+
+		stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1);
+		stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1);
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI1_CS_PC1, !selected);
+		}
+
+		break;
+
+	default:
+		break;
+	}
+}
+
+__EXPORT uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, uint32_t devid)
+{
+	return SPI_STATUS_PRESENT;
+}
+#endif // CONFIG_STM32_SPI1
+
+#ifdef CONFIG_STM32_SPI2
+__EXPORT void stm32_spi2select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
+{
+	/* there can only be one device on this bus, so always select it */
+	stm32_gpiowrite(GPIO_SPI2_CS_PD10, !selected);
+}
+
+__EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, uint32_t devid)
+{
+	/* FRAM is always present */
+	return SPI_STATUS_PRESENT;
+}
+#endif
+
+
+#ifdef CONFIG_STM32_SPI4
+__EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
+{
+	/* SPI select is active low, so write !selected to select the device */
+	/*   Verification
+	 *        PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6
+	 * driver  X   X   X                                               X       X   X
+	 * local               -   -   -  -    -   V3  !V2M  V3   -   -        a
+	 */
+
+	switch (devid) {
+	case PX4_SPIDEV_EXT_MPU:
+		/* Making sure the other peripherals are not selected */
+		stm32_gpiowrite(GPIO_SPI4_NSS_PE4, !selected);
+
+		if (HW_VER_FMUV2MINI != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, 1);
+		}
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI4_CS_PC15, 1);
+			stm32_gpiowrite(GPIO_SPI4_CS_PC13, 1);
+		}
+
+		break;
+
+	case PX4_SPIDEV_EXT_BARO:
+		/* Making sure the other peripherals are not selected */
+		stm32_gpiowrite(GPIO_SPI4_NSS_PE4, 1);
+
+		if (HW_VER_FMUV2MINI != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, !selected);
+		}
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI4_CS_PC15, 1);
+			stm32_gpiowrite(GPIO_SPI4_CS_PC13, 1);
+		}
+
+		break;
+
+	case PX4_SPIDEV_ICM_20608:
+	case PX4_SPIDEV_EXT_ACCEL_MAG:
+		/* Making sure the other peripherals are not selected */
+		stm32_gpiowrite(GPIO_SPI4_NSS_PE4, 1);
+
+		if (HW_VER_FMUV2MINI != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, 1);
+		}
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI4_CS_PC15, !selected);
+			stm32_gpiowrite(GPIO_SPI4_CS_PC13, 1);
+		}
+
+		break;
+
+	case PX4_SPIDEV_EXT_BMI:
+	case PX4_SPIDEV_EXT_GYRO:
+		/* Making sure the other peripherals are not selected */
+		stm32_gpiowrite(GPIO_SPI4_NSS_PE4, 1);
+
+		if (HW_VER_FMUV2MINI != board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, 1);
+		}
+
+		if (HW_VER_FMUV3 == board_get_hw_version()) {
+			stm32_gpiowrite(GPIO_SPI4_CS_PC15, 1);
+			stm32_gpiowrite(GPIO_SPI4_CS_PC13, !selected);
+		}
+
+		break;
+
+	default:
+		break;
+
+	}
+}
+__EXPORT uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, uint32_t devid)
+{
+	return SPI_STATUS_PRESENT;
+}
+#endif // CONFIG_STM32_SPI4
+
+/* V2, V2M SPI1 All signals SPI4, V3 ALL signals */
+/*   Verification
+ *        PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6
+ * local   A   A   A   A   A   A  V3   A   A    !V2    A   A   A  V3  V3  V3   V3
+ */
+
+__EXPORT void board_spi_reset(int ms)
+{
+	/* disable SPI bus */
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PC2));
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PC13));
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PC15));
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PD7));
+
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PC2), 0);
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PC13), 0);
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PC15), 0);
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PD7), 0);
+
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_SCK));
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_MISO));
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_MOSI));
+
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_SCK), 0);
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_MISO), 0);
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_MOSI), 0);
+
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB0));
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB1));
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB4));
+	stm32_configgpio(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PD15));
+
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB0), 0);
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB1), 0);
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB4), 0);
+	stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PD15), 0);
+
+	if (HW_VER_FMUV2 != board_get_hw_version()) {
+		stm32_configgpio(_PIN_OFF(GPIO_SPI4_CS_PC14));
+		stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_CS_PC14), 0);
+	}
+
+	if (HW_VER_FMUV3 == board_get_hw_version()) {
+		stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PC1));
+		stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PC1), 0);
+
+		stm32_configgpio(_PIN_OFF(GPIO_SPI4_NSS_PE4));
+		stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_NSS_PE4), 0);
+
+		stm32_configgpio(_PIN_OFF(GPIO_SPI4_SCK));
+		stm32_configgpio(_PIN_OFF(GPIO_SPI4_MISO));
+		stm32_configgpio(_PIN_OFF(GPIO_SPI4_MOSI));
+
+		stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_SCK), 0);
+		stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_MISO), 0);
+		stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_MOSI), 0);
+	}
+
+	/* set the sensor rail off */
+	stm32_configgpio(GPIO_VDD_3V3_SENSORS_EN);
+	stm32_gpiowrite(GPIO_VDD_3V3_SENSORS_EN, 0);
+
+	/* wait for the sensor rail to reach GND */
+	usleep(ms * 1000);
+	warnx("reset done, %d ms", ms);
+
+	/* re-enable power */
+
+	/* switch the sensor rail back on */
+	stm32_gpiowrite(GPIO_VDD_3V3_SENSORS_EN, 1);
+
+	/* wait a bit before starting SPI, different times didn't influence results */
+	usleep(100);
+
+	/* reconfigure the SPI pins */
+	stm32_configgpio(GPIO_SPI1_SCK);
+	stm32_configgpio(GPIO_SPI1_MISO);
+	stm32_configgpio(GPIO_SPI1_MOSI);
+
+	if (HW_VER_FMUV3 == board_get_hw_version()) {
+		stm32_configgpio(GPIO_SPI4_SCK);
+		stm32_configgpio(GPIO_SPI4_MISO);
+		stm32_configgpio(GPIO_SPI4_MOSI);
+		stm32_spi4_initialize();
+	}
+
+	stm32_spi1_initialize();
+}
+
+__EXPORT bool px4_spi_bus_external(int bus)
+{
+	if (HW_VER_FMUV3 == board_get_hw_version()) {
+		/* all FMUv3 2.1 spi buses are internal */
+		return false;
+
+	} else {
+		if (bus == PX4_SPI_BUS_EXT) {
+			return true;
+		}
+	}
+
+	return false;
+}
diff --git a/boards/px4/fmu-v3/src/timer_config.c b/boards/px4/fmu-v3/src/timer_config.c
new file mode 100644
index 0000000000..5adc4260db
--- /dev/null
+++ b/boards/px4/fmu-v3/src/timer_config.c
@@ -0,0 +1,126 @@
+/****************************************************************************
+ *
+ *   Copyright (C) 2012 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.
+ *
+ ****************************************************************************/
+
+/*
+ * @file px4fmu_timer_config.c
+ *
+ * Configuration data for the stm32 pwm_servo, input capture and pwm input driver.
+ *
+ * Note that these arrays must always be fully-sized.
+ */
+
+#include <stdint.h>
+
+#include <stm32.h>
+#include <stm32_gpio.h>
+#include <stm32_tim.h>
+
+#include <drivers/drv_pwm_output.h>
+#include <drivers/stm32/drv_io_timer.h>
+
+#include "board_config.h"
+
+__EXPORT const io_timers_t io_timers[MAX_IO_TIMERS] = {
+	{
+		.base = STM32_TIM1_BASE,
+		.clock_register = STM32_RCC_APB2ENR,
+		.clock_bit = RCC_APB2ENR_TIM1EN,
+		.clock_freq = STM32_APB2_TIM1_CLKIN,
+		.first_channel_index = 0,
+		.last_channel_index = 3,
+		.handler = io_timer_handler0,
+		.vectorno =  STM32_IRQ_TIM1CC,
+
+	},
+	{
+		.base = STM32_TIM4_BASE,
+		.clock_register = STM32_RCC_APB1ENR,
+		.clock_bit = RCC_APB1ENR_TIM4EN,
+		.clock_freq = STM32_APB1_TIM4_CLKIN,
+		.first_channel_index = 4,
+		.last_channel_index = 5,
+		.handler = io_timer_handler1,
+		.vectorno =  STM32_IRQ_TIM4
+	}
+};
+
+__EXPORT const timer_io_channels_t timer_io_channels[MAX_TIMER_IO_CHANNELS] = {
+	{
+		.gpio_out = GPIO_TIM1_CH4OUT,
+		.gpio_in  = GPIO_TIM1_CH4IN,
+		.timer_index = 0,
+		.timer_channel = 4,
+		.ccr_offset = STM32_GTIM_CCR4_OFFSET,
+		.masks  = GTIM_SR_CC4IF | GTIM_SR_CC4OF
+	},
+	{
+		.gpio_out = GPIO_TIM1_CH3OUT,
+		.gpio_in = GPIO_TIM1_CH3IN,
+		.timer_index = 0,
+		.timer_channel = 3,
+		.ccr_offset = STM32_GTIM_CCR3_OFFSET,
+		.masks  = GTIM_SR_CC3IF | GTIM_SR_CC3OF
+	},
+	{
+		.gpio_out = GPIO_TIM1_CH2OUT,
+		.gpio_in = GPIO_TIM1_CH2IN,
+		.timer_index = 0,
+		.timer_channel = 2,
+		.ccr_offset = STM32_GTIM_CCR2_OFFSET,
+		.masks  = GTIM_SR_CC2IF | GTIM_SR_CC2OF
+	},
+	{
+		.gpio_out = GPIO_TIM1_CH1OUT,
+		.gpio_in = GPIO_TIM1_CH1IN,
+		.timer_index = 0,
+		.timer_channel = 1,
+		.ccr_offset = STM32_GTIM_CCR1_OFFSET,
+		.masks  = GTIM_SR_CC1IF | GTIM_SR_CC1OF
+	},
+	{
+		.gpio_out = GPIO_TIM4_CH2OUT,
+		.gpio_in = GPIO_TIM4_CH2IN,
+		.timer_index = 1,
+		.timer_channel = 2,
+		.ccr_offset = STM32_GTIM_CCR2_OFFSET,
+		.masks  = GTIM_SR_CC2IF | GTIM_SR_CC2OF
+	},
+	{
+		.gpio_out = GPIO_TIM4_CH3OUT,
+		.gpio_in = GPIO_TIM4_CH3IN,
+		.timer_index = 1,
+		.timer_channel = 3,
+		.ccr_offset = STM32_GTIM_CCR3_OFFSET,
+		.masks  = GTIM_SR_CC3IF | GTIM_SR_CC3OF
+	}
+};
diff --git a/src/drivers/boards/px4fmu-v4pro/usb.c b/boards/px4/fmu-v3/src/usb.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4pro/usb.c
rename to boards/px4/fmu-v3/src/usb.c
diff --git a/boards/px4/fmu-v3/stackcheck.cmake b/boards/px4/fmu-v3/stackcheck.cmake
new file mode 100644
index 0000000000..e0034ddbd0
--- /dev/null
+++ b/boards/px4/fmu-v3/stackcheck.cmake
@@ -0,0 +1,129 @@
+
+# FMUv3 is FMUv2 with access to the full 2MB flash
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v3
+	LABEL stackcheck
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	#UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/adis16448
+		imu/l3gd20
+		imu/lsm303d
+		imu/mpu6000
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		#pmw3901
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		rgbled_ncp5623c
+		#rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+		#subscriber
+		#uuv_example_app
+
+	)
diff --git a/boards/px4/fmu-v4/default.cmake b/boards/px4/fmu-v4/default.cmake
new file mode 100644
index 0000000000..5019b220b1
--- /dev/null
+++ b/boards/px4/fmu-v4/default.cmake
@@ -0,0 +1,114 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v4
+	LABEL default
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	TESTING
+	UAVCAN_INTERFACES 1
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		heater
+		imu # all available imu drivers
+		irlock
+		magnetometer # all available magnetometer drivers
+		mkblctrl
+		oreoled
+		pca9685
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		rc_input
+		rgbled
+		rgbled_ncp5623c
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/px4fmu-v4.prototype b/boards/px4/fmu-v4/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/px4fmu-v4.prototype
rename to boards/px4/fmu-v4/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4/include/board.h b/boards/px4/fmu-v4/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v4/include/board.h
rename to boards/px4/fmu-v4/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4/nsh/defconfig b/boards/px4/fmu-v4/nuttx-config/nsh/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v4/nsh/defconfig
rename to boards/px4/fmu-v4/nuttx-config/nsh/defconfig
diff --git a/platforms/nuttx/nuttx-configs/mindpx-v2/scripts/ld.script b/boards/px4/fmu-v4/nuttx-config/scripts/ld.script
similarity index 92%
rename from platforms/nuttx/nuttx-configs/mindpx-v2/scripts/ld.script
rename to boards/px4/fmu-v4/nuttx-config/scripts/ld.script
index 133df6022f..0d19229c01 100644
--- a/platforms/nuttx/nuttx-configs/mindpx-v2/scripts/ld.script
+++ b/boards/px4/fmu-v4/nuttx-config/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * configs/px4fmu/common/ld.script
+ * scripts/ld.script
  *
  *   Copyright (C) 2011 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
@@ -60,7 +60,7 @@ OUTPUT_ARCH(arm)
 ENTRY(__start)		/* treat __start as the anchor for dead code stripping */
 EXTERN(_vectors)	/* force the vectors to be included in the output */
 
-/* 
+/*
  * Ensure that abort() is present in the final object.  The exception handling
  * code pulled in by libgcc.a requires it (and that code cannot be easily avoided).
  */
@@ -72,24 +72,24 @@ SECTIONS
 	.text : {
 		_stext = ABSOLUTE(.);
 		*(.vectors)
-                . = ALIGN(32);
-                /*
-                This signature provides the bootloader with a way to delay booting
-                */
-                _bootdelay_signature = ABSOLUTE(.);
-                FILL(0xffecc2925d7d05c5)
-                . += 8;
-		*(.text .text.*)        
+		. = ALIGN(32);
+		/*
+		This signature provides the bootloader with a way to delay booting
+		*/
+		_bootdelay_signature = ABSOLUTE(.);
+		FILL(0xffecc2925d7d05c5)
+		. += 8;
+		*(.text .text.*)
 		*(.fixup)
 		*(.gnu.warning)
-		*(.rodata .rodata.*)        
+		*(.rodata .rodata.*)
 		*(.gnu.linkonce.t.*)
 		*(.got)
 		*(.gcc_except_table)
 		*(.gnu.linkonce.r.*)
 		_etext = ABSOLUTE(.);
 
-		/* 
+		/*
 		 * This is a hack to make the newlib libm __errno() call
 		 * use the NuttX get_errno_ptr() function.
 		 */
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4/stackcheck/defconfig b/boards/px4/fmu-v4/nuttx-config/stackcheck/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v4/stackcheck/defconfig
rename to boards/px4/fmu-v4/nuttx-config/stackcheck/defconfig
diff --git a/boards/px4/fmu-v4/rtps.cmake b/boards/px4/fmu-v4/rtps.cmake
new file mode 100644
index 0000000000..0c2521aef0
--- /dev/null
+++ b/boards/px4/fmu-v4/rtps.cmake
@@ -0,0 +1,116 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v4
+	LABEL rtps
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	TESTING
+	UAVCAN_INTERFACES 1
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		heater
+		imu # all available imu drivers
+		irlock
+		magnetometer # all available magnetometer drivers
+		mkblctrl
+		oreoled
+		pca9685
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		rc_input
+		rgbled
+		rgbled_ncp5623c
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		micrortps_bridge
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/src/drivers/boards/px4fmu-v4/CMakeLists.txt b/boards/px4/fmu-v4/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4fmu-v4/CMakeLists.txt
rename to boards/px4/fmu-v4/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4fmu-v4/board_config.h b/boards/px4/fmu-v4/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4fmu-v4/board_config.h
rename to boards/px4/fmu-v4/src/board_config.h
index 95b9c9d9dc..bcfffe64d8 100644
--- a/src/drivers/boards/px4fmu-v4/board_config.h
+++ b/boards/px4/fmu-v4/src/board_config.h
@@ -387,7 +387,7 @@ extern void stm32_usbinitialize(void);
 
 extern void board_peripheral_reset(int ms);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4fmu-v4pro/can.c b/boards/px4/fmu-v4/src/can.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4pro/can.c
rename to boards/px4/fmu-v4/src/can.c
diff --git a/src/drivers/boards/px4fmu-v4/init.c b/boards/px4/fmu-v4/src/init.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4/init.c
rename to boards/px4/fmu-v4/src/init.c
diff --git a/src/drivers/boards/px4fmu-v4/led.c b/boards/px4/fmu-v4/src/led.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4/led.c
rename to boards/px4/fmu-v4/src/led.c
diff --git a/src/drivers/boards/px4fmu-v4/spi.c b/boards/px4/fmu-v4/src/spi.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4/spi.c
rename to boards/px4/fmu-v4/src/spi.c
diff --git a/src/drivers/boards/px4fmu-v4/timer_config.c b/boards/px4/fmu-v4/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4/timer_config.c
rename to boards/px4/fmu-v4/src/timer_config.c
diff --git a/src/drivers/boards/px4fmu-v4/usb.c b/boards/px4/fmu-v4/src/usb.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4/usb.c
rename to boards/px4/fmu-v4/src/usb.c
diff --git a/boards/px4/fmu-v4/stackcheck.cmake b/boards/px4/fmu-v4/stackcheck.cmake
new file mode 100644
index 0000000000..c41cee1348
--- /dev/null
+++ b/boards/px4/fmu-v4/stackcheck.cmake
@@ -0,0 +1,114 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v4
+	LABEL stackcheck
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	TESTING
+	#UAVCAN_INTERFACES 1
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		heater
+		imu # all available imu drivers
+		irlock
+		magnetometer # all available magnetometer drivers
+		mkblctrl
+		oreoled
+		pca9685
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		rc_input
+		rgbled
+		rgbled_ncp5623c
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+		#subscriber
+		#uuv_example_app
+
+	)
diff --git a/boards/px4/fmu-v4pro/default.cmake b/boards/px4/fmu-v4pro/default.cmake
new file mode 100644
index 0000000000..25a0f58517
--- /dev/null
+++ b/boards/px4/fmu-v4pro/default.cmake
@@ -0,0 +1,128 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v4pro
+	LABEL default
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL3:/dev/ttyS0
+		TEL4:/dev/ttyS6
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/bmi160
+		imu/bma180
+		imu/mpu6000
+		imu/l3gd20
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		#pmw3901
+		#protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		rgbled_ncp5623c
+		#rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/px4fmu-v4pro.prototype b/boards/px4/fmu-v4pro/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/px4fmu-v4pro.prototype
rename to boards/px4/fmu-v4pro/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4pro/Kconfig b/boards/px4/fmu-v4pro/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v4pro/Kconfig
rename to boards/px4/fmu-v4pro/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4pro/include/board.h b/boards/px4/fmu-v4pro/nuttx-config/include/board.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v4pro/include/board.h
rename to boards/px4/fmu-v4pro/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4pro/nsh/defconfig b/boards/px4/fmu-v4pro/nuttx-config/nsh/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v4pro/nsh/defconfig
rename to boards/px4/fmu-v4pro/nuttx-config/nsh/defconfig
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4pro/scripts/ld.script b/boards/px4/fmu-v4pro/nuttx-config/scripts/ld.script
similarity index 93%
rename from platforms/nuttx/nuttx-configs/px4fmu-v4pro/scripts/ld.script
rename to boards/px4/fmu-v4pro/nuttx-config/scripts/ld.script
index c54adf3178..93e1515560 100644
--- a/platforms/nuttx/nuttx-configs/px4fmu-v4pro/scripts/ld.script
+++ b/boards/px4/fmu-v4pro/nuttx-config/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * configs/px4fmu-v4pro/common/ld.script
+ * scripts/ld.script
  *
  *   Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
@@ -72,13 +72,13 @@ SECTIONS
 	.text : {
 		_stext = ABSOLUTE(.);
 		*(.vectors)
-                . = ALIGN(32);
-                /*
-                This signature provides the bootloader with a way to delay booting
-                */
-                _bootdelay_signature = ABSOLUTE(.);
-                FILL(0xffecc2925d7d05c5)
-                . += 8;
+		. = ALIGN(32);
+		/*
+		This signature provides the bootloader with a way to delay booting
+		*/
+		_bootdelay_signature = ABSOLUTE(.);
+		FILL(0xffecc2925d7d05c5)
+		. += 8;
 		*(.text .text.*)
 		*(.fixup)
 		*(.gnu.warning)
diff --git a/boards/px4/fmu-v4pro/rtps.cmake b/boards/px4/fmu-v4pro/rtps.cmake
new file mode 100644
index 0000000000..c03492ba11
--- /dev/null
+++ b/boards/px4/fmu-v4pro/rtps.cmake
@@ -0,0 +1,129 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v4pro
+	LABEL default
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS3
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL3:/dev/ttyS0
+		TEL4:/dev/ttyS6
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/bmi160
+		imu/bma180
+		imu/mpu6000
+		imu/l3gd20
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		#pmw3901
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rgbled
+		rgbled_ncp5623c
+		#rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		micrortps_bridge
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/src/drivers/boards/px4fmu-v4pro/CMakeLists.txt b/boards/px4/fmu-v4pro/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4fmu-v4pro/CMakeLists.txt
rename to boards/px4/fmu-v4pro/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4fmu-v4pro/board_config.h b/boards/px4/fmu-v4pro/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4fmu-v4pro/board_config.h
rename to boards/px4/fmu-v4pro/src/board_config.h
index 7b8913bf6f..745440d696 100644
--- a/src/drivers/boards/px4fmu-v4pro/board_config.h
+++ b/boards/px4/fmu-v4pro/src/board_config.h
@@ -432,7 +432,7 @@ extern void board_peripheral_reset(int ms);
 int nsh_archinitialize(void);
 #endif
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/s2740vc-v1/can.c b/boards/px4/fmu-v4pro/src/can.c
similarity index 94%
rename from src/drivers/boards/s2740vc-v1/can.c
rename to boards/px4/fmu-v4pro/src/can.c
index cc2e5e4793..7234c4eb8d 100644
--- a/src/drivers/boards/s2740vc-v1/can.c
+++ b/boards/px4/fmu-v4pro/src/can.c
@@ -1,6 +1,6 @@
 /****************************************************************************
  *
- *   Copyright (C) 2015 PX4 Development Team. All rights reserved.
+ *   Copyright (C) 2012 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
@@ -32,7 +32,7 @@
  ****************************************************************************/
 
 /**
- * @file pxesc_can.c
+ * @file px4fmu_can.c
  *
  * Board-specific CAN functions.
  */
@@ -56,13 +56,12 @@
 #include "stm32_can.h"
 #include "board_config.h"
 
-#if defined(CONFIG_CAN)
+#ifdef CONFIG_CAN
 
 /************************************************************************************
  * Pre-processor Definitions
  ************************************************************************************/
 /* Configuration ********************************************************************/
-/* The STM32F107VC supports CAN1 and CAN2 */
 
 #if defined(CONFIG_STM32_CAN1) && defined(CONFIG_STM32_CAN2)
 #  warning "Both CAN1 and CAN2 are enabled.  Assuming only CAN1."
@@ -93,7 +92,7 @@ int can_devinit(void);
  *
  ************************************************************************************/
 
-__EXPORT int can_devinit(void)
+int can_devinit(void)
 {
 	static bool initialized = false;
 	struct can_dev_s *can;
@@ -128,4 +127,4 @@ __EXPORT int can_devinit(void)
 	return OK;
 }
 
-#endif /* CONFIG_CAN && CONFIG_STM32_CAN1 */
+#endif
diff --git a/src/drivers/boards/px4fmu-v4pro/init.c b/boards/px4/fmu-v4pro/src/init.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4pro/init.c
rename to boards/px4/fmu-v4pro/src/init.c
diff --git a/src/drivers/boards/px4fmu-v4pro/led.c b/boards/px4/fmu-v4pro/src/led.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4pro/led.c
rename to boards/px4/fmu-v4pro/src/led.c
diff --git a/src/drivers/boards/px4fmu-v4pro/spi.c b/boards/px4/fmu-v4pro/src/spi.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4pro/spi.c
rename to boards/px4/fmu-v4pro/src/spi.c
diff --git a/src/drivers/boards/px4fmu-v4pro/timer_config.c b/boards/px4/fmu-v4pro/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v4pro/timer_config.c
rename to boards/px4/fmu-v4pro/src/timer_config.c
diff --git a/boards/px4/fmu-v4pro/src/usb.c b/boards/px4/fmu-v4pro/src/usb.c
new file mode 100644
index 0000000000..4b455309db
--- /dev/null
+++ b/boards/px4/fmu-v4pro/src/usb.c
@@ -0,0 +1,107 @@
+/****************************************************************************
+ *
+ *   Copyright (C) 2012 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.
+ *
+ ****************************************************************************/
+
+/**
+ * @file px4fmu_usb.c
+ *
+ * Board-specific USB functions.
+ */
+
+/************************************************************************************
+ * Included Files
+ ************************************************************************************/
+
+#include <px4_config.h>
+
+#include <sys/types.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+
+#include <nuttx/usb/usbdev.h>
+#include <nuttx/usb/usbdev_trace.h>
+
+#include <up_arch.h>
+#include <stm32.h>
+#include "board_config.h"
+
+/************************************************************************************
+ * Definitions
+ ************************************************************************************/
+
+/************************************************************************************
+ * Private Functions
+ ************************************************************************************/
+
+/************************************************************************************
+ * Public Functions
+ ************************************************************************************/
+
+/************************************************************************************
+ * Name: stm32_usbinitialize
+ *
+ * Description:
+ *   Called to setup USB-related GPIO pins for the PX4FMU board.
+ *
+ ************************************************************************************/
+
+__EXPORT void stm32_usbinitialize(void)
+{
+	/* The OTG FS has an internal soft pull-up */
+
+	/* Configure the OTG FS VBUS sensing GPIO, Power On, and Overcurrent GPIOs */
+
+#ifdef CONFIG_STM32_OTGFS
+	stm32_configgpio(GPIO_OTGFS_VBUS);
+	/* XXX We only support device mode
+	stm32_configgpio(GPIO_OTGFS_PWRON);
+	stm32_configgpio(GPIO_OTGFS_OVER);
+	*/
+#endif
+}
+
+/************************************************************************************
+ * Name:  stm32_usbsuspend
+ *
+ * Description:
+ *   Board logic must provide the stm32_usbsuspend logic if the USBDEV driver is
+ *   used.  This function is called whenever the USB enters or leaves suspend mode.
+ *   This is an opportunity for the board logic to shutdown clocks, power, etc.
+ *   while the USB is suspended.
+ *
+ ************************************************************************************/
+
+__EXPORT void stm32_usbsuspend(FAR struct usbdev_s *dev, bool resume)
+{
+	uinfo("resume: %d\n", resume);
+}
diff --git a/boards/px4/fmu-v5/default.cmake b/boards/px4/fmu-v5/default.cmake
new file mode 100644
index 0000000000..8ede289eab
--- /dev/null
+++ b/boards/px4/fmu-v5/default.cmake
@@ -0,0 +1,129 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v5
+	LABEL default
+	ARCH cortex-m7
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/adis16448
+		imu/bmi055
+		imu/bmi160
+		imu/bma180
+		imu/mpu6000
+		imu/mpu9250
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		pmw3901
+		#protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rc_input
+		rgbled
+		rgbled_ncp5623c
+		rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/px4fmu-v5.prototype b/boards/px4/fmu-v5/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/px4fmu-v5.prototype
rename to boards/px4/fmu-v5/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v5/Kconfig b/boards/px4/fmu-v5/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v5/Kconfig
rename to boards/px4/fmu-v5/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v5/include/board.h b/boards/px4/fmu-v5/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v5/include/board.h
rename to boards/px4/fmu-v5/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v5/nsh/defconfig b/boards/px4/fmu-v5/nuttx-config/nsh/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v5/nsh/defconfig
rename to boards/px4/fmu-v5/nuttx-config/nsh/defconfig
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v5/scripts/ld.script b/boards/px4/fmu-v5/nuttx-config/scripts/ld.script
similarity index 99%
rename from platforms/nuttx/nuttx-configs/px4fmu-v5/scripts/ld.script
rename to boards/px4/fmu-v5/nuttx-config/scripts/ld.script
index 3be39dd6c0..fae1d95de0 100644
--- a/platforms/nuttx/nuttx-configs/px4fmu-v5/scripts/ld.script
+++ b/boards/px4/fmu-v5/nuttx-config/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * nuttx-configs/px4nfmu-v5/scripts/script.ld
+ * scripts/script.ld
  *
  *   Copyright (C) 2016 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v5/stackcheck/defconfig b/boards/px4/fmu-v5/nuttx-config/stackcheck/defconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4fmu-v5/stackcheck/defconfig
rename to boards/px4/fmu-v5/nuttx-config/stackcheck/defconfig
diff --git a/boards/px4/fmu-v5/rtps.cmake b/boards/px4/fmu-v5/rtps.cmake
new file mode 100644
index 0000000000..a4500fb1db
--- /dev/null
+++ b/boards/px4/fmu-v5/rtps.cmake
@@ -0,0 +1,127 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v5
+	LABEL rtps
+	ARCH cortex-m7
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/adis16448
+		imu/bmi055
+		imu/mpu6000
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		pmw3901
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rc_input
+		rgbled
+		rgbled_ncp5623c
+		rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		micrortps_bridge
+		navigator
+		position_estimator_inav
+		sensors
+		uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/src/drivers/boards/px4fmu-v5/CMakeLists.txt b/boards/px4/fmu-v5/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/CMakeLists.txt
rename to boards/px4/fmu-v5/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4fmu-v5/board_config.h b/boards/px4/fmu-v5/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4fmu-v5/board_config.h
rename to boards/px4/fmu-v5/src/board_config.h
index f501cefbe6..ebc37ac2ef 100644
--- a/src/drivers/boards/px4fmu-v5/board_config.h
+++ b/boards/px4/fmu-v5/src/board_config.h
@@ -827,7 +827,7 @@ extern void board_peripheral_reset(int ms);
 int nsh_archinitialize(void);
 #endif
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4fmu-v5/can.c b/boards/px4/fmu-v5/src/can.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/can.c
rename to boards/px4/fmu-v5/src/can.c
diff --git a/src/drivers/boards/px4fmu-v5/init.c b/boards/px4/fmu-v5/src/init.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/init.c
rename to boards/px4/fmu-v5/src/init.c
diff --git a/src/drivers/boards/px4fmu-v5/led.c b/boards/px4/fmu-v5/src/led.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/led.c
rename to boards/px4/fmu-v5/src/led.c
diff --git a/src/drivers/boards/px4fmu-v5/manifest.c b/boards/px4/fmu-v5/src/manifest.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/manifest.c
rename to boards/px4/fmu-v5/src/manifest.c
diff --git a/src/drivers/boards/px4fmu-v5/sdio.c b/boards/px4/fmu-v5/src/sdio.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/sdio.c
rename to boards/px4/fmu-v5/src/sdio.c
diff --git a/src/drivers/boards/px4fmu-v5/spi.c b/boards/px4/fmu-v5/src/spi.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/spi.c
rename to boards/px4/fmu-v5/src/spi.c
diff --git a/src/drivers/boards/px4fmu-v5/timer_config.c b/boards/px4/fmu-v5/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/timer_config.c
rename to boards/px4/fmu-v5/src/timer_config.c
diff --git a/src/drivers/boards/px4fmu-v5/usb.c b/boards/px4/fmu-v5/src/usb.c
similarity index 100%
rename from src/drivers/boards/px4fmu-v5/usb.c
rename to boards/px4/fmu-v5/src/usb.c
diff --git a/boards/px4/fmu-v5/stackcheck.cmake b/boards/px4/fmu-v5/stackcheck.cmake
new file mode 100644
index 0000000000..e0c2955a95
--- /dev/null
+++ b/boards/px4/fmu-v5/stackcheck.cmake
@@ -0,0 +1,126 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL fmu-v5
+	LABEL stackcheck
+	ARCH cortex-m7
+	ROMFS
+	ROMFSROOT px4fmu_common
+	IO px4io-v2_default
+	TESTING
+	#UAVCAN_INTERFACES 2
+
+	SERIAL_PORTS
+		GPS1:/dev/ttyS0
+		TEL1:/dev/ttyS1
+		TEL2:/dev/ttyS2
+		TEL4:/dev/ttyS3
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/adis16448
+		imu/bmi055
+		imu/mpu6000
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		pmw3901
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		px4io
+		rc_input
+		rgbled
+		rgbled_ncp5623c
+		rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		#bottle_drop # OBC challenge
+		#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		#px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		#px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		#rover_steering_control # Rover example app
+		#segway
+		#subscriber
+		#uuv_example_app
+
+	)
diff --git a/boards/px4/io-v2/default.cmake b/boards/px4/io-v2/default.cmake
new file mode 100644
index 0000000000..e855de0a61
--- /dev/null
+++ b/boards/px4/io-v2/default.cmake
@@ -0,0 +1,11 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR px4
+	MODEL io-v2
+	ARCH cortex-m3
+	DRIVERS
+		stm32
+	MODULES
+		px4iofirmware
+	)
diff --git a/platforms/nuttx/Images/px4io-v2.prototype b/boards/px4/io-v2/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/px4io-v2.prototype
rename to boards/px4/io-v2/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/px4io-v2/include/board.h b/boards/px4/io-v2/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4io-v2/include/board.h
rename to boards/px4/io-v2/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4io-v2/nsh/defconfig b/boards/px4/io-v2/nuttx-config/nsh/defconfig
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4io-v2/nsh/defconfig
rename to boards/px4/io-v2/nuttx-config/nsh/defconfig
diff --git a/platforms/nuttx/nuttx-configs/px4io-v2/scripts/ld.script b/boards/px4/io-v2/nuttx-config/scripts/ld.script
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4io-v2/scripts/ld.script
rename to boards/px4/io-v2/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/px4io-v2/CMakeLists.txt b/boards/px4/io-v2/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4io-v2/CMakeLists.txt
rename to boards/px4/io-v2/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4io-v2/board_config.h b/boards/px4/io-v2/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4io-v2/board_config.h
rename to boards/px4/io-v2/src/board_config.h
index c3acc51244..475d450379 100644
--- a/src/drivers/boards/px4io-v2/board_config.h
+++ b/boards/px4/io-v2/src/board_config.h
@@ -47,7 +47,7 @@
 #include <nuttx/compiler.h>
 #include <stdint.h>
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 /******************************************************************************
  * Definitions
diff --git a/src/drivers/boards/px4io-v2/init.c b/boards/px4/io-v2/src/init.c
similarity index 100%
rename from src/drivers/boards/px4io-v2/init.c
rename to boards/px4/io-v2/src/init.c
diff --git a/src/drivers/boards/px4io-v2/timer_config.c b/boards/px4/io-v2/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/px4io-v2/timer_config.c
rename to boards/px4/io-v2/src/timer_config.c
diff --git a/boards/px4/raspberrypi/cross.cmake b/boards/px4/raspberrypi/cross.cmake
new file mode 100644
index 0000000000..9febb1c145
--- /dev/null
+++ b/boards/px4/raspberrypi/cross.cmake
@@ -0,0 +1,81 @@
+
+px4_add_board(
+	VENDOR px4
+	MODEL raspberrypi
+	LABEL cross
+	PLATFORM posix
+	ARCH cortex-a53
+	TOOLCHAIN Toolchain-arm-linux-gnueabihf
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+		linux_gpio
+		linux_pwm_out
+		linux_sbus
+		rpi_rc_in
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		dyn
+		esc_calib
+		led_control
+		mixer
+		motor_ramp
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/boards/px4/raspberrypi/native.cmake b/boards/px4/raspberrypi/native.cmake
new file mode 100644
index 0000000000..7b2256704d
--- /dev/null
+++ b/boards/px4/raspberrypi/native.cmake
@@ -0,0 +1,80 @@
+
+px4_add_board(
+	VENDOR px4
+	MODEL raspberrypi
+	LABEL native
+	PLATFORM posix
+	TOOLCHAIN Toolchain-native
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+		linux_gpio
+		linux_pwm_out
+		linux_sbus
+		rpi_rc_in
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		dyn
+		esc_calib
+		led_control
+		mixer
+		motor_ramp
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
diff --git a/src/drivers/boards/bebop/CMakeLists.txt b/boards/px4/raspberrypi/src/CMakeLists.txt
similarity index 94%
rename from src/drivers/boards/bebop/CMakeLists.txt
rename to boards/px4/raspberrypi/src/CMakeLists.txt
index d95d0043bc..0b4ba0d6ac 100644
--- a/src/drivers/boards/bebop/CMakeLists.txt
+++ b/boards/px4/raspberrypi/src/CMakeLists.txt
@@ -30,6 +30,7 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 ############################################################################
+
 px4_add_library(drivers_board
-	../common/board_identity.c
+	${PX4_SOURCE_DIR}/src/drivers/boards/common/board_identity.c # TODO: this is horrible and should be fixed
 )
diff --git a/boards/px4/raspberrypi/src/board_config.h b/boards/px4/raspberrypi/src/board_config.h
new file mode 100644
index 0000000000..d43354ba45
--- /dev/null
+++ b/boards/px4/raspberrypi/src/board_config.h
@@ -0,0 +1,57 @@
+/****************************************************************************
+ *
+ *   Copyright (c) 2017 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.
+ *
+ ****************************************************************************/
+
+/**
+ * @file board_config.h
+ *
+ * RPI internal definitions
+ */
+
+#pragma once
+
+#define BOARD_OVERRIDE_UUID "RPIID00000000000" // must be of length 16
+#define PX4_SOC_ARCH_ID     PX4_SOC_ARCH_ID_RPI
+
+#define BOARD_NAME "RPI"
+
+#define BOARD_HAS_NO_RESET
+#define BOARD_HAS_NO_BOOTLOADER
+
+/*
+ * I2C busses
+ */
+#define PX4_I2C_BUS_EXPANSION	1
+#define PX4_NUMBER_I2C_BUSES 1
+
+#include <system_config.h>
+#include <drivers/boards/common/board_common.h>
diff --git a/boards/px4/sitl/default.cmake b/boards/px4/sitl/default.cmake
new file mode 100644
index 0000000000..6d959eecdc
--- /dev/null
+++ b/boards/px4/sitl/default.cmake
@@ -0,0 +1,96 @@
+
+px4_add_board(
+	PLATFORM posix
+	VENDOR px4
+	MODEL sitl
+	LABEL default
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		simulator
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		#bl_update
+		#config
+		#dumpfile
+		dyn
+		esc_calib
+		#hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		#mtd
+		#nshterm
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
+
+set(config_sitl_viewer jmavsim CACHE STRING "viewer for sitl")
+set_property(CACHE config_sitl_viewer PROPERTY STRINGS "jmavsim;none")
+
+set(config_sitl_debugger disable CACHE STRING "debugger for sitl")
+set_property(CACHE config_sitl_debugger PROPERTY STRINGS "disable;gdb;lldb")
+
+# If the environment variable 'replay' is defined, we are building with replay
+# support. In this case, we enable the orb publisher rules.
+set(REPLAY_FILE "$ENV{replay}")
+if(REPLAY_FILE)
+	message("Building with uorb publisher rules support")
+	add_definitions(-DORB_USE_PUBLISHER_RULES)
+endif()
diff --git a/boards/px4/sitl/rtps.cmake b/boards/px4/sitl/rtps.cmake
new file mode 100644
index 0000000000..09946119a7
--- /dev/null
+++ b/boards/px4/sitl/rtps.cmake
@@ -0,0 +1,98 @@
+
+px4_add_board(
+	PLATFORM posix
+	VENDOR px4
+	MODEL sitl
+	LABEL rtps
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		#protocol_splitter
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		micrortps_bridge
+		navigator
+		position_estimator_inav
+		sensors
+		simulator
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		#bl_update
+		#config
+		#dumpfile
+		dyn
+		esc_calib
+		#hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		#mtd
+		#nshterm
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
+
+set(config_sitl_viewer jmavsim CACHE STRING "viewer for sitl")
+set_property(CACHE config_sitl_viewer PROPERTY STRINGS "jmavsim;none")
+
+set(config_sitl_debugger disable CACHE STRING "debugger for sitl")
+set_property(CACHE config_sitl_debugger PROPERTY STRINGS "disable;gdb;lldb")
+
+# If the environment variable 'replay' is defined, we are building with replay
+# support. In this case, we enable the orb publisher rules.
+set(REPLAY_FILE "$ENV{replay}")
+if(REPLAY_FILE)
+	message("Building with uorb publisher rules support")
+	add_definitions(-DORB_USE_PUBLISHER_RULES)
+endif()
diff --git a/src/drivers/boards/eagle/CMakeLists.txt b/boards/px4/sitl/src/CMakeLists.txt
similarity index 94%
rename from src/drivers/boards/eagle/CMakeLists.txt
rename to boards/px4/sitl/src/CMakeLists.txt
index 2adacda0d3..68f78c4ad7 100644
--- a/src/drivers/boards/eagle/CMakeLists.txt
+++ b/boards/px4/sitl/src/CMakeLists.txt
@@ -32,6 +32,6 @@
 ############################################################################
 
 px4_add_library(drivers_board
+	${PX4_SOURCE_DIR}/src/drivers/boards/common/board_identity.c # TODO: this is horrible and should be fixed
 	sitl_led.c
-	../common/board_identity.c
-	)
+)
diff --git a/src/drivers/boards/sitl/board_config.h b/boards/px4/sitl/src/board_config.h
similarity index 98%
rename from src/drivers/boards/sitl/board_config.h
rename to boards/px4/sitl/src/board_config.h
index ae651192c9..b20098427a 100644
--- a/src/drivers/boards/sitl/board_config.h
+++ b/boards/px4/sitl/src/board_config.h
@@ -61,4 +61,4 @@
 #define BOARD_ARMED_STATE_LED  LED_GREEN
 
 #include <system_config.h>
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
diff --git a/src/drivers/boards/eagle/sitl_led.c b/boards/px4/sitl/src/sitl_led.c
similarity index 100%
rename from src/drivers/boards/eagle/sitl_led.c
rename to boards/px4/sitl/src/sitl_led.c
diff --git a/boards/px4/sitl/test.cmake b/boards/px4/sitl/test.cmake
new file mode 100644
index 0000000000..075c9e4710
--- /dev/null
+++ b/boards/px4/sitl/test.cmake
@@ -0,0 +1,96 @@
+
+px4_add_board(
+	PLATFORM posix
+	VENDOR px4
+	MODEL sitl
+	LABEL test
+	TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		batt_smbus
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#imu # all available imu drivers
+		#magnetometer # all available magnetometer drivers
+		pwm_out_sim
+		#telemetry # all available telemetry drivers
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		simulator
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		#bl_update
+		#config
+		#dumpfile
+		dyn
+		esc_calib
+		#hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		#mtd
+		#nshterm
+		param
+		perf
+		pwm
+		reboot
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+	)
+
+set(config_sitl_viewer jmavsim CACHE STRING "viewer for sitl")
+set_property(CACHE config_sitl_viewer PROPERTY STRINGS "jmavsim;none")
+
+set(config_sitl_debugger disable CACHE STRING "debugger for sitl")
+set_property(CACHE config_sitl_debugger PROPERTY STRINGS "disable;gdb;lldb")
+
+# If the environment variable 'replay' is defined, we are building with replay
+# support. In this case, we enable the orb publisher rules.
+set(REPLAY_FILE "$ENV{replay}")
+if(REPLAY_FILE)
+	message("Building with uorb publisher rules support")
+	add_definitions(-DORB_USE_PUBLISHER_RULES)
+endif()
diff --git a/boards/stm/32f4discovery/default.cmake b/boards/stm/32f4discovery/default.cmake
new file mode 100644
index 0000000000..01be6afbb5
--- /dev/null
+++ b/boards/stm/32f4discovery/default.cmake
@@ -0,0 +1,106 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR stm
+	MODEL 32f4discovery
+	ARCH cortex-m4
+	ROMFS
+	ROMFSROOT px4fmu_common
+	#TESTING
+
+	DRIVERS
+		#barometer # all available barometer drivers
+		#batt_smbus
+		#blinkm
+		#camera_trigger
+		#differential_pressure # all available differential pressure drivers
+		#distance_sensor # all available distance sensor drivers
+		#gps
+		#heater
+		#imu # all available imu drivers
+		#irlock
+		#magnetometer # all available magnetometer drivers
+		#mkblctrl
+		#oreoled
+		#pca9685
+		#pwm_input
+		#pwm_out_sim
+		#px4flow
+		#px4fmu
+		#rc_input
+		#rgbled
+		stm32
+		#stm32/adc
+		#stm32/tone_alarm
+		#tap_esc
+		#telemetry # all available telemetry drivers
+		#test_ppm
+		#vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		#gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		#mc_att_control
+		#mc_pos_control
+		#navigator
+		position_estimator_inav
+		#sensors
+		#uavcan
+		#vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		#tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		#hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/px4-stm32f4discovery.prototype b/boards/stm/32f4discovery/firmware.prototype
similarity index 87%
rename from platforms/nuttx/Images/px4-stm32f4discovery.prototype
rename to boards/stm/32f4discovery/firmware.prototype
index 6670e090e3..cd6b8407ec 100644
--- a/platforms/nuttx/Images/px4-stm32f4discovery.prototype
+++ b/boards/stm/32f4discovery/firmware.prototype
@@ -4,7 +4,7 @@
     "description": "Firmware for the STM32F4Discovery board", 
     "image": "", 
     "build_time": 0, 
-    "summary": "PX4/STM32F4Discovery",
+    "summary": "STM32F4Discovery",
     "version": "0.1",
     "image_size": 0,
     "image_maxsize": 1032192,
diff --git a/platforms/nuttx/nuttx-configs/px4-stm32f4discovery/include/board.h b/boards/stm/32f4discovery/nuttx-config/include/board.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4-stm32f4discovery/include/board.h
rename to boards/stm/32f4discovery/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/px4-stm32f4discovery/nsh/defconfig b/boards/stm/32f4discovery/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/px4-stm32f4discovery/nsh/defconfig
rename to boards/stm/32f4discovery/nuttx-config/nsh/defconfig
index 5b2c57f2df..f9cc94f9cf 100644
--- a/platforms/nuttx/nuttx-configs/px4-stm32f4discovery/nsh/defconfig
+++ b/boards/stm/32f4discovery/nuttx-config/nsh/defconfig
@@ -649,8 +649,8 @@ CONFIG_RAM_SIZE=196608
 #
 # Board Selection
 #
-CONFIG_ARCH_BOARD_PX4_STM32F4DISCOVERY=y
-CONFIG_ARCH_BOARD="px4-stm32f4discovery"
+CONFIG_ARCH_BOARD_STM32F4DISCOVERY=y
+CONFIG_ARCH_BOARD="stm32f4discovery"
 
 #
 # Custom Board Configuration
diff --git a/platforms/nuttx/nuttx-configs/px4-stm32f4discovery/scripts/ld.script b/boards/stm/32f4discovery/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4-stm32f4discovery/scripts/ld.script
rename to boards/stm/32f4discovery/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/px4-stm32f4discovery/CMakeLists.txt b/boards/stm/32f4discovery/src/CMakeLists.txt
similarity index 99%
rename from src/drivers/boards/px4-stm32f4discovery/CMakeLists.txt
rename to boards/stm/32f4discovery/src/CMakeLists.txt
index ad53ed10d7..f7a0fb7991 100644
--- a/src/drivers/boards/px4-stm32f4discovery/CMakeLists.txt
+++ b/boards/stm/32f4discovery/src/CMakeLists.txt
@@ -34,6 +34,7 @@
 px4_add_library(drivers_board
 	init.c
 	led.c
+	timer_config.c
 	usb.c
 )
 
diff --git a/src/drivers/boards/px4-stm32f4discovery/board_config.h b/boards/stm/32f4discovery/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4-stm32f4discovery/board_config.h
rename to boards/stm/32f4discovery/src/board_config.h
index adc7444503..f83aca7a74 100644
--- a/src/drivers/boards/px4-stm32f4discovery/board_config.h
+++ b/boards/stm/32f4discovery/src/board_config.h
@@ -119,7 +119,7 @@ extern void stm32_spiinitialize(void);
 
 extern void stm32_usbinitialize(void);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4-stm32f4discovery/init.c b/boards/stm/32f4discovery/src/init.c
similarity index 100%
rename from src/drivers/boards/px4-stm32f4discovery/init.c
rename to boards/stm/32f4discovery/src/init.c
diff --git a/src/drivers/boards/px4-stm32f4discovery/led.c b/boards/stm/32f4discovery/src/led.c
similarity index 100%
rename from src/drivers/boards/px4-stm32f4discovery/led.c
rename to boards/stm/32f4discovery/src/led.c
diff --git a/boards/stm/32f4discovery/src/timer_config.c b/boards/stm/32f4discovery/src/timer_config.c
new file mode 100644
index 0000000000..dd9fa6b1c8
--- /dev/null
+++ b/boards/stm/32f4discovery/src/timer_config.c
@@ -0,0 +1,76 @@
+/****************************************************************************
+ *
+ *   Copyright (C) 2012 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.
+ *
+ ****************************************************************************/
+
+/*
+ * @file px4stm32f4discovery_timer_config.c
+ *
+ * Configuration data for the stm32 pwm_servo, input capture and pwm input driver.
+ *
+ * Note that these arrays must always be fully-sized.
+ */
+
+#include <stdint.h>
+
+#include <chip.h>
+#include <stm32_gpio.h>
+#include <stm32_tim.h>
+
+#include <drivers/drv_pwm_output.h>
+#include <drivers/stm32/drv_io_timer.h>
+
+#include "board_config.h"
+
+__EXPORT const io_timers_t io_timers[MAX_IO_TIMERS] = {
+	{
+		.base = 0,
+		.clock_register = 0,
+		.clock_bit = 0,
+		.clock_freq = 0,
+		.first_channel_index = 0,
+		.last_channel_index = 3,
+		.handler = io_timer_handler0,
+		.vectorno =  0,
+
+	},
+};
+
+__EXPORT const timer_io_channels_t timer_io_channels[MAX_TIMER_IO_CHANNELS] = {
+	{
+		.gpio_out = 0,//GPIO_TIM1_CH4OUT,
+		.gpio_in  = 0,//GPIO_TIM1_CH4IN,
+		.timer_index = 0,
+		.timer_channel = 4,
+		.ccr_offset = 0,
+		.masks  = 0
+	},
+};
diff --git a/src/drivers/boards/px4-stm32f4discovery/usb.c b/boards/stm/32f4discovery/src/usb.c
similarity index 100%
rename from src/drivers/boards/px4-stm32f4discovery/usb.c
rename to boards/stm/32f4discovery/src/usb.c
diff --git a/boards/stm/nucleo-F767ZI/default.cmake b/boards/stm/nucleo-F767ZI/default.cmake
new file mode 100644
index 0000000000..52ecd2d18a
--- /dev/null
+++ b/boards/stm/nucleo-F767ZI/default.cmake
@@ -0,0 +1,115 @@
+
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR stm
+	MODEL nucleo-F767ZI
+	ARCH cortex-m7
+	ROMFS
+	ROMFSROOT px4fmu_common
+	TESTING
+	#UAVCAN_INTERFACES 2
+
+	DRIVERS
+		barometer # all available barometer drivers
+		batt_smbus
+		blinkm
+		camera_trigger
+		differential_pressure # all available differential pressure drivers
+		distance_sensor # all available distance sensor drivers
+		gps
+		#heater
+		#imu # all available imu drivers
+		imu/adis16448
+		imu/mpu6000
+		irlock
+		magnetometer # all available magnetometer drivers
+		#md25
+		mkblctrl
+		oreoled
+		pca8574
+		pca9685
+		#pmw3901
+		protocol_splitter
+		pwm_input
+		pwm_out_sim
+		px4flow
+		px4fmu
+		rc_input
+		rgbled
+		#rgbled_pwm
+		roboclaw
+		stm32
+		stm32/adc
+		stm32/tone_alarm
+		tap_esc
+		telemetry # all available telemetry drivers
+		test_ppm
+		vmount
+
+	MODULES
+		attitude_estimator_q
+		camera_feedback
+		commander
+		dataman
+		ekf2
+		events
+		fw_att_control
+		fw_pos_control_l1
+		gnd_att_control
+		gnd_pos_control
+		gpio_led
+		land_detector
+		landing_target_estimator
+		load_mon
+		local_position_estimator
+		logger
+		mavlink
+		mc_att_control
+		mc_pos_control
+		navigator
+		position_estimator_inav
+		sensors
+		#uavcan
+		vtol_att_control
+		wind_estimator
+
+	SYSTEMCMDS
+		bl_update
+		config
+		dumpfile
+		esc_calib
+		hardfault_log
+		led_control
+		mixer
+		motor_ramp
+		motor_test
+		mtd
+		nshterm
+		param
+		perf
+		pwm
+		reboot
+		reflect
+		sd_bench
+		shutdown
+		tests # tests and test runner
+		top
+		topic_listener
+		tune_control
+		usb_connected
+		ver
+
+	EXAMPLES
+		bottle_drop # OBC challenge
+		fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
+		hwtest # Hardware test
+		#matlab_csv_serial
+		#publisher
+		px4_mavlink_debug # Tutorial code from https://px4.io/dev/debug_values
+		px4_simple_app # Tutorial code from https://px4.io/dev/px4_simple_app
+		rover_steering_control # Rover example app
+		segway
+		#subscriber
+		uuv_example_app
+
+	)
diff --git a/platforms/nuttx/Images/px4nucleoF767ZI-v1.prototype b/boards/stm/nucleo-F767ZI/firmware.prototype
similarity index 64%
rename from platforms/nuttx/Images/px4nucleoF767ZI-v1.prototype
rename to boards/stm/nucleo-F767ZI/firmware.prototype
index d5944da4cb..a475f7170a 100644
--- a/platforms/nuttx/Images/px4nucleoF767ZI-v1.prototype
+++ b/boards/stm/nucleo-F767ZI/firmware.prototype
@@ -1,10 +1,10 @@
 {
     "board_id": 90,
     "magic": "PX4FWv1",
-    "description": "Firmware for the ST nucleo-144 with STM32FF767ZI-v1 board",
+    "description": "Firmware for the ST nucleo-144 with STM32F767ZI board",
     "image": "",
     "build_time": 0,
-    "summary": "PX4NUCLEOF767ZIv1",
+    "summary": "STMNUCLEO-F767ZI",
     "version": "0.1",
     "image_size": 0,
     "image_maxsize": 2097152,
diff --git a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/include/board.h b/boards/stm/nucleo-F767ZI/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 99%
rename from platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/include/board.h
rename to boards/stm/nucleo-F767ZI/nuttx-config/include/board.h
index f98922fff7..9c231d5e58
--- a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/include/board.h
+++ b/boards/stm/nucleo-F767ZI/nuttx-config/include/board.h
@@ -1,5 +1,5 @@
 /************************************************************************************
- * nuttx-configs/px4nucleoF767ZI-v1/include/board.h
+ * nuttx-configs/stmnucleo-F767ZI/include/board.h
  *
  *   Copyright (C) 2016 Gregory Nutt. All rights reserved.
  *   Authors: David Sidrane <david_s5@nscdg.com>
diff --git a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/nsh/defconfig b/boards/stm/nucleo-F767ZI/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/nsh/defconfig
rename to boards/stm/nucleo-F767ZI/nuttx-config/nsh/defconfig
index 61b5d8d608..5c6526596e 100644
--- a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/nsh/defconfig
+++ b/boards/stm/nucleo-F767ZI/nuttx-config/nsh/defconfig
@@ -503,8 +503,8 @@ CONFIG_RAM_SIZE=245760
 #
 # Board Selection
 #
-CONFIG_ARCH_BOARD_PX4NUCLEOF767ZI_V1=y
-CONFIG_ARCH_BOARD="px4nucleoF767ZI-v1"
+CONFIG_ARCH_BOARD_STMNUCLEO-F767ZI=y
+CONFIG_ARCH_BOARD="stmnucleo-F767ZI"
 
 #
 # Common Board Options
diff --git a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/scripts/ld.script b/boards/stm/nucleo-F767ZI/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/scripts/ld.script
rename to boards/stm/nucleo-F767ZI/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/CMakeLists.txt b/boards/stm/nucleo-F767ZI/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/px4nucleoF767ZI-v1/CMakeLists.txt
rename to boards/stm/nucleo-F767ZI/src/CMakeLists.txt
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/board_config.h b/boards/stm/nucleo-F767ZI/src/board_config.h
similarity index 99%
rename from src/drivers/boards/px4nucleoF767ZI-v1/board_config.h
rename to boards/stm/nucleo-F767ZI/src/board_config.h
index 0732fb048b..50279f79e9 100644
--- a/src/drivers/boards/px4nucleoF767ZI-v1/board_config.h
+++ b/boards/stm/nucleo-F767ZI/src/board_config.h
@@ -420,7 +420,7 @@ extern void board_peripheral_reset(int ms);
 
 extern void stm32_usbinitialize(void);
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/can.c b/boards/stm/nucleo-F767ZI/src/can.c
similarity index 100%
rename from src/drivers/boards/px4nucleoF767ZI-v1/can.c
rename to boards/stm/nucleo-F767ZI/src/can.c
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/init.c b/boards/stm/nucleo-F767ZI/src/init.c
similarity index 100%
rename from src/drivers/boards/px4nucleoF767ZI-v1/init.c
rename to boards/stm/nucleo-F767ZI/src/init.c
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/led.c b/boards/stm/nucleo-F767ZI/src/led.c
similarity index 100%
rename from src/drivers/boards/px4nucleoF767ZI-v1/led.c
rename to boards/stm/nucleo-F767ZI/src/led.c
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/sdio.c b/boards/stm/nucleo-F767ZI/src/sdio.c
similarity index 100%
rename from src/drivers/boards/px4nucleoF767ZI-v1/sdio.c
rename to boards/stm/nucleo-F767ZI/src/sdio.c
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/spi.c b/boards/stm/nucleo-F767ZI/src/spi.c
similarity index 100%
rename from src/drivers/boards/px4nucleoF767ZI-v1/spi.c
rename to boards/stm/nucleo-F767ZI/src/spi.c
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/timer_config.c b/boards/stm/nucleo-F767ZI/src/timer_config.c
similarity index 100%
rename from src/drivers/boards/px4nucleoF767ZI-v1/timer_config.c
rename to boards/stm/nucleo-F767ZI/src/timer_config.c
diff --git a/src/drivers/boards/px4nucleoF767ZI-v1/usb.c b/boards/stm/nucleo-F767ZI/src/usb.c
similarity index 100%
rename from src/drivers/boards/px4nucleoF767ZI-v1/usb.c
rename to boards/stm/nucleo-F767ZI/src/usb.c
diff --git a/cmake/configs/nuttx_s2740vc-v1_default.cmake b/boards/thiemar/s2740vc-v1/default.cmake
similarity index 68%
rename from cmake/configs/nuttx_s2740vc-v1_default.cmake
rename to boards/thiemar/s2740vc-v1/default.cmake
index 6413743cf3..5202e28eb6 100644
--- a/cmake/configs/nuttx_s2740vc-v1_default.cmake
+++ b/boards/thiemar/s2740vc-v1/default.cmake
@@ -4,8 +4,6 @@ add_definitions(
 	-DPARAM_NO_AUTOSAVE
 	)
 
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh)
-
 # UAVCAN boot loadable Module ID
 set(uavcanblid_sw_version_major 0)
 set(uavcanblid_sw_version_minor 1)
@@ -15,31 +13,37 @@ add_definitions(
 	)
 
 # Bring in common uavcan hardware identity definitions
-include(common/px4_git)
+include(px4_git)
 px4_add_git_submodule(TARGET git_uavcan_board_ident PATH "cmake/configs/uavcan_board_ident")
 include(configs/uavcan_board_ident/s2740vc-v1)
 
 # N.B. this would be uncommented when there is an APP
-#px4_nuttx_make_uavcan_bootloadable(BOARD ${BOARD}
-# BIN ${PX4_BINARY_DIR}/s2740vc-v1.bin
+#include(px4_make_uavcan_bootloader)
+#px4_make_uavcan_bootloadable(BOARD ${PX4_BOARD}
+# BIN ${PX4_BINARY_DIR}/platforms/nuttx/s2740vc-v1.bin
 # HWNAME ${uavcanblid_name}
 # HW_MAJOR ${uavcanblid_hw_version_major}
 # HW_MINOR ${uavcanblid_hw_version_minor}
 # SW_MAJOR ${uavcanblid_sw_version_major}
 # SW_MINOR ${uavcanblid_sw_version_minor})
 
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/bootloaders
-	drivers/stm32
-
-	#
-	# System commands
-	#
-	systemcmds/reboot
-	systemcmds/top
-	systemcmds/config
-	systemcmds/ver
-)
\ No newline at end of file
+px4_add_board(
+	PLATFORM nuttx
+	VENDOR thiemar
+	MODEL s2740vc-v1
+	ARCH cortex-m4
+
+	DRIVERS
+		bootloaders
+		stm32
+
+	MODULES
+		#uavcannode
+
+	SYSTEMCMDS
+		config
+		reboot
+		top
+		ver
+
+	)
diff --git a/platforms/nuttx/Images/s2740vc-v1.prototype b/boards/thiemar/s2740vc-v1/firmware.prototype
similarity index 100%
rename from platforms/nuttx/Images/s2740vc-v1.prototype
rename to boards/thiemar/s2740vc-v1/firmware.prototype
diff --git a/platforms/nuttx/nuttx-configs/s2740vc-v1/Kconfig b/boards/thiemar/s2740vc-v1/nuttx-config/Kconfig
similarity index 100%
rename from platforms/nuttx/nuttx-configs/s2740vc-v1/Kconfig
rename to boards/thiemar/s2740vc-v1/nuttx-config/Kconfig
diff --git a/platforms/nuttx/nuttx-configs/s2740vc-v1/include/README.txt b/boards/thiemar/s2740vc-v1/nuttx-config/include/README.txt
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/s2740vc-v1/include/README.txt
rename to boards/thiemar/s2740vc-v1/nuttx-config/include/README.txt
diff --git a/platforms/nuttx/nuttx-configs/s2740vc-v1/include/board.h b/boards/thiemar/s2740vc-v1/nuttx-config/include/board.h
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/s2740vc-v1/include/board.h
rename to boards/thiemar/s2740vc-v1/nuttx-config/include/board.h
diff --git a/platforms/nuttx/nuttx-configs/s2740vc-v1/nsh/IMPORTANT_README.txt b/boards/thiemar/s2740vc-v1/nuttx-config/nsh/IMPORTANT_README.txt
old mode 100755
new mode 100644
similarity index 100%
rename from platforms/nuttx/nuttx-configs/s2740vc-v1/nsh/IMPORTANT_README.txt
rename to boards/thiemar/s2740vc-v1/nuttx-config/nsh/IMPORTANT_README.txt
diff --git a/platforms/nuttx/nuttx-configs/s2740vc-v1/nsh/defconfig b/boards/thiemar/s2740vc-v1/nuttx-config/nsh/defconfig
similarity index 99%
rename from platforms/nuttx/nuttx-configs/s2740vc-v1/nsh/defconfig
rename to boards/thiemar/s2740vc-v1/nuttx-config/nsh/defconfig
index 0cc0259eb2..d89ea0a892 100644
--- a/platforms/nuttx/nuttx-configs/s2740vc-v1/nsh/defconfig
+++ b/boards/thiemar/s2740vc-v1/nuttx-config/nsh/defconfig
@@ -568,7 +568,7 @@ CONFIG_RAM_SIZE=16384
 # Board Selection
 #
 CONFIG_ARCH_BOARD_S2740VC_V1=y
-CONFIG_ARCH_BOARD="s2740vc-v1"
+CONFIG_ARCH_BOARD="thiemars2740vc-v1"
 
 #
 # Custom Board Configuration
diff --git a/platforms/nuttx/nuttx-configs/s2740vc-v1/scripts/ld.script b/boards/thiemar/s2740vc-v1/nuttx-config/scripts/ld.script
similarity index 100%
rename from platforms/nuttx/nuttx-configs/s2740vc-v1/scripts/ld.script
rename to boards/thiemar/s2740vc-v1/nuttx-config/scripts/ld.script
diff --git a/src/drivers/boards/s2740vc-v1/CMakeLists.txt b/boards/thiemar/s2740vc-v1/src/CMakeLists.txt
similarity index 100%
rename from src/drivers/boards/s2740vc-v1/CMakeLists.txt
rename to boards/thiemar/s2740vc-v1/src/CMakeLists.txt
diff --git a/src/drivers/boards/s2740vc-v1/board_config.h b/boards/thiemar/s2740vc-v1/src/board_config.h
similarity index 99%
rename from src/drivers/boards/s2740vc-v1/board_config.h
rename to boards/thiemar/s2740vc-v1/src/board_config.h
index bd5ae893a7..24b3e49664 100644
--- a/src/drivers/boards/s2740vc-v1/board_config.h
+++ b/boards/thiemar/s2740vc-v1/src/board_config.h
@@ -126,7 +126,7 @@ int board_can_initialize(void);
 extern int composite_archinitialize(void);
 #endif
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
 
 #endif /* __ASSEMBLY__ */
 
diff --git a/src/drivers/boards/px4flow-v2/can.c b/boards/thiemar/s2740vc-v1/src/can.c
similarity index 100%
rename from src/drivers/boards/px4flow-v2/can.c
rename to boards/thiemar/s2740vc-v1/src/can.c
diff --git a/src/drivers/boards/s2740vc-v1/init.c b/boards/thiemar/s2740vc-v1/src/init.c
similarity index 100%
rename from src/drivers/boards/s2740vc-v1/init.c
rename to boards/thiemar/s2740vc-v1/src/init.c
diff --git a/cmake/configs/nuttx_aerocore2_default.cmake b/cmake/configs/nuttx_aerocore2_default.cmake
deleted file mode 100644
index 8a9193059d..0000000000
--- a/cmake/configs/nuttx_aerocore2_default.cmake
+++ /dev/null
@@ -1,135 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-set(config_uavcan_num_ifaces 1)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS0
-	TEL1:/dev/ttyS1
-	TEL2:/dev/ttyS2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	#drivers/magnetometer
-	#drivers/telemetry
-
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/px4fmu
-	drivers/imu/lsm303d
-	drivers/imu/l3gd20
-	drivers/gps
-	drivers/pwm_out_sim
-	modules/sensors
-	#drivers/pwm_input
-	#drivers/camera_trigger
-	drivers/rc_input
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	#systemcmds/dumpfile
-	#systemcmds/esc_calib
-	systemcmds/mixer
-	#systemcmds/motor_ramp
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	#systemcmds/sd_bench
-	systemcmds/top
-	#systemcmds/topic_listener
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	#drivers/distance_sensor/sf0x/sf0x_tests
-	#drivers/test_ppm
-	#lib/rc/rc_tests
-	#modules/commander/commander_tests
-	#lib/controllib/controllib_test
-	#modules/mavlink/mavlink_tests
-	#modules/unit_test
-	#modules/uORB/uORB_tests
-	#systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/load_mon
-	modules/navigator
-	modules/mavlink
-	modules/uavcan
-	modules/land_detector
-
-	#
-	# Estimation modules
-	#
-	#modules/attitude_estimator_q
-	#modules/position_estimator_inav
-	#modules/local_position_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	#modules/fw_att_control
-	#modules/fw_pos_control_l1
-	#modules/gnd_att_control
-	#modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	#examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	#examples/rover_steering_control
-
-	#
-	# Demo apps
-	#
-	#examples/math_demo
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_aerofc-v1_default.cmake b/cmake/configs/nuttx_aerofc-v1_default.cmake
deleted file mode 100644
index 4925f87565..0000000000
--- a/cmake/configs/nuttx_aerofc-v1_default.cmake
+++ /dev/null
@@ -1,75 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS5
-	TEL1:/dev/ttyS3
-	TEL2:/dev/ttyS1)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/aerofc_adc
-	drivers/distance_sensor
-	drivers/gps
-	drivers/barometer/ms5611
-	drivers/magnetometer/hmc5883
-	drivers/magnetometer/ist8310
-	drivers/imu/mpu9250
-	drivers/px4fmu
-	drivers/stm32
-	drivers/pwm_out_sim
-	drivers/rc_input
-	drivers/tap_esc
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/mixer
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/motor_test
-	systemcmds/reboot
-	systemcmds/top
-	systemcmds/config
-	systemcmds/nshterm
-	systemcmds/dumpfile
-	systemcmds/ver
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/load_mon
-	modules/navigator
-	modules/mavlink
-	modules/land_detector
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/mc_att_control
-	modules/mc_pos_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-)
diff --git a/cmake/configs/nuttx_aerofc-v1_rtps.cmake b/cmake/configs/nuttx_aerofc-v1_rtps.cmake
deleted file mode 100644
index 585bee9a2f..0000000000
--- a/cmake/configs/nuttx_aerofc-v1_rtps.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-include(configs/nuttx_aerofc-v1_default)
-
-
-list(APPEND config_module_list
-	modules/micrortps_bridge
-	drivers/protocol_splitter
-)
diff --git a/cmake/configs/nuttx_auav-x21_default.cmake b/cmake/configs/nuttx_auav-x21_default.cmake
deleted file mode 100644
index 7d9c276a55..0000000000
--- a/cmake/configs/nuttx_auav-x21_default.cmake
+++ /dev/null
@@ -1,158 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common IO px4io-v2)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS3
-	TEL1:/dev/ttyS1
-	TEL2:/dev/ttyS2)
-
-set(config_uavcan_num_ifaces 1)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/gps
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/irlock
-	drivers/mkblctrl
-	drivers/oreoled
-	drivers/protocol_splitter
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/px4io
-	drivers/rgbled
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/motor_test
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	lib/controllib/controllib_test
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	examples/fixedwing_control
-
-	# Hardware test
-	examples/hwtest
-)
diff --git a/cmake/configs/nuttx_av-x-v1_default.cmake b/cmake/configs/nuttx_av-x-v1_default.cmake
deleted file mode 100644
index 5b6942882c..0000000000
--- a/cmake/configs/nuttx_av-x-v1_default.cmake
+++ /dev/null
@@ -1,154 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m7 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS6
-	TEL1:/dev/ttyS0
-	TEL2:/dev/ttyS1
-	TEL3:/dev/ttyS2
-	TEL4:/dev/ttyS3
-	)
-
-set(config_uavcan_num_ifaces 1)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/camera_trigger
-	drivers/gps
-	drivers/imu/adis16477
-	#drivers/imu/adis16497
-	drivers/irlock
-	drivers/mkblctrl
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/rc_input
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	#examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	#examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	#examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_crazyflie_default.cmake b/cmake/configs/nuttx_crazyflie_default.cmake
deleted file mode 100644
index 688e4c2fc8..0000000000
--- a/cmake/configs/nuttx_crazyflie_default.cmake
+++ /dev/null
@@ -1,104 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/stm32
-	drivers/px4fmu
-	drivers/imu/mpu9250
-	drivers/barometer/lps25h
-	drivers/gps
-	drivers/distance_sensor/vl53lxx
-	drivers/pmw3901
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/mixer
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/esc_calib
-	systemcmds/reboot
-	systemcmds/top
-	systemcmds/config
-	systemcmds/nshterm
-	systemcmds/mtd
-	systemcmds/dumpfile
-	systemcmds/ver
-	systemcmds/hardfault_log
-	systemcmds/topic_listener
-	systemcmds/sd_bench
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/load_mon
-	modules/navigator
-	modules/mavlink
-	#modules/gpio_led
-	modules/land_detector
-	modules/syslink
-
-	#
-	# Estimation modules (EKF/ SO3 / other filters)
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	# modules/segway # XXX Needs GCC 4.7 fix
-	# modules/fw_pos_control_l1
-	# modules/fw_att_control
-	modules/mc_att_control
-	modules/mc_pos_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	#examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	#examples/rover_steering_control
-
-	#
-	# Demo apps
-	#
-	#examples/math_demo
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_mindpx-v2_default.cmake b/cmake/configs/nuttx_mindpx-v2_default.cmake
deleted file mode 100644
index 7ed3a2ce36..0000000000
--- a/cmake/configs/nuttx_mindpx-v2_default.cmake
+++ /dev/null
@@ -1,150 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS3
-	TEL1:/dev/ttyS1
-	TEL2:/dev/ttyS2)
-
-set(config_uavcan_num_ifaces 1)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/gps
-	drivers/imu/l3gd20
-	drivers/imu/lsm303d
-	#drivers/mkblctrl
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	#drivers/oreoled
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/rgbled
-	drivers/rc_input
-	#drivers/rgbled_pwm
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/mixer
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/esc_calib
-	systemcmds/led_control
-	systemcmds/hardfault_log
-	systemcmds/reboot
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/top
-	systemcmds/config
-	systemcmds/nshterm
-	systemcmds/mtd
-	systemcmds/dumpfile
-	systemcmds/ver
-	systemcmds/sd_bench
-	systemcmds/motor_ramp
-
-	#
-	# Tests
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/events
-	modules/load_mon
-	modules/navigator
-	modules/mavlink
-	modules/gpio_led
-	modules/uavcan
-	modules/land_detector
-	modules/camera_feedback
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	#examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	#examples/rover_steering_control
-
-	#
-	# Demo apps
-	#
-	#examples/math_demo
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_nxphlite-v3_default.cmake b/cmake/configs/nuttx_nxphlite-v3_default.cmake
deleted file mode 100644
index 746fd5e6f1..0000000000
--- a/cmake/configs/nuttx_nxphlite-v3_default.cmake
+++ /dev/null
@@ -1,163 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-set(UAVCAN_PLATFORM kinetis CACHE STRING "uavcan platform")
-set(UAVCAN_TIMER 1)
-set(config_uavcan_num_ifaces 2)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS3
-	TEL1:/dev/ttyS4)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/barometer/mpl3115a2
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/imu/fxas21002c
-	drivers/imu/fxos8701cq
-	drivers/gps
-	drivers/kinetis
-	drivers/kinetis/adc
-	drivers/kinetis/tone_alarm
-	drivers/imu/l3gd20
-	drivers/mkblctrl
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/oreoled
-# NOT Portable YET drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/rc_input
-	drivers/rgbled
-	drivers/rgbled_pwm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-## Needs bbsrm 	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/motor_test
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/usb_connected
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-### NOT Portable YET 	drivers/test_ppm
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	modules/uavcan
-	modules/camera_feedback
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	examples/fixedwing_control
-
-	# Hardware test
-	examples/hwtest
-)
diff --git a/cmake/configs/nuttx_omnibus-f4sd_default.cmake b/cmake/configs/nuttx_omnibus-f4sd_default.cmake
deleted file mode 100644
index 883dda9488..0000000000
--- a/cmake/configs/nuttx_omnibus-f4sd_default.cmake
+++ /dev/null
@@ -1,143 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-# user-configurable UART ports
-set(board_serial_ports
-	TEL2:/dev/ttyS1
-	URT6:/dev/ttyS2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer/bmp280
-	#drivers/differential_pressure
-	#drivers/distance_sensor
-	drivers/magnetometer/hmc5883
-	drivers/telemetry/frsky_telemetry
-	drivers/imu/mpu6000
-
-	#drivers/batt_smbus
-	#drivers/blinkm
-	#drivers/camera_trigger
-	drivers/gps
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/rc_input
-	drivers/rgbled
-	drivers/stm32
-	drivers/stm32/adc
-	#drivers/stm32/tone_alarm
-	modules/sensors
-
-	#
-	# System commands
-	#
-	#systemcmds/bl_update
-	systemcmds/config
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	#systemcmds/motor_ramp
-	#systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	##
-	## Testing
-	##
-	#drivers/distance_sensor/sf0x/sf0x_tests
-	#drivers/test_ppm
-	##lib/rc/rc_tests
-	#modules/commander/commander_tests
-	#lib/controllib/controllib_test
-	#modules/mavlink/mavlink_tests
-	#modules/mc_pos_control/mc_pos_control_tests
-	#modules/uORB/uORB_tests
-	#systemcmds/tests
-
-	#
-	# General system control
-	#
-	#modules/camera_feedback
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	#modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	#modules/fw_att_control
-	#modules/fw_pos_control_l1
-	#modules/gnd_att_control
-	#modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	#modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	##
-	## OBC challenge
-	##
-	#examples/bottle_drop
-
-	##
-	## Rover apps
-	##
-	#examples/rover_steering_control
-
-	##
-	## Segway
-	##
-	#examples/segway
-
-	##
-	## Demo apps
-	##
-
-	## Tutorial code from
-	## https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	## Tutorial code from
-	## https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	## Tutorial code from
-	## https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	## Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_px4-same70xplained-v1_default.cmake b/cmake/configs/nuttx_px4-same70xplained-v1_default.cmake
deleted file mode 100644
index 942a5252f7..0000000000
--- a/cmake/configs/nuttx_px4-same70xplained-v1_default.cmake
+++ /dev/null
@@ -1,122 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m7 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-##set(config_uavcan_num_ifaces 2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/samv7
-#WIP 	drivers/samv7/adc
-	drivers/samv7/tone_alarm
-	drivers/px4fmu
-	drivers/rgbled
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/imu/lsm303d
-	drivers/imu/l3gd20
-	drivers/gps
-#WIP 	drivers/pwm_out_sim
-	drivers/blinkm
-	modules/sensors
-	#drivers/mkblctrl
-	drivers/px4flow
-	drivers/oreoled
-##	drivers/gimbal
-#WIP  	drivers/pwm_input
-#WIP  	drivers/camera_trigger
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/mixer
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/esc_calib
-#WIP systemcmds/hardfault_log
-	systemcmds/reboot
-	#systemcmds/topic_listener
-	systemcmds/top
-	systemcmds/config
-	systemcmds/nshterm
-#	systemcmds/mtd Excluded until TWIHS works
-	systemcmds/dumpfile
-	systemcmds/ver
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/navigator
-	modules/mavlink
-	modules/gpio_led
-##WIP	modules/uavcan
-	modules/land_detector
-
-	#
-	# Estimation modules (EKF/ SO3 / other filters)
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	# modules/segway # XXX Needs GCC 4.7 fix
-	modules/fw_pos_control_l1
-	modules/fw_att_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-##	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	#examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	#examples/rover_steering_control
-
-	#
-	# Demo apps
-	#
-	#examples/math_demo
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_px4-stm32f4discovery_default.cmake b/cmake/configs/nuttx_px4-stm32f4discovery_default.cmake
deleted file mode 100644
index 125e897f5f..0000000000
--- a/cmake/configs/nuttx_px4-stm32f4discovery_default.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/stm32
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/mixer
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/reboot
-	systemcmds/top
-	systemcmds/config
-	systemcmds/nshterm
-	systemcmds/ver
-
-	#
-	# Demo apps
-	#
-	#examples/math_demo
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_px4fmu-v2_default.cmake b/cmake/configs/nuttx_px4fmu-v2_default.cmake
deleted file mode 100644
index d1e05012e5..0000000000
--- a/cmake/configs/nuttx_px4fmu-v2_default.cmake
+++ /dev/null
@@ -1,187 +0,0 @@
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common IO px4io-v2)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS3
-	TEL1:/dev/ttyS1
-	TEL2:/dev/ttyS2
-	TEL4:/dev/ttyS6)
-
-set(px4_constrained_flash_build 1)
-
-#set(config_uavcan_num_ifaces 2)
-
-set(config_bl_file ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	#drivers/barometer
-	#drivers/differential_pressure
-	#drivers/distance_sensor
-	#drivers/magnetometer
-	#drivers/telemetry
-
-	#drivers/barometer/bmp280
-	drivers/barometer/ms5611
-	#drivers/blinkm
-	#drivers/bst
-	#drivers/camera_trigger
-	#drivers/differential_pressure/ets
-	drivers/differential_pressure/ms4525
-	#drivers/differential_pressure/ms5525
-	#drivers/differential_pressure/sdp3x
-	drivers/distance_sensor/ll40ls
-	#drivers/distance_sensor/mb12xx
-	drivers/distance_sensor/sf0x
-	#drivers/distance_sensor/sf1xx
-	#drivers/distance_sensor/srf02
-	#drivers/distance_sensor/teraranger
-	#drivers/distance_sensor/tfmini
-	#drivers/distance_sensor/ulanding
-	#drivers/frsky_telemetry
-	drivers/gps
-	#drivers/imu/adis16448
-	#drivers/imu/bmi160
-	drivers/imu/l3gd20
-	drivers/imu/lsm303d
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	#drivers/iridiumsbd
-	#drivers/irlock
-	drivers/magnetometer/hmc5883
-	#drivers/magnetometer/lis3mdl
-	#drivers/mb12xx
-	#drivers/mkblctrl
-	#drivers/oreoled
-	#drivers/protocol_splitter
-	#drivers/pwm_input
-	#drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/px4io
-	drivers/rgbled
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	#drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	#systemcmds/config
-	#systemcmds/dumpfile
-	#systemcmds/esc_calib
-	systemcmds/hardfault_log
-	#systemcmds/led_control
-	systemcmds/mixer
-	#systemcmds/motor_ramp
-	#systemcmds/motor_test
-	systemcmds/mtd
-	#systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	#systemcmds/sd_bench
-	systemcmds/top
-	#systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	#drivers/distance_sensor/sf0x/sf0x_tests
-	#drivers/test_ppm
-	#lib/controllib/controllib_test
-	#lib/rc/rc_tests
-	#modules/commander/commander_tests
-	#modules/mavlink/mavlink_tests
-	#modules/uORB/uORB_tests
-	#systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	#modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	#modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	#modules/attitude_estimator_q
-	modules/ekf2
-	#modules/local_position_estimator
-	#modules/position_estimator_inav
-	#modules/landing_target_estimator
-	#modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	#modules/gnd_att_control
-	#modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	#examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	#examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	#examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
-
-set(flight_tasks_to_remove Orbit)
diff --git a/cmake/configs/nuttx_px4fmu-v2_lpe.cmake b/cmake/configs/nuttx_px4fmu-v2_lpe.cmake
deleted file mode 100644
index aba466598c..0000000000
--- a/cmake/configs/nuttx_px4fmu-v2_lpe.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-include(configs/nuttx_px4fmu-v2_default)
-
-set(PARAM_DEFAULT_OVERRIDES "{\\\"SYS_MC_EST_GROUP\\\": 1}")
-
-list(REMOVE_ITEM config_module_list
-	modules/ekf2
-	)
-
-list(APPEND config_module_list
-
-	drivers/irlock
-
-	modules/attitude_estimator_q
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	)
diff --git a/cmake/configs/nuttx_px4fmu-v2_test.cmake b/cmake/configs/nuttx_px4fmu-v2_test.cmake
deleted file mode 100644
index 1d0b003007..0000000000
--- a/cmake/configs/nuttx_px4fmu-v2_test.cmake
+++ /dev/null
@@ -1,163 +0,0 @@
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_test IO px4io-v2)
-
-#set(config_uavcan_num_ifaces 2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	#drivers/barometer
-	drivers/differential_pressure
-	#drivers/magnetometer
-	#drivers/telemetry
-
-	#drivers/imu/adis16448
-	drivers/barometer/ms5611
-	#drivers/blinkm
-	#drivers/imu/bmi160
-	#drivers/barometer/bmp280
-	#drivers/bst
-	#drivers/camera_trigger
-	#drivers/frsky_telemetry
-	drivers/gps
-	#drivers/iridiumsbd
-	#drivers/irlock
-	drivers/imu/l3gd20
-	drivers/imu/lsm303d
-	drivers/magnetometer/hmc5883
-	drivers/magnetometer/lis3mdl
-	#drivers/mb12xx
-	#drivers/mkblctrl
-	drivers/imu/mpu6000
-	#drivers/imu/mpu9250
-	#drivers/oreoled
-	#drivers/protocol_splitter
-	#drivers/pwm_input
-	#drivers/pwm_out_sim
-	#drivers/px4flow
-	drivers/px4fmu
-	drivers/px4io
-	drivers/rgbled
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	#drivers/tap_esc
-	#drivers/vmount
-
-	# distance sensors
-	modules/sensors
-
-	#
-	# System commands
-	#
-	#systemcmds/bl_update
-	#systemcmds/config
-	#systemcmds/dumpfile
-	#systemcmds/esc_calib
-	systemcmds/hardfault_log
-	#systemcmds/led_control
-	systemcmds/mixer
-	#systemcmds/motor_ramp
-	#systemcmds/motor_test
-	systemcmds/mtd
-	#systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	#systemcmds/sd_bench
-	systemcmds/top
-	#systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	lib/controllib/controllib_test
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	#modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	#modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	#modules/attitude_estimator_q
-	#modules/ekf2
-	#modules/local_position_estimator
-	#modules/position_estimator_inav
-	#modules/landing_target_estimator
-	#modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	#modules/fw_att_control
-	#modules/fw_pos_control_l1
-	#modules/gnd_att_control
-	#modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	#modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	#examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	#examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	#examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_px4fmu-v3_default.cmake b/cmake/configs/nuttx_px4fmu-v3_default.cmake
deleted file mode 100644
index fadda78865..0000000000
--- a/cmake/configs/nuttx_px4fmu-v3_default.cmake
+++ /dev/null
@@ -1,170 +0,0 @@
-
-# FMUv3 is FMUv2 with access to the full 2MB flash
-set(BOARD px4fmu-v2 CACHE string "" FORCE)
-set(FW_NAME nuttx_px4fmu-v3_default.elf CACHE string "" FORCE)
-set(FW_PROTOTYPE px4fmu-v3 CACHE string "" FORCE)
-set(LD_SCRIPT ld_full.script CACHE string "" FORCE)
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common IO px4io-v2)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS3
-	TEL1:/dev/ttyS1
-	TEL2:/dev/ttyS2
-	TEL4:/dev/ttyS6)
-
-set(config_uavcan_num_ifaces 2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/gps
-	drivers/imu/adis16448
-	drivers/imu/bmi160
-	drivers/imu/l3gd20
-	drivers/imu/lsm303d
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/irlock
-	drivers/mkblctrl
-	drivers/oreoled
-	drivers/protocol_splitter
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/px4io
-	drivers/rgbled
-	drivers/rgbled_ncp5623c
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/motor_test
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	lib/controllib/controllib_test
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	examples/fixedwing_control
-
-	# Hardware test
-	examples/hwtest
-)
diff --git a/cmake/configs/nuttx_px4fmu-v3_rtps.cmake b/cmake/configs/nuttx_px4fmu-v3_rtps.cmake
deleted file mode 100644
index 94a7a090c2..0000000000
--- a/cmake/configs/nuttx_px4fmu-v3_rtps.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-include(configs/nuttx_px4fmu-v3_default)
-
-set(FW_NAME nuttx_px4fmu-v3_rtps.elf CACHE string "" FORCE)
-
-list(APPEND config_module_list
-	modules/micrortps_bridge
-)
diff --git a/cmake/configs/nuttx_px4fmu-v3_stackcheck.cmake b/cmake/configs/nuttx_px4fmu-v3_stackcheck.cmake
deleted file mode 100644
index f3c82a9a61..0000000000
--- a/cmake/configs/nuttx_px4fmu-v3_stackcheck.cmake
+++ /dev/null
@@ -1,128 +0,0 @@
-
-# FMUv3 is FMUv2 with access to the full 2MB flash
-set(BOARD px4fmu-v2 CACHE string "" FORCE)
-set(FW_NAME nuttx_px4fmu-v3_default.elf CACHE string "" FORCE)
-set(FW_PROTOTYPE px4fmu-v3 CACHE string "" FORCE)
-set(LD_SCRIPT ld_full.script CACHE string "" FORCE)
-
-px4_nuttx_configure(HWCLASS m4 CONFIG stackcheck ROMFS y ROMFSROOT px4fmu_common IO px4io-v2)
-
-set(config_uavcan_num_ifaces 2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/gps
-	drivers/imu/adis16448
-	drivers/imu/bmi160
-	drivers/imu/l3gd20
-	drivers/imu/lsm303d
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/irlock
-	drivers/mkblctrl
-	drivers/oreoled
-	drivers/protocol_splitter
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/px4io
-	drivers/rgbled
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/motor_test
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	lib/controllib/controllib_test
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	#modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	#modules/attitude_estimator_q
-	modules/ekf2
-	#modules/landing_target_estimator
-	#modules/local_position_estimator
-	#modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-)
diff --git a/cmake/configs/nuttx_px4fmu-v4_default.cmake b/cmake/configs/nuttx_px4fmu-v4_default.cmake
deleted file mode 100644
index 56cdb9dfc7..0000000000
--- a/cmake/configs/nuttx_px4fmu-v4_default.cmake
+++ /dev/null
@@ -1,158 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS3
-	TEL1:/dev/ttyS1
-	TEL2:/dev/ttyS2)
-
-set(config_uavcan_num_ifaces 1)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-	drivers/imu
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/gps
-	drivers/heater
-	drivers/irlock
-	drivers/mkblctrl
-	drivers/oreoled
-	drivers/pca9685
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/rgbled
-	drivers/rgbled_ncp5623c
-	drivers/rc_input
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	examples/fixedwing_control
-
-	# Hardware test
-	examples/hwtest
-)
diff --git a/cmake/configs/nuttx_px4fmu-v4_rtps.cmake b/cmake/configs/nuttx_px4fmu-v4_rtps.cmake
deleted file mode 100644
index 53e7d10b19..0000000000
--- a/cmake/configs/nuttx_px4fmu-v4_rtps.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-include(configs/nuttx_px4fmu-v4_default)
-
-list(APPEND config_module_list
-	modules/micrortps_bridge
-)
\ No newline at end of file
diff --git a/cmake/configs/nuttx_px4fmu-v4_stackcheck.cmake b/cmake/configs/nuttx_px4fmu-v4_stackcheck.cmake
deleted file mode 100644
index 63a04c617b..0000000000
--- a/cmake/configs/nuttx_px4fmu-v4_stackcheck.cmake
+++ /dev/null
@@ -1,116 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG stackcheck ROMFS y ROMFSROOT px4fmu_common)
-
-set(config_uavcan_num_ifaces 1)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-	drivers/imu
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/gps
-	drivers/irlock
-	drivers/mkblctrl
-	drivers/oreoled
-	drivers/pca9685
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/rgbled
-	drivers/rc_input
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	#modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-)
diff --git a/cmake/configs/nuttx_px4fmu-v4pro_default.cmake b/cmake/configs/nuttx_px4fmu-v4pro_default.cmake
deleted file mode 100644
index 02fd61d13e..0000000000
--- a/cmake/configs/nuttx_px4fmu-v4pro_default.cmake
+++ /dev/null
@@ -1,162 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common IO px4io-v2)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS3
-	TEL1:/dev/ttyS1
-	TEL2:/dev/ttyS2
-	TEL3:/dev/ttyS0
-	TEL4:/dev/ttyS6)
-
-set(config_uavcan_num_ifaces 2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/distance_sensor
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/imu/bma180
-	drivers/imu/bmi160
-	drivers/camera_trigger
-	drivers/gps
-	drivers/irlock
-	drivers/imu/l3gd20
-	drivers/mkblctrl
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/oreoled
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/px4io
-	drivers/rgbled
-	drivers/rgbled_ncp5623c
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	modules/uavcan
-	modules/camera_feedback
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	#examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_px4fmu-v4pro_rtps.cmake b/cmake/configs/nuttx_px4fmu-v4pro_rtps.cmake
deleted file mode 100644
index 1b8c648b03..0000000000
--- a/cmake/configs/nuttx_px4fmu-v4pro_rtps.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-include(configs/nuttx_px4fmu-v4pro_default)
-
-list(APPEND config_module_list
-	modules/micrortps_bridge
-)
\ No newline at end of file
diff --git a/cmake/configs/nuttx_px4fmu-v5_default.cmake b/cmake/configs/nuttx_px4fmu-v5_default.cmake
deleted file mode 100644
index 49c991808e..0000000000
--- a/cmake/configs/nuttx_px4fmu-v5_default.cmake
+++ /dev/null
@@ -1,164 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m7 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common IO px4io-v2)
-
-# user-configurable UART ports
-set(board_serial_ports
-	GPS1:/dev/ttyS0
-	TEL1:/dev/ttyS1
-	TEL2:/dev/ttyS2
-	TEL4:/dev/ttyS3)
-
-set(config_uavcan_num_ifaces 2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/gps
-	drivers/imu/bma180
-	drivers/imu/bmi055
-	drivers/imu/bmi160
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/irlock
-	drivers/mkblctrl
-	drivers/oreoled
-	drivers/pmw3901
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/px4io
-	drivers/rc_input
-	drivers/rgbled
-	drivers/rgbled_ncp5623c
-	#drivers/rgbled_pwm # Enable to put the three leds into PWM RGB mode
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	modules/uavcan
-	modules/camera_feedback
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	#examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	#examples/rover_steering_control
-
-	#
-	# Segway
-	#
-	#examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	#examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/nuttx_px4fmu-v5_rtps.cmake b/cmake/configs/nuttx_px4fmu-v5_rtps.cmake
deleted file mode 100644
index 3aae172e16..0000000000
--- a/cmake/configs/nuttx_px4fmu-v5_rtps.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-include(configs/nuttx_px4fmu-v5_default)
-
-list(APPEND config_module_list
-	modules/micrortps_bridge
-)
diff --git a/cmake/configs/nuttx_px4fmu-v5_stackcheck.cmake b/cmake/configs/nuttx_px4fmu-v5_stackcheck.cmake
deleted file mode 100644
index 6edb640077..0000000000
--- a/cmake/configs/nuttx_px4fmu-v5_stackcheck.cmake
+++ /dev/null
@@ -1,121 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m7 CONFIG stackcheck ROMFS y ROMFSROOT px4fmu_common IO px4io-v2)
-
-set(config_uavcan_num_ifaces 2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/blinkm
-	drivers/camera_trigger
-	drivers/gps
-	drivers/imu/bma180
-	drivers/imu/bmi055
-	drivers/imu/bmi160
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/irlock
-	drivers/mkblctrl
-	drivers/oreoled
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/px4io
-	drivers/rc_input
-	drivers/rgbled
-	#drivers/rgbled_pwm # Enable to put the three leds into PWM RGB mode
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	drivers/vmount
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	drivers/test_ppm
-	#lib/rc/rc_tests
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/events
-	modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	#modules/uavcan
-	modules/camera_feedback
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/landing_target_estimator
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-)
diff --git a/cmake/configs/nuttx_px4io-v2_default.cmake b/cmake/configs/nuttx_px4io-v2_default.cmake
deleted file mode 100644
index ff227dfbb8..0000000000
--- a/cmake/configs/nuttx_px4io-v2_default.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m3 CONFIG nsh)
-
-set(config_module_list
-	drivers/stm32
-	modules/px4iofirmware
-)
diff --git a/cmake/configs/nuttx_px4nucleoF767ZI-v1_default.cmake b/cmake/configs/nuttx_px4nucleoF767ZI-v1_default.cmake
deleted file mode 100644
index 49f49b32d6..0000000000
--- a/cmake/configs/nuttx_px4nucleoF767ZI-v1_default.cmake
+++ /dev/null
@@ -1,128 +0,0 @@
-
-px4_nuttx_configure(HWCLASS m7 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
-
-set(config_uavcan_num_ifaces 2)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	drivers/magnetometer
-	drivers/telemetry
-
-	drivers/imu/adis16448
-	drivers/blinkm
-	drivers/imu/bma180
-	drivers/imu/bmi160
-	drivers/camera_trigger
-	drivers/gps
-	drivers/mkblctrl
-	drivers/imu/mpu6000
-	drivers/imu/mpu9250
-	drivers/oreoled
-	drivers/pwm_input
-	drivers/pwm_out_sim
-	drivers/px4flow
-	drivers/px4fmu
-	drivers/rgbled
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
-	drivers/tap_esc
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/bl_update
-	systemcmds/config
-	systemcmds/dumpfile
-	systemcmds/esc_calib
-	systemcmds/hardfault_log
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	systemcmds/mtd
-	systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# General system control
-	#
-	modules/commander
-	modules/load_mon
-	modules/navigator
-	modules/mavlink
-	modules/gpio_led
-	modules/uavcan
-	modules/land_detector
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	# modules/segway # XXX Needs GCC 4.7 fix
-	modules/fw_pos_control_l1
-	modules/fw_att_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-
-	#
-	# OBC challenge
-	#
-	examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	examples/rover_steering_control
-
-	#
-	# Demo apps
-	#
-	#examples/math_demo
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	#examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	#examples/fixedwing_control
-
-	# Hardware test
-	#examples/hwtest
-)
diff --git a/cmake/configs/posix_bbblue_common.cmake b/cmake/configs/posix_bbblue_common.cmake
deleted file mode 100644
index 8acbc1bf90..0000000000
--- a/cmake/configs/posix_bbblue_common.cmake
+++ /dev/null
@@ -1,104 +0,0 @@
-# This file is shared between posix_bbblue_native.cmake
-# and posix_bbblue_cross.cmake.
-
-
-# This definition allows to differentiate if this just the usual POSIX build
-# or if it is for the bbblue.
-add_definitions(
-	-D__PX4_POSIX_BBBLUE
-	-D__PX4_POSIX
-	-D__DF_LINUX        # For DriverFramework
-	-D__DF_BBBLUE       # For DriverFramework
-	-DRC_AUTOPILOT_EXT  # Enable extensions in Robotics Cape Library
-#	-DDEBUG_BUILD
-)
-
-#optional __DF_BBBLUE_USE_RC_BMP280_IMP
-add_definitions(
-	-D__DF_BBBLUE_USE_RC_BMP280_IMP
-)
-
-#optional __PX4_BBBLUE_DEFAULT_MAVLINK_WIFI, default is "SoftAp"
-#add_definitions(
-#	-D__PX4_BBBLUE_DEFAULT_MAVLINK_WIFI="wlan"
-#)
-
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	#drivers/barometer
-	drivers/batt_smbus
-	drivers/differential_pressure
-	drivers/distance_sensor
-	#drivers/telemetry
-	#drivers/boards
-
-	modules/sensors
-
-	platforms/posix/drivers/df_mpu9250_wrapper
-	platforms/posix/drivers/df_bmp280_wrapper
-		
-	#
-	# System commands
-	#
-	systemcmds/param
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/ver
-	systemcmds/esc_calib
-	systemcmds/reboot
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/perf
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Library modules
-	#
-	modules/logger
-	modules/commander
-	modules/dataman
-	modules/land_detector
-	modules/navigator
-	modules/mavlink
-
-	#
-	# PX4 drivers
-	#
-	drivers/linux_sbus
-	drivers/gps
-	drivers/bbblue_adc
-	drivers/linux_gpio
-	drivers/linux_pwm_out
-	drivers/pwm_out_sim
-
-)
-
-#
-# DriverFramework driver
-#
-set(config_df_driver_list
-	mpu9250
-	bmp280
-)
diff --git a/cmake/configs/posix_bbblue_cross.cmake b/cmake/configs/posix_bbblue_cross.cmake
deleted file mode 100644
index 99d4c139d9..0000000000
--- a/cmake/configs/posix_bbblue_cross.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-include(configs/posix_bbblue_common)
-
-SET(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake)
diff --git a/cmake/configs/posix_bbblue_native.cmake b/cmake/configs/posix_bbblue_native.cmake
deleted file mode 100644
index ab5c8fc2dc..0000000000
--- a/cmake/configs/posix_bbblue_native.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-include(configs/posix_bbblue_common)
-
-add_definitions(
-	 -D __DF_BBBLUE
-	)
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-native.cmake)
diff --git a/cmake/configs/posix_bebop_default.cmake b/cmake/configs/posix_bebop_default.cmake
deleted file mode 100644
index a31e0e3fd1..0000000000
--- a/cmake/configs/posix_bebop_default.cmake
+++ /dev/null
@@ -1,75 +0,0 @@
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake)
-
-add_definitions(
-	-D__PX4_POSIX_BEBOP
-	-D__DF_LINUX # Define needed DriverFramework
-	-D__DF_BEBOP # Define needed DriverFramework
-	)
-
-set(config_module_list
-
-	#
-	# Board support modules
-	#
-	drivers/linux_sbus
-	modules/sensors
-	platforms/posix/drivers/df_ms5607_wrapper
-	platforms/posix/drivers/df_mpu6050_wrapper
-	platforms/posix/drivers/df_ak8963_wrapper
-	platforms/posix/drivers/df_bebop_bus_wrapper
-	platforms/posix/drivers/df_bebop_rangefinder_wrapper
-	platforms/posix/drivers/bebop_flow
-
-	#
-	# System commands
-	#
-	systemcmds/param
-	systemcmds/mixer
-	systemcmds/ver
-	systemcmds/esc_calib
-	systemcmds/topic_listener
-	systemcmds/perf
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/vtol_att_control
-
-	#
-	# Library modules
-	#
-	modules/logger
-	modules/commander
-	modules/dataman
-	modules/land_detector
-	modules/navigator
-	modules/mavlink
-
-	#
-	# PX4 drivers
-	#
-	drivers/gps
-)
-
-set(config_df_driver_list
-	ms5607
-	mpu6050
-	ak8963
-	bebop_bus
-	bebop_rangefinder
-	mt9v117
-)
diff --git a/cmake/configs/posix_eagle_default.cmake b/cmake/configs/posix_eagle_default.cmake
deleted file mode 100644
index be81961425..0000000000
--- a/cmake/configs/posix_eagle_default.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-# The Eagle board is the first generation Snapdragon Flight board by Qualcomm.
-#
-# This cmake config builds for POSIX, so the part of the flight stack running
-# on the Linux side of the Snapdragon.
-include(configs/posix_sdflight_default)
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-linux-gnueabihf.cmake)
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-
-set(CONFIG_SHMEM "1")
-
-# This definition allows to differentiate if this just the usual POSIX build
-# or if it is for the Snapdragon.
-add_definitions(
-	-D__PX4_POSIX_EAGLE
-)
diff --git a/cmake/configs/posix_eagle_hil.cmake b/cmake/configs/posix_eagle_hil.cmake
deleted file mode 100644
index a06450b1d6..0000000000
--- a/cmake/configs/posix_eagle_hil.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-
-# Use build stubs unless explicitly set not to
-if("${DSPAL_STUBS_ENABLE}" STREQUAL "")
-	set(DSPAL_STUBS_ENABLE "1")
-endif()
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-linux-gnueabihf.cmake)
-
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-add_definitions(-DORB_COMMUNICATOR)
-
-set(config_module_list
-	drivers/linux_sbus
-
-	systemcmds/param
-	systemcmds/ver
-
-	modules/mavlink
-
-	modules/sensors
-	modules/dataman
-	modules/logger
-	modules/simulator
-	modules/commander
-
-	modules/muorb/krait
-	)
-
diff --git a/cmake/configs/posix_eagle_legacy.cmake b/cmake/configs/posix_eagle_legacy.cmake
deleted file mode 100644
index a0a153b83b..0000000000
--- a/cmake/configs/posix_eagle_legacy.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-# Eagle is the code name of a board currently in development.
-#
-# This cmake config builds for POSIX, so the part of the flight stack running
-# on the Linux side of the Snapdragon.
-
-include(configs/posix_sdflight_legacy)
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-linux-gnueabihf.cmake)
-
-# This definition allows to differentiate if this just the usual POSIX build
-# or if it is for the Snapdragon.
-add_definitions(
-    -D__PX4_POSIX_EAGLE
-    -D__USING_SNAPDRAGON_LEGACY_DRIVER
-)
diff --git a/cmake/configs/posix_eagle_muorb.cmake b/cmake/configs/posix_eagle_muorb.cmake
deleted file mode 100644
index ffde3b617c..0000000000
--- a/cmake/configs/posix_eagle_muorb.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-linux-gnueabihf.cmake)
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-add_definitions(-DORB_COMMUNICATOR)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(config_module_list
-	modules/muorb/krait
-	)
-
diff --git a/cmake/configs/posix_excelsior_default.cmake b/cmake/configs/posix_excelsior_default.cmake
deleted file mode 100644
index 0717f60beb..0000000000
--- a/cmake/configs/posix_excelsior_default.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-# Excelsior is the code name of a board currently in development.
-#
-# This cmake config builds for POSIX, so the part of the flight stack running
-# on the Linux side of the Snapdragon.
-include(configs/posix_sdflight_default)
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-oemllib32-linux-gnueabi.cmake)
-
-# This definition allows to differentiate the specific board.
-add_definitions(
-	-D__PX4_POSIX_EXCELSIOR
-)
diff --git a/cmake/configs/posix_excelsior_legacy.cmake b/cmake/configs/posix_excelsior_legacy.cmake
deleted file mode 100644
index a20628ee94..0000000000
--- a/cmake/configs/posix_excelsior_legacy.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-# Excelsior is the code name of a board currently in development.
-#
-# This cmake config builds for POSIX, so the part of the flight stack running
-# on the Linux side of the Snapdragon.
-
-include(configs/posix_sdflight_legacy)
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-oemllib32-linux-gnueabi.cmake)
-# This definition allows to differentiate if this just the usual POSIX build
-# or if it is for the Snapdragon.
-add_definitions(
-    -D__PX4_POSIX_EXCELSIOR
-    -D__USING_SNAPDRAGON_LEGACY_DRIVER
-)
diff --git a/cmake/configs/posix_ocpoc_cross.cmake b/cmake/configs/posix_ocpoc_cross.cmake
deleted file mode 100644
index 0e368554b7..0000000000
--- a/cmake/configs/posix_ocpoc_cross.cmake
+++ /dev/null
@@ -1,85 +0,0 @@
-#set toolchain
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-xilinx-linux-gnueabi.cmake)
-
-set(CMAKE_PROGRAM_PATH
-	"${OCPOC_TOOLCHAIN_DIR}"
-	${CMAKE_PROGRAM_PATH}
-)
-
-
-add_definitions(
-  -D__PX4_POSIX_OCPOC
-  -D__DF_LINUX # For DriverFramework
-  -D__DF_OCPOC # For DriverFramework
-  -D__PX4_POSIX
-)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/distance_sensor
-	modules/sensors
-	platforms/posix/drivers/df_mpu9250_wrapper
-	platforms/posix/drivers/df_ms5611_wrapper
-	platforms/posix/drivers/df_hmc5883_wrapper
-
-	#
-	# System commands
-	#
-	systemcmds/param
-	systemcmds/mixer
-	systemcmds/ver
-	systemcmds/esc_calib
-	systemcmds/reboot
-	systemcmds/topic_listener
-	systemcmds/perf
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-
-	#
-	# Library modules
-	#
-	modules/logger
-	modules/commander
-	modules/dataman
-	modules/land_detector
-	modules/navigator
-	modules/mavlink
-
-	#
-	# PX4 drivers
-	#
-	drivers/gps
-	drivers/ocpoc_adc
-	drivers/linux_sbus
-	drivers/linux_pwm_out
-	drivers/rgbled
-	
-	examples/px4_simple_app
-)
-
-#
-# DriverFramework driver
-#
-set(config_df_driver_list
-	mpu9250
-	ms5611
-	hmc5883
-)
diff --git a/cmake/configs/posix_ocpoc_ubuntu.cmake b/cmake/configs/posix_ocpoc_ubuntu.cmake
deleted file mode 100644
index 8f3b549c91..0000000000
--- a/cmake/configs/posix_ocpoc_ubuntu.cmake
+++ /dev/null
@@ -1,84 +0,0 @@
-#set toolchain
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-gcc-arm-linux-gnueabihf.cmake)
-
-set(CMAKE_PROGRAM_PATH
-	${CMAKE_PROGRAM_PATH}
-)
-
-
-add_definitions(
-  -D__PX4_POSIX_OCPOC
-  -D__DF_LINUX # For DriverFramework
-  -D__DF_OCPOC # For DriverFramework
-  -D__PX4_POSIX
-)
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	drivers/distance_sensor
-	modules/sensors
-	platforms/posix/drivers/df_mpu9250_wrapper
-	platforms/posix/drivers/df_ms5611_wrapper
-	platforms/posix/drivers/df_hmc5883_wrapper
-
-	#
-	# System commands
-	#
-	systemcmds/param
-	systemcmds/mixer
-	systemcmds/ver
-	systemcmds/esc_calib
-	systemcmds/reboot
-	systemcmds/topic_listener
-	systemcmds/perf
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-
-	#
-	# Library modules
-	#
-	modules/logger
-	modules/commander
-	modules/dataman
-	modules/land_detector
-	modules/navigator
-	modules/mavlink
-
-	#
-	# PX4 drivers
-	#
-	drivers/gps
-	drivers/ocpoc_adc
-	drivers/linux_sbus
-	drivers/linux_pwm_out
-	drivers/rgbled
-	
-	examples/px4_simple_app
-)
-
-#
-# DriverFramework driver
-#
-set(config_df_driver_list
-	mpu9250
-	ms5611
-	hmc5883
-)
diff --git a/cmake/configs/posix_rpi_common.cmake b/cmake/configs/posix_rpi_common.cmake
deleted file mode 100644
index 2b8968b793..0000000000
--- a/cmake/configs/posix_rpi_common.cmake
+++ /dev/null
@@ -1,103 +0,0 @@
-# This file is shared between posix_rpi_native.cmake
-# and posix_rpi_cross.cmake.
-
-
-# This definition allows to differentiate if this just the usual POSIX build
-# or if it is for the RPi.
-add_definitions(
-	-D__PX4_POSIX_RPI
-	-D__DF_LINUX # For DriverFramework
-	-D__DF_RPI # For DriverFramework
-)
-
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	#drivers/barometer
-	drivers/batt_smbus
-	drivers/differential_pressure
-	drivers/distance_sensor
-	#drivers/telemetry
-
-	modules/sensors
-
-	platforms/posix/drivers/df_hmc5883_wrapper
-	platforms/posix/drivers/df_isl29501_wrapper
-	platforms/posix/drivers/df_lsm9ds1_wrapper
-	platforms/posix/drivers/df_mpu9250_wrapper
-	platforms/posix/drivers/df_ms5611_wrapper
-	platforms/posix/drivers/df_trone_wrapper
-
-	#
-	# System commands
-	#
-	systemcmds/param
-	systemcmds/dyn
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/ver
-	systemcmds/esc_calib
-	systemcmds/reboot
-	systemcmds/shutdown
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/perf
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Library modules
-	#
-	modules/logger
-	modules/commander
-	modules/dataman
-	modules/land_detector
-	modules/navigator
-	modules/mavlink
-
-	#
-	# PX4 drivers
-	#
-	drivers/linux_sbus
-	drivers/gps
-	drivers/navio_adc
-	drivers/navio_sysfs_rc_in
-	drivers/linux_gpio
-	drivers/linux_pwm_out
-	drivers/navio_rgbled
-	drivers/pwm_out_sim
-	drivers/rpi_rc_in
-
-)
-
-#
-# DriverFramework driver
-#
-set(config_df_driver_list
-	mpu9250
-	lsm9ds1
-	ms5611
-	hmc5883
-	trone
-	isl29501
-)
diff --git a/cmake/configs/posix_rpi_cross.cmake b/cmake/configs/posix_rpi_cross.cmake
deleted file mode 100644
index 46626ac8f6..0000000000
--- a/cmake/configs/posix_rpi_cross.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-include(configs/posix_rpi_common)
-
-SET(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake)
diff --git a/cmake/configs/posix_rpi_cross_no_shield.cmake b/cmake/configs/posix_rpi_cross_no_shield.cmake
deleted file mode 100644
index d5f89b97b7..0000000000
--- a/cmake/configs/posix_rpi_cross_no_shield.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-# 使用这个文件可在上位机交叉编译px4firmware
-# use this file to cross compile px4  for raspberry pi without any shield
-include(configs/posix_rpi_common)
-
-add_definitions(
-	-D__DF_RPI_SINGLE # For raspberry pi without shield accessory
-)
-
-if("$ENV{RPI_USE_CLANG}" STREQUAL "1")
-	set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf-raspbian-clang.cmake)
-else()
-	set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf-raspbian.cmake)
-endif()
-
-
-set(CMAKE_PROGRAM_PATH
-	"${RPI_TOOLCHAIN_DIR}/gcc-linaro-arm-linux-gnueabihf-raspbian/bin"
-	${CMAKE_PROGRAM_PATH}
-)
diff --git a/cmake/configs/posix_rpi_native.cmake b/cmake/configs/posix_rpi_native.cmake
deleted file mode 100644
index bd677fada3..0000000000
--- a/cmake/configs/posix_rpi_native.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-include(configs/posix_rpi_common)
-
-add_definitions(
-	-D __DF_RPI
-	)
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-native.cmake)
diff --git a/cmake/configs/posix_sdflight_default.cmake b/cmake/configs/posix_sdflight_default.cmake
deleted file mode 100644
index 5aee64186c..0000000000
--- a/cmake/configs/posix_sdflight_default.cmake
+++ /dev/null
@@ -1,66 +0,0 @@
-include(common/px4_git)
-px4_add_git_submodule(TARGET git_cmake_hexagon PATH "cmake/cmake_hexagon")
-
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-linux-gnueabihf.cmake)
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-
-# Disable the creation of the parameters.xml file by scanning individual
-# source files, and scan all source files.  This will create a parameters.xml
-# file that contains all possible parameters, even if the associated module
-# is not used.  This is necessary for parameter synchronization between the 
-# ARM and DSP processors.
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(CONFIG_SHMEM "1")
-add_definitions(-DORB_COMMUNICATOR)
-
-set(config_module_list
-	drivers/blinkm
-	drivers/linux_sbus
-	drivers/pwm_out_sim
-	drivers/rgbled
-	drivers/qshell/posix
-
-	systemcmds/param
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/ver
-	systemcmds/shutdown
-	systemcmds/topic_listener
-	systemcmds/tune_control
-
-	modules/mavlink
-
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	modules/mc_pos_control
-	modules/mc_att_control
-
-	modules/muorb/krait
-	modules/sensors
-	modules/dataman
-	modules/logger
-	modules/simulator
-	modules/commander
-	modules/navigator
-)
diff --git a/cmake/configs/posix_sdflight_legacy.cmake b/cmake/configs/posix_sdflight_legacy.cmake
deleted file mode 100644
index 3de331b104..0000000000
--- a/cmake/configs/posix_sdflight_legacy.cmake
+++ /dev/null
@@ -1,56 +0,0 @@
-include(common/px4_git)
-px4_add_git_submodule(TARGET git_cmake_hexagon PATH "cmake/cmake_hexagon")
-
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-
-# Disable the creation of the parameters.xml file by scanning individual
-# source files, and scan all source files.  This will create a parameters.xml
-# file that contains all possible parameters, even if the associated module
-# is not used.  This is necessary for parameter synchronization between the 
-# ARM and DSP processors.
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(CONFIG_SHMEM "1")
-add_definitions(-DORB_COMMUNICATOR)
-
-set(config_module_list
-	drivers/blinkm
-	drivers/linux_sbus
-	drivers/pwm_out_sim
-	drivers/rgbled
-	drivers/qshell/posix
-
-	systemcmds/param
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/ver
-	systemcmds/topic_listener
-	systemcmds/tune_control
-
-	modules/mavlink
-
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	modules/mc_pos_control
-	modules/mc_att_control
-
-	modules/muorb/krait
-	modules/sensors
-	modules/dataman
-	modules/logger
-	modules/simulator
-	modules/commander
-	modules/navigator
-	)
diff --git a/cmake/configs/posix_sdflight_rtps.cmake b/cmake/configs/posix_sdflight_rtps.cmake
deleted file mode 100644
index 481cb02b39..0000000000
--- a/cmake/configs/posix_sdflight_rtps.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-include(configs/posix_sdflight_default)
-
-list(APPEND config_module_list
-	modules/micrortps_bridge
-)
\ No newline at end of file
diff --git a/cmake/configs/posix_sitl_broadcast.cmake b/cmake/configs/posix_sitl_broadcast.cmake
deleted file mode 100644
index 1dd45e0d56..0000000000
--- a/cmake/configs/posix_sitl_broadcast.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-include(cmake/configs/posix_sitl_default.cmake)
-
-# This config is just the same as posix_sitl_default.
diff --git a/cmake/configs/posix_sitl_default.cmake b/cmake/configs/posix_sitl_default.cmake
deleted file mode 100644
index 7fcd64b75a..0000000000
--- a/cmake/configs/posix_sitl_default.cmake
+++ /dev/null
@@ -1,164 +0,0 @@
-
-set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-native.cmake)
-
-set(config_module_list
-	#drivers/barometer
-	drivers/differential_pressure
-	drivers/distance_sensor
-	#drivers/telemetry
-
-	drivers/batt_smbus
-	drivers/camera_trigger
-	drivers/gps
-	drivers/linux_gpio
-	drivers/pwm_out_sim
-	drivers/vmount
-
-	modules/sensors
-
-	platforms/posix/drivers/tonealrmsim
-
-	#
-	# System commands
-	#
-	#systemcmds/bl_update
-	#systemcmds/config
-	#systemcmds/dumpfile
-	systemcmds/dyn
-	systemcmds/esc_calib
-	systemcmds/led_control
-	systemcmds/mixer
-	systemcmds/motor_ramp
-	#systemcmds/mtd
-	#systemcmds/nshterm
-	systemcmds/param
-	systemcmds/perf
-	systemcmds/pwm
-	systemcmds/reboot
-	systemcmds/shutdown
-	systemcmds/sd_bench
-	systemcmds/top
-	systemcmds/topic_listener
-	systemcmds/tune_control
-	systemcmds/ver
-
-	#
-	# Testing
-	#
-	drivers/distance_sensor/sf0x/sf0x_tests
-	#drivers/test_ppm
-	lib/rc/rc_tests
-	modules/commander/commander_tests
-	lib/controllib/controllib_test
-	modules/mavlink/mavlink_tests
-	modules/uORB/uORB_tests
-	systemcmds/tests
-
-	platforms/posix/tests/hello
-	platforms/posix/tests/dyn_hello
-	platforms/posix/tests/hrt_test
-	platforms/posix/tests/vcdev_test
-
-	#
-	# General system control
-	#
-	modules/camera_feedback
-	modules/commander
-	modules/events
-	#modules/gpio_led
-	modules/land_detector
-	modules/load_mon
-	modules/mavlink
-	modules/navigator
-	modules/replay
-	modules/simulator
-	#modules/uavcan
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/ekf2
-	modules/local_position_estimator
-	modules/position_estimator_inav
-	modules/wind_estimator
-
-	#
-	# Vehicle Control
-	#
-	modules/fw_att_control
-	modules/fw_pos_control_l1
-	modules/gnd_att_control
-	modules/gnd_pos_control
-	modules/mc_att_control
-	modules/mc_pos_control
-	modules/vtol_att_control
-
-	#
-	# Logging
-	#
-	modules/logger
-
-	#
-	# Library modules
-	#
-	modules/dataman
-	modules/landing_target_estimator
-
-	#
-	# OBC challenge
-	#
-	examples/bottle_drop
-
-	#
-	# Rover apps
-	#
-	examples/rover_steering_control
-
-	#
-	# HippoCampus example (AUV from TUHH)
-	#
-	examples/uuv_example_app
-
-	#
-	# Segway
-	#
-	examples/segway
-
-	#
-	# Demo apps
-	#
-
-	# Tutorial code from
-	# https://px4.io/dev/px4_simple_app
-	examples/px4_simple_app
-
-	# Tutorial code from
-	# https://px4.io/dev/debug_values
-	examples/px4_mavlink_debug
-
-	# Tutorial code from
-	# https://px4.io/dev/example_fixedwing_control
-	examples/fixedwing_control
-
-	# Template Module
-	templates/module
-
-	# Hardware test
-	#examples/hwtest
-)
-
-set(config_sitl_viewer jmavsim CACHE STRING "viewer for sitl")
-set_property(CACHE config_sitl_viewer PROPERTY STRINGS "jmavsim;none")
-
-set(config_sitl_debugger disable CACHE STRING "debugger for sitl")
-set_property(CACHE config_sitl_debugger PROPERTY STRINGS "disable;gdb;lldb")
-
-# If the environment variable 'replay' is defined, we are building with replay
-# support. In this case, we enable the orb publisher rules.
-set(REPLAY_FILE "$ENV{replay}")
-if(REPLAY_FILE)
-	message("Building with uorb publisher rules support")
-	add_definitions(-DORB_USE_PUBLISHER_RULES)
-endif()
-
diff --git a/cmake/configs/posix_sitl_rtps.cmake b/cmake/configs/posix_sitl_rtps.cmake
deleted file mode 100644
index e5f793f794..0000000000
--- a/cmake/configs/posix_sitl_rtps.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-include(configs/posix_sitl_default)
-
-list(APPEND config_module_list
-	modules/micrortps_bridge
-)
\ No newline at end of file
diff --git a/cmake/configs/posix_sitl_test.cmake b/cmake/configs/posix_sitl_test.cmake
deleted file mode 100644
index ce3ec24a94..0000000000
--- a/cmake/configs/posix_sitl_test.cmake
+++ /dev/null
@@ -1,2 +0,0 @@
-include(cmake/configs/posix_sitl_default.cmake)
-
diff --git a/cmake/configs/qurt_eagle_default.cmake b/cmake/configs/qurt_eagle_default.cmake
deleted file mode 100644
index 31c112d972..0000000000
--- a/cmake/configs/qurt_eagle_default.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-# The Eagle board is the first generation Snapdragon Flight board by Qualcomm.
-#
-# This cmake config builds for QURT which is the operating system running on
-# the DSP side.
-
-# The config between different QURT builds is shared.
-include(configs/qurt_sdflight_default)
-
-# This definition allows to differentiate the specific board.
-add_definitions(
-	-D__PX4_QURT_EAGLE
-)
diff --git a/cmake/configs/qurt_eagle_hello.cmake b/cmake/configs/qurt_eagle_hello.cmake
deleted file mode 100644
index 72e4ea88cb..0000000000
--- a/cmake/configs/qurt_eagle_hello.cmake
+++ /dev/null
@@ -1,33 +0,0 @@
-
-if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
-	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
-else()
-	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
-endif()
-
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-include(toolchain/Toolchain-qurt)
-include(qurt_flags)
-include_directories(${HEXAGON_SDK_INCLUDES})
-
-set(config_module_list
-
-	#
-	# System commands
-	#
-	systemcmds/param
-
-	#
-	# Library modules
-	#
-	)
-
diff --git a/cmake/configs/qurt_eagle_hil.cmake b/cmake/configs/qurt_eagle_hil.cmake
deleted file mode 100644
index b0a2ca0337..0000000000
--- a/cmake/configs/qurt_eagle_hil.cmake
+++ /dev/null
@@ -1,59 +0,0 @@
-
-if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
-	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
-else()
-	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
-endif()
-
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-add_definitions(-DORB_COMMUNICATOR)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-include(toolchain/Toolchain-qurt)
-include(qurt_flags)
-include_directories(${HEXAGON_SDK_INCLUDES})
-
-set(config_module_list
-	drivers/pwm_out_sim
-	drivers/rgbled
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/param
-	systemcmds/led
-	systemcmds/mixer
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/mc_att_control
-	modules/mc_pos_control
-
-	#
-	# Library modules
-	#
-	modules/commander
-
-	#
-	# sources for muorb over fastrpc
-	#
-	modules/muorb/adsp
-	)
diff --git a/cmake/configs/qurt_eagle_legacy.cmake b/cmake/configs/qurt_eagle_legacy.cmake
deleted file mode 100644
index 182a867904..0000000000
--- a/cmake/configs/qurt_eagle_legacy.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-# Eagle is the code name of a board currently in development.
-#
-# This cmake config builds for QURT which is the operating system running on
-# the DSP side.
-
-# The config between different QURT builds is shared.
-include(configs/qurt_sdflight_legacy)
-add_definitions(
-   -D__USING_SNAPDRAGON_LEGACY_DRIVER
-   -D__PX4_QURT
-   -D__PX4_QURT_EAGLE
-   )
diff --git a/cmake/configs/qurt_eagle_muorb.cmake b/cmake/configs/qurt_eagle_muorb.cmake
deleted file mode 100644
index 6ed966ac0d..0000000000
--- a/cmake/configs/qurt_eagle_muorb.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
-
-if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
-	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
-else()
-	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
-endif()
-
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-add_definitions(-DORB_COMMUNICATOR)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-include(toolchain/Toolchain-qurt)
-include(qurt_flags)
-include_directories(${HEXAGON_SDK_INCLUDES})
-
-set(config_module_list
-
-	#
-	# System commands
-	#
-	systemcmds/param
-
-	#
-	# Library modules
-	#
-
-	#
-	# sources for muorb over fastrpc
-	#
-	modules/muorb/adsp
-	)
diff --git a/cmake/configs/qurt_eagle_test.cmake b/cmake/configs/qurt_eagle_test.cmake
deleted file mode 100644
index 72e4ea88cb..0000000000
--- a/cmake/configs/qurt_eagle_test.cmake
+++ /dev/null
@@ -1,33 +0,0 @@
-
-if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
-	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
-else()
-	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
-endif()
-
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-include(toolchain/Toolchain-qurt)
-include(qurt_flags)
-include_directories(${HEXAGON_SDK_INCLUDES})
-
-set(config_module_list
-
-	#
-	# System commands
-	#
-	systemcmds/param
-
-	#
-	# Library modules
-	#
-	)
-
diff --git a/cmake/configs/qurt_eagle_travis.cmake b/cmake/configs/qurt_eagle_travis.cmake
deleted file mode 100644
index f639e66e2c..0000000000
--- a/cmake/configs/qurt_eagle_travis.cmake
+++ /dev/null
@@ -1,65 +0,0 @@
-
-set(CONFIG_SHMEM "1")
-
-# Run a full link with build stubs to make sure qurt target isn't broken
-set(QURT_ENABLE_STUBS "1")
-
-if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
-	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
-else()
-	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
-endif()
-
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-add_definitions(-DORB_COMMUNICATOR)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-include(toolchain/Toolchain-qurt)
-include(qurt_flags)
-include_directories(${HEXAGON_SDK_INCLUDES})
-
-set(config_module_list
-	drivers/pwm_out_sim
-	drivers/rgbled
-	modules/sensors
-
-	#
-	# System commands
-	#
-	systemcmds/param
-	systemcmds/led
-	systemcmds/mixer
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/mc_att_control
-	modules/mc_pos_control
-
-	#
-	# Library modules
-	#
-	modules/commander
-
-	#
-	# sources for muorb over fastrpc
-	#
-	modules/muorb/adsp
-	)
-
diff --git a/cmake/configs/qurt_excelsior_default.cmake b/cmake/configs/qurt_excelsior_default.cmake
deleted file mode 100644
index ccfe80df28..0000000000
--- a/cmake/configs/qurt_excelsior_default.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-# Excelsior is the code name of a board currently in development.
-#
-# This cmake config builds for QURT which is the operating system running on
-# the DSP side.
-
-# The config between different QURT builds is shared.
-include(configs/qurt_sdflight_default)
-
-# This definition allows to differentiate the specific board.
-add_definitions(
-	-D__PX4_QURT_EXCELSIOR
-)
diff --git a/cmake/configs/qurt_excelsior_legacy.cmake b/cmake/configs/qurt_excelsior_legacy.cmake
deleted file mode 100644
index e0bc0830b0..0000000000
--- a/cmake/configs/qurt_excelsior_legacy.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-# Excelsior is the code name of a board currently in development.
-#
-# This cmake config builds for QURT which is the operating system running on
-# the DSP side.
-
-# The config between different QURT builds is shared.
-include(configs/qurt_sdflight_legacy)
-
-add_definitions(
-   -D__USING_SNAPDRAGON_LEGACY_DRIVER
-   -D__PX4_QURT
-   -D__PX4_QURT_EXCELSIOR
-   )
-
diff --git a/cmake/configs/qurt_sdflight_default.cmake b/cmake/configs/qurt_sdflight_default.cmake
deleted file mode 100644
index 77908fdf6a..0000000000
--- a/cmake/configs/qurt_sdflight_default.cmake
+++ /dev/null
@@ -1,93 +0,0 @@
-include(common/px4_git)
-px4_add_git_submodule(TARGET git_cmake_hexagon PATH "cmake/cmake_hexagon")
-
-
-if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
-	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
-else()
-	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
-endif()
-
-set(CONFIG_SHMEM "1")
-add_definitions(-DORB_COMMUNICATOR)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-# Disable the creation of the parameters.xml file by scanning individual
-# source files, and scan all source files.  This will create a parameters.xml
-# file that contains all possible parameters, even if the associated module
-# is not used.  This is necessary for parameter synchronization between the
-# ARM and DSP processors.
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-include(toolchain/Toolchain-qurt)
-include(qurt_flags)
-include_directories(${HEXAGON_SDK_INCLUDES})
-
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	modules/sensors
-	platforms/posix/drivers/df_mpu9250_wrapper
-	platforms/posix/drivers/df_bmp280_wrapper
-	platforms/posix/drivers/df_hmc5883_wrapper
-	platforms/posix/drivers/df_trone_wrapper
-	platforms/posix/drivers/df_isl29501_wrapper
-	platforms/posix/drivers/df_ltc2946_wrapper
-
-	#
-	# System commands
-	#
-	systemcmds/param
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/mc_att_control
-	modules/mc_pos_control
-
-	#
-	# Library modules
-	#
-	modules/commander
-	modules/land_detector
-
-	#
-	# PX4 drivers
-	#
-	drivers/gps
-	drivers/spektrum_rc
-	drivers/qshell/qurt
-	drivers/snapdragon_pwm_out
-
-	#
-	# sources for muorb over fastrpc
-	#
-	modules/muorb/adsp
-	)
-
-set(config_df_driver_list
-	mpu9250
-	bmp280
-	hmc5883
-	trone
-	isl29501
-	ltc2946
-	)
diff --git a/cmake/configs/qurt_sdflight_legacy.cmake b/cmake/configs/qurt_sdflight_legacy.cmake
deleted file mode 100644
index f9d5c39c58..0000000000
--- a/cmake/configs/qurt_sdflight_legacy.cmake
+++ /dev/null
@@ -1,88 +0,0 @@
-include(common/px4_git)
-px4_add_git_submodule(TARGET git_cmake_hexagon PATH "cmake/cmake_hexagon")
-
-
-if ("$ENV{HEXAGON_SDK_ROOT}" STREQUAL "")
-	message(FATAL_ERROR "Enviroment variable HEXAGON_SDK_ROOT must be set")
-else()
-	set(HEXAGON_SDK_ROOT $ENV{HEXAGON_SDK_ROOT})
-endif()
-
-set(CONFIG_SHMEM "1")
-add_definitions(-DORB_COMMUNICATOR)
-
-# Get $QC_SOC_TARGET from environment if existing.
-if (DEFINED ENV{QC_SOC_TARGET})
-	set(QC_SOC_TARGET $ENV{QC_SOC_TARGET})
-else()
-	set(QC_SOC_TARGET "APQ8074")
-endif()
-
-# Disable the creation of the parameters.xml file by scanning individual
-# source files, and scan all source files.  This will create a parameters.xml
-# file that contains all possible parameters, even if the associated module
-# is not used.  This is necessary for parameter synchronization between the 
-# ARM and DSP processors.
-set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
-include(toolchain/Toolchain-qurt)
-include(qurt_flags)
-include_directories(${HEXAGON_SDK_INCLUDES})
-
-set(config_module_list
-	#
-	# Board support modules
-	#
-	modules/sensors
-	platforms/posix/drivers/df_mpu9250_wrapper
-	platforms/posix/drivers/df_bmp280_wrapper
-
-	#
-	# System commands
-	#
-	systemcmds/param
-
-	#
-	# Estimation modules
-	#
-	modules/attitude_estimator_q
-	modules/position_estimator_inav
-	modules/local_position_estimator
-	modules/landing_target_estimator
-	modules/ekf2
-
-	#
-	# Vehicle Control
-	#
-	modules/mc_att_control
-	modules/mc_pos_control
-
-	#
-	# Library modules
-	#
-	modules/commander
-	modules/land_detector
-
-	#
-	# PX4 drivers
-	#
-	drivers/gps
-	drivers/spektrum_rc
-	drivers/qshell/qurt
-
-	#
-	# FC_ADDON drivers
-	#
-	platforms/qurt/fc_addon/uart_esc
-
-	#
-	# sources for muorb over fastrpc
-	#
-	modules/muorb/adsp
-	)
-
-set(config_df_driver_list
-	mpu9250
-	bmp280
-	)
diff --git a/cmake/common/coverage.cmake b/cmake/coverage.cmake
similarity index 100%
rename from cmake/common/coverage.cmake
rename to cmake/coverage.cmake
diff --git a/cmake/px4_add_board.cmake b/cmake/px4_add_board.cmake
new file mode 100644
index 0000000000..df30166b45
--- /dev/null
+++ b/cmake/px4_add_board.cmake
@@ -0,0 +1,200 @@
+############################################################################
+#
+# Copyright (c) 2017 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.
+#
+############################################################################
+
+#=============================================================================
+#
+#	Defined functions in this file
+#
+# 	utility functions
+#
+#		* px4_add_board
+#
+
+include(px4_base)
+
+#=============================================================================
+#
+#	px4_add_board
+#
+#	This function creates a PX4 board.
+#
+#	Usage:
+#		px4_add_module(
+#			BOARD <string>
+#			OS <string>
+#			[ TOOLCHAIN ] <string>
+#			)
+#
+#	Input:
+#		BOARD		: name of board
+#		OS			: posix, nuttx, qurt
+#
+#
+#	Example:
+#		px4_add_board(
+#			BOARD px4fmu-v2_default
+#			OS nuttx
+#			)
+#
+function(px4_add_board)
+
+	px4_parse_function_args(
+		NAME px4_add_board
+		ONE_VALUE
+			VENDOR
+			MODEL
+			LABEL
+			BOARD_OVERRIDE
+			PLATFORM
+			TOOLCHAIN
+			ARCH
+			ROMFSROOT
+			IO
+			BOOTLOADER
+			UAVCAN_INTERFACES
+		MULTI_VALUE
+			DRIVERS
+			MODULES
+			SYSTEMCMDS
+			EXAMPLES
+			SERIAL_PORTS
+			DF_DRIVERS # DriverFramework drivers
+		OPTIONS
+			CONSTRAINED_FLASH
+			ROMFS
+			TESTING
+		REQUIRED
+			PLATFORM
+			VENDOR
+			MODEL
+		ARGN ${ARGN})
+
+	set(PX4_BOARD_DIR ${CMAKE_CURRENT_LIST_DIR} CACHE STRING "PX4 board directory" FORCE)
+
+	set(PX4_BOARD_VENDOR ${VENDOR} CACHE STRING "PX4 board vendor" FORCE)
+	set(PX4_BOARD_MODEL ${MODEL} CACHE STRING "PX4 board model" FORCE)
+
+	if(BOARD_OVERRIDE)
+		set(PX4_BOARD ${BOARD_OVERRIDE} CACHE STRING "PX4 board" FORCE)
+	else()
+		set(PX4_BOARD ${VENDOR}${MODEL} CACHE STRING "PX4 board" FORCE)
+	endif()
+
+	if(LABEL)
+		set(PX4_BOARD_LABEL ${LABEL} CACHE STRING "PX4 board label" FORCE)
+	else()
+		set(PX4_BOARD_LABEL "default" CACHE STRING "PX4 board label" FORCE)
+	endif()
+
+	# set OS, and append specific platform module path
+	set(PX4_PLATFORM ${PLATFORM} CACHE STRING "PX4 board OS" FORCE)
+
+	list(APPEND CMAKE_MODULE_PATH
+		${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake
+		)
+
+	if(ARCH)
+		set(CMAKE_SYSTEM_PROCESSOR ${ARCH} CACHE INTERNAL "system processor" FORCE)
+	endif()
+
+	if(TOOLCHAIN)
+		set(CMAKE_TOOLCHAIN_FILE ${TOOLCHAIN} CACHE INTERNAL "toolchain file" FORCE)
+	endif()
+
+	if(BOOTLOADER)
+		set(config_bl_file ${BOOTLOADER} CACHE INTERNAL "bootloader" FORCE)
+	endif()
+
+	if(SERIAL_PORTS)
+		set(board_serial_ports ${SERIAL_PORTS} PARENT_SCOPE)
+	endif()
+
+	include(px4_add_board_os)
+	px4_add_board_os(${ARGV})
+
+
+	# Modules (includes drivers, examples, modules, systemcmds)
+	set(config_module_list)
+
+	if(DRIVERS)
+		foreach(driver ${DRIVERS})
+			list(APPEND config_module_list drivers/${driver})
+		endforeach()
+	endif()
+
+	if(MODULES)
+		foreach(module ${MODULES})
+			list(APPEND config_module_list modules/${module})
+		endforeach()
+	endif()
+
+	if(SYSTEMCMDS)
+		foreach(systemcmd ${SYSTEMCMDS})
+			list(APPEND config_module_list systemcmds/${systemcmd})
+		endforeach()
+	endif()
+
+	if(EXAMPLES)
+		foreach(example ${EXAMPLES})
+			list(APPEND config_module_list examples/${example})
+		endforeach()
+	endif()
+
+	# DriverFramework drivers
+	if(DF_DRIVERS)
+		set(config_df_driver_list)
+		foreach(driver ${DF_DRIVERS})
+			list(APPEND config_df_driver_list ${driver})
+			list(APPEND config_module_list platforms/posix/drivers/df_${driver}_wrapper)
+		endforeach()
+		set(config_df_driver_list ${config_df_driver_list} PARENT_SCOPE)
+	endif()
+
+	# add board config directory src to build modules
+	file(RELATIVE_PATH board_support_src_rel ${PX4_SOURCE_DIR}/src ${PX4_BOARD_DIR})
+	list(APPEND config_module_list ${board_support_src_rel}/src)
+	include_directories(${CMAKE_CURRENT_LIST_DIR}/src)
+
+	set(config_module_list ${config_module_list} PARENT_SCOPE)
+
+	# OPTIONS
+	
+	if(CONSTRAINED_FLASH)
+		set(px4_constrained_flash_build "1" CACHE INTERNAL "constrained flash build" FORCE)
+	endif()
+
+	if(TESTING)
+		set(PX4_TESTING "1" CACHE INTERNAL "testing enabled" FORCE)
+	endif()
+
+endfunction()
diff --git a/cmake/common/px4_base.cmake b/cmake/px4_base.cmake
similarity index 85%
rename from cmake/common/px4_base.cmake
rename to cmake/px4_base.cmake
index 58ed8fe3c6..d6fdbcf866 100644
--- a/cmake/common/px4_base.cmake
+++ b/cmake/px4_base.cmake
@@ -41,8 +41,6 @@
 #		* px4_join
 #		* px4_add_module
 #		* px4_add_common_flags
-#		* px4_add_optimization_flags_for_target
-#		* px4_add_executable
 #		* px4_add_library
 #
 
@@ -95,11 +93,15 @@ include(CMakeParseArguments)
 #			list: a b c
 #
 function(px4_parse_function_args)
+
 	cmake_parse_arguments(IN "" "NAME" "OPTIONS;ONE_VALUE;MULTI_VALUE;REQUIRED;ARGN" "${ARGN}")
 	cmake_parse_arguments(OUT "${IN_OPTIONS}" "${IN_ONE_VALUE}" "${IN_MULTI_VALUE}" "${IN_ARGN}")
+
 	if (OUT_UNPARSED_ARGUMENTS)
-		message(FATAL_ERROR "${IN_NAME}: unparsed ${OUT_UNPARSED_ARGUMENTS}")
+		#message(FATAL_ERROR "${IN_NAME}: unparsed ${OUT_UNPARSED_ARGUMENTS}")
+		# TODO: reenable
 	endif()
+
 	foreach(arg ${IN_REQUIRED})
 		if (NOT OUT_${arg})
 			if (NOT "${OUT_${arg}}" STREQUAL "0")
@@ -107,9 +109,11 @@ function(px4_parse_function_args)
 			endif()
 		endif()
 	endforeach()
+
 	foreach(arg ${IN_OPTIONS} ${IN_ONE_VALUE} ${IN_MULTI_VALUE})
 		set(${arg} ${OUT_${arg}} PARENT_SCOPE)
 	endforeach()
+
 endfunction()
 
 #=============================================================================
@@ -205,7 +209,7 @@ function(px4_add_module)
 		REQUIRED MODULE MAIN
 		ARGN ${ARGN})
 
-	if(UNITY_BUILD AND (${OS} STREQUAL "nuttx"))
+	if(UNITY_BUILD AND (${PX4_PLATFORM} STREQUAL "nuttx"))
 		# build standalone test library to catch compilation errors and provide sane output
 		add_library(${MODULE}_original STATIC EXCLUDE_FROM_ALL ${SRCS})
 		if(DEPENDS)
@@ -254,8 +258,6 @@ function(px4_add_module)
 		set_property(GLOBAL APPEND PROPERTY PX4_MODULE_PATHS ${CMAKE_CURRENT_SOURCE_DIR})
 	endif()
 
-	px4_add_optimization_flags_for_target(${MODULE})
-
 	# Pass variable to the parent px4_add_module.
 	set(_no_optimization_for_target ${_no_optimization_for_target} PARENT_SCOPE)
 
@@ -277,9 +279,9 @@ function(px4_add_module)
 	endif()
 	set_target_properties(${MODULE} PROPERTIES STACK_MAX ${STACK_MAX})
 
-	if(${OS} STREQUAL "qurt")
+	if(${PX4_PLATFORM} STREQUAL "qurt")
 		set_property(TARGET ${MODULE} PROPERTY POSITION_INDEPENDENT_CODE TRUE)
-	elseif(${OS} STREQUAL "nuttx")
+	elseif(${PX4_PLATFORM} STREQUAL "nuttx")
 		target_compile_options(${MODULE} PRIVATE -Wframe-larger-than=${STACK_MAX})
 	endif()
 
@@ -318,12 +320,6 @@ function(px4_add_module)
 		endif()
 	endforeach()
 
-	# store module properties in target
-	# COMPILE_FLAGS and LINK_FLAGS are passed to compiler/linker by cmake
-	# STACK_MAIN, MAIN, PRIORITY are PX4 specific
-	if(COMPILE_FLAGS AND ${_no_optimization_for_target})
-		px4_strip_optimization(COMPILE_FLAGS ${COMPILE_FLAGS})
-	endif()
 	foreach (prop LINK_FLAGS STACK_MAIN MAIN PRIORITY)
 		if (${prop})
 			set_target_properties(${MODULE} PROPERTIES ${prop} ${${prop}})
@@ -383,7 +379,7 @@ function(px4_add_common_flags)
 	px4_parse_function_args(
 		NAME px4_add_common_flags
 		ONE_VALUE ${inout_vars} BOARD
-		REQUIRED ${inout_vars} BOARD
+		REQUIRED ${inout_vars}
 		ARGN ${ARGN})
 
 	set(warnings
@@ -414,7 +410,7 @@ function(px4_add_common_flags)
 
 	if (${CMAKE_C_COMPILER_ID} MATCHES ".*Clang.*")
 		# QuRT 6.4.X compiler identifies as Clang but does not support this option
-		if (NOT ${OS} STREQUAL "qurt")
+		if (NOT ${PX4_PLATFORM} STREQUAL "qurt")
 			list(APPEND warnings
 				-Qunused-arguments
 				-Wno-unused-const-variable
@@ -532,9 +528,7 @@ function(px4_add_common_flags)
 		${PX4_BINARY_DIR}/src/lib
 		${PX4_BINARY_DIR}/src/modules
 
-
 		${PX4_SOURCE_DIR}/src
-		${PX4_SOURCE_DIR}/src/drivers/boards/${BOARD}
 		${PX4_SOURCE_DIR}/src/include
 		${PX4_SOURCE_DIR}/src/lib
 		${PX4_SOURCE_DIR}/src/lib/DriverFramework/framework/include
@@ -543,7 +537,7 @@ function(px4_add_common_flags)
 		${PX4_SOURCE_DIR}/src/platforms
 		)
 
-	string(TOUPPER ${BOARD} board_upper)
+	string(TOUPPER ${PX4_BOARD} board_upper)
 	string(REPLACE "-" "_" board_config ${board_upper})
 
 	add_definitions(
@@ -560,62 +554,6 @@ function(px4_add_common_flags)
 
 endfunction()
 
-#=============================================================================
-#
-#	px4_strip_optimization
-#
-function(px4_strip_optimization name)
-	set(_compile_flags)
-	separate_arguments(_args UNIX_COMMAND ${ARGN})
-	foreach(_flag ${_args})
-		if(NOT "${_flag}" MATCHES "^-O")
-			set(_compile_flags "${_compile_flags} ${_flag}")
-		endif()
-	endforeach()
-	string(STRIP "${_compile_flags}" _compile_flags)
-	set(${name} "${_compile_flags}" PARENT_SCOPE)
-endfunction()
-
-#=============================================================================
-#
-#	px4_add_optimization_flags_for_target
-#
-set(all_posix_cmake_targets "" CACHE INTERNAL "All cmake targets for which optimization can be suppressed")
-function(px4_add_optimization_flags_for_target target)
-	set(_no_optimization_for_target FALSE)
-	# If the current CONFIG is posix_sitl_* then suppress optimization for certain targets.
-	if(CONFIG MATCHES "^posix_sitl_")
-		foreach(_regexp $ENV{PX4_NO_OPTIMIZATION})
-			if("${target}" MATCHES "${_regexp}")
-				set(_no_optimization_for_target TRUE)
-				set(_matched_regexp "${_regexp}")
-			endif()
-		endforeach()
-		# Create a full list of targets that optimization can be suppressed for.
-		list(APPEND all_posix_cmake_targets ${target})
-		set(all_posix_cmake_targets ${all_posix_cmake_targets} CACHE INTERNAL "All cmake targets for which optimization can be suppressed")
-	endif()
-	if(NOT ${_no_optimization_for_target})
-		target_compile_options(${target} PRIVATE ${optimization_flags})
-	else()
-		message(STATUS "Disabling optimization for target '${target}' because it matches the regexp '${_matched_regexp}' in env var PX4_NO_OPTIMIZATION")
-		target_compile_options(${target} PRIVATE -O0)
-	endif()
-	# Pass variable to the parent px4_add_library.
-	set(_no_optimization_for_target ${_no_optimization_for_target} PARENT_SCOPE)
-endfunction()
-
-#=============================================================================
-#
-#	px4_add_executable
-#
-#	Like add_executable but with optimization flag fixup.
-#
-function(px4_add_executable target)
-	add_executable(${target} ${ARGN})
-	px4_add_optimization_flags_for_target(${target})
-endfunction()
-
 #=============================================================================
 #
 #	px4_add_library
@@ -632,12 +570,10 @@ function(px4_add_library target)
 	target_link_libraries(${target} PRIVATE prebuild_targets parameters_interface uorb_msgs)
 
 	# TODO: move to platform layer
-	if ("${OS}" MATCHES "nuttx")
+	if ("${PX4_PLATFORM}" MATCHES "nuttx")
 		target_link_libraries(${target} PRIVATE m nuttx_c)
 	endif()
 
-	px4_add_optimization_flags_for_target(${target})
-
 	# Pass variable to the parent px4_add_module.
 	set(_no_optimization_for_target ${_no_optimization_for_target} PARENT_SCOPE)
 
@@ -666,7 +602,7 @@ function(px4_find_python_module module)
 			"import re, ${module}; print(re.compile('/__init__.py.*').sub('',${module}.__file__))"
 			RESULT_VARIABLE _${module}_status
 			OUTPUT_VARIABLE _${module}_location
-			ERROR_QUIET 
+			ERROR_QUIET
 			OUTPUT_STRIP_TRAILING_WHITESPACE)
 		if(NOT _${module}_status)
 			set(PY_${module_upper} ${_${module}_location} CACHE STRING
@@ -683,4 +619,3 @@ function(px4_find_python_module module)
 		#message(FATAL_ERROR "python module not found, exiting")
 	#endif()
 endfunction(px4_find_python_module)
-
diff --git a/cmake/common/px4_git.cmake b/cmake/px4_git.cmake
similarity index 99%
rename from cmake/common/px4_git.cmake
rename to cmake/px4_git.cmake
index fe60948f6f..dd29ee7ebf 100644
--- a/cmake/common/px4_git.cmake
+++ b/cmake/px4_git.cmake
@@ -32,7 +32,7 @@
 ############################################################################
 
 include(CMakeParseArguments)
-include(common/px4_base)
+include(px4_base)
 
 #=============================================================================
 #
diff --git a/cmake/px4_make_uavcan_bootloader.cmake b/cmake/px4_make_uavcan_bootloader.cmake
new file mode 100644
index 0000000000..043377e3be
--- /dev/null
+++ b/cmake/px4_make_uavcan_bootloader.cmake
@@ -0,0 +1,99 @@
+############################################################################
+#
+# Copyright (c) 2015 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_make_uavcan_bootloadable
+#
+#	This function adds a uavcan boot loadable target.
+#
+#	Usage:
+#	  px4_make_uavcan_bootloadable(
+#	   BOARD	<board>
+#	   BIN <input bin file>)
+#	   HWNAME <uavcan name>
+#	   HW_MAJOR <number>
+#	   HW_MINOR <number>
+#	   SW_MAJOR <number>
+#	   SW_MINOR <number>)
+#
+#	Input:
+#	  BOARD	     : the board
+#	  BIN	     : the bin file to generate the bootloadable image from
+#	  HWNAME     : the uavcan name
+#	  HW_MAJOR   : the major hardware revision
+#	  HW_MINOR   : the minor hardware revision
+#	  SW_MAJOR   : the major software revision
+#	  SW_MINOR   : the minor software revision
+#
+#	Output:
+#		OUT			: None
+#
+#	Example:
+#	px4_make_uavcan_bootloadable(
+#	  BOARD ${PX4_BOARD}
+#		BIN ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
+#		HWNAME ${uavcanblid_name}
+#		HW_MAJOR ${uavcanblid_hw_version_major}
+#		HW_MINOR ${uavcanblid_hw_version_minor}
+#		SW_MAJOR ${uavcanblid_sw_version_major}
+#		SW_MINOR ${uavcanblid_sw_version_minor}
+#	 )
+#
+function(px4_make_uavcan_bootloadable)
+	px4_parse_function_args(
+		NAME px4_make_uavcan_bootloadable
+		ONE_VALUE BOARD BIN HWNAME HW_MAJOR HW_MINOR SW_MAJOR SW_MINOR
+		REQUIRED BOARD BIN HWNAME HW_MAJOR HW_MINOR SW_MAJOR SW_MINOR
+		ARGN ${ARGN})
+
+	string(REPLACE "\"" "" HWNAME ${HWNAME})
+
+	execute_process(
+		COMMAND git rev-list HEAD --max-count=1 --abbrev=8 --abbrev-commit
+		OUTPUT_VARIABLE uavcanbl_git_desc
+		OUTPUT_STRIP_TRAILING_WHITESPACE
+		WORKING_DIRECTORY ${PX4_SOURCE_DIR}
+	)
+
+	if ("${uavcanbl_git_desc}" STREQUAL "")
+		set(uavcanbl_git_desc ffffffff)
+	endif()
+	set(uavcan_bl_imange_name ${HWNAME}-${HW_MAJOR}.${HW_MINOR}-${SW_MAJOR}.${SW_MINOR}.${uavcanbl_git_desc}.uavcan.bin)
+	message(STATUS "Generating UAVCAN Bootable as ${uavcan_bl_imange_name}")
+	add_custom_command(OUTPUT ${uavcan_bl_imange_name}
+		COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/make_can_boot_descriptor.py
+			-v --use-git-hash ${BIN} ${uavcan_bl_imange_name}
+		DEPENDS ${BIN})
+	add_custom_target(build_uavcan_bl_${PX4_BOARD} ALL DEPENDS ${uavcan_bl_imange_name})
+endfunction()
diff --git a/cmake/common/px4_metadata.cmake b/cmake/px4_metadata.cmake
similarity index 98%
rename from cmake/common/px4_metadata.cmake
rename to cmake/px4_metadata.cmake
index edc1611661..c8f9aecfd0 100644
--- a/cmake/common/px4_metadata.cmake
+++ b/cmake/px4_metadata.cmake
@@ -69,7 +69,7 @@ function(px4_generate_airframes_xml)
 	add_custom_command(OUTPUT ${PX4_BINARY_DIR}/airframes.xml
 		COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_process_airframes.py
 			--airframes-path ${PX4_SOURCE_DIR}/ROMFS/${config_romfs_root}/init.d
-			--board CONFIG_ARCH_BOARD_${BOARD}
+			--board CONFIG_ARCH_BOARD_${PX4_BOARD}
 			--xml ${PX4_BINARY_DIR}/airframes.xml
 		DEPENDS ${PX4_SOURCE_DIR}/Tools/px_process_airframes.py
 		COMMENT "Creating airframes.xml"
diff --git a/cmake/common/sanitizers.cmake b/cmake/sanitizers.cmake
similarity index 100%
rename from cmake/common/sanitizers.cmake
rename to cmake/sanitizers.cmake
diff --git a/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake b/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake
deleted file mode 100644
index 746c776234..0000000000
--- a/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake
+++ /dev/null
@@ -1,30 +0,0 @@
-# More on cross-compilation: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html
-
-set(CMAKE_SYSTEM_NAME Linux)
-set(CMAKE_SYSTEM_PROCESSOR arm)
-set(CMAKE_SYSTEM_VERSION 1)
-
-IF (NOT CMAKE_C_COMPILER OR NOT CMAKE_CXX_COMPILER)
-	SET(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
-	SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
-ENDIF()
-
-# os tools
-foreach(tool echo grep rm mkdir nm cp touch make unzip)
-	string(TOUPPER ${tool} TOOL)
-	find_program(${TOOL} ${tool})
-	if(NOT ${TOOL})
-		message(FATAL_ERROR "could not find ${TOOL}")
-	endif()
-endforeach()
-
-FIND_PROGRAM(STRIP_TOOL "arm-linux-gnueabihf-strip")
-
-set(CMAKE_EXE_LINKER_FLAGS "-Wl,-gc-sections")
-#set(CMAKE_C_FLAGS ${C_FLAGS})
-#set(CMAKE_CXX_LINKER_FLAGS ${C_FLAGS})
-
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
diff --git a/cmake/toolchains/Toolchain-arm-none-eabi.cmake b/cmake/toolchains/Toolchain-arm-none-eabi.cmake
deleted file mode 100644
index 07727b2f2d..0000000000
--- a/cmake/toolchains/Toolchain-arm-none-eabi.cmake
+++ /dev/null
@@ -1,82 +0,0 @@
-# defines:
-#
-# NM
-# OBJCOPY
-# LD
-# CXX_COMPILER
-# C_COMPILER
-# CMAKE_SYSTEM_NAME
-# CMAKE_SYSTEM_VERSION
-# LINKER_FLAGS
-# CMAKE_EXE_LINKER_FLAGS
-# CMAKE_FIND_ROOT_PATH
-# CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
-# CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
-# CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
-
-include(CMakeForceCompiler)
-
-# this one is important
-set(CMAKE_SYSTEM_NAME Generic)
-
-# this one not so much
-set(CMAKE_SYSTEM_VERSION 1)
-
-# specify the cross compiler
-find_program(C_COMPILER arm-none-eabi-gcc)
-if(NOT C_COMPILER)
-	message(FATAL_ERROR "could not find arm-none-eabi-gcc compiler")
-endif()
-cmake_force_c_compiler(${C_COMPILER} GNU)
-
-find_program(CXX_COMPILER arm-none-eabi-g++)
-if(NOT CXX_COMPILER)
-	message(FATAL_ERROR "could not find arm-none-eabi-g++ compiler")
-endif()
-cmake_force_cxx_compiler(${CXX_COMPILER} GNU)
-
-# compiler tools
-foreach(tool objcopy nm ld)
-	string(TOUPPER ${tool} TOOL)
-	find_program(${TOOL} arm-none-eabi-${tool})
-	if(NOT ${TOOL})
-		message(FATAL_ERROR "could not find ${tool}")
-	endif()
-endforeach()
-
-# optional compiler tools
-foreach(tool gdb gdbtui)
-	string(TOUPPER ${tool} TOOL)
-	find_program(${TOOL} arm-none-eabi-${tool})
-	if(NOT ${TOOL})
-		#message(STATUS "could not find ${tool}")
-	endif()
-endforeach()
-
-set(cpu_flags)
-if (CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m7")
-	set(cpu_flags "-mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard")
-elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m4")
-	set(cpu_flags "-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard")
-elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m3")
-	set(cpu_flags "-mcpu=cortex-m3 -mthumb")
-else ()
-	message(FATAL_ERROR "Processor not recognised in toolchain file")
-endif()
-
-set(c_flags "-fno-common -ffunction-sections -fdata-sections")
-set(cxx_flags "-fno-common -ffunction-sections -fdata-sections")
-
-set(CMAKE_C_FLAGS "${c_flags} ${cpu_flags}" CACHE INTERNAL "" FORCE)
-set(CMAKE_CXX_FLAGS "${cxx_flags} ${cpu_flags}" CACHE INTERNAL "" FORCE)
-set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__ " CACHE INTERNAL "" FORCE)
-set(CMAKE_EXE_LINKER_FLAGS "${cpu_flags} -nodefaultlibs -nostdlib -Wl,--warn-common,--gc-sections" CACHE INTERNAL "" FORCE)
-
-# where is the target environment 
-set(CMAKE_FIND_ROOT_PATH get_file_component(${C_COMPILER} PATH))
-
-# search for programs in the build host directories
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-# for libraries and headers in the target directories
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
diff --git a/cmake/toolchains/Toolchain-arm-xilinx-linux-gnueabi.cmake b/cmake/toolchains/Toolchain-arm-xilinx-linux-gnueabi.cmake
deleted file mode 100644
index abe00db83b..0000000000
--- a/cmake/toolchains/Toolchain-arm-xilinx-linux-gnueabi.cmake
+++ /dev/null
@@ -1,88 +0,0 @@
-# defines:
-#
-# NM
-# OBJCOPY
-# LD
-# CXX_COMPILER
-# C_COMPILER
-# CMAKE_SYSTEM_NAME
-# CMAKE_SYSTEM_VERSION
-# LINKER_FLAGS
-# CMAKE_EXE_LINKER_FLAGS
-# CMAKE_FIND_ROOT_PATH
-# CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
-# CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
-# CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
-
-include(CMakeForceCompiler)
-
-if ("$ENV{OCPOC_TOOLCHAIN_DIR}" STREQUAL "")
-        message(FATAL_ERROR "OCPOC_TOOLCHAIN_DIR not set")
-else()
-        set(OCPOC_TOOLCHAIN_DIR $ENV{OCPOC_TOOLCHAIN_DIR})
-endif()
-
-# this one is important
-set(CMAKE_SYSTEM_NAME Generic)
-
-#this one not so much
-set(CMAKE_SYSTEM_VERSION 1)
-
-# specify the cross compiler
-find_program(C_COMPILER arm-xilinx-linux-gnueabi-gcc
-	PATHS ${OCPOC_TOOLCHAIN_DIR}
-	NO_DEFAULT_PATH
-	)
-
-if(NOT C_COMPILER)
-	message(FATAL_ERROR "could not find arm-xilinx-linux-gnueabi-gcc compiler")
-endif()
-cmake_force_c_compiler(${C_COMPILER} GNU)
-
-find_program(CXX_COMPILER arm-xilinx-linux-gnueabi-g++
-	PATHS ${OCPOC_TOOLCHAIN_DIR}
-	NO_DEFAULT_PATH
-	)
-
-if(NOT CXX_COMPILER)
-	message(FATAL_ERROR "could not find arm-xilinx-linux-gnueabi-g++ compiler")
-endif()
-cmake_force_cxx_compiler(${CXX_COMPILER} GNU)
-
-# compiler tools
-foreach(tool objcopy nm ld)
-	string(TOUPPER ${tool} TOOL)
-	find_program(${TOOL} arm-xilinx-linux-gnueabi-${tool}
-		PATHS ${OCPOC_TOOLCHAIN_DIR}
-		NO_DEFAULT_PATH
-		)
-	if(NOT ${TOOL})
-		message(FATAL_ERROR "could not find arm-xilinx-linux-gnueabi-${tool}")
-	endif()
-endforeach()
-
-# os tools
-foreach(tool echo grep rm mkdir nm cp touch make unzip)
-	string(TOUPPER ${tool} TOOL)
-	find_program(${TOOL} ${tool})
-	if(NOT ${TOOL})
-		message(FATAL_ERROR "could not find ${TOOL}")
-	endif()
-endforeach()
-
-set(LINKER_FLAGS "-Wl,-gc-sections")
-set(CMAKE_EXE_LINKER_FLAGS ${LINKER_FLAGS})
-set(CMAKE_C_FLAGS ${C_FLAGS})
-set(CMAKE_CXX_LINKER_FLAGS ${C_FLAGS})
-
-# where is the target environment
-set(CMAKE_FIND_ROOT_PATH  get_file_component(${C_COMPILER} PATH))
-
-# search for programs in the build host directories
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-# for libraries and headers in the target directories
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-
-# enable static linking
-#set(LDFLAGS "--disable-shared")
diff --git a/cmake/toolchains/Toolchain-gcc-arm-linux-gnueabihf.cmake b/cmake/toolchains/Toolchain-gcc-arm-linux-gnueabihf.cmake
deleted file mode 100644
index f190f81ea1..0000000000
--- a/cmake/toolchains/Toolchain-gcc-arm-linux-gnueabihf.cmake
+++ /dev/null
@@ -1,74 +0,0 @@
-# defines:
-#
-# NM
-# OBJCOPY
-# LD
-# CXX_COMPILER
-# C_COMPILER
-# CMAKE_SYSTEM_NAME
-# CMAKE_SYSTEM_VERSION
-# LINKER_FLAGS
-# CMAKE_EXE_LINKER_FLAGS
-# CMAKE_FIND_ROOT_PATH
-# CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
-# CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
-# CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
-
-include(CMakeForceCompiler)
-
-# this one is important
-set(CMAKE_SYSTEM_NAME Generic)
-
-#this one not so much
-set(CMAKE_SYSTEM_VERSION 1)
-
-# specify the cross compiler
-find_program(C_COMPILER arm-linux-gnueabihf-gcc)
-
-if(NOT C_COMPILER)
-	message(STATUS "Make sure to: apt-get install arm-linux-gnueabihf-gcc")
-	message(FATAL_ERROR "could not find arm-linux-gnueabihf-gcc compiler")
-endif()
-cmake_force_c_compiler(${C_COMPILER} GNU)
-
-find_program(CXX_COMPILER arm-linux-gnueabihf-g++)
-
-if(NOT CXX_COMPILER)
-	message(FATAL_ERROR "could not find arm-linux-gnueabihf-g++ compiler")
-endif()
-cmake_force_cxx_compiler(${CXX_COMPILER} GNU)
-
-# compiler tools
-foreach(tool objcopy nm ld)
-	string(TOUPPER ${tool} TOOL)
-	find_program(${TOOL} arm-linux-gnueabihf-${tool})
-	if(NOT ${TOOL})
-		message(FATAL_ERROR "could not find arm-linux-gnueabihf-${tool}")
-	endif()
-endforeach()
-
-# os tools
-foreach(tool echo grep rm mkdir nm cp touch make unzip)
-	string(TOUPPER ${tool} TOOL)
-	find_program(${TOOL} ${tool})
-	if(NOT ${TOOL})
-		message(FATAL_ERROR "could not find ${TOOL}")
-	endif()
-endforeach()
-
-set(LINKER_FLAGS "-Wl,-gc-sections")
-set(CMAKE_EXE_LINKER_FLAGS ${LINKER_FLAGS})
-set(CMAKE_C_FLAGS ${C_FLAGS})
-set(CMAKE_CXX_LINKER_FLAGS ${C_FLAGS} -mfloat-abi=hard -mcpu=cortex-a9 -mfpu=neon-vfpv3 -O3 -funsafe-math-optimizations -mthumb-interwork -ftree-vectorize)
-
-# where is the target environment
-set(CMAKE_FIND_ROOT_PATH  get_file_component(${C_COMPILER} PATH))
-
-# search for programs in the build host directories
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-# for libraries and headers in the target directories
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-
-# enable static linking
-#set(LDFLAGS "--disable-shared")
diff --git a/eclipse.cproject b/eclipse.cproject
index 56a06884bc..dfd1ee0065 100644
--- a/eclipse.cproject
+++ b/eclipse.cproject
@@ -34,8 +34,8 @@
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware/src/include}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware/uORB/topics}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware}&quot;"/>
-									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/posix_sitl_default/&quot;"/>
-									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/posix_sitl_default/src/modules/systemlib/param&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/px4sitl_default/&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/px4sitl_default/src/modules/systemlib/param&quot;"/>
 								</option>
 								<option id="gnu.cpp.compiler.option.preprocessor.def.1050909243" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
 									<listOptionValue builtIn="false" value="__PX4_POSIX=1"/>
@@ -55,8 +55,8 @@
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware/src/include}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware/uORB/topics}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware}&quot;"/>
-									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/posix_sitl_default/&quot;"/>
-									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/posix_sitl_default/src/modules/systemlib/param&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/px4sitl_default/&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/px4sitl_default/src/modules/systemlib/param&quot;"/>
 								</option>
 								<option id="gnu.c.compiler.option.preprocessor.def.symbols.734675451" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
 									<listOptionValue builtIn="false" value="__PX4_POSIX=1"/>
@@ -83,8 +83,8 @@
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware/src/include}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware/uORB/topics}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/PX4-Firmware}&quot;"/>
-									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/posix_sitl_default/&quot;"/>
-									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/posix_sitl_default/src/modules/systemlib/param&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/px4sitl_default/&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${git_work_tree}/build/px4sitl_default/src/modules/systemlib/param&quot;"/>
 								</option>
 								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.674673703" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
 							</tool>
@@ -132,10 +132,10 @@
 				<useDefaultCommand>true</useDefaultCommand>
 				<runAllBuilders>true</runAllBuilders>
 			</target>
-			<target name="posix_sitl_default" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
+			<target name="px4sitl_default" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
 				<buildCommand>make</buildCommand>
 				<buildArguments/>
-				<buildTarget>posix_sitl_default</buildTarget>
+				<buildTarget>px4sitl_default</buildTarget>
 				<stopOnError>true</stopOnError>
 				<useDefaultCommand>true</useDefaultCommand>
 				<runAllBuilders>true</runAllBuilders>
diff --git a/eclipse.project b/eclipse.project
index 383d0487b8..c9dc730213 100644
--- a/eclipse.project
+++ b/eclipse.project
@@ -59,11 +59,11 @@
 	<variableList>
 		<variable>
 			<name>uORB_LOC</name>
-			<value>$%7BPROJECT_LOC%7D/build/posix_sitl_default/uORB</value>
+			<value>$%7BPROJECT_LOC%7D/build/px4sitl_default/uORB</value>
 		</variable>
 		<variable>
 			<name>uORB_SRC</name>
-			<value>$%7BPROJECT_LOC%7D/build/posix_sitl_default/msg/topics_sources</value>
+			<value>$%7BPROJECT_LOC%7D/build/px4sitl_default/msg/topics_sources</value>
 		</variable>
 	</variableList>
 </projectDescription>
diff --git a/platforms/nuttx/CMakeLists.txt b/platforms/nuttx/CMakeLists.txt
index feeb309cc4..8c514ddba2 100644
--- a/platforms/nuttx/CMakeLists.txt
+++ b/platforms/nuttx/CMakeLists.txt
@@ -35,9 +35,7 @@ include(cygwin_cygpath)
 
 add_subdirectory(src)
 
-if (NOT FW_NAME)
-	set(FW_NAME ${CONFIG}.elf)
-endif()
+set(FW_NAME ${PX4_BOARD_VENDOR}${PX4_BOARD_MODEL}_${PX4_BOARD_LABEL}.elf)
 
 add_executable(${FW_NAME} ${PX4_SOURCE_DIR}/src/platforms/empty.c)
 add_dependencies(${FW_NAME} git_nuttx nuttx_build)
@@ -66,10 +64,6 @@ if (CONFIG_NET)
 	target_link_libraries(nuttx_fs INTERFACE nuttx_net)
 endif()
 
-if (NOT LD_SCRIPT)
-	set(LD_SCRIPT ld.script)
-endif()
-
 file(RELATIVE_PATH PX4_BINARY_DIR_REL ${CMAKE_CURRENT_BINARY_DIR} ${PX4_BINARY_DIR})
 
 # only in the cygwin environment: convert absolute linker script path to mixed windows (C:/...)
@@ -95,7 +89,7 @@ target_link_libraries(${FW_NAME} PRIVATE
 	-fno-exceptions
 	-fno-rtti
 
-	-Wl,--script=${PX4_BINARY_DIR_CYG}/NuttX/nuttx/configs/${BOARD}/scripts/${LD_SCRIPT}
+	-Wl,--script=${PX4_BINARY_DIR_CYG}/NuttX/nuttx/configs/${PX4_BOARD}/scripts/ld.script
 	-Wl,-Map=${CONFIG}.map
 	-Wl,--warn-common
 	-Wl,--gc-sections
@@ -123,31 +117,29 @@ string(REPLACE "nuttx_" "" fw_name_short ${FW_NAME})
 set(fw_file ${PX4_BINARY_DIR}/${fw_name_short})
 string(REPLACE ".elf" ".px4" fw_file ${fw_file})
 
-add_custom_command(OUTPUT ${PX4_BINARY_DIR_REL}/${BOARD}.bin
-	COMMAND ${OBJCOPY} -O binary ${PX4_BINARY_DIR_REL}/${FW_NAME} ${PX4_BINARY_DIR_REL}/${BOARD}.bin
+add_custom_command(OUTPUT ${PX4_BINARY_DIR_REL}/${PX4_BOARD}.bin
+	COMMAND ${CMAKE_OBJCOPY} -O binary ${PX4_BINARY_DIR_REL}/${FW_NAME} ${PX4_BINARY_DIR_REL}/${PX4_BOARD}.bin
 	DEPENDS ${FW_NAME}
 	)
 
-if (NOT FW_PROTOTYPE)
-	set(FW_PROTOTYPE ${BOARD})
-endif()
+set(FW_PROTOTYPE ${PX4_BOARD_VENDOR}${PX4_BOARD_MODEL})
 
 if (TARGET parameters_xml AND TARGET airframes_xml)
 	add_custom_command(OUTPUT ${fw_file}
 		COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_mkfw.py
-			--prototype ${PX4_SOURCE_DIR}/platforms/nuttx/Images/${FW_PROTOTYPE}.prototype
+			--prototype ${PX4_SOURCE_DIR}/boards/${PX4_BOARD_VENDOR}/${PX4_BOARD_MODEL}/firmware.prototype
 			--git_identity ${PX4_SOURCE_DIR}
 			--parameter_xml ${PX4_BINARY_DIR}/parameters.xml
 			--airframe_xml ${PX4_BINARY_DIR}/airframes.xml
-			--image ${PX4_BINARY_DIR}/${BOARD}.bin > ${fw_file}
-		DEPENDS ${PX4_BINARY_DIR}/${BOARD}.bin parameters_xml airframes_xml
+			--image ${PX4_BINARY_DIR}/${PX4_BOARD}.bin > ${fw_file}
+		DEPENDS ${PX4_BINARY_DIR}/${PX4_BOARD}.bin parameters_xml airframes_xml
 		COMMENT "Creating ${fw_file}"
 		)
 
 	add_custom_target(px4 ALL DEPENDS ${fw_file})
 
 	# upload helper
-	if (${BOARD} STREQUAL "aerofc-v1")
+	if (${PX4_BOARD} STREQUAL "aerofc-v1")
 		
 		# TODO: should be set only in aero config
 		add_custom_target(upload
@@ -289,7 +281,7 @@ if (BLOATY_PROGRAM)
 
 	# bloaty compare with last master build
 	add_custom_target(bloaty_compare_master
-		COMMAND wget --no-verbose https://s3.amazonaws.com/px4-travis/Firmware/master/${FW_NAME} -O master_${FW_NAME}
+		COMMAND wget --no-verbose https://s3.amazonaws.com/px4-travis/Firmware/master/nuttx_${FW_NAME} -O master_${FW_NAME}
 		COMMAND ${BLOATY_PROGRAM} -d symbols -n 50 -C full -s vm $<TARGET_FILE:${FW_NAME}> -- master_${FW_NAME}
 		DEPENDS ${FW_NAME}
 		WORKING_DIRECTORY ${PX4_BINARY_DIR}
@@ -353,7 +345,7 @@ if(black_magic_probe_path)
 		)
 
 	add_custom_target(blackmagic_console
-		COMMAND screen -t "${BOARD} console" ${black_magic_probe_console_path} 57600 8N1
+		COMMAND screen -t "${PX4_BOARD} console" ${black_magic_probe_console_path} 57600 8N1
 		USES_TERMINAL
 		)
 
diff --git a/platforms/nuttx/Debug/poor-mans-profiler.sh b/platforms/nuttx/Debug/poor-mans-profiler.sh
index d1a7fd56ae..c5efc21c73 100755
--- a/platforms/nuttx/Debug/poor-mans-profiler.sh
+++ b/platforms/nuttx/Debug/poor-mans-profiler.sh
@@ -77,7 +77,7 @@ do
     shift
 done
 
-[[ -z "$elf" ]] && die "Please specify the ELF file location, e.g.: build/nuttx_px4fmu-v4_default/nuttx_px4fmu-v4_default.elf"
+[[ -z "$elf" ]] && die "Please specify the ELF file location, e.g.: build/px4fmu-v4_default/px4fmu-v4_default.elf"
 
 #
 # Temporary files
diff --git a/platforms/nuttx/Images/px4flow-v2.prototype b/platforms/nuttx/Images/px4flow-v2.prototype
deleted file mode 100644
index 5027fe8c27..0000000000
--- a/platforms/nuttx/Images/px4flow-v2.prototype
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-    "board_id": 24,
-    "magic": "FLOWv1",
-    "description": "Firmware for the PX4FlowV2 board",
-    "image": "",
-    "build_time": 0,
-    "summary": "PX4FLOWv2",
-    "version": "0.1",
-    "image_size": 0,
-    "image_maxsize": 2080768,
-    "git_identity": "",
-    "board_revision": 0
-}
diff --git a/platforms/nuttx/Images/zubaxgnss-v1.prototype b/platforms/nuttx/Images/zubaxgnss-v1.prototype
deleted file mode 100644
index 46d8c45f87..0000000000
--- a/platforms/nuttx/Images/zubaxgnss-v1.prototype
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-    "board_id": 26,
-    "magic": "ZUBAXGNSSFWv1",
-    "description": "Firmware for the ZUBAXGNSS board",
-    "image": "",
-    "build_time": 0,
-    "summary": "ZUBAXGNSSv1",
-    "version": "0.0",
-    "image_size": 0,
-    "image_maxsize": 253952,
-    "git_identity": "",
-    "board_revision": 0
-}
diff --git a/platforms/nuttx/NuttX/CMakeLists.txt b/platforms/nuttx/NuttX/CMakeLists.txt
index c263436f0d..ffa4312f2d 100644
--- a/platforms/nuttx/NuttX/CMakeLists.txt
+++ b/platforms/nuttx/NuttX/CMakeLists.txt
@@ -3,17 +3,11 @@ cmake_minimum_required(VERSION 3.2)
 px4_add_git_submodule(TARGET git_nuttx PATH "nuttx")
 px4_add_git_submodule(TARGET git_nuttx_apps PATH "apps")
 
-if(NOT BOARD)
-	message(FATAL_ERROR "BOARD must be set (eg px4fmu-v2)")
+if(NOT PX4_BOARD)
+	message(FATAL_ERROR "PX4_BOARD must be set (eg px4fmu-v2)")
 endif()
 
-if(NOT nuttx_config_type)
-	# default to nsh if not specified
-	set(nuttx_config_type "nsh")
-endif()
-
-project(NuttX_${BOARD} LANGUAGES ASM C CXX)
-message(STATUS "NuttX: " ${BOARD} " " ${nuttx_config_type} " " ${CMAKE_SYSTEM_PROCESSOR})
+project(NuttX_${PX4_BOARD} LANGUAGES ASM C CXX)
 
 if (CMAKE_HOST_APPLE OR CMAKE_HOST_WIN32)
 	# copy with rsync and create file dependencies
@@ -39,8 +33,10 @@ file(GLOB_RECURSE copy_apps_files
 	${CMAKE_CURRENT_SOURCE_DIR}/apps/*)
 
 set(NUTTX_DIR ${CMAKE_CURRENT_BINARY_DIR}/nuttx)
-set(NUTTX_CONFIG_DIR ${PX4_SOURCE_DIR}/platforms/nuttx/nuttx-configs)
-configure_file(${NUTTX_CONFIG_DIR}/Make.defs.in ${NUTTX_DIR}/Make.defs)
+set(NUTTX_CONFIG_DIR ${PX4_BOARD_DIR}/nuttx-config)
+
+set(NUTTX_CONFIGS_DIR ${PX4_SOURCE_DIR}/platforms/nuttx/nuttx-configs)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Make.defs.in ${NUTTX_DIR}/Make.defs)
 
 # copy nuttx to build directory
 file(RELATIVE_PATH CP_SRC ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/nuttx)
@@ -66,24 +62,23 @@ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/apps_copy.stamp
 set(APPS_DIR ${CMAKE_CURRENT_BINARY_DIR}/apps)
 
 # copy PX4 board config into nuttx
-file(GLOB_RECURSE board_config_files ${NUTTX_CONFIG_DIR}/${BOARD})
-file(RELATIVE_PATH CP_SRC ${CMAKE_SOURCE_DIR} ${NUTTX_CONFIG_DIR}/${BOARD})
-file(RELATIVE_PATH CP_DST ${CMAKE_SOURCE_DIR} ${NUTTX_DIR}/configs)
 add_custom_command(
 	OUTPUT ${NUTTX_DIR}/.config
-	COMMAND ${CMAKE_COMMAND} -E copy ${NUTTX_CONFIG_DIR}/${BOARD}/${nuttx_config_type}/defconfig ${NUTTX_DIR}/.config
+	COMMAND ${CMAKE_COMMAND} -E copy ${NUTTX_CONFIG_DIR}/${NUTTX_CONFIG}/defconfig ${NUTTX_DIR}/.config
 	COMMAND ${CMAKE_COMMAND} -E remove -f ${NUTTX_DIR}/include/nuttx/config.h
-	COMMAND ${CMAKE_COMMAND} -E make_directory ${NUTTX_DIR}/configs/${BOARD}/src
-	COMMAND cd ${CMAKE_SOURCE_DIR} && ${cp_cmd} ${cp_opts} ${CP_SRC} ${CP_DST}
+	COMMAND ${CMAKE_COMMAND} -E remove_directory ${NUTTX_DIR}/configs/${PX4_BOARD}
+	COMMAND ${CMAKE_COMMAND} -E copy_directory ${NUTTX_CONFIG_DIR}/ ${NUTTX_DIR}/configs/${PX4_BOARD}/
+	COMMAND ${CMAKE_COMMAND} -E make_directory ${NUTTX_DIR}/configs/${PX4_BOARD}/src
+	COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/nsh_romfsimg.h ${NUTTX_DIR}/configs/${PX4_BOARD}/include
 	DEPENDS
-		${NUTTX_CONFIG_DIR}/${BOARD}/${nuttx_config_type}/defconfig
-		${board_config_files}
+		${NUTTX_CONFIG_DIR}/${NUTTX_CONFIG}/defconfig
+		${NUTTX_CONFIG_DIR}/include/board.h
+		${NUTTX_CONFIG_DIR}/scripts/ld.script
 		${CMAKE_CURRENT_BINARY_DIR}/nuttx_copy.stamp
 		${CMAKE_CURRENT_BINARY_DIR}/apps_copy.stamp
 	WORKING_DIRECTORY ${NUTTX_DIR}/tools
-	COMMENT "Copying NuttX config ${BOARD} and configuring"
+	COMMENT "Copying NuttX config ${NUTTX_CONFIG} and configuring"
 	)
-add_custom_target(nuttx_configure DEPENDS ${NUTTX_DIR}/.config)
 
 # verbose build settings (V=1 or VERBOSE=1)
 option(PX4_NUTTX_VERBOSE "PX4 NuttX verbose build" off)
@@ -106,11 +101,11 @@ endif()
 # context
 add_custom_command(OUTPUT ${NUTTX_DIR}/include/nuttx/version.h ${NUTTX_DIR}/include/nuttx/config.h
 	COMMAND make ${nuttx_build_options} --no-print-directory context ${nuttx_build_output}
-	DEPENDS nuttx_configure ${NUTTX_DIR}/.config
+	DEPENDS ${NUTTX_DIR}/.config
 	WORKING_DIRECTORY ${NUTTX_DIR}
 	${nuttx_build_uses_terminal}
 	)
-add_custom_target(nuttx_context DEPENDS ${NUTTX_DIR}/include/nuttx/version.h)
+add_custom_target(nuttx_context DEPENDS ${NUTTX_DIR}/include/nuttx/version.h ${NUTTX_DIR}/include/nuttx/config.h)
 
 # library of NuttX libraries
 add_library(nuttx_build INTERFACE)
@@ -126,9 +121,10 @@ if (CONFIG_NSH_LIBRARY)
 		COMMAND rm -f ${APPS_DIR}/builtin/builtin_list.h
 		COMMAND ${CMAKE_COMMAND} -E touch builtins_clean.stamp
 		DEPENDS
-			nuttx_configure
-			nuttx_context
-			${PX4_SOURCE_DIR}/cmake/configs/${CONFIG}.cmake
+			${NUTTX_DIR}/.config
+			${NUTTX_DIR}/include/nuttx/version.h
+			${NUTTX_DIR}/include/nuttx/config.h
+			${PX4_CONFIG_FILE}
 		)
 
 	foreach(module ${module_libraries})
@@ -140,7 +136,7 @@ if (CONFIG_NSH_LIBRARY)
 			add_custom_command(OUTPUT ${APPS_DIR}/builtin/registry/px4_${MAIN}_main.bdat
 				COMMAND echo "{ \"${MAIN}\", ${PRIORITY}, ${STACK_MAIN}, ${MAIN}_main }," > ${APPS_DIR}/builtin/registry/px4_${MAIN}_main.bdat
 				COMMAND ${CMAKE_COMMAND} -E touch ${APPS_DIR}/builtin/registry/.updated
-				DEPENDS nuttx_context builtins_clean.stamp
+				DEPENDS builtins_clean.stamp ${NUTTX_DIR}/include/nuttx/version.h ${NUTTX_DIR}/include/nuttx/config.h
 				VERBATIM
 				)
 			list(APPEND nuttx_builtin_list ${APPS_DIR}/builtin/registry/px4_${MAIN}_main.bdat)
@@ -148,7 +144,7 @@ if (CONFIG_NSH_LIBRARY)
 			add_custom_command(OUTPUT ${APPS_DIR}/builtin/registry/px4_${MAIN}_main.pdat
 				COMMAND echo "int ${MAIN}_main(int argc, char *argv[]);" > ${APPS_DIR}/builtin/registry/px4_${MAIN}_main.pdat
 				COMMAND ${CMAKE_COMMAND} -E touch ${APPS_DIR}/builtin/registry/.updated
-				DEPENDS nuttx_context builtins_clean.stamp
+				DEPENDS builtins_clean.stamp ${NUTTX_DIR}/include/nuttx/version.h ${NUTTX_DIR}/include/nuttx/config.h
 				VERBATIM
 				)
 			list(APPEND nuttx_builtin_list ${APPS_DIR}/builtin/registry/px4_${MAIN}_main.pdat)
@@ -163,7 +159,7 @@ endif()
 add_custom_command(OUTPUT ${APPS_DIR}/libapps.a ${APPS_DIR}/platform/.built
 	COMMAND find ${APPS_DIR} -name \*.o -delete
 	COMMAND make ${nuttx_build_options} --no-print-directory -C ../apps TOPDIR="${NUTTX_DIR}" libapps.a ${nuttx_build_output}
-	DEPENDS nuttx_context ${nuttx_builtin_list}
+	DEPENDS ${nuttx_builtin_list} ${NUTTX_DIR}/include/nuttx/version.h ${NUTTX_DIR}/include/nuttx/config.h
 	WORKING_DIRECTORY ${NUTTX_DIR}
 	${nuttx_build_uses_terminal}
 	)
@@ -182,7 +178,7 @@ function(add_nuttx_dir nuttx_lib nuttx_lib_dir kernel extra)
 	add_custom_command(OUTPUT ${NUTTX_DIR}/${nuttx_lib_dir}/lib${nuttx_lib}.a
 		COMMAND find ${nuttx_lib_dir} -type f -name *.o -delete
 		COMMAND make -C ${nuttx_lib_dir} ${nuttx_build_options} --no-print-directory all TOPDIR=${NUTTX_DIR} KERNEL=${kernel} EXTRADEFINES=${extra} ${nuttx_build_output}
-		DEPENDS ${nuttx_lib_files} nuttx_context
+		DEPENDS ${nuttx_lib_files} ${NUTTX_DIR}/include/nuttx/version.h ${NUTTX_DIR}/include/nuttx/config.h
 		WORKING_DIRECTORY ${NUTTX_DIR}
 		${nuttx_build_uses_terminal}
 		)
@@ -210,32 +206,32 @@ endif()
 
 # oldconfig helper
 add_custom_target(oldconfig
-	COMMAND make --no-print-directory --silent -C ${NUTTX_DIR} CONFIG_ARCH_BOARD=${BOARD} oldconfig
-	COMMAND cp ${NUTTX_DIR}/.config ${NUTTX_CONFIG_DIR}/${BOARD}/${nuttx_config_type}/defconfig
-	COMMAND ${PX4_SOURCE_DIR}/platforms/nuttx/NuttX/tools/nuttx_defconf_tool.sh ${NUTTX_CONFIG_DIR}/${BOARD}/${nuttx_config_type}/defconfig
-	DEPENDS nuttx_configure
+	COMMAND make --no-print-directory --silent -C ${NUTTX_DIR} CONFIG_ARCH_BOARD=${PX4_BOARD} oldconfig
+	COMMAND cp ${NUTTX_DIR}/.config ${NUTTX_CONFIG_DIR}/${NUTTX_CONFIG}/defconfig
+	COMMAND ${PX4_SOURCE_DIR}/platforms/nuttx/NuttX/tools/nuttx_defconf_tool.sh ${NUTTX_CONFIG_DIR}/${NUTTX_CONFIG}/defconfig
+	DEPENDS ${NUTTX_DIR}/.config
 	WORKING_DIRECTORY ${NUTTX_DIR}
-	COMMENT "Running NuttX make oldconfig for ${BOARD} with ${nuttx_config_type}"
+	COMMENT "Running NuttX make oldconfig for ${NUTTX_CONFIG}"
 	USES_TERMINAL
 	)
 
 # menuconfig helper
 add_custom_target(menuconfig
-	COMMAND make --no-print-directory --silent -C ${NUTTX_DIR} CONFIG_ARCH_BOARD=${BOARD} menuconfig
-	COMMAND cp ${NUTTX_DIR}/.config ${NUTTX_CONFIG_DIR}/${BOARD}/${nuttx_config_type}/defconfig
-	COMMAND cd ${PX4_SOURCE_DIR} && platforms/nuttx/NuttX/tools/nuttx_defconf_tool.sh ${NUTTX_CONFIG_DIR}/${BOARD}/${nuttx_config_type}/defconfig
-	DEPENDS nuttx_configure
+	COMMAND make --no-print-directory --silent -C ${NUTTX_DIR} CONFIG_ARCH_BOARD=${PX4_BOARD} menuconfig
+	COMMAND cp ${NUTTX_DIR}/.config ${NUTTX_CONFIG_DIR}/${NUTTX_CONFIG}/defconfig
+	COMMAND cd ${PX4_SOURCE_DIR} && platforms/nuttx/NuttX/tools/nuttx_defconf_tool.sh ${NUTTX_CONFIG_DIR}/${NUTTX_CONFIG}/defconfig
+	DEPENDS ${NUTTX_DIR}/.config
 	WORKING_DIRECTORY ${NUTTX_DIR}
-	COMMENT "Running NuttX make menuconfig for ${BOARD} with ${nuttx_config_type}"
+	COMMENT "Running NuttX make menuconfig for ${NUTTX_CONFIG}"
 	USES_TERMINAL
 	)
 
 # qconfig helper
 add_custom_target(qconfig
-	COMMAND make --no-print-directory --silent -C ${NUTTX_DIR} CONFIG_ARCH_BOARD=${BOARD} qconfig
-	COMMAND cp .config ${NUTTX_CONFIG_DIR}/${BOARD}/${nuttx_config_type}/defconfig
-	DEPENDS nuttx_configure
+	COMMAND make --no-print-directory --silent -C ${NUTTX_DIR} CONFIG_ARCH_BOARD=${PX4_BOARD} qconfig
+	COMMAND cp .config ${NUTTX_CONFIG_DIR}/${NUTTX_CONFIG}/defconfig
+	DEPENDS ${NUTTX_DIR}/.config
 	WORKING_DIRECTORY ${NUTTX_DIR}
-	COMMENT "Running NuttX make qconfig for ${BOARD} with ${nuttx_config_type}"
+	COMMENT "Running NuttX make qconfig for ${NUTTX_CONFIG}"
 	USES_TERMINAL
 	)
diff --git a/platforms/nuttx/nuttx-configs/Make.defs.in b/platforms/nuttx/NuttX/Make.defs.in
similarity index 79%
rename from platforms/nuttx/nuttx-configs/Make.defs.in
rename to platforms/nuttx/NuttX/Make.defs.in
index dc0ec85fdf..6a8234f7c0 100644
--- a/platforms/nuttx/nuttx-configs/Make.defs.in
+++ b/platforms/nuttx/NuttX/Make.defs.in
@@ -36,10 +36,10 @@
 include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
 
-CC = ${C_COMPILER}
-CXX = ${CXX_COMPILER}
-CPP = ${C_COMPILER} -E
-LD = ${LD}
+CC = ${CMAKE_C_COMPILER}
+CXX = ${CMAKE_CXX_COMPILER}
+CPP = ${CMAKE_C_COMPILER} -E
+LD = ${CMAKE_LD}
 AR = ${CMAKE_AR} rcs
 NM = ${CMAKE_NM}
 OBJCOPY = ${CMAKE_OBJCOPY}
@@ -48,12 +48,10 @@ OBJDUMP = ${CMAKE_OBJDUMP}
 # Include paths with Cygwin path conversion
 ifneq (, $(findstring CYGWIN, $(shell uname)))
   WINTOOL = y
-  PX4INCLUDES = -I"$(shell cygpath -w ${PX4_SOURCE_DIR}/src/include)"
-  ARCHINCLUDES = $(PX4INCLUDES) -I. -isystem "$(shell cygpath -w $(TOPDIR)/include)"
+  ARCHINCLUDES = -I. -isystem "$(shell cygpath -w $(TOPDIR)/include)"
   ARCHXXINCLUDES = $(ARCHINCLUDES) -isystem "$(shell cygpath -w $(TOPDIR)/include/cxx)"
 else
-  PX4INCLUDES = -I${PX4_SOURCE_DIR}/src/include
-  ARCHINCLUDES = $(PX4INCLUDES) -I. -isystem $(TOPDIR)/include
+  ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
   ARCHXXINCLUDES = $(ARCHINCLUDES) -isystem $(TOPDIR)/include/cxx
 endif
 
@@ -64,20 +62,41 @@ ifeq ($(WINTOOL),y)
   MKDEP = $(TOPDIR)/tools/mknulldeps.sh
 endif
 
+FLAGS = -Os -g2 \
+	-fdata-sections \
+	-ffunction-sections \
+	-fno-builtin-printf \
+	-fno-common \
+	-fno-strength-reduce \
+	-fno-strict-aliasing \
+	-fomit-frame-pointer \
+	-Wall \
+	-Werror \
+	-Wextra \
+	-Wlogical-op \
+	-Wno-cpp \
+	-Wno-format-truncation \
+	-Wno-maybe-uninitialized \
+	-Wno-missing-field-initializers \
+	-Wno-sign-compare \
+	-Wno-type-limits \
+	-Wno-unused-parameter \
+	-Wpointer-arith
+
 # enable precise stack overflow tracking
 ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
-  INSTRUMENTATIONDEFINES = -finstrument-functions -ffixed-r10
+	FLAGS += -finstrument-functions -ffixed-r10
 endif
 
-CFLAGS = -Os -g2 ${CMAKE_C_FLAGS} $(ARCHINCLUDES) $(INSTRUMENTATIONDEFINES) \
+CFLAGS = $(ARCHINCLUDES) \
+	-std=gnu99 \
+	${CMAKE_C_FLAGS} \
+	$(FLAGS) \
 	-Wno-bad-function-cast \
-	-Wno-cpp \
 	-Wno-float-equal \
-	-Wno-format-truncation \
 	-Wno-implicit-fallthrough \
 	-Wno-implicit-function-declaration \
 	-Wno-logical-op \
-	-Wno-maybe-uninitialized \
 	-Wno-missing-declarations \
 	-Wno-missing-field-initializers \
 	-Wno-missing-prototypes \
@@ -87,11 +106,15 @@ CFLAGS = -Os -g2 ${CMAKE_C_FLAGS} $(ARCHINCLUDES) $(INSTRUMENTATIONDEFINES) \
 	-Wno-sign-compare \
 	-Wno-type-limits
 
-CXXFLAGS = -Os -g2 ${CMAKE_CXX_FLAGS} $(ARCHXXINCLUDES) $(INSTRUMENTATIONDEFINES) \
+CXXFLAGS = $(ARCHXXINCLUDES) \
+	-std=gnu++11 \
+	${CMAKE_CXX_FLAGS} \
+	$(FLAGS) \
 	-fcheck-new \
 	-fno-builtin \
+	-fno-exceptions \
+	-fno-rtti \
 	-Wno-double-promotion \
-	-Wno-maybe-uninitialized \
 	-Wno-missing-declarations
 
 AFLAGS = $(CFLAGS) -D__ASSEMBLY__
diff --git a/platforms/nuttx/nuttx-configs/aerocore2/include/nsh_romfsimg.h b/platforms/nuttx/NuttX/nsh_romfsimg.h
similarity index 100%
rename from platforms/nuttx/nuttx-configs/aerocore2/include/nsh_romfsimg.h
rename to platforms/nuttx/NuttX/nsh_romfsimg.h
diff --git a/platforms/nuttx/NuttX/tools/new_nuttx_px_config.sh b/platforms/nuttx/NuttX/tools/new_nuttx_px_config.sh
deleted file mode 100755
index 1a24f337ce..0000000000
--- a/platforms/nuttx/NuttX/tools/new_nuttx_px_config.sh
+++ /dev/null
@@ -1,173 +0,0 @@
-#! /bin/bash
-
-function fatal
-{
-	echo "$0: ERROR: $*"
-	exit 1
-}
-
-# Find out what the base directory is.
-BASEDIR="$(dirname $(dirname $(readlink -en "$0")))"
-echo "BASEDIR=\"$BASEDIR\""
-striplen=$((${#BASEDIR} + 2))
-
-# BASEDIR may not contain a space, that's just too hard to get to work.
-expr index "$BASEDIR" " " >/dev/null && fatal "it is not supported that BASEDIR contains a space."
-
-# Make sure that worked.
-test -f $BASEDIR/cmake/posix/px4_impl_posix.cmake || fatal "Failed to determine BASEDIR: '\$BASEDIR/cmake/posix/px4_impl_posix.cmake' is not a regular file."
-
-# Did we get two arguments?
-if [[ $# -lt 2 ]]; then
-	echo "Usage:"
-	echo "  $0 PROTOTYPE NEWNAME"
-	echo
-	echo "For example: $0 px4fmu-v4 awesome_new_board-v2"
-	exit 1
-fi
-
-# Parse command line parameters.
-oldname=
-newname=
-while [[ $# -gt 0 ]]
-do
-	case $1 in
-		-*)
-			fatal "Unknown option $1"
-			;;
-		*)
-			if [ -z "$oldname" ]; then
-				oldname="$1"
-			elif [ -z "$newname" ]; then
-				newname="$1"
-			else
-				fatal "Too many arguments."
-			fi
-			;;
-	esac
-	shift
-done
-
-echo "PROTOTYPE = \"$oldname\""
-
-# Does that look like an existing old name?
-if [ ! -f $BASEDIR/platforms/nuttx/Images/$oldname.prototype ]; then
-	fatal "\"$oldname\" doesn't look like an existing board name (there is no $BASEDIR/platforms/nuttx/Images/$oldname.prototype)"
-fi
-if [ ! -d $BASEDIR/src/drivers/boards/$oldname ]; then
-	fatal "\"$oldname\" doesn't look like an existing board name (no such directory $BASEDIR/src/drivers/boards/$oldname)"
-fi
-if [ ! -f $BASEDIR/cmake/configs/nuttx_"$oldname"_default.cmake -a ! -f $BASEDIR/cmake/configs/nuttx_"$oldname"_bootloader.cmake ]; then
-	fatal "\"$oldname\" doesn't look like an existing board name (there is neither a $BASEDIR/cmake/configs/nuttx_"$oldname"_default.cmake nor a $BASEDIR/cmake/configs/nuttx_"$oldname"_bootloader.cmake)"
-fi
-if [ ! -d $BASEDIR/platforms/nuttx/nuttx-configs/$oldname ]; then
-	fatal "\"$oldname\" doesn't look like an existing board name (no such directory $BASEDIR/platforms/nuttx/nuttx-configs/$oldname)"
-fi
-
-# Does the new name look like a new name?
-if [[ $newname =~ ^[[:alnum:]_-]+$ ]]; then
-	echo "NEWNAME = \"$newname\""
-else
-	fatal "NEWNAME may only contain alpha numeric characters, a dash or an underscore."
-fi
-
-# Change directory to BASEDIR.
-cd "$BASEDIR" || fatal "Could not change directory to $BASEDIR"
-
-# Make sure we don't accidently overwrite stuff.
-if [ -f platforms/nuttx/Images/$newname.prototype -o \
-     -f cmake/configs/nuttx_"$newname"_default.cmake -o \
-     -f cmake/configs/nuttx_"$newname"_bootloader.cmake -o \
-     -d src/drivers/boards/$newname -o \
-     -d nuttx-configs/$newname ]; then
-  echo "\"$newname\" already exists! Please first delete it with the following command (in $BASEDIR):"
-  echo "rm -rf platforms/nuttx/Images/$newname.prototype cmake/configs/nuttx_"$newname"_default.cmake cmake/configs/nuttx_"$newname"_bootloader.cmake src/drivers/boards/$newname nuttx-configs/$newname"
-  exit 1
-fi
-
-# Capitalize names.
-oldboard=$(echo "$oldname" | tr '[:lower:]-' '[:upper:]_')
-newboard=$(echo "$newname" | tr '[:lower:]-' '[:upper:]_')
-
-# Do we have a default and/or bootloader?
-[ ! -e cmake/configs/nuttx_"$oldname"_default.cmake ]; have_default=$?
-[ ! -e cmake/configs/nuttx_"$oldname"_bootloader.cmake ]; have_bootloader=$?
-
-function insertAfter # file line newText
-{
-   local file="$1" line="$2" newText="$3"
-   sed -i -e "/$line/a"$'\\\n'"$newText" "$file"
-}
-
-for k in default bootloader; do
-	eval needit=\$have_$k;
-	if [[ $needit -eq 1 ]]; then
-		# Copy cmake/configs/file(s).
-		cp "cmake/configs/nuttx_${oldname}_${k}.cmake" "cmake/configs/nuttx_${newname}_${k}.cmake"
-		git add "cmake/configs/nuttx_${newname}_${k}.cmake"
-		sed -i -e "s%drivers/boards/${oldname}%drivers/boards/${newname}%" "cmake/configs/nuttx_${newname}_${k}.cmake"
-		# If Makefile does not already have it, add 'check_$newname_[default|bootloader]'
-		# to targets checks_[default|bootloader]s respectivily.
-		if ! grep '^'$'\t'"check_${newname}_${k}"' \\$' Makefile >/dev/null; then
-			insertAfter Makefile "^checks_${k}s:" $'\t'"check_${newname}_${k}"' \\'
-		fi
-	fi
-done
-
-# Copy remaining files.
-cp platforms/nuttx/Images/${oldname}.prototype platforms/nuttx/Images/${newname}.prototype
-git add platforms/nuttx/Images/${newname}.prototype
-cp -r nuttx-configs/${oldname} nuttx-configs/${newname}
-git add nuttx-configs/${newname}
-cp -r src/drivers/boards/${oldname} src/drivers/boards/${newname}
-git add src/drivers/boards/${newname}
-if [[ $have_bootloader -eq 1 ]]; then
-	cp cmake/configs/uavcan_board_ident/${oldname}.cmake cmake/configs/uavcan_board_ident/${newname}.cmake
-	git add cmake/configs/uavcan_board_ident/${newname}.cmake
-	sed -i -r -e 's%\\"([^\\]*)\\"%\\"FIXME (was: \1)\\"%' cmake/configs/uavcan_board_ident/${newname}.cmake
-fi
-
-# Rename certain files.
-
-TYPE_RE='(buttons|can|timer_config|i2c|init|led|pwr|sdio|spi|usb)'
-oldstem=$(find "src/drivers/boards/$oldname" -type f -name '*.c' -o -name '*.cpp' | grep -E "_$TYPE_RE.[cp]*$" | sed -r -e 's%.*/%%;s%_'"$TYPE_RE"'\.[cp]*$%%' | sort -u | head -n 1)
-newstem=$(echo "$newname" | sed -e 's/-v[0-9]*$//' | tr '[:upper:]-' '[:lower:]_')
-
-echo "oldstem=\"$oldstem\""
-echo "newstem=\"$newstem\""
-
-FILES=$(find src/drivers/boards/${newname} -regextype egrep -regex ".*/$oldstem[0-9]*_$TYPE_RE\.[cp]*")
-for f in $FILES; do
-	nf=$(echo $f | sed -r -e 's%^(.*/)'"$oldstem"'([0-9]*_'"$TYPE_RE"'\.[cp]*)$%\1'"$newstem"'\2%')
-	if [[ "$f" != "$nf" ]]; then
-		git mv "$f" "$nf"
-	fi
-	git add "$nf"
-	bf=$(basename "$f")
-	bnf=$(basename "$nf")
-	sed -i -e "s%$bf%$bnf%" "$nf"
-done
-
-oldconfig=CONFIG_ARCH_BOARD_$oldboard
-newconfig=CONFIG_ARCH_BOARD_$newboard
-
-# Fixup copied files.
-sed -i -r -e 's%(MODULE[[:space:]]+.*)'"$oldname"'%\1'"$newname"'%;s%^([[:space:]]+)'"$oldstem"'([0-9]*_'"$TYPE_RE"'\.)%\1'"$newstem"'\2%' "src/drivers/boards/${newname}/CMakeLists.txt"
-sed -i -r -e 's%"'"$oldboard"'"%"'"$newboard"'"%' "src/drivers/boards/${newname}/board_config.h"
-sed -i -r -e 's%'"$oldname"'%'"$newname"'%' "nuttx-configs/${newname}/nsh/Make.defs"
-sed -i -r -e 's%'"$oldname"'%'"$newname"'%;s%'"$oldconfig"'%'"$newconfig"'%;s%(CONFIG_CDCACM_PRODUCTSTR=)"([^"]*)"%\1"FIXME (was: \2)"%' "nuttx-configs/${newname}/nsh/defconfig"
-
-# If src/modules/gpio_led/gpio_led.c does not already contain it,
-# add defined($newconfig) where defined($oldconfig) exists.
-if ! grep 'defined('"${newconfig}"')' 'src/modules/gpio_led/gpio_led.c' >/dev/null; then
-	insertAfter src/modules/gpio_led/gpio_led.c "defined(${oldconfig})"' || \\$' $'\t'"defined(${newconfig})"' || \\'
-	sed -i -e 's/\(defined('"${oldconfig}"')$\)/\1 || \\'$'\\n\\t'"defined(${newconfig})/" 'src/modules/gpio_led/gpio_led.c'
-fi
-
-# Make some changes to platforms/nuttx/Images/$(newname).prototype
-sed -i -r -e 's%("(magic|description|summary)": ")([^"]*)(",).*%\1FIXME (was: \3)\4%' "platforms/nuttx/Images/${newname}.prototype"
-
-echo "*** The following files contain a reference to $oldconfig (this might take a while):"
-find . -path './build/*' -o -path './.git' -o -name 'defconfig' -prune -o -type f -exec grep -l -- "$oldconfig" {} \;
-echo "*** Run 'git diff' to check the changes that this script already made relative to the copied prototype files."
-echo "*** Use 'git status' to see other (added) files, that likely need fixing."
diff --git a/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m3.cmake b/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m3.cmake
new file mode 100644
index 0000000000..7bd10f10c7
--- /dev/null
+++ b/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m3.cmake
@@ -0,0 +1,6 @@
+
+set(cpu_flags "-mcpu=cortex-m3 -mthumb -march=armv7-m")
+
+set(CMAKE_C_FLAGS "${cpu_flags}")
+set(CMAKE_CXX_FLAGS "${cpu_flags}")
+set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
diff --git a/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m4.cmake b/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m4.cmake
new file mode 100644
index 0000000000..65bcaa4e8e
--- /dev/null
+++ b/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m4.cmake
@@ -0,0 +1,6 @@
+
+set(cpu_flags "-mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard")
+
+set(CMAKE_C_FLAGS "${cpu_flags}")
+set(CMAKE_CXX_FLAGS "${cpu_flags}")
+set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
diff --git a/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m7.cmake b/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m7.cmake
new file mode 100644
index 0000000000..acf074ed8b
--- /dev/null
+++ b/platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m7.cmake
@@ -0,0 +1,6 @@
+
+set(cpu_flags "-mcpu=cortex-m7 -mthumb -mfpu=fpv5-sp-d16 -mfloat-abi=hard")
+
+set(CMAKE_C_FLAGS "${cpu_flags}")
+set(CMAKE_CXX_FLAGS "${cpu_flags}")
+set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
diff --git a/platforms/nuttx/cmake/Toolchain-arm-none-eabi.cmake b/platforms/nuttx/cmake/Toolchain-arm-none-eabi.cmake
new file mode 100644
index 0000000000..7378b8b592
--- /dev/null
+++ b/platforms/nuttx/cmake/Toolchain-arm-none-eabi.cmake
@@ -0,0 +1,48 @@
+# arm-none-eabi-gcc toolchain
+
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMAKE_SYSTEM_VERSION 1)
+
+set(triple arm-none-eabi)
+set(CMAKE_LIBRARY_ARCHITECTURE ${triple})
+set(TOOLCHAIN_PREFIX ${triple})
+
+set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
+set(CMAKE_C_COMPILER_TARGET ${triple})
+
+set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
+set(CMAKE_CXX_COMPILER_TARGET ${triple})
+
+set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
+
+# needed for test compilation
+set(CMAKE_EXE_LINKER_FLAGS_INIT "--specs=nosys.specs")
+
+# compiler tools
+foreach(tool nm ld objcopy ranlib strip)
+	string(TOUPPER ${tool} TOOL)
+	find_program(CMAKE_${TOOL} ${TOOLCHAIN_PREFIX}-${tool})
+	if(CMAKE-${TOOL} MATCHES "NOTFOUND")
+		message(FATAL_ERROR "could not find ${TOOLCHAIN_PREFIX}-${tool}")
+	endif()
+endforeach()
+
+set(CMAKE_FIND_ROOT_PATH get_file_component(${CMAKE_C_COMPILER} PATH))
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+# os tools
+foreach(tool grep genromfs make)
+	string(TOUPPER ${tool} TOOL)
+	find_program(${TOOL} ${tool})
+	if(NOT ${TOOL})
+		message(FATAL_ERROR "could not find ${tool}")
+	endif()
+endforeach()
+
+# optional compiler tools
+foreach(tool gdb gdbtui)
+	string(TOUPPER ${tool} TOOL)
+	find_program(${TOOL} arm-none-eabi-${tool})
+endforeach()
diff --git a/platforms/nuttx/cmake/px4_add_board_os.cmake b/platforms/nuttx/cmake/px4_add_board_os.cmake
new file mode 100644
index 0000000000..052a4912c9
--- /dev/null
+++ b/platforms/nuttx/cmake/px4_add_board_os.cmake
@@ -0,0 +1,130 @@
+############################################################################
+#
+# Copyright (c) 2018 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.
+#
+############################################################################
+
+#=============================================================================
+#
+#	Defined functions in this file
+#
+# 	utility functions
+#
+#		* px4_add_board_os
+#
+
+include(px4_base)
+
+#=============================================================================
+#
+#	px4_add_board_os
+#
+#	This function creates a PX4 board.
+#
+#	Usage:
+#		px4_add_board_os(
+#			BOARD <string>
+#			OS <string>
+#			[ TOOLCHAIN ] <string>
+#			)
+#
+#	Input:
+#		BOARD		: name of board
+#		OS			: posix, nuttx, qurt
+#
+#
+#	Example:
+#		px4_add_board_os(
+#			BOARD px4fmu-v2_default
+#			OS nuttx
+#			)
+#
+function(px4_add_board_os)
+
+	px4_parse_function_args(
+		NAME px4_add_board_os
+		ONE_VALUE
+			VENDOR
+			MODEL
+			LABEL
+			BOARD_OVERRIDE
+			PLATFORM
+			TOOLCHAIN
+			ARCH
+			ROMFSROOT
+			IO
+			BOOTLOADER
+			UAVCAN_INTERFACES
+		MULTI_VALUE
+			DRIVERS
+			MODULES
+			SYSTEMCMDS
+			EXAMPLES
+			SERIAL_PORTS
+			DF_DRIVERS # DriverFramework drivers
+		OPTIONS
+			CONSTRAINED_FLASH
+			ROMFS
+			TESTING
+		ARGN ${ARGN})
+
+	if(NOT CMAKE_TOOLCHAIN_FILE)
+		set(CMAKE_TOOLCHAIN_FILE Toolchain-arm-none-eabi CACHE INTERNAL "toolchain file" FORCE)
+	endif()
+
+	if(LABEL MATCHES "stackcheck")
+		set(NUTTX_CONFIG "stackcheck" CACHE INTERNAL "NuttX config" FORCE)
+	else()
+		set(NUTTX_CONFIG "nsh" CACHE INTERNAL "NuttX config" FORCE)
+	endif()
+
+	# ROMFS
+	if(ROMFS)
+		if (NOT DEFINED ROMFSROOT)
+			set(config_romfs_root px4fmu_common)
+		else()
+			set(config_romfs_root ${ROMFSROOT})
+		endif()
+		set(config_romfs_root ${config_romfs_root} CACHE INTERNAL "ROMFS root" FORCE)
+	endif()
+
+	# IO board placed in ROMFS
+	if(IO)
+		set(config_io_board ${IO} CACHE INTERNAL "IO" FORCE)
+	endif()
+
+	if(UAVCAN_INTERFACES)
+		set(config_uavcan_num_ifaces ${UAVCAN_INTERFACES} CACHE INTERNAL "UAVCAN interfaces" FORCE)
+	endif()
+
+	include(px4_impl_os)
+	px4_os_prebuild_targets(OUT prebuild_targets BOARD ${PX4_BOARD})
+
+endfunction()
diff --git a/platforms/nuttx/cmake/px4_impl_os.cmake b/platforms/nuttx/cmake/px4_impl_os.cmake
index d46e0bba64..9472ac7704 100644
--- a/platforms/nuttx/cmake/px4_impl_os.cmake
+++ b/platforms/nuttx/cmake/px4_impl_os.cmake
@@ -35,85 +35,13 @@
 #
 #	Defined functions in this file
 #
-#	OS Specific Functions
-#
-#		* px4_nuttx_make_uavcan_bootloadable
-#
-#	Required OS Inteface Functions
+#	Required OS Interface Functions
 #
 #		* px4_os_add_flags
 #		* px4_os_prebuild_targets
 #
 
-include(common/px4_base)
-
-#=============================================================================
-#
-#	px4_nuttx_make_uavcan_bootloadable
-#
-#	This function adds a uavcan boot loadable target.
-#
-#	Usage:
-#	  px4_nuttx_make_uavcan_bootloadable(
-#	   BOARD	<board>
-#	   BIN <input bin file>)
-#	   HWNAME <uavcan name>
-#	   HW_MAJOR <number>
-#	   HW_MINOR <number>
-#	   SW_MAJOR <number>
-#	   SW_MINOR <number>)
-#
-#	Input:
-#	  BOARD	     : the board
-#	  BIN	     : the bin file to generate the bootloadable image from
-#	  HWNAME     : the uavcan name
-#	  HW_MAJOR   : the major hardware revision
-#	  HW_MINOR   : the minor hardware revision
-#	  SW_MAJOR   : the major software revision
-#	  SW_MINOR   : the minor software revision
-#
-#	Output:
-#		OUT			: None
-#
-#	Example:
-#	px4_nuttx_make_uavcan_bootloadable(
-#	  BOARD ${BOARD}
-#		BIN ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
-#		HWNAME ${uavcanblid_name}
-#		HW_MAJOR ${uavcanblid_hw_version_major}
-#		HW_MINOR ${uavcanblid_hw_version_minor}
-#		SW_MAJOR ${uavcanblid_sw_version_major}
-#		SW_MINOR ${uavcanblid_sw_version_minor}
-#	 )
-#
-function(px4_nuttx_make_uavcan_bootloadable)
-	px4_parse_function_args(
-		NAME px4_nuttx_make_uavcan_bootloadable
-		ONE_VALUE BOARD BIN HWNAME HW_MAJOR HW_MINOR SW_MAJOR SW_MINOR
-		REQUIRED BOARD BIN HWNAME HW_MAJOR HW_MINOR SW_MAJOR SW_MINOR
-		ARGN ${ARGN})
-
-	string(REPLACE "\"" "" HWNAME ${HWNAME})
-
-	execute_process(
-		COMMAND git rev-list HEAD --max-count=1 --abbrev=8 --abbrev-commit
-		OUTPUT_VARIABLE uavcanbl_git_desc
-		OUTPUT_STRIP_TRAILING_WHITESPACE
-		WORKING_DIRECTORY ${PX4_SOURCE_DIR}
-	)
-
-	if ("${uavcanbl_git_desc}" STREQUAL "")
-		set(uavcanbl_git_desc ffffffff)
-	endif()
-	set(uavcan_bl_imange_name ${HWNAME}-${HW_MAJOR}.${HW_MINOR}-${SW_MAJOR}.${SW_MINOR}.${uavcanbl_git_desc}.uavcan.bin)
-	message(STATUS "Generating UAVCAN Bootable as ${uavcan_bl_imange_name}")
-	add_custom_command(OUTPUT ${uavcan_bl_imange_name}
-		COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/make_can_boot_descriptor.py
-			-v --use-git-hash ${BIN} ${uavcan_bl_imange_name}
-		DEPENDS ${BIN}
-		)
-	add_custom_target(build_uavcan_bl_${BOARD} ALL DEPENDS ${uavcan_bl_imange_name})
-endfunction()
+include(px4_base)
 
 #=============================================================================
 #
@@ -163,11 +91,11 @@ function(px4_os_add_flags)
 	px4_parse_function_args(
 		NAME px4_os_add_flags
 		ONE_VALUE ${inout_vars} BOARD
-		REQUIRED ${inout_vars} BOARD
+		REQUIRED ${inout_vars}
 		ARGN ${ARGN})
 
 	px4_add_common_flags(
-		BOARD ${BOARD}
+		BOARD ${PX4_BOARD}
 		C_FLAGS ${C_FLAGS}
 		CXX_FLAGS ${CXX_FLAGS}
 		OPTIMIZATION_FLAGS ${OPTIMIZATION_FLAGS}
@@ -217,7 +145,7 @@ endfunction()
 #	px4_os_prebuild_targets
 #
 #	This function generates os dependent targets
-
+#
 #	Usage:
 #		px4_os_prebuild_targets(
 #			OUT <out-list_of_targets>
@@ -237,15 +165,15 @@ function(px4_os_prebuild_targets)
 	px4_parse_function_args(
 			NAME px4_os_prebuild_targets
 			ONE_VALUE OUT BOARD
-			REQUIRED OUT BOARD
+			REQUIRED OUT
 			ARGN ${ARGN})
 
-	add_library(${OUT} INTERFACE)
-	target_link_libraries(${OUT} INTERFACE nuttx_cxx nuttx_c nuttx_fs nuttx_mm nuttx_sched m gcc)
-	add_dependencies(${OUT} DEPENDS nuttx_context uorb_headers)
+	add_library(prebuild_targets INTERFACE)
+	target_link_libraries(prebuild_targets INTERFACE nuttx_cxx nuttx_c nuttx_fs nuttx_mm nuttx_sched m gcc)
+	add_dependencies(prebuild_targets DEPENDS nuttx_context uorb_headers)
 
 	# parse nuttx config options for cmake
-	file(STRINGS ${PX4_SOURCE_DIR}/platforms/nuttx/nuttx-configs/${BOARD}/${nuttx_config_type}/defconfig ConfigContents)
+	file(STRINGS ${PX4_BOARD_DIR}/nuttx-config/${NUTTX_CONFIG}/defconfig ConfigContents)
 	foreach(NameAndValue ${ConfigContents})
 		# Strip leading spaces
 		string(REGEX REPLACE "^[ ]+" "" NameAndValue ${NameAndValue})
@@ -261,72 +189,8 @@ function(px4_os_prebuild_targets)
 			string(REPLACE "\"" "" Value ${Value})
 
 			# Set the variable
-			set(${Name} ${Value} PARENT_SCOPE)
+			#message(STATUS "${Name} ${Value}")
+			set(${Name} ${Value} CACHE INTERNAL "NUTTX DEFCONFIG: ${Name}" FORCE)
 		endif()
 	endforeach()
 endfunction()
-
-#=============================================================================
-#
-#	px4_nuttx_configure
-#
-#	This function sets the nuttx configuration
-#
-#	Usage:
-#		px4_nuttx_configure(
-#	    HWCLASS <m3|m4>
-#		  [ROMFS <y|n>
-#		  ROMFSROOT <root>]
-#			)
-#
-#	Input:
-#	  HWCLASS		: the class of hardware
-#	  CONFIG		: the nuttx configuration to use
-#	  ROMFS			: whether or not to use incllude theROMFS
-#	  ROMFSROOT		: If ROMFS used set the root the default is px4fmu_common
-#
-#	Output:
-#		OUT	: None
-#
-#	Example:
-#		px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y)
-#
-function(px4_nuttx_configure)
-	px4_parse_function_args(
-			NAME px4_nuttx_configure
-			ONE_VALUE HWCLASS CONFIG ROMFS ROMFSROOT IO
-			REQUIRED HWCLASS
-			ARGN ${ARGN})
-
-	# HWCLASS -> CMAKE_SYSTEM_PROCESSOR
-	if(HWCLASS STREQUAL "m7")
-		set(CMAKE_SYSTEM_PROCESSOR "cortex-m7" PARENT_SCOPE)
-	elseif(HWCLASS STREQUAL "m4")
-		set(CMAKE_SYSTEM_PROCESSOR "cortex-m4" PARENT_SCOPE)
-	elseif(HWCLASS STREQUAL "m3")
-		set(CMAKE_SYSTEM_PROCESSOR "cortex-m3" PARENT_SCOPE)
-	endif()
-	set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR} CACHE INTERNAL "system processor" FORCE)
-	set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake CACHE INTERNAL "toolchain file" FORCE)
-
-	if (CONFIG)
-		set(nuttx_config_type ${CONFIG})
-		set(nuttx_config_type ${nuttx_config_type} PARENT_SCOPE)
-	endif()
-
-	# ROMFS
-	if("${ROMFS}" STREQUAL "y")
-		if (NOT DEFINED ROMFSROOT)
-			set(config_romfs_root px4fmu_common)
-		else()
-			set(config_romfs_root ${ROMFSROOT})
-		endif()
-		set(config_romfs_root ${config_romfs_root} PARENT_SCOPE)
-	endif()
-
-	# IO board placed in ROMFS
-	if(config_romfs_root)
-		set(config_io_board ${IO} PARENT_SCOPE)
-	endif()
-endfunction()
-
diff --git a/platforms/nuttx/nuttx-configs/auav-x21/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/auav-x21/include/nsh_romfsimg.h
deleted file mode 100644
index 15e4e7a8d5..0000000000
--- a/platforms/nuttx/nuttx-configs/auav-x21/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2013 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/av-x-v1/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/av-x-v1/include/nsh_romfsimg.h
deleted file mode 100644
index beb1a924cf..0000000000
--- a/platforms/nuttx/nuttx-configs/av-x-v1/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2016 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/crazyflie/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/crazyflie/include/nsh_romfsimg.h
deleted file mode 100644
index 15e4e7a8d5..0000000000
--- a/platforms/nuttx/nuttx-configs/crazyflie/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2013 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/mindpx-v2/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/mindpx-v2/include/nsh_romfsimg.h
deleted file mode 100644
index 15e4e7a8d5..0000000000
--- a/platforms/nuttx/nuttx-configs/mindpx-v2/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2013 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/nxphlite-v3/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/nxphlite-v3/include/nsh_romfsimg.h
deleted file mode 100644
index 78a11ced5e..0000000000
--- a/platforms/nuttx/nuttx-configs/nxphlite-v3/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2016, 2017 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/omnibus-f4sd/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/omnibus-f4sd/include/nsh_romfsimg.h
deleted file mode 100644
index a382a57fa6..0000000000
--- a/platforms/nuttx/nuttx-configs/omnibus-f4sd/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2018 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/Kconfig b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/Kconfig
deleted file mode 100644
index 42f0796535..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/Kconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see misc/tools/kconfig-language.txt.
-#
-
-if ARCH_BOARD_PX4_SAME70XPLAINED_V1
-
-config BOARD_HAS_PROBES
-	bool "Board provides GPIO or other Hardware for signaling to timing analyze."
-	default y
-	---help---
-		This board provides GPIO FMU-CH1-4 as PROBE_1-4 to provide timing signals from selected drivers.
-
-config BOARD_USE_PROBES
-	bool "Enable the use the board provided GPIO FMU-CH1-4 as PROBE_1-4 to provide timing signals from selected drivers"
-	default n
-	depends on BOARD_HAS_PROBES
-
-	---help---
-		Select to use GPIO FMU-CH1-4 to provide timing signals from selected drivers.
-
-endif
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/include/nsh_romfsimg.h
deleted file mode 100644
index 15e4e7a8d5..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2013 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/nsh/setenv.sh b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/nsh/setenv.sh
deleted file mode 100755
index 45dc13b84f..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/nsh/setenv.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-# configs/samv7-xult/nsh/Make.defs
-#
-#   Copyright (C) 2015 Gregory Nutt. All rights reserved.
-#   Author: Gregory Nutt <gnutt@nuttx.org>
-#
-# 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 NuttX 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.
-#
-
-if [ "$_" = "$0" ] ; then
-  echo "You must source this script, not run it!" 1>&2
-  exit 1
-fi
-
-WD=`pwd`
-if [ ! -x "setenv.sh" ]; then
-  echo "This script must be executed from the top-level NuttX build directory"
-  exit 1
-fi
-
-if [ -z "${PATH_ORIG}" ]; then
-  export PATH_ORIG="${PATH}"
-fi
-
-# This is the Cygwin path to the location where I installed the Atmel GCC
-# toolchain under Windows.  You will also have to edit this if you install
-# this toolchain in any other location
-#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atmel/Atmel Toolchain/ARM GCC/Native/4.7.3.99/arm-gnu-toolchain/bin"
-
-# This is the Cygwin path to the location where I installed the CodeSourcery
-# toolchain under windows.  You will also have to edit this if you install
-# the CodeSourcery toolchain in any other location
-#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
-#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
-# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
-
-# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors"
-# You can this free toolchain here https://launchpad.net/gcc-arm-embedded
-export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin"
-
-# This is the path to the location where I installed the devkitARM toolchain
-# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/
-#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin"
-
-# This is the Cygwin path to the location where I build the buildroot
-# toolchain.
-# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin"
-
-# The same70-xplained/tools directory
-export TOOL_DIR="${WD}/configs/same70-xplained/tools"
-
-# Add the path to the toolchain and tools directory to the PATH varialble
-export PATH="${TOOLCHAIN_BIN}:${TOOL_DIR}:/sbin:/usr/sbin:${PATH_ORIG}"
-
-echo "PATH : ${PATH}"
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/flash-dtcm.ld b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/flash-dtcm.ld
deleted file mode 100644
index 83bb3fb0f8..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/flash-dtcm.ld
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
- * configs/same70-xplained/scripts/flash-dtcm.ld
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 NuttX 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.
- *
- ****************************************************************************/
-
-/* The SAME70Q21 has 2048Kb of FLASH beginning at address 0x0040:0000 and
- * 384Kb of SRAM beginining at 0x2040:0000
- *
- * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000
- * where the code expects to begin execution by jumping to the entry point in
- * the 0x0400:0000 address range (Assuming that ITCM is not enable).
- *
- * NOTE: that the DTCM address of 0x2000:0000 is used for SRAM.  If DTCM is
- * disabled, then the accesses will actually occur on the AHB bus.
- */
-
-MEMORY
-{
-	flash (rx) : ORIGIN = 0x00400000, LENGTH = 2048K
-	sram (rwx) : ORIGIN = 0x20000000, LENGTH = 384K
-}
-
-OUTPUT_ARCH(arm)
-EXTERN(_vectors)
-ENTRY(_stext)
-
-SECTIONS
-{
-	.text : {
-		_stext = ABSOLUTE(.);
-		*(.vectors)
-		*(.text .text.*)
-		*(.fixup)
-		*(.gnu.warning)
-		*(.rodata .rodata.*)
-		*(.gnu.linkonce.t.*)
-		*(.glue_7)
-		*(.glue_7t)
-		*(.got)
-		*(.gcc_except_table)
-		*(.gnu.linkonce.r.*)
-		_etext = ABSOLUTE(.);
-	} > flash
-
-	.init_section : {
-		_sinit = ABSOLUTE(.);
-		*(.init_array .init_array.*)
-		_einit = ABSOLUTE(.);
-	} > flash
-
-	.ARM.extab : {
-		*(.ARM.extab*)
-	} > flash
-
-	__exidx_start = ABSOLUTE(.);
-	.ARM.exidx : {
-		*(.ARM.exidx*)
-	} > flash
-	__exidx_end = ABSOLUTE(.);
-
-	_eronly = ABSOLUTE(.);
-
-	.data : {
-		_sdata = ABSOLUTE(.);
-		*(.data .data.*)
-		*(.gnu.linkonce.d.*)
-		CONSTRUCTORS
-		_edata = ABSOLUTE(.);
-	} > sram AT > flash
-
-	.bss : {
-		_sbss = ABSOLUTE(.);
-		*(.bss .bss.*)
-		*(.gnu.linkonce.b.*)
-		*(COMMON)
-		. = ALIGN(4);
-		_ebss = ABSOLUTE(.);
-	} > sram
-
-	/* Stabs debugging sections. */
-	.stab 0 : { *(.stab) }
-	.stabstr 0 : { *(.stabstr) }
-	.stab.excl 0 : { *(.stab.excl) }
-	.stab.exclstr 0 : { *(.stab.exclstr) }
-	.stab.index 0 : { *(.stab.index) }
-	.stab.indexstr 0 : { *(.stab.indexstr) }
-	.comment 0 : { *(.comment) }
-	.debug_abbrev 0 : { *(.debug_abbrev) }
-	.debug_info 0 : { *(.debug_info) }
-	.debug_line 0 : { *(.debug_line) }
-	.debug_pubnames 0 : { *(.debug_pubnames) }
-	.debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/flash-sram.ld b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/flash-sram.ld
deleted file mode 100644
index 075933f6ae..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/flash-sram.ld
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- * configs/same70-xplained/scripts/flash-sram.ld
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 NuttX 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.
- *
- ****************************************************************************/
-
-/* The SAME70Q21 has 2048Kb of FLASH beginning at address 0x0040:0000 and
- * 384Kb of SRAM beginining at 0x2040:0000
- *
- * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000
- * where the code expects to begin execution by jumping to the entry point in
- * the 0x0400:0000 address range (Assuming that ITCM is not enable).
- */
-
-MEMORY
-{
-	flash (rx) : ORIGIN = 0x00400000, LENGTH = 2048K
-	sram (rwx) : ORIGIN = 0x20400000, LENGTH = 384K
-}
-
-OUTPUT_ARCH(arm)
-EXTERN(_vectors)
-ENTRY(_stext)
-
-SECTIONS
-{
-	.text : {
-		_stext = ABSOLUTE(.);
-		*(.vectors)
-		*(.text .text.*)
-		*(.fixup)
-		*(.gnu.warning)
-		*(.rodata .rodata.*)
-		*(.gnu.linkonce.t.*)
-		*(.glue_7)
-		*(.glue_7t)
-		*(.got)
-		*(.gcc_except_table)
-		*(.gnu.linkonce.r.*)
-		_etext = ABSOLUTE(.);
-	} > flash
-
-	.init_section : {
-		_sinit = ABSOLUTE(.);
-		*(.init_array .init_array.*)
-		_einit = ABSOLUTE(.);
-	} > flash
-
-	.ARM.extab : {
-		*(.ARM.extab*)
-	} > flash
-
-	__exidx_start = ABSOLUTE(.);
-	.ARM.exidx : {
-		*(.ARM.exidx*)
-	} > flash
-	__exidx_end = ABSOLUTE(.);
-
-	_eronly = ABSOLUTE(.);
-
-	.data : {
-		_sdata = ABSOLUTE(.);
-		*(.data .data.*)
-		*(.gnu.linkonce.d.*)
-		CONSTRUCTORS
-		_edata = ABSOLUTE(.);
-	} > sram AT > flash
-
-	.bss : {
-		_sbss = ABSOLUTE(.);
-		*(.bss .bss.*)
-		*(.gnu.linkonce.b.*)
-		*(COMMON)
-		. = ALIGN(4);
-		_ebss = ABSOLUTE(.);
-	} > sram
-
-	/* Stabs debugging sections. */
-	.stab 0 : { *(.stab) }
-	.stabstr 0 : { *(.stabstr) }
-	.stab.excl 0 : { *(.stab.excl) }
-	.stab.exclstr 0 : { *(.stab.exclstr) }
-	.stab.index 0 : { *(.stab.index) }
-	.stab.indexstr 0 : { *(.stab.indexstr) }
-	.comment 0 : { *(.comment) }
-	.debug_abbrev 0 : { *(.debug_abbrev) }
-	.debug_info 0 : { *(.debug_info) }
-	.debug_line 0 : { *(.debug_line) }
-	.debug_pubnames 0 : { *(.debug_pubnames) }
-	.debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/gnu-elf.ld b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/gnu-elf.ld
deleted file mode 100644
index d811db5a69..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/gnu-elf.ld
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************************
- * configs/same70-xplained/scripts/gnu-elf.ld
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 NuttX 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.
- *
- ****************************************************************************/
-
-SECTIONS
-{
-  .text 0x00000000 :
-    {
-      _stext = . ;
-      *(.text)
-      *(.text.*)
-      *(.gnu.warning)
-      *(.stub)
-      *(.glue_7)
-      *(.glue_7t)
-      *(.jcr)
-
-      /* C++ support:  The .init and .fini sections contain specific logic
-       * to manage static constructors and destructors.
-       */
-
-      *(.gnu.linkonce.t.*)
-      *(.init)             /* Old ABI */
-      *(.fini)             /* Old ABI */
-      _etext = . ;
-    }
-
-  .rodata :
-    {
-      _srodata = . ;
-      *(.rodata)
-      *(.rodata1)
-      *(.rodata.*)
-      *(.gnu.linkonce.r*)
-      _erodata = . ;
-    }
-
-  .data :
-    {
-      _sdata = . ;
-      *(.data)
-      *(.data1)
-      *(.data.*)
-      *(.gnu.linkonce.d*)
-      _edata = . ;
-    }
-
-  /* C++ support. For each global and static local C++ object,
-   * GCC creates a small subroutine to construct the object. Pointers
-   * to these routines (not the routines themselves) are stored as
-   * simple, linear arrays in the .ctors section of the object file.
-   * Similarly, pointers to global/static destructor routines are
-   * stored in .dtors.
-   */
-
-  .ctors :
-    {
-      _sctors = . ;
-      *(.ctors)       /* Old ABI:  Unallocated */
-      *(.init_array)  /* New ABI:  Allocated */
-      _edtors = . ;
-    }
-
-  .dtors :
-    {
-      _sdtors = . ;
-      *(.dtors)       /* Old ABI:  Unallocated */
-      *(.fini_array)  /* New ABI:  Allocated */
-      _edtors = . ;
-    }
-
-  .bss :
-    {
-      _sbss = . ;
-      *(.bss)
-      *(.bss.*)
-      *(.sbss)
-      *(.sbss.*)
-      *(.gnu.linkonce.b*)
-      *(COMMON)
-      _ebss = . ;
-    }
-
-    /* Stabs debugging sections.    */
-
-    .stab 0 : { *(.stab) }
-    .stabstr 0 : { *(.stabstr) }
-    .stab.excl 0 : { *(.stab.excl) }
-    .stab.exclstr 0 : { *(.stab.exclstr) }
-    .stab.index 0 : { *(.stab.index) }
-    .stab.indexstr 0 : { *(.stab.indexstr) }
-    .comment 0 : { *(.comment) }
-    .debug_abbrev 0 : { *(.debug_abbrev) }
-    .debug_info 0 : { *(.debug_info) }
-    .debug_line 0 : { *(.debug_line) }
-    .debug_pubnames 0 : { *(.debug_pubnames) }
-    .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/kernel-space.ld b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/kernel-space.ld
deleted file mode 100644
index 8864c96b9e..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/kernel-space.ld
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
- * configs/same70-xplained/scripts/kernel-space.ld
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 NuttX 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.
- *
- ****************************************************************************/
-
-/* NOTE:  This depends on the memory.ld script having been included prior to
- * this script.
- */
-
-OUTPUT_ARCH(arm)
-EXTERN(_vectors)
-ENTRY(_stext)
-
-SECTIONS
-{
-    .text : {
-        _stext = ABSOLUTE(.);
-        *(.vectors)
-        *(.text .text.*)
-        *(.fixup)
-        *(.gnu.warning)
-        *(.rodata .rodata.*)
-        *(.gnu.linkonce.t.*)
-        *(.glue_7)
-        *(.glue_7t)
-        *(.got)
-        *(.gcc_except_table)
-        *(.gnu.linkonce.r.*)
-        _etext = ABSOLUTE(.);
-    } > kflash
-
-    .init_section : {
-        _sinit = ABSOLUTE(.);
-        *(.init_array .init_array.*)
-        _einit = ABSOLUTE(.);
-    } > kflash
-
-    .ARM.extab : {
-        *(.ARM.extab*)
-    } > kflash
-
-    __exidx_start = ABSOLUTE(.);
-    .ARM.exidx : {
-        *(.ARM.exidx*)
-    } > kflash
-
-    __exidx_end = ABSOLUTE(.);
-
-    _eronly = ABSOLUTE(.);
-
-    .data : {
-        _sdata = ABSOLUTE(.);
-        *(.data .data.*)
-        *(.gnu.linkonce.d.*)
-        CONSTRUCTORS
-        _edata = ABSOLUTE(.);
-    } > ksram AT > kflash
-
-    .bss : {
-        _sbss = ABSOLUTE(.);
-        *(.bss .bss.*)
-        *(.gnu.linkonce.b.*)
-        *(COMMON)
-        _ebss = ABSOLUTE(.);
-    } > ksram
-
-    /* Stabs debugging sections */
-
-    .stab 0 : { *(.stab) }
-    .stabstr 0 : { *(.stabstr) }
-    .stab.excl 0 : { *(.stab.excl) }
-    .stab.exclstr 0 : { *(.stab.exclstr) }
-    .stab.index 0 : { *(.stab.index) }
-    .stab.indexstr 0 : { *(.stab.indexstr) }
-    .comment 0 : { *(.comment) }
-    .debug_abbrev 0 : { *(.debug_abbrev) }
-    .debug_info 0 : { *(.debug_info) }
-    .debug_line 0 : { *(.debug_line) }
-    .debug_pubnames 0 : { *(.debug_pubnames) }
-    .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/memory.ld b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/memory.ld
deleted file mode 100644
index 65673b3d84..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/memory.ld
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * configs/same70-xplained/scripts/memory.ld
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 NuttX 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.
- *
- ****************************************************************************/
-
-/* The SAME70Q21 has 2048Kb of FLASH beginning at address 0x0040:0000 and
- * 384Kb of SRAM beginining at 0x2040:0000
- *
- * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000
- * where the code expects to begin execution by jumping to the entry point in
- * the 0x0400:0000 address range.
- *
- * NOTE: that the DTCM address of 0x2000:0000 is used for SRAM.  If DTCM is
- * disabled, then the accesses will actually occur on the AHB bus.
- *
- * The user space partition will be spanned with a single region of size
- * 2**n bytes.  The alignment of the user-space region must be the same.
- * As a consequence, as the user-space increases in size, the alignment
- * requirement also increases.  The sizes below give the largest possible
- * user address spaces (but leave far too much for the OS).
- *
- * The solution to this wasted memory is to (1) use more than one region to
- * span the user spaces, or (2) poke holes in a larger region to trim it
- * to fit better.
- *
- * A detailed memory map for the 384KB SRAM region is as follows:
- *
- *   0x20000 0000:  Kernel .data region.  Typical size: 0.1KB
- *   ------- ----   Kernel .bss  region.  Typical size: 1.8KB
- *   0x20000 0800:  Kernel IDLE thread stack (approximate).  Size is
- *                  determined by CONFIG_IDLETHREAD_STACKSIZE and
- *                  adjustments for alignment.  Typical is 1KB.
- *   ------- ----   Padded to 4KB
- *   0x20002 0000:  User .data region.  Size is variable.
- *   ------- ----   User .bss region  Size is variable.
- *   0x20000 2000:  Beginning of kernel heap.  Size determined by
- *                  CONFIG_MM_KERNEL_HEAPSIZE.
- *   ------- ----   Beginning of user heap.  Can vary with other settings.
- *   0x20004 0000:  End+1 of mappable internal SRAM
- */
-
-MEMORY
-{
-    /* 2048KiB of internal FLASH */
-
-    kflash (rx)      : ORIGIN = 0x00400000, LENGTH = 1M
-    uflash (rx)      : ORIGIN = 0x00500000, LENGTH = 1M
-
-    /* 384Kb of internal SRAM */
-
-    ksram (rwx)      : ORIGIN = 0x20000000, LENGTH = 128K
-    usram (rwx)      : ORIGIN = 0x20020000, LENGTH = 128K
-    xsram (rwx)      : ORIGIN = 0x20040000, LENGTH = 128K
-}
diff --git a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/user-space.ld b/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/user-space.ld
deleted file mode 100644
index bdb149ca83..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-same70xplained-v1/scripts/user-space.ld
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
- * configs/same70-xplained/scripts/user-space.ld
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 NuttX 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.
- *
- ****************************************************************************/
-
-/* NOTE:  This depends on the memory.ld script having been included prior to
- * this script.
- */
-
-/* Make sure that the critical memory management functions are in user-space.
- * the user heap memory manager will reside in user-space but be usable both
- * by kernel- and user-space code
- */
-
-EXTERN(umm_initialize)
-EXTERN(umm_addregion)
-EXTERN(umm_trysemaphore)
-EXTERN(umm_givesemaphore)
-
-EXTERN(malloc)
-EXTERN(realloc)
-EXTERN(zalloc)
-EXTERN(free)
-
-OUTPUT_ARCH(arm)
-SECTIONS
-{
-    .userspace : {
-        *(.userspace)
-    } > uflash
-
-    .text : {
-        _stext = ABSOLUTE(.);
-        *(.text .text.*)
-        *(.fixup)
-        *(.gnu.warning)
-        *(.rodata .rodata.*)
-        *(.gnu.linkonce.t.*)
-        *(.glue_7)
-        *(.glue_7t)
-        *(.got)
-        *(.gcc_except_table)
-        *(.gnu.linkonce.r.*)
-        _etext = ABSOLUTE(.);
-    } > uflash
-
-    .init_section : {
-        _sinit = ABSOLUTE(.);
-        *(.init_array .init_array.*)
-        _einit = ABSOLUTE(.);
-    } > uflash
-
-    .ARM.extab : {
-        *(.ARM.extab*)
-    } > uflash
-
-    __exidx_start = ABSOLUTE(.);
-    .ARM.exidx : {
-        *(.ARM.exidx*)
-    } > uflash
-
-    __exidx_end = ABSOLUTE(.);
-
-    _eronly = ABSOLUTE(.);
-
-    .data : {
-        _sdata = ABSOLUTE(.);
-        *(.data .data.*)
-        *(.gnu.linkonce.d.*)
-        CONSTRUCTORS
-        _edata = ABSOLUTE(.);
-    } > usram AT > uflash
-
-    .bss : {
-        _sbss = ABSOLUTE(.);
-        *(.bss .bss.*)
-        *(.gnu.linkonce.b.*)
-        *(COMMON)
-        _ebss = ABSOLUTE(.);
-    } > usram
-
-    /* Stabs debugging sections */
-
-    .stab 0 : { *(.stab) }
-    .stabstr 0 : { *(.stabstr) }
-    .stab.excl 0 : { *(.stab.excl) }
-    .stab.exclstr 0 : { *(.stab.exclstr) }
-    .stab.index 0 : { *(.stab.index) }
-    .stab.indexstr 0 : { *(.stab.indexstr) }
-    .comment 0 : { *(.comment) }
-    .debug_abbrev 0 : { *(.debug_abbrev) }
-    .debug_info 0 : { *(.debug_info) }
-    .debug_line 0 : { *(.debug_line) }
-    .debug_pubnames 0 : { *(.debug_pubnames) }
-    .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/platforms/nuttx/nuttx-configs/px4-stm32f4discovery/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/px4-stm32f4discovery/include/nsh_romfsimg.h
deleted file mode 100644
index 15e4e7a8d5..0000000000
--- a/platforms/nuttx/nuttx-configs/px4-stm32f4discovery/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2013 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/px4flow-v2/Kconfig b/platforms/nuttx/nuttx-configs/px4flow-v2/Kconfig
deleted file mode 100644
index 2d524c4685..0000000000
--- a/platforms/nuttx/nuttx-configs/px4flow-v2/Kconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see misc/tools/kconfig-language.txt.
-#
-
-if CONFIG_ARCH_BOARD_PX4FLOW_V2
-
-config BOARD_HAS_PROBES
-	bool "Board provides GPIO or other Hardware for signaling to timing analyze."
-	default y
-	---help---
-		This board provides ADDR[0:2] as PROBE_1-3 to provide timing signals from selected drivers.
-
-config BOARD_USE_PROBES
-	bool "Enable the use provides ADDR[0:2] as PROBE_1-3 to provide timing signals from selected drivers"
-	default n
-	depends on BOARD_HAS_PROBES
-
-	---help---
-		Select to use GPIO provides ADDR[0:2] as PROBE_1-3 to provide  timing signals from selected drivers.
-
-endif
diff --git a/platforms/nuttx/nuttx-configs/px4flow-v2/include/README.txt b/platforms/nuttx/nuttx-configs/px4flow-v2/include/README.txt
deleted file mode 100755
index 5860f79ae2..0000000000
--- a/platforms/nuttx/nuttx-configs/px4flow-v2/include/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This directory contains header files unique to the
-PX4 Flow V1 board using the STM32F427VIT7 Rev_C silicon (no PB12 silicon bug, full 2M Flash available)
diff --git a/platforms/nuttx/nuttx-configs/px4flow-v2/nsh/defconfig b/platforms/nuttx/nuttx-configs/px4flow-v2/nsh/defconfig
deleted file mode 100644
index 7d076bbd79..0000000000
--- a/platforms/nuttx/nuttx-configs/px4flow-v2/nsh/defconfig
+++ /dev/null
@@ -1,1004 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Nuttx/ Configuration
-#
-
-#
-# Build Setup
-#
-# CONFIG_EXPERIMENTAL is not set
-CONFIG_DEFAULT_SMALL=y
-CONFIG_HOST_LINUX=y
-# CONFIG_HOST_OSX is not set
-# CONFIG_HOST_WINDOWS is not set
-# CONFIG_HOST_OTHER is not set
-
-#
-# Build Configuration
-#
-CONFIG_APPS_DIR="../apps"
-CONFIG_BUILD_FLAT=y
-# CONFIG_BUILD_2PASS is not set
-
-#
-# Binary Output Formats
-#
-# CONFIG_RRLOAD_BINARY is not set
-# CONFIG_INTELHEX_BINARY is not set
-# CONFIG_MOTOROLA_SREC is not set
-CONFIG_RAW_BINARY=y
-# CONFIG_UBOOT_UIMAGE is not set
-
-#
-# Customize Header Files
-#
-# CONFIG_ARCH_STDINT_H is not set
-# CONFIG_ARCH_STDBOOL_H is not set
-CONFIG_ARCH_MATH_H=y
-# CONFIG_ARCH_FLOAT_H is not set
-# CONFIG_ARCH_STDARG_H is not set
-
-#
-# Debug Options
-#
-# CONFIG_DEBUG_FEATURES is not set
-CONFIG_ARCH_HAVE_HEAPCHECK=y
-CONFIG_DEBUG_VERBOSE=y
-
-#
-# Subsystem Debug Options
-#
-# CONFIG_DEBUG_AUDIO is not set
-# CONFIG_DEBUG_BINFMT is not set
-# CONFIG_DEBUG_FS is not set
-# CONFIG_DEBUG_GRAPHICS is not set
-# CONFIG_DEBUG_LIB is not set
-# CONFIG_DEBUG_MM is not set
-# CONFIG_DEBUG_SCHED is not set
-
-#
-# OS Function Debug Options
-#
-# CONFIG_DEBUG_DMA is not set
-# CONFIG_DEBUG_HEAP is not set
-# CONFIG_DEBUG_IRQ is not set
-
-#
-# Driver Debug Options
-#
-# CONFIG_DEBUG_ANALOG is not set
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_ARCH_HAVE_STACKCHECK=y
-CONFIG_STACK_COLORATION=y
-CONFIG_DEBUG_SYMBOLS=y
-CONFIG_ARCH_HAVE_CUSTOMOPT=y
-# CONFIG_DEBUG_NOOPT is not set
-# CONFIG_DEBUG_CUSTOMOPT is not set
-CONFIG_DEBUG_FULLOPT=y
-
-#
-# System Type
-#
-CONFIG_ARCH_ARM=y
-# CONFIG_ARCH_AVR is not set
-# CONFIG_ARCH_HC is not set
-# CONFIG_ARCH_MIPS is not set
-# CONFIG_ARCH_RGMP is not set
-# CONFIG_ARCH_SH is not set
-# CONFIG_ARCH_SIM is not set
-# CONFIG_ARCH_X86 is not set
-# CONFIG_ARCH_Z16 is not set
-# CONFIG_ARCH_Z80 is not set
-CONFIG_ARCH="arm"
-
-#
-# ARM Options
-#
-# CONFIG_ARCH_CHIP_A1X is not set
-# CONFIG_ARCH_CHIP_C5471 is not set
-# CONFIG_ARCH_CHIP_CALYPSO is not set
-# CONFIG_ARCH_CHIP_DM320 is not set
-# CONFIG_ARCH_CHIP_EFM32 is not set
-# CONFIG_ARCH_CHIP_IMX is not set
-# CONFIG_ARCH_CHIP_KINETIS is not set
-# CONFIG_ARCH_CHIP_KL is not set
-# CONFIG_ARCH_CHIP_LM is not set
-# CONFIG_ARCH_CHIP_TIVA is not set
-# CONFIG_ARCH_CHIP_LPC11XX is not set
-# CONFIG_ARCH_CHIP_LPC17XX is not set
-# CONFIG_ARCH_CHIP_LPC214X is not set
-# CONFIG_ARCH_CHIP_LPC2378 is not set
-# CONFIG_ARCH_CHIP_LPC31XX is not set
-# CONFIG_ARCH_CHIP_LPC43XX is not set
-# CONFIG_ARCH_CHIP_NUC1XX is not set
-# CONFIG_ARCH_CHIP_SAMA5 is not set
-# CONFIG_ARCH_CHIP_SAMD is not set
-# CONFIG_ARCH_CHIP_SAML is not set
-# CONFIG_ARCH_CHIP_SAM34 is not set
-# CONFIG_ARCH_CHIP_SAMV7 is not set
-CONFIG_ARCH_CHIP_STM32=y
-# CONFIG_ARCH_CHIP_STM32F7 is not set
-# CONFIG_ARCH_CHIP_STR71X is not set
-# CONFIG_ARCH_CHIP_MOXART is not set
-# CONFIG_ARCH_ARM7TDMI is not set
-# CONFIG_ARCH_ARM926EJS is not set
-# CONFIG_ARCH_ARM920T is not set
-# CONFIG_ARCH_CORTEXM0 is not set
-# CONFIG_ARCH_CORTEXM3 is not set
-CONFIG_ARCH_CORTEXM4=y
-# CONFIG_ARCH_CORTEXM7 is not set
-# CONFIG_ARCH_CORTEXA5 is not set
-# CONFIG_ARCH_CORTEXA8 is not set
-CONFIG_ARCH_FAMILY="armv7-m"
-CONFIG_ARCH_CHIP="stm32"
-CONFIG_ARMV7M_USEBASEPRI=y
-CONFIG_ARCH_HAVE_CMNVECTOR=y
-CONFIG_ARMV7M_CMNVECTOR=y
-# CONFIG_ARMV7M_LAZYFPU is not set
-CONFIG_ARCH_HAVE_FPU=y
-# CONFIG_ARCH_HAVE_DPFPU is not set
-CONFIG_ARCH_FPU=y
-# CONFIG_ARMV7M_MPU is not set
-# CONFIG_DEBUG_HARDFAULT is not set
-
-#
-# ARMV7M Configuration Options
-#
-# CONFIG_ARMV7M_HAVE_ICACHE is not set
-# CONFIG_ARMV7M_HAVE_DCACHE is not set
-# CONFIG_ARMV7M_HAVE_ITCM is not set
-# CONFIG_ARMV7M_HAVE_DTCM is not set
-# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
-# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
-CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y
-# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set
-CONFIG_ARMV7M_HAVE_STACKCHECK=y
-# CONFIG_ARMV7M_STACKCHECK is not set
-# CONFIG_ARMV7M_ITMSYSLOG is not set
-# CONFIG_SERIAL_TERMIOS is not set
-
-#
-# STM32 Configuration Options
-#
-# CONFIG_ARCH_CHIP_STM32L151C6 is not set
-# CONFIG_ARCH_CHIP_STM32L151C8 is not set
-# CONFIG_ARCH_CHIP_STM32L151CB is not set
-# CONFIG_ARCH_CHIP_STM32L151R6 is not set
-# CONFIG_ARCH_CHIP_STM32L151R8 is not set
-# CONFIG_ARCH_CHIP_STM32L151RB is not set
-# CONFIG_ARCH_CHIP_STM32L151V6 is not set
-# CONFIG_ARCH_CHIP_STM32L151V8 is not set
-# CONFIG_ARCH_CHIP_STM32L151VB is not set
-# CONFIG_ARCH_CHIP_STM32L152C6 is not set
-# CONFIG_ARCH_CHIP_STM32L152C8 is not set
-# CONFIG_ARCH_CHIP_STM32L152CB is not set
-# CONFIG_ARCH_CHIP_STM32L152R6 is not set
-# CONFIG_ARCH_CHIP_STM32L152R8 is not set
-# CONFIG_ARCH_CHIP_STM32L152RB is not set
-# CONFIG_ARCH_CHIP_STM32L152V6 is not set
-# CONFIG_ARCH_CHIP_STM32L152V8 is not set
-# CONFIG_ARCH_CHIP_STM32L152VB is not set
-# CONFIG_ARCH_CHIP_STM32L162ZD is not set
-# CONFIG_ARCH_CHIP_STM32L162VE is not set
-# CONFIG_ARCH_CHIP_STM32F100C8 is not set
-# CONFIG_ARCH_CHIP_STM32F100CB is not set
-# CONFIG_ARCH_CHIP_STM32F100R8 is not set
-# CONFIG_ARCH_CHIP_STM32F100RB is not set
-# CONFIG_ARCH_CHIP_STM32F100RC is not set
-# CONFIG_ARCH_CHIP_STM32F100RD is not set
-# CONFIG_ARCH_CHIP_STM32F100RE is not set
-# CONFIG_ARCH_CHIP_STM32F100V8 is not set
-# CONFIG_ARCH_CHIP_STM32F100VB is not set
-# CONFIG_ARCH_CHIP_STM32F100VC is not set
-# CONFIG_ARCH_CHIP_STM32F100VD is not set
-# CONFIG_ARCH_CHIP_STM32F100VE is not set
-# CONFIG_ARCH_CHIP_STM32F102CB is not set
-# CONFIG_ARCH_CHIP_STM32F103T8 is not set
-# CONFIG_ARCH_CHIP_STM32F103TB is not set
-# CONFIG_ARCH_CHIP_STM32F103C4 is not set
-# CONFIG_ARCH_CHIP_STM32F103C8 is not set
-# CONFIG_ARCH_CHIP_STM32F103CB is not set
-# CONFIG_ARCH_CHIP_STM32F103R8 is not set
-# CONFIG_ARCH_CHIP_STM32F103RB is not set
-# CONFIG_ARCH_CHIP_STM32F103RC is not set
-# CONFIG_ARCH_CHIP_STM32F103RD is not set
-# CONFIG_ARCH_CHIP_STM32F103RE is not set
-# CONFIG_ARCH_CHIP_STM32F103RG is not set
-# CONFIG_ARCH_CHIP_STM32F103V8 is not set
-# CONFIG_ARCH_CHIP_STM32F103VB is not set
-# CONFIG_ARCH_CHIP_STM32F103VC is not set
-# CONFIG_ARCH_CHIP_STM32F103VE is not set
-# CONFIG_ARCH_CHIP_STM32F103ZE is not set
-# CONFIG_ARCH_CHIP_STM32F105VB is not set
-# CONFIG_ARCH_CHIP_STM32F107VC is not set
-# CONFIG_ARCH_CHIP_STM32F205RG is not set
-# CONFIG_ARCH_CHIP_STM32F207IG is not set
-# CONFIG_ARCH_CHIP_STM32F207ZE is not set
-# CONFIG_ARCH_CHIP_STM32F302K6 is not set
-# CONFIG_ARCH_CHIP_STM32F302K8 is not set
-# CONFIG_ARCH_CHIP_STM32F302CB is not set
-# CONFIG_ARCH_CHIP_STM32F302CC is not set
-# CONFIG_ARCH_CHIP_STM32F302RB is not set
-# CONFIG_ARCH_CHIP_STM32F302RC is not set
-# CONFIG_ARCH_CHIP_STM32F302VB is not set
-# CONFIG_ARCH_CHIP_STM32F302VC is not set
-# CONFIG_ARCH_CHIP_STM32F303K6 is not set
-# CONFIG_ARCH_CHIP_STM32F303K8 is not set
-# CONFIG_ARCH_CHIP_STM32F303C6 is not set
-# CONFIG_ARCH_CHIP_STM32F303C8 is not set
-# CONFIG_ARCH_CHIP_STM32F303CB is not set
-# CONFIG_ARCH_CHIP_STM32F303CC is not set
-# CONFIG_ARCH_CHIP_STM32F303RB is not set
-# CONFIG_ARCH_CHIP_STM32F303RC is not set
-# CONFIG_ARCH_CHIP_STM32F303RD is not set
-# CONFIG_ARCH_CHIP_STM32F303RE is not set
-# CONFIG_ARCH_CHIP_STM32F303VB is not set
-# CONFIG_ARCH_CHIP_STM32F303VC is not set
-# CONFIG_ARCH_CHIP_STM32F372C8 is not set
-# CONFIG_ARCH_CHIP_STM32F372R8 is not set
-# CONFIG_ARCH_CHIP_STM32F372V8 is not set
-# CONFIG_ARCH_CHIP_STM32F372CB is not set
-# CONFIG_ARCH_CHIP_STM32F372RB is not set
-# CONFIG_ARCH_CHIP_STM32F372VB is not set
-# CONFIG_ARCH_CHIP_STM32F372CC is not set
-# CONFIG_ARCH_CHIP_STM32F372RC is not set
-# CONFIG_ARCH_CHIP_STM32F372VC is not set
-# CONFIG_ARCH_CHIP_STM32F373C8 is not set
-# CONFIG_ARCH_CHIP_STM32F373R8 is not set
-# CONFIG_ARCH_CHIP_STM32F373V8 is not set
-# CONFIG_ARCH_CHIP_STM32F373CB is not set
-# CONFIG_ARCH_CHIP_STM32F373RB is not set
-# CONFIG_ARCH_CHIP_STM32F373VB is not set
-# CONFIG_ARCH_CHIP_STM32F373CC is not set
-# CONFIG_ARCH_CHIP_STM32F373RC is not set
-# CONFIG_ARCH_CHIP_STM32F373VC is not set
-# CONFIG_ARCH_CHIP_STM32F401RE is not set
-# CONFIG_ARCH_CHIP_STM32F411RE is not set
-# CONFIG_ARCH_CHIP_STM32F405RG is not set
-# CONFIG_ARCH_CHIP_STM32F405VG is not set
-# CONFIG_ARCH_CHIP_STM32F405ZG is not set
-# CONFIG_ARCH_CHIP_STM32F407VE is not set
-# CONFIG_ARCH_CHIP_STM32F407VG is not set
-# CONFIG_ARCH_CHIP_STM32F407ZE is not set
-# CONFIG_ARCH_CHIP_STM32F407ZG is not set
-# CONFIG_ARCH_CHIP_STM32F407IE is not set
-# CONFIG_ARCH_CHIP_STM32F407IG is not set
-CONFIG_ARCH_CHIP_STM32F427V=y
-# CONFIG_ARCH_CHIP_STM32F427Z is not set
-# CONFIG_ARCH_CHIP_STM32F427I is not set
-# CONFIG_ARCH_CHIP_STM32F429V is not set
-# CONFIG_ARCH_CHIP_STM32F429Z is not set
-# CONFIG_ARCH_CHIP_STM32F429I is not set
-# CONFIG_ARCH_CHIP_STM32F429B is not set
-# CONFIG_ARCH_CHIP_STM32F429N is not set
-# CONFIG_ARCH_CHIP_STM32F446M is not set
-# CONFIG_ARCH_CHIP_STM32F446R is not set
-# CONFIG_ARCH_CHIP_STM32F446V is not set
-# CONFIG_ARCH_CHIP_STM32F446Z is not set
-# CONFIG_STM32_STM32L15XX is not set
-# CONFIG_STM32_ENERGYLITE is not set
-# CONFIG_STM32_STM32F10XX is not set
-# CONFIG_STM32_VALUELINE is not set
-# CONFIG_STM32_CONNECTIVITYLINE is not set
-# CONFIG_STM32_PERFORMANCELINE is not set
-# CONFIG_STM32_USBACCESSLINE is not set
-# CONFIG_STM32_HIGHDENSITY is not set
-# CONFIG_STM32_MEDIUMDENSITY is not set
-# CONFIG_STM32_LOWDENSITY is not set
-# CONFIG_STM32_STM32F20XX is not set
-# CONFIG_STM32_STM32F205 is not set
-# CONFIG_STM32_STM32F207 is not set
-# CONFIG_STM32_STM32F30XX is not set
-# CONFIG_STM32_STM32F37XX is not set
-CONFIG_STM32_STM32F4XXX=y
-# CONFIG_STM32_STM32F401 is not set
-# CONFIG_STM32_STM32F411 is not set
-# CONFIG_STM32_STM32F405 is not set
-# CONFIG_STM32_STM32F407 is not set
-CONFIG_STM32_STM32F427=y
-# CONFIG_STM32_STM32F429 is not set
-# CONFIG_STM32_STM32F446 is not set
-# CONFIG_STM32_DFU is not set
-
-#
-# STM32 Peripheral Support
-#
-CONFIG_STM32_HAVE_CCM=y
-# CONFIG_STM32_HAVE_USBDEV is not set
-CONFIG_STM32_HAVE_OTGFS=y
-CONFIG_STM32_HAVE_FSMC=y
-CONFIG_STM32_HAVE_USART3=y
-CONFIG_STM32_HAVE_UART4=y
-CONFIG_STM32_HAVE_UART5=y
-CONFIG_STM32_HAVE_USART6=y
-CONFIG_STM32_HAVE_UART7=y
-CONFIG_STM32_HAVE_UART8=y
-CONFIG_STM32_HAVE_TIM1=y
-CONFIG_STM32_HAVE_TIM5=y
-CONFIG_STM32_HAVE_TIM6=y
-CONFIG_STM32_HAVE_TIM7=y
-CONFIG_STM32_HAVE_TIM8=y
-CONFIG_STM32_HAVE_TIM9=y
-CONFIG_STM32_HAVE_TIM10=y
-CONFIG_STM32_HAVE_TIM11=y
-CONFIG_STM32_HAVE_TIM12=y
-CONFIG_STM32_HAVE_TIM13=y
-CONFIG_STM32_HAVE_TIM14=y
-# CONFIG_STM32_HAVE_TIM15 is not set
-# CONFIG_STM32_HAVE_TIM16 is not set
-# CONFIG_STM32_HAVE_TIM17 is not set
-CONFIG_STM32_HAVE_ADC2=y
-CONFIG_STM32_HAVE_ADC3=y
-# CONFIG_STM32_HAVE_ADC4 is not set
-# CONFIG_STM32_HAVE_ADC1_DMA is not set
-# CONFIG_STM32_HAVE_ADC2_DMA is not set
-# CONFIG_STM32_HAVE_ADC3_DMA is not set
-# CONFIG_STM32_HAVE_ADC4_DMA is not set
-CONFIG_STM32_HAVE_CAN1=y
-CONFIG_STM32_HAVE_CAN2=y
-CONFIG_STM32_HAVE_RNG=y
-CONFIG_STM32_HAVE_ETHMAC=y
-CONFIG_STM32_HAVE_SPI2=y
-CONFIG_STM32_HAVE_SPI3=y
-CONFIG_STM32_HAVE_SPI4=y
-CONFIG_STM32_HAVE_SPI5=y
-CONFIG_STM32_HAVE_SPI6=y
-# CONFIG_STM32_HAVE_SAIPLL is not set
-# CONFIG_STM32_HAVE_I2SPLL is not set
-# CONFIG_STM32_ADC1 is not set
-# CONFIG_STM32_ADC2 is not set
-# CONFIG_STM32_ADC3 is not set
-# CONFIG_STM32_BKPSRAM is not set
-# CONFIG_STM32_CAN1 is not set
-# CONFIG_STM32_CAN2 is not set
-# CONFIG_STM32_CCMDATARAM is not set
-# CONFIG_STM32_CRC is not set
-# CONFIG_STM32_CRYP is not set
-CONFIG_STM32_DMA1=y
-CONFIG_STM32_DMA2=y
-# CONFIG_STM32_DAC1 is not set
-# CONFIG_STM32_DAC2 is not set
-# CONFIG_STM32_DCMI is not set
-# CONFIG_STM32_ETHMAC is not set
-# CONFIG_STM32_FSMC is not set
-# CONFIG_STM32_HASH is not set
-# CONFIG_STM32_I2C1 is not set
-# CONFIG_STM32_I2C2 is not set
-# CONFIG_STM32_I2C3 is not set
-# CONFIG_STM32_OTGFS is not set
-# CONFIG_STM32_OTGHS is not set
-CONFIG_STM32_PWR=y
-# CONFIG_STM32_RNG is not set
-# CONFIG_STM32_SDIO is not set
-# CONFIG_STM32_SPI1 is not set
-# CONFIG_STM32_SPI2 is not set
-# CONFIG_STM32_SPI3 is not set
-# CONFIG_STM32_SPI4 is not set
-# CONFIG_STM32_SPI5 is not set
-# CONFIG_STM32_SPI6 is not set
-CONFIG_STM32_SYSCFG=y
-# CONFIG_STM32_TIM1 is not set
-# CONFIG_STM32_TIM2 is not set
-CONFIG_STM32_TIM3=y
-# CONFIG_STM32_TIM4 is not set
-# CONFIG_STM32_TIM5 is not set
-# CONFIG_STM32_TIM6 is not set
-# CONFIG_STM32_TIM7 is not set
-# CONFIG_STM32_TIM8 is not set
-# CONFIG_STM32_TIM9 is not set
-# CONFIG_STM32_TIM10 is not set
-# CONFIG_STM32_TIM11 is not set
-# CONFIG_STM32_TIM12 is not set
-# CONFIG_STM32_TIM13 is not set
-# CONFIG_STM32_TIM14 is not set
-# CONFIG_STM32_USART1 is not set
-# CONFIG_STM32_USART2 is not set
-CONFIG_STM32_USART3=y
-# CONFIG_STM32_UART4 is not set
-# CONFIG_STM32_UART5 is not set
-# CONFIG_STM32_USART6 is not set
-# CONFIG_STM32_UART7 is not set
-# CONFIG_STM32_UART8 is not set
-# CONFIG_STM32_IWDG is not set
-# CONFIG_STM32_WWDG is not set
-# CONFIG_STM32_NOEXT_VECTORS is not set
-
-#
-# Alternate Pin Mapping
-#
-CONFIG_STM32_FLASH_PREFETCH=y
-# CONFIG_STM32_JTAG_DISABLE is not set
-CONFIG_STM32_JTAG_FULL_ENABLE=y
-# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set
-# CONFIG_STM32_JTAG_SW_ENABLE is not set
-CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y
-CONFIG_STM32_FORCEPOWER=y
-# CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set
-CONFIG_STM32_CCMEXCLUDE=y
-# CONFIG_STM32_DMACAPABLE is not set
-# CONFIG_STM32_TIM3_PWM is not set
-CONFIG_STM32_USART=y
-CONFIG_STM32_SERIALDRIVER=y
-
-#
-# U[S]ART Configuration
-#
-# CONFIG_USART3_RS485 is not set
-CONFIG_STM32_USART3_SERIALDRIVER=y
-CONFIG_USART3_RXDMA=y
-CONFIG_SERIAL_DISABLE_REORDERING=y
-# CONFIG_STM32_FLOWCONTROL_BROKEN is not set
-# CONFIG_STM32_USART_SINGLEWIRE is not set
-# CONFIG_STM32_HAVE_RTC_COUNTER is not set
-# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set
-
-#
-# USB FS Host Configuration
-#
-
-#
-# USB HS Host Configuration
-#
-
-#
-# USB Host Debug Configuration
-#
-
-#
-# USB Device Configuration
-#
-
-#
-# Architecture Options
-#
-# CONFIG_ARCH_NOINTC is not set
-# CONFIG_ARCH_VECNOTIRQ is not set
-CONFIG_ARCH_DMA=y
-CONFIG_ARCH_HAVE_IRQPRIO=y
-# CONFIG_ARCH_L2CACHE is not set
-# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set
-# CONFIG_ARCH_HAVE_ADDRENV is not set
-# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set
-CONFIG_ARCH_HAVE_VFORK=y
-# CONFIG_ARCH_HAVE_MMU is not set
-CONFIG_ARCH_HAVE_MPU=y
-# CONFIG_ARCH_NAND_HWECC is not set
-# CONFIG_ARCH_HAVE_EXTCLK is not set
-# CONFIG_ARCH_HAVE_POWEROFF is not set
-CONFIG_ARCH_HAVE_RESET=y
-# CONFIG_ARCH_USE_MPU is not set
-# CONFIG_ARCH_IRQPRIO is not set
-CONFIG_ARCH_STACKDUMP=y
-# CONFIG_ENDIAN_BIG is not set
-# CONFIG_ARCH_IDLE_CUSTOM is not set
-# CONFIG_ARCH_HAVE_RAMFUNCS is not set
-CONFIG_ARCH_HAVE_RAMVECTORS=y
-# CONFIG_ARCH_RAMVECTORS is not set
-
-#
-# Board Settings
-#
-CONFIG_BOARD_LOOPSPERMSEC=5483
-# CONFIG_ARCH_CALIBRATION is not set
-
-#
-# Interrupt options
-#
-CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
-CONFIG_ARCH_INTERRUPTSTACK=360
-CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
-# CONFIG_ARCH_HIPRI_INTERRUPT is not set
-
-#
-# Boot options
-#
-# CONFIG_BOOT_RUNFROMEXTSRAM is not set
-CONFIG_BOOT_RUNFROMFLASH=y
-# CONFIG_BOOT_RUNFROMISRAM is not set
-# CONFIG_BOOT_RUNFROMSDRAM is not set
-# CONFIG_BOOT_COPYTORAM is not set
-
-#
-# Boot Memory Configuration
-#
-CONFIG_RAM_START=0x20000000
-CONFIG_RAM_SIZE=20480
-# CONFIG_ARCH_HAVE_SDRAM is not set
-
-#
-# Board Selection
-#
-# CONFIG_ARCH_BOARD_MAPLE is not set
-CONFIG_ARCH_BOARD_PX4FLOW_V2=y
-# CONFIG_ARCH_BOARD_CUSTOM is not set
-CONFIG_ARCH_BOARD="px4flow-v2"
-
-#
-# Custom Board Configuration
-#
-# CONFIG_BOARD_CRASHDUMP is not set
-# CONFIG_BOARD_CUSTOM_LEDS is not set
-# CONFIG_BOARD_CUSTOM_BUTTONS is not set
-
-#
-# Common Board Options
-#
-CONFIG_ARCH_HAVE_LEDS=y
-CONFIG_ARCH_LEDS=y
-
-#
-# Board-Specific Options
-#
-CONFIG_LIB_BOARDCTL=y
-CONFIG_BOARDCTL_RESET=y
-# CONFIG_BOARDCTL_UNIQUEID is not set
-# CONFIG_BOARDCTL_USBDEVCTRL is not set
-# CONFIG_BOARDCTL_TSCTEST is not set
-# CONFIG_BOARDCTL_ADCTEST is not set
-# CONFIG_BOARDCTL_PWMTEST is not set
-# CONFIG_BOARDCTL_GRAPHICS is not set
-# CONFIG_BOARDCTL_IOCTL is not set
-CONFIG_BOARD_HAS_PROBES=y
-# CONFIG_BOARD_USE_PROBES is not set
-
-#
-# RTOS Features
-#
-# CONFIG_DISABLE_OS_API is not set
-
-#
-# Clocks and Timers
-#
-CONFIG_START_YEAR=2016
-CONFIG_START_MONTH=11
-CONFIG_START_DAY=30
-CONFIG_ARCH_HAVE_TICKLESS=y
-# CONFIG_SCHED_TICKLESS is not set
-CONFIG_USEC_PER_TICK=10000
-# CONFIG_SYSTEM_TIME64 is not set
-# CONFIG_CLOCK_MONOTONIC is not set
-# CONFIG_JULIAN_TIME is not set
-CONFIG_MAX_WDOGPARMS=2
-CONFIG_PREALLOC_WDOGS=4
-CONFIG_WDOG_INTRESERVE=2
-CONFIG_PREALLOC_TIMERS=2
-
-#
-# Tasks and Scheduling
-#
-# CONFIG_INIT_NONE is not set
-CONFIG_INIT_ENTRYPOINT=y
-# CONFIG_INIT_FILEPATH is not set
-CONFIG_USER_ENTRYPOINT="flow_start"
-CONFIG_RR_INTERVAL=0
-# CONFIG_SCHED_SPORADIC is not set
-CONFIG_TASK_NAME_SIZE=12
-CONFIG_MAX_TASKS=4
-# CONFIG_SCHED_HAVE_PARENT is not set
-CONFIG_SCHED_WAITPID=y
-
-#
-# Pthread Options
-#
-# CONFIG_PTHREAD_MUTEX_TYPES is not set
-CONFIG_NPTHREAD_KEYS=0
-
-#
-# Performance Monitoring
-#
-# CONFIG_SCHED_CPULOAD is not set
-CONFIG_SCHED_INSTRUMENTATION=y
-
-#
-# Files and I/O
-#
-CONFIG_DEV_CONSOLE=y
-# CONFIG_FDCLONE_DISABLE is not set
-CONFIG_FDCLONE_STDIO=y
-CONFIG_SDCLONE_DISABLE=y
-CONFIG_NFILE_DESCRIPTORS=5
-CONFIG_NFILE_STREAMS=1
-CONFIG_NAME_MAX=8
-CONFIG_PRIORITY_INHERITANCE=y
-CONFIG_SEM_PREALLOCHOLDERS=4
-CONFIG_SEM_NNESTPRIO=4
-
-#
-# RTOS hooks
-#
-CONFIG_BOARD_INITIALIZE=y
-# CONFIG_BOARD_INITTHREAD is not set
-# CONFIG_SCHED_STARTHOOK is not set
-CONFIG_SCHED_ATEXIT=y
-CONFIG_SCHED_ATEXIT_MAX=1
-# CONFIG_SCHED_ONEXIT is not set
-
-#
-# Signal Numbers
-#
-CONFIG_SIG_SIGUSR1=1
-CONFIG_SIG_SIGUSR2=2
-CONFIG_SIG_SIGALARM=3
-CONFIG_SIG_SIGCONDTIMEDOUT=16
-
-#
-# POSIX Message Queue Options
-#
-CONFIG_PREALLOC_MQ_MSGS=4
-CONFIG_MQ_MAXMSGSIZE=8
-
-#
-# Work Queue Support
-#
-# CONFIG_SCHED_WORKQUEUE is not set
-# CONFIG_SCHED_HPWORK is not set
-# CONFIG_SCHED_LPWORK is not set
-
-#
-# Stack and heap information
-#
-CONFIG_IDLETHREAD_STACKSIZE=272
-CONFIG_USERMAIN_STACKSIZE=1024
-CONFIG_PTHREAD_STACK_MIN=516
-CONFIG_PTHREAD_STACK_DEFAULT=516
-# CONFIG_LIB_SYSCALL is not set
-
-#
-# Device Drivers
-#
-# CONFIG_DISABLE_POLL is not set
-# CONFIG_DEV_NULL is not set
-# CONFIG_DEV_ZERO is not set
-# CONFIG_LOOP is not set
-
-#
-# Buffering
-#
-# CONFIG_DRVR_WRITEBUFFER is not set
-# CONFIG_DRVR_READAHEAD is not set
-# CONFIG_RAMDISK is not set
-# CONFIG_CAN is not set
-# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set
-# CONFIG_PWM is not set
-CONFIG_ARCH_HAVE_I2CRESET=y
-# CONFIG_I2C is not set
-# CONFIG_SPI is not set
-# CONFIG_I2S is not set
-
-#
-# Timer Driver Support
-#
-# CONFIG_TIMER is not set
-# CONFIG_RTC is not set
-# CONFIG_WATCHDOG is not set
-# CONFIG_ANALOG is not set
-# CONFIG_AUDIO_DEVICES is not set
-# CONFIG_VIDEO_DEVICES is not set
-# CONFIG_BCH is not set
-# CONFIG_INPUT is not set
-# CONFIG_IOEXPANDER is not set
-# CONFIG_LCD is not set
-# CONFIG_MMCSD is not set
-# CONFIG_MTD is not set
-# CONFIG_EEPROM is not set
-# CONFIG_PIPES is not set
-# CONFIG_PM is not set
-# CONFIG_POWER is not set
-# CONFIG_SENSORS is not set
-# CONFIG_SERCOMM_CONSOLE is not set
-CONFIG_SERIAL=y
-# CONFIG_DEV_LOWCONSOLE is not set
-# CONFIG_16550_UART is not set
-# CONFIG_UART_SERIALDRIVER is not set
-# CONFIG_UART0_SERIALDRIVER is not set
-# CONFIG_UART1_SERIALDRIVER is not set
-# CONFIG_UART2_SERIALDRIVER is not set
-# CONFIG_UART3_SERIALDRIVER is not set
-# CONFIG_UART4_SERIALDRIVER is not set
-# CONFIG_UART5_SERIALDRIVER is not set
-# CONFIG_UART6_SERIALDRIVER is not set
-# CONFIG_UART7_SERIALDRIVER is not set
-# CONFIG_UART8_SERIALDRIVER is not set
-# CONFIG_SCI0_SERIALDRIVER is not set
-# CONFIG_SCI1_SERIALDRIVER is not set
-# CONFIG_USART0_SERIALDRIVER is not set
-# CONFIG_USART1_SERIALDRIVER is not set
-# CONFIG_USART2_SERIALDRIVER is not set
-CONFIG_USART3_SERIALDRIVER=y
-# CONFIG_USART4_SERIALDRIVER is not set
-# CONFIG_USART5_SERIALDRIVER is not set
-# CONFIG_USART6_SERIALDRIVER is not set
-# CONFIG_USART7_SERIALDRIVER is not set
-# CONFIG_USART8_SERIALDRIVER is not set
-# CONFIG_OTHER_UART_SERIALDRIVER is not set
-
-#
-# USART Configuration
-#
-CONFIG_MCU_SERIAL=y
-CONFIG_STANDARD_SERIAL=y
-CONFIG_SERIAL_NPOLLWAITERS=2
-# CONFIG_SERIAL_IFLOWCONTROL is not set
-# CONFIG_SERIAL_OFLOWCONTROL is not set
-# CONFIG_SERIAL_TIOCSERGSTRUCT is not set
-CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
-CONFIG_USART3_SERIAL_CONSOLE=y
-# CONFIG_OTHER_SERIAL_CONSOLE is not set
-# CONFIG_NO_SERIAL_CONSOLE is not set
-
-#
-# USART3 Configuration
-#
-CONFIG_USART3_RXBUFSIZE=32
-CONFIG_USART3_TXBUFSIZE=32
-CONFIG_USART3_BAUD=115200
-CONFIG_USART3_BITS=8
-CONFIG_USART3_PARITY=0
-CONFIG_USART3_2STOP=0
-# CONFIG_USART3_IFLOWCONTROL is not set
-# CONFIG_USART3_OFLOWCONTROL is not set
-# CONFIG_USBDEV is not set
-# CONFIG_USBHOST is not set
-# CONFIG_WIRELESS is not set
-
-#
-# System Logging Device Options
-#
-
-#
-# System Logging
-#
-# CONFIG_RAMLOG is not set
-# CONFIG_CONSOLE_SYSLOG is not set
-
-#
-# Networking Support
-#
-# CONFIG_ARCH_HAVE_NET is not set
-# CONFIG_ARCH_HAVE_PHY is not set
-# CONFIG_NET is not set
-
-#
-# Crypto API
-#
-# CONFIG_CRYPTO is not set
-
-#
-# File Systems
-#
-
-#
-# File system configuration
-#
-# CONFIG_DISABLE_MOUNTPOINT is not set
-# CONFIG_FS_AUTOMOUNTER is not set
-# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
-# CONFIG_FS_READABLE is not set
-# CONFIG_FS_WRITABLE is not set
-# CONFIG_FS_NAMED_SEMAPHORES is not set
-CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
-# CONFIG_FS_RAMMAP is not set
-# CONFIG_FS_FAT is not set
-# CONFIG_FS_NXFFS is not set
-# CONFIG_FS_ROMFS is not set
-# CONFIG_FS_SMARTFS is not set
-# CONFIG_FS_BINFS is not set
-# CONFIG_FS_PROCFS is not set
-# CONFIG_FS_UNIONFS is not set
-
-#
-# System Logging
-#
-# CONFIG_SYSLOG is not set
-# CONFIG_SYSLOG_TIMESTAMP is not set
-
-#
-# Graphics Support
-#
-# CONFIG_NX is not set
-
-#
-# Memory Management
-#
-# CONFIG_MM_SMALL is not set
-CONFIG_MM_REGIONS=1
-# CONFIG_ARCH_HAVE_HEAP2 is not set
-# CONFIG_GRAN is not set
-
-#
-# Audio Support
-#
-# CONFIG_AUDIO is not set
-
-#
-# Binary Loader
-#
-# CONFIG_BINFMT_DISABLE is not set
-# CONFIG_BINFMT_EXEPATH is not set
-# CONFIG_NXFLAT is not set
-# CONFIG_ELF is not set
-CONFIG_BUILTIN=y
-# CONFIG_PIC is not set
-CONFIG_SYMTAB_ORDEREDBYNAME=y
-
-#
-# Library Routines
-#
-
-#
-# Standard C Library Options
-#
-CONFIG_STDIO_BUFFER_SIZE=64
-CONFIG_STDIO_LINEBUFFER=y
-CONFIG_NUNGET_CHARS=2
-CONFIG_LIB_HOMEDIR="/"
-# CONFIG_NOPRINTF_FIELDWIDTH is not set
-# CONFIG_LIBC_FLOATINGPOINT is not set
-CONFIG_LIBC_LONG_LONG=y
-# CONFIG_LIBC_IOCTL_VARIADIC is not set
-CONFIG_LIB_RAND_ORDER=1
-# CONFIG_EOL_IS_CR is not set
-# CONFIG_EOL_IS_LF is not set
-# CONFIG_EOL_IS_BOTH_CRLF is not set
-CONFIG_EOL_IS_EITHER_CRLF=y
-# CONFIG_LIBC_EXECFUNCS is not set
-CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=394
-CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=394
-# CONFIG_LIBC_STRERROR is not set
-# CONFIG_LIBC_PERROR_STDOUT is not set
-CONFIG_ARCH_LOWPUTC=y
-# CONFIG_LIBC_LOCALTIME is not set
-# CONFIG_TIME_EXTENDED is not set
-CONFIG_LIB_SENDFILE_BUFSIZE=0
-# CONFIG_ARCH_ROMGETC is not set
-# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
-# CONFIG_LIBC_NETDB is not set
-
-#
-# Non-standard Library Support
-#
-# CONFIG_LIB_KBDCODEC is not set
-# CONFIG_LIB_SLCDCODEC is not set
-
-#
-# Basic CXX Support
-#
-CONFIG_C99_BOOL8=y
-CONFIG_HAVE_CXX=y
-CONFIG_HAVE_CXXINITIALIZE=y
-# CONFIG_CXX_NEWLONG is not set
-
-#
-# uClibc++ Standard C++ Library
-#
-# CONFIG_UCLIBCXX is not set
-
-#
-# Application Configuration
-#
-
-#
-# Built-In Applications
-#
-CONFIG_BUILTIN_PROXY_STACKSIZE=392
-
-#
-# Examples
-#
-# CONFIG_EXAMPLES_BUTTONS is not set
-# CONFIG_EXAMPLES_CONFIGDATA is not set
-# CONFIG_EXAMPLES_CPUHOG is not set
-# CONFIG_EXAMPLES_CXXTEST is not set
-# CONFIG_EXAMPLES_DHCPD is not set
-# CONFIG_EXAMPLES_ELF is not set
-# CONFIG_EXAMPLES_FTPC is not set
-# CONFIG_EXAMPLES_FTPD is not set
-# CONFIG_EXAMPLES_HELLO is not set
-# CONFIG_EXAMPLES_HELLOXX is not set
-# CONFIG_EXAMPLES_JSON is not set
-# CONFIG_EXAMPLES_HIDKBD is not set
-# CONFIG_EXAMPLES_KEYPADTEST is not set
-# CONFIG_EXAMPLES_IGMP is not set
-# CONFIG_EXAMPLES_MM is not set
-# CONFIG_EXAMPLES_MODBUS is not set
-# CONFIG_EXAMPLES_MOUNT is not set
-# CONFIG_EXAMPLES_NRF24L01TERM is not set
-# CONFIG_EXAMPLES_NSH is not set
-CONFIG_EXAMPLES_NULL=y
-# CONFIG_EXAMPLES_NX is not set
-# CONFIG_EXAMPLES_NXTERM is not set
-# CONFIG_EXAMPLES_NXFFS is not set
-# CONFIG_EXAMPLES_NXHELLO is not set
-# CONFIG_EXAMPLES_NXIMAGE is not set
-# CONFIG_EXAMPLES_NXLINES is not set
-# CONFIG_EXAMPLES_NXTEXT is not set
-# CONFIG_EXAMPLES_OSTEST is not set
-# CONFIG_EXAMPLES_PIPE is not set
-# CONFIG_EXAMPLES_POLL is not set
-# CONFIG_EXAMPLES_PPPD is not set
-# CONFIG_EXAMPLES_POSIXSPAWN is not set
-# CONFIG_EXAMPLES_QENCODER is not set
-# CONFIG_EXAMPLES_RGMP is not set
-# CONFIG_EXAMPLES_SENDMAIL is not set
-# CONFIG_EXAMPLES_SERIALBLASTER is not set
-# CONFIG_EXAMPLES_SERIALRX is not set
-# CONFIG_EXAMPLES_SERLOOP is not set
-# CONFIG_EXAMPLES_SLCD is not set
-# CONFIG_EXAMPLES_SMART is not set
-# CONFIG_EXAMPLES_TCPECHO is not set
-# CONFIG_EXAMPLES_TELNETD is not set
-# CONFIG_EXAMPLES_TIFF is not set
-# CONFIG_EXAMPLES_TOUCHSCREEN is not set
-# CONFIG_EXAMPLES_WEBSERVER is not set
-# CONFIG_EXAMPLES_USBSERIAL is not set
-# CONFIG_EXAMPLES_USBTERM is not set
-# CONFIG_EXAMPLES_WATCHDOG is not set
-
-#
-# Graphics Support
-#
-# CONFIG_TIFF is not set
-# CONFIG_GRAPHICS_TRAVELER is not set
-
-#
-# Interpreters
-#
-# CONFIG_INTERPRETERS_FICL is not set
-# CONFIG_INTERPRETERS_PCODE is not set
-# CONFIG_INTERPRETERS_MICROPYTHON is not set
-
-#
-# FreeModBus
-#
-# CONFIG_MODBUS is not set
-
-#
-# Network Utilities
-#
-# CONFIG_NETUTILS_CODECS is not set
-# CONFIG_NETUTILS_FTPC is not set
-# CONFIG_NETUTILS_JSON is not set
-# CONFIG_NETUTILS_SMTP is not set
-
-#
-# NSH Library
-#
-# CONFIG_NSH_LIBRARY is not set
-
-#
-# NxWidgets/NxWM
-#
-
-#
-# Platform-specific Support
-#
-# CONFIG_PLATFORM_CONFIGDATA is not set
-
-#
-# System Libraries and NSH Add-Ons
-#
-# CONFIG_SYSTEM_FREE is not set
-# CONFIG_SYSTEM_CLE is not set
-# CONFIG_SYSTEM_CUTERM is not set
-# CONFIG_SYSTEM_INSTALL is not set
-# CONFIG_SYSTEM_HEX2BIN is not set
-# CONFIG_SYSTEM_INIFILE is not set
-# CONFIG_SYSTEM_RAMTEST is not set
-# CONFIG_READLINE_HAVE_EXTMATCH is not set
-CONFIG_SYSTEM_READLINE=y
-CONFIG_READLINE_ECHO=y
-# CONFIG_READLINE_TABCOMPLETION is not set
-# CONFIG_READLINE_CMD_HISTORY is not set
-# CONFIG_SYSTEM_RAMTRON is not set
-# CONFIG_SYSTEM_SDCARD is not set
-# CONFIG_SYSTEM_SUDOKU is not set
-# CONFIG_SYSTEM_VI is not set
-# CONFIG_SYSTEM_STACKMONITOR is not set
-# CONFIG_SYSTEM_ZMODEM is not set
-
-#
-# The following line is needed because the upstream tools that generates
-# the include/nuttx/include/config.h file adds logic that relies on this
-# and our build flags include -Werror=undef
-#
-CONFIG_NSOCKET_DESCRIPTORS=0
\ No newline at end of file
diff --git a/platforms/nuttx/nuttx-configs/px4flow-v2/scripts/ld.script b/platforms/nuttx/nuttx-configs/px4flow-v2/scripts/ld.script
deleted file mode 100644
index cc7f1f5804..0000000000
--- a/platforms/nuttx/nuttx-configs/px4flow-v2/scripts/ld.script
+++ /dev/null
@@ -1,158 +0,0 @@
-/****************************************************************************
- * nuttx-configs/px4cannode-v1/scripts/ld.script
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 NuttX 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.
- *
- ****************************************************************************/
-
-/* The STM32F427 has 2048KiB of FLASH beginning at address 0x0800:0000 and
- * 256KiB of SRAM. SRAM is split up into three blocks:
- *
- * 1) 112KiB of SRAM beginning at address 0x2000:0000
- * 2)  16KiB of SRAM beginning at address 0x2001:c000
- * 3)  64KiB of SRAM beginning at address 0x2002:0000
- * 4)  64KiB of TCM SRAM beginning at address 0x1000:0000
- *
- * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000
- * where the code expects to begin execution by jumping to the entry point in
- * the 0x0800:0000 address range.
- *
- * The bootloader only uses the first 16KiB of flash.
- */
-
-MEMORY
-{
-    flash (rx)   : ORIGIN = 0x08004000, LENGTH = 2032K
-    sram (rwx)   : ORIGIN = 0x20000000, LENGTH = 192K
-    ccsram (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
-}
-
-OUTPUT_ARCH(arm)
-
-ENTRY(__start)		/* treat __start as the anchor for dead code stripping */
-EXTERN(_vectors)  /* force the vectors to be included in the output */
-/*
- * Ensure that abort() is present in the final object.  The exception handling
- * code pulled in by libgcc.a requires it (and that code cannot be easily avoided).
- */
-EXTERN(abort)
-
-SECTIONS
-{
-  .text : {
-    _stext = ABSOLUTE(.);
-    *(.vectors)
-     . = ALIGN(8);
-      /*
-       * This section positions the app_descriptor_t used
-       * by the make_can_boot_descriptor.py tool to set
-       * the application image's descriptor so that the
-       * uavcan bootloader has the ability to validate the
-       * image crc, size etc
-      */
-    KEEP(*(.app_descriptor))
-    *(.text .text.*)
-    *(.fixup)
-    *(.gnu.warning)
-    *(.rodata .rodata.*)
-    *(.gnu.linkonce.t.*)
-    *(.got)
-    *(.gcc_except_table)
-    *(.gnu.linkonce.r.*)
-    _etext = ABSOLUTE(.);
-		/*
-		 * This is a hack to make the newlib libm __errno() call
-		 * use the NuttX get_errno_ptr() function.
-		 */
-		__errno = get_errno_ptr;
-  } > flash
-
-/*
- * Init functions (static constructors and the like)
- */
-  .init_section : {
-    _sinit = ABSOLUTE(.);
-    KEEP(*(.init_array .init_array.*))
-    _einit = ABSOLUTE(.);
-  } > flash
-
-	/*
-	 * Construction data for parameters.
-	 */
-	__param ALIGN(4): {
-		__param_start = ABSOLUTE(.);
-		KEEP(*(__param))
-		__param_end = ABSOLUTE(.);
-	} > flash
-
-  .ARM.extab : {
-    *(.ARM.extab*)
-  } > flash
-
-  __exidx_start = ABSOLUTE(.);
-  .ARM.exidx : {
-    *(.ARM.exidx*)
-  } > flash
-  __exidx_end = ABSOLUTE(.);
-
-  _eronly = ABSOLUTE(.);
-
-  .data : {
-    _sdata = ABSOLUTE(.);
-    *(.data .data.*)
-    *(.gnu.linkonce.d.*)
-    CONSTRUCTORS
-    _edata = ABSOLUTE(.);
-  } > sram AT > flash
-
-  .bss : {
-    _sbss = ABSOLUTE(.);
-    *(.bss .bss.*)
-    *(.gnu.linkonce.b.*)
-    *(COMMON)
-    . = ALIGN(4);
-    _ebss = ABSOLUTE(.);
-  } > sram
-
-  /* Stabs debugging sections. */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  .stab.excl 0 : { *(.stab.excl) }
-  .stab.exclstr 0 : { *(.stab.exclstr) }
-  .stab.index 0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
-  .comment 0 : { *(.comment) }
-  .debug_abbrev 0 : { *(.debug_abbrev) }
-  .debug_info 0 : { *(.debug_info) }
-  .debug_line 0 : { *(.debug_line) }
-  .debug_pubnames 0 : { *(.debug_pubnames) }
-  .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v2/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/px4fmu-v2/include/nsh_romfsimg.h
deleted file mode 100644
index 15e4e7a8d5..0000000000
--- a/platforms/nuttx/nuttx-configs/px4fmu-v2/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2013 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/px4fmu-v4/include/nsh_romfsimg.h
deleted file mode 100644
index 15e4e7a8d5..0000000000
--- a/platforms/nuttx/nuttx-configs/px4fmu-v4/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2013 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v4pro/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/px4fmu-v4pro/include/nsh_romfsimg.h
deleted file mode 100644
index 15e4e7a8d5..0000000000
--- a/platforms/nuttx/nuttx-configs/px4fmu-v4pro/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2013 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/px4fmu-v5/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/px4fmu-v5/include/nsh_romfsimg.h
deleted file mode 100644
index beb1a924cf..0000000000
--- a/platforms/nuttx/nuttx-configs/px4fmu-v5/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2016 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/include/nsh_romfsimg.h b/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/include/nsh_romfsimg.h
deleted file mode 100644
index beb1a924cf..0000000000
--- a/platforms/nuttx/nuttx-configs/px4nucleoF767ZI-v1/include/nsh_romfsimg.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (C) 2016 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.
- *
- ****************************************************************************/
-
-/**
- * nsh_romfsetc.h
- *
- * This file is a stub for 'make export' purposes; the actual ROMFS
- * must be supplied by the library client.
- */
-
-extern unsigned char romfs_img[];
-extern unsigned int romfs_img_len;
diff --git a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/Kconfig b/platforms/nuttx/nuttx-configs/zubaxgnss-v1/Kconfig
deleted file mode 100644
index 25a063c823..0000000000
--- a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/Kconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see misc/tools/kconfig-language.txt.
-#
-
-if CONFIG_ARCH_BOARD_ZUBAX_GNSS_V1
-
-config BOARD_HAS_PROBES
-	bool "Board provides GPIO or other Hardware for signaling to timing analyze."
-	default y
-	---help---
-		This board provides GPIO PB5-9 as PROBE_1-5 to provide timing signals from selected drivers.
-
-config BOARD_USE_PROBES
-	bool "Enable the use provides GPIO PB5-9 as PROBE_1-5 to provide timing signals from selected drivers"
-	default n
-	depends on BOARD_HAS_PROBES
-
-	---help---
-		Select to use GPIO provides GPIO PB5-9 to provide  timing signals from selected drivers.
-
-endif
diff --git a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/include/README.txt b/platforms/nuttx/nuttx-configs/zubaxgnss-v1/include/README.txt
deleted file mode 100755
index faee2376aa..0000000000
--- a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/include/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory contains header files unique to the
-Zubax GNSS board
-
-https://github.com/Zubax/zubax_gnss
diff --git a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/include/board.h b/platforms/nuttx/nuttx-configs/zubaxgnss-v1/include/board.h
deleted file mode 100755
index 66af3b4111..0000000000
--- a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/include/board.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/************************************************************************************
- * nuttx-configs/zubaxgnss-v1/include/board.h
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *           David Sidrane <david_s5@nscdg.com>
- *
- * 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 NuttX 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.
- *
- ************************************************************************************/
-
-#ifndef __CONFIGS_ZUBAXGNSS_V1_INCLUDE_BOARD_H
-#define __CONFIGS_ZUBAXGNSS_V1_INCLUDE_BOARD_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#include <nuttx/config.h>
-
-#ifndef __ASSEMBLY__
-# include <stdint.h>
-#endif
-#include "stm32_rcc.h"
-#include "stm32_sdio.h"
-#include "stm32.h"
-
-/************************************************************************************
- * Pre-processor Definitions
- ************************************************************************************/
-/* Clocking *************************************************************************/
-
-/* HSI - 8 MHz RC factory-trimmed
- * LSI - 40 KHz RC (30-60KHz, uncalibrated)
- * HSE - On-board crystal frequency is 8MHz
- * LSE - 32.768 kHz
- */
-
-#define STM32_BOARD_XTAL        8000000ul
-
-#define STM32_HSI_FREQUENCY     8000000ul
-#define STM32_LSI_FREQUENCY     40000
-#define STM32_HSE_FREQUENCY     STM32_BOARD_XTAL
-#define STM32_LSE_FREQUENCY     32768
-
-/* PLL source is HSE/2, PLL multipler is 10: PLL frequency is 8MHz (XTAL) x 10 = 40MHz */
-
-#define STM32_PLL_PREDIV2       RCC_CFGR2_PREDIV2d2   /* 8MHz / 2  =>  4MHz */
-#define STM32_PLL_PLL2MUL       RCC_CFGR2_PLL2MULx10  /* 4MHz * 10 => 40MHz */
-#define STM32_PLL_PREDIV1       RCC_CFGR2_PREDIV1d5   /* 40MHz / 5 => 8MHz */
-#define STM32_PLL_PLLMUL        RCC_CFGR_PLLMUL_CLKx9 /* 8MHz * 9  => 72Mhz */
-#define STM32_PLL_FREQUENCY     (9*STM32_BOARD_XTAL)
-
-/* SYCLLK and HCLK are the PLL frequency */
-
-#define STM32_SYSCLK_FREQUENCY  STM32_PLL_FREQUENCY
-#define STM32_HCLK_FREQUENCY    STM32_PLL_FREQUENCY
-#define STM32_BOARD_HCLK        STM32_HCLK_FREQUENCY    /* same as above, to satisfy compiler */
-
-/* APB2 clock (PCLK2) is HCLK (72MHz) */
-
-#define STM32_RCC_CFGR_PPRE2    RCC_CFGR_PPRE2_HCLK
-#define STM32_PCLK2_FREQUENCY   STM32_HCLK_FREQUENCY
-#define STM32_APB2_CLKIN        (STM32_PCLK2_FREQUENCY)   /* Timers 2-7, 12-14 */
-
-/* APB2 timers 1 and 8 will receive PCLK2. */
-
-#define STM32_APB2_TIM1_CLKIN   (STM32_PCLK2_FREQUENCY)
-#define STM32_APB2_TIM8_CLKIN   (STM32_PCLK2_FREQUENCY)
-
-/* APB1 clock (PCLK1) is HCLK/2 (36MHz) */
-
-#define STM32_RCC_CFGR_PPRE1    RCC_CFGR_PPRE1_HCLKd2
-#define STM32_PCLK1_FREQUENCY   (STM32_HCLK_FREQUENCY/2)
-
-/* APB1 timers 2-4 will be twice PCLK1 */
-
-#define STM32_APB1_TIM2_CLKIN   (2*STM32_PCLK1_FREQUENCY)
-#define STM32_APB1_TIM3_CLKIN   (2*STM32_PCLK1_FREQUENCY)
-#define STM32_APB1_TIM4_CLKIN   (2*STM32_PCLK1_FREQUENCY)
-#define STM32_APB1_TIM5_CLKIN   (2*STM32_PCLK1_FREQUENCY)
-#define STM32_APB1_TIM6_CLKIN   (2*STM32_PCLK1_FREQUENCY)
-#define STM32_APB1_TIM7_CLKIN   (2*STM32_PCLK1_FREQUENCY)
-
-/* Timer Frequencies, if APBx is set to 1, frequency is same to APBx
- * otherwise frequency is 2xAPBx.
- * Note: TIM1,8 are on APB2, others on APB1
- */
-
-#define BOARD_TIM1_FREQUENCY    STM32_APB2_TIM1_CLKIN
-#define BOARD_TIM2_FREQUENCY    STM32_APB1_TIM2_CLKIN
-#define BOARD_TIM3_FREQUENCY    STM32_APB1_TIM3_CLKIN
-#define BOARD_TIM4_FREQUENCY    STM32_APB1_TIM4_CLKIN
-#define BOARD_TIM5_FREQUENCY    STM32_APB1_TIM5_CLKIN
-#define BOARD_TIM6_FREQUENCY    STM32_APB1_TIM6_CLKIN
-#define BOARD_TIM7_FREQUENCY    STM32_APB1_TIM7_CLKIN
-#define BOARD_TIM8_FREQUENCY    STM32_APB2_TIM8_CLKIN
-
-
-
-/* Leds *************************************************************************/
-
-/* LED index values for use with board_setled() */
-
-#define BOARD_LED2                0
-#define BOARD_LED_GREEN           BOARD_LED2    /* INFO */
-#define BOARD_LED3                1
-#define BOARD_LED_RED             BOARD_LED3    /* CAN1 */
-#define BOARD_LED4                2
-#define BOARD_LED_BLUE            BOARD_LED4    /* CAN2 */
-#define BOARD_NLEDS               3
-
-/* LED bits for use with board_setleds() */
-
-#define BOARD_LED_RED_BIT     (1 << BOARD_LED_RED)
-#define BOARD_LED_GREEN_BIT   (1 << BOARD_LED_GREEN)
-#define BOARD_LED_BLUE_BIT    (1 << BOARD_LED_BLUE)
-
-/* TODO:define these
- * These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
- *
- * defined.  In that case, the usage by the board port is as follows:
- *
- *   SYMBOL                     Meaning                      LED state
- *                                                         Red   Green Blue
- *   ------------------------  --------------------------  ------ ------ ----*/
-
-#define LED_STARTED          0 /* NuttX has been started   OFF    OFF   OFF */
-#define LED_HEAPALLOCATE     1 /* Heap has been allocated  OFF    OFF   ON  */
-#define LED_IRQSENABLED      2 /* Interrupts enabled       OFF    ON    OFF */
-#define LED_STACKCREATED     3 /* Idle stack created       OFF    ON    ON  */
-#define LED_INIRQ            4 /* In an interrupt          N/C    GLOW  N/C */
-#define LED_SIGNAL           5 /* In a signal handler      N/C    GLOW  N/C */
-#define LED_ASSERTION        6 /* An assertion failed      GLOW   GLOW  N/C */
-#define LED_PANIC            7 /* The system has crashed   Blk    OFF   N/C */
-#define LED_IDLE             8  /* MCU is is sleep mode    ON     OFF   OFF */
-
-/*
- * Thus if the blue is statically on, NuttX has successfully booted and is,
- * apparently, running normally.  If the Red LED is flashing at
- * approximately 2Hz, then a fatal error has been detected and the system
- * has halted.
- *
- */
-
-
-#if defined(CONFIG_BOARD_USE_PROBES)
-# define PROBE_N(n) (1<<((n)-1))
-# define PROBE_1        (GPIO_OUTPUT|GPIO_CNF_OUTPP | GPIO_MODE_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN1)
-# define PROBE_2        (GPIO_OUTPUT|GPIO_CNF_OUTPP | GPIO_MODE_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN2)
-# define PROBE_3        (GPIO_OUTPUT|GPIO_CNF_OUTPP | GPIO_MODE_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN3)
-
-# define PROBE_INIT(mask) \
-        do { \
-                if ((mask)& PROBE_N(1)) { stm32_configgpio(PROBE_1); } \
-                if ((mask)& PROBE_N(2)) { stm32_configgpio(PROBE_2); } \
-                if ((mask)& PROBE_N(3)) { stm32_configgpio(PROBE_3); } \
-        } while(0)
-
-# define PROBE(n,s)  do {stm32_gpiowrite(PROBE_##n,(s));}while(0)
-# define PROBE_MARK(n) PROBE(n,false);PROBE(n,true)
-#else
-# define PROBE_INIT(mask)
-# define PROBE(n,s)
-# define PROBE_MARK(n)
-#endif
-
-/************************************************************************************
- * Public Data
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-#undef EXTERN
-#if defined(__cplusplus)
-#define EXTERN extern "C"
-extern "C"
-{
-#else
-#define EXTERN extern
-#endif
-
-/************************************************************************************
- * Public Function Prototypes
- ************************************************************************************/
-/************************************************************************************
- * Name: stm32_boardinitialize
- *
- * Description:
- *   All STM32 architectures must provide the following entry point.  This entry point
- *   is called early in the initialization -- after all memory has been configured
- *   and mapped but before any devices have been initialized.
- *
- ************************************************************************************/
-
-void stm32_boardinitialize(void);
-
-/************************************************************************************
- * Name: stm32_ledinit, stm32_setled, and stm32_setleds
- *
- * Description:
- *   If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board LEDs.  If
- *   CONFIG_ARCH_LEDS is not defined, then the following interfaces are available to
- *   control the LEDs from user applications.
- *
- ************************************************************************************/
-
-#ifndef CONFIG_ARCH_LEDS
-void stm32_led_initialize(void);
-void stm32_setled(int led, bool ledon);
-void stm32_setleds(uint8_t ledset);
-#endif
-
-#if  !defined(CONFIG_NSH_LIBRARY)
-int app_archinitialize(void);
-#else
-#define app_archinitialize()  (-ENOSYS)
-#endif
-
-#undef EXTERN
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* __ASSEMBLY__ */
-#endif /* __CONFIGS_ZUBAXGNSS_V1_INCLUDE_BOARD_H */
diff --git a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/nsh/defconfig b/platforms/nuttx/nuttx-configs/zubaxgnss-v1/nsh/defconfig
deleted file mode 100644
index 92c69269e1..0000000000
--- a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/nsh/defconfig
+++ /dev/null
@@ -1,1070 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Nuttx/ Configuration
-#
-
-#
-# Build Setup
-#
-# CONFIG_EXPERIMENTAL is not set
-CONFIG_DEFAULT_SMALL=y
-CONFIG_HOST_LINUX=y
-# CONFIG_HOST_OSX is not set
-# CONFIG_HOST_WINDOWS is not set
-# CONFIG_HOST_OTHER is not set
-
-#
-# Build Configuration
-#
-CONFIG_APPS_DIR="../apps"
-CONFIG_BUILD_FLAT=y
-# CONFIG_BUILD_2PASS is not set
-
-#
-# Binary Output Formats
-#
-# CONFIG_RRLOAD_BINARY is not set
-# CONFIG_INTELHEX_BINARY is not set
-# CONFIG_MOTOROLA_SREC is not set
-CONFIG_RAW_BINARY=y
-# CONFIG_UBOOT_UIMAGE is not set
-# CONFIG_DFU_BINARY is not set
-
-#
-# Customize Header Files
-#
-# CONFIG_ARCH_STDINT_H is not set
-# CONFIG_ARCH_STDBOOL_H is not set
-# CONFIG_ARCH_MATH_H is not set
-# CONFIG_ARCH_FLOAT_H is not set
-# CONFIG_ARCH_STDARG_H is not set
-# CONFIG_ARCH_DEBUG_H is not set
-
-#
-# Debug Options
-#
-# CONFIG_DEBUG_ALERT is not set
-# CONFIG_DEBUG_FEATURES is not set
-CONFIG_ARCH_HAVE_STACKCHECK=y
-CONFIG_STACK_COLORATION=y
-CONFIG_ARCH_HAVE_HEAPCHECK=y
-# CONFIG_HEAP_COLORATION is not set
-CONFIG_DEBUG_SYMBOLS=y
-CONFIG_ARCH_HAVE_CUSTOMOPT=y
-# CONFIG_DEBUG_NOOPT is not set
-CONFIG_DEBUG_CUSTOMOPT=y
-# CONFIG_DEBUG_FULLOPT is not set
-CONFIG_DEBUG_OPTLEVEL="-Os"
-
-#
-# System Type
-#
-CONFIG_ARCH_ARM=y
-# CONFIG_ARCH_AVR is not set
-# CONFIG_ARCH_HC is not set
-# CONFIG_ARCH_MIPS is not set
-# CONFIG_ARCH_MISOC is not set
-# CONFIG_ARCH_RENESAS is not set
-# CONFIG_ARCH_RISCV is not set
-# CONFIG_ARCH_SIM is not set
-# CONFIG_ARCH_X86 is not set
-# CONFIG_ARCH_XTENSA is not set
-# CONFIG_ARCH_Z16 is not set
-# CONFIG_ARCH_Z80 is not set
-CONFIG_ARCH="arm"
-
-#
-# ARM Options
-#
-# CONFIG_ARCH_CHIP_A1X is not set
-# CONFIG_ARCH_CHIP_C5471 is not set
-# CONFIG_ARCH_CHIP_DM320 is not set
-# CONFIG_ARCH_CHIP_EFM32 is not set
-# CONFIG_ARCH_CHIP_IMX1 is not set
-# CONFIG_ARCH_CHIP_IMX6 is not set
-# CONFIG_ARCH_CHIP_KINETIS is not set
-# CONFIG_ARCH_CHIP_KL is not set
-# CONFIG_ARCH_CHIP_LC823450 is not set
-# CONFIG_ARCH_CHIP_LM is not set
-# CONFIG_ARCH_CHIP_TIVA is not set
-# CONFIG_ARCH_CHIP_LPC11XX is not set
-# CONFIG_ARCH_CHIP_LPC17XX is not set
-# CONFIG_ARCH_CHIP_LPC214X is not set
-# CONFIG_ARCH_CHIP_LPC2378 is not set
-# CONFIG_ARCH_CHIP_LPC31XX is not set
-# CONFIG_ARCH_CHIP_LPC43XX is not set
-# CONFIG_ARCH_CHIP_MOXART is not set
-# CONFIG_ARCH_CHIP_NUC1XX is not set
-# CONFIG_ARCH_CHIP_SAMA5 is not set
-# CONFIG_ARCH_CHIP_SAMD is not set
-# CONFIG_ARCH_CHIP_SAML is not set
-# CONFIG_ARCH_CHIP_SAM34 is not set
-# CONFIG_ARCH_CHIP_SAMV7 is not set
-CONFIG_ARCH_CHIP_STM32=y
-# CONFIG_ARCH_CHIP_STM32F0 is not set
-# CONFIG_ARCH_CHIP_STM32F7 is not set
-# CONFIG_ARCH_CHIP_STM32L4 is not set
-# CONFIG_ARCH_CHIP_STR71X is not set
-# CONFIG_ARCH_CHIP_TMS570 is not set
-# CONFIG_ARCH_CHIP_XMC4 is not set
-# CONFIG_ARCH_ARM7TDMI is not set
-# CONFIG_ARCH_ARM926EJS is not set
-# CONFIG_ARCH_ARM920T is not set
-# CONFIG_ARCH_CORTEXM0 is not set
-# CONFIG_ARCH_CORTEXM23 is not set
-CONFIG_ARCH_CORTEXM3=y
-# CONFIG_ARCH_CORTEXM33 is not set
-# CONFIG_ARCH_CORTEXM4 is not set
-# CONFIG_ARCH_CORTEXM7 is not set
-# CONFIG_ARCH_CORTEXA5 is not set
-# CONFIG_ARCH_CORTEXA8 is not set
-# CONFIG_ARCH_CORTEXA9 is not set
-# CONFIG_ARCH_CORTEXR4 is not set
-# CONFIG_ARCH_CORTEXR4F is not set
-# CONFIG_ARCH_CORTEXR5 is not set
-# CONFIG_ARCH_CORTEXR5F is not set
-# CONFIG_ARCH_CORTEXR7 is not set
-# CONFIG_ARCH_CORTEXR7F is not set
-CONFIG_ARCH_FAMILY="armv7-m"
-CONFIG_ARCH_CHIP="stm32"
-CONFIG_ARMV7M_USEBASEPRI=y
-CONFIG_ARCH_HAVE_CMNVECTOR=y
-# CONFIG_ARMV7M_CMNVECTOR is not set
-# CONFIG_ARMV7M_LAZYFPU is not set
-# CONFIG_ARCH_HAVE_FPU is not set
-# CONFIG_ARCH_HAVE_DPFPU is not set
-# CONFIG_ARCH_HAVE_TRUSTZONE is not set
-CONFIG_ARM_HAVE_MPU_UNIFIED=y
-# CONFIG_ARM_MPU is not set
-
-#
-# ARMV7M Configuration Options
-#
-# CONFIG_ARMV7M_HAVE_ICACHE is not set
-# CONFIG_ARMV7M_HAVE_DCACHE is not set
-# CONFIG_ARMV7M_HAVE_ITCM is not set
-# CONFIG_ARMV7M_HAVE_DTCM is not set
-# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set
-# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
-# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
-# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
-CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y
-# CONFIG_ARMV7M_TOOLCHAIN_CLANGL is not set
-CONFIG_ARMV7M_HAVE_STACKCHECK=y
-# CONFIG_ARMV7M_STACKCHECK is not set
-# CONFIG_ARMV7M_ITMSYSLOG is not set
-
-#
-# STM32 Configuration Options
-#
-# CONFIG_ARCH_CHIP_STM32L151C6 is not set
-# CONFIG_ARCH_CHIP_STM32L151C8 is not set
-# CONFIG_ARCH_CHIP_STM32L151CB is not set
-# CONFIG_ARCH_CHIP_STM32L151R6 is not set
-# CONFIG_ARCH_CHIP_STM32L151R8 is not set
-# CONFIG_ARCH_CHIP_STM32L151RB is not set
-# CONFIG_ARCH_CHIP_STM32L151V6 is not set
-# CONFIG_ARCH_CHIP_STM32L151V8 is not set
-# CONFIG_ARCH_CHIP_STM32L151VB is not set
-# CONFIG_ARCH_CHIP_STM32L152C6 is not set
-# CONFIG_ARCH_CHIP_STM32L152C8 is not set
-# CONFIG_ARCH_CHIP_STM32L152CB is not set
-# CONFIG_ARCH_CHIP_STM32L152R6 is not set
-# CONFIG_ARCH_CHIP_STM32L152R8 is not set
-# CONFIG_ARCH_CHIP_STM32L152RB is not set
-# CONFIG_ARCH_CHIP_STM32L152V6 is not set
-# CONFIG_ARCH_CHIP_STM32L152V8 is not set
-# CONFIG_ARCH_CHIP_STM32L152VB is not set
-# CONFIG_ARCH_CHIP_STM32L152CC is not set
-# CONFIG_ARCH_CHIP_STM32L152RC is not set
-# CONFIG_ARCH_CHIP_STM32L152VC is not set
-# CONFIG_ARCH_CHIP_STM32L162ZD is not set
-# CONFIG_ARCH_CHIP_STM32L162VE is not set
-# CONFIG_ARCH_CHIP_STM32F100C8 is not set
-# CONFIG_ARCH_CHIP_STM32F100CB is not set
-# CONFIG_ARCH_CHIP_STM32F100R8 is not set
-# CONFIG_ARCH_CHIP_STM32F100RB is not set
-# CONFIG_ARCH_CHIP_STM32F100RC is not set
-# CONFIG_ARCH_CHIP_STM32F100RD is not set
-# CONFIG_ARCH_CHIP_STM32F100RE is not set
-# CONFIG_ARCH_CHIP_STM32F100V8 is not set
-# CONFIG_ARCH_CHIP_STM32F100VB is not set
-# CONFIG_ARCH_CHIP_STM32F100VC is not set
-# CONFIG_ARCH_CHIP_STM32F100VD is not set
-# CONFIG_ARCH_CHIP_STM32F100VE is not set
-# CONFIG_ARCH_CHIP_STM32F102CB is not set
-# CONFIG_ARCH_CHIP_STM32F103T8 is not set
-# CONFIG_ARCH_CHIP_STM32F103TB is not set
-# CONFIG_ARCH_CHIP_STM32F103C4 is not set
-# CONFIG_ARCH_CHIP_STM32F103C8 is not set
-# CONFIG_ARCH_CHIP_STM32F103CB is not set
-# CONFIG_ARCH_CHIP_STM32F103R8 is not set
-# CONFIG_ARCH_CHIP_STM32F103RB is not set
-# CONFIG_ARCH_CHIP_STM32F103RC is not set
-# CONFIG_ARCH_CHIP_STM32F103RD is not set
-# CONFIG_ARCH_CHIP_STM32F103RE is not set
-# CONFIG_ARCH_CHIP_STM32F103RG is not set
-# CONFIG_ARCH_CHIP_STM32F103V8 is not set
-# CONFIG_ARCH_CHIP_STM32F103VB is not set
-# CONFIG_ARCH_CHIP_STM32F103VC is not set
-# CONFIG_ARCH_CHIP_STM32F103VE is not set
-# CONFIG_ARCH_CHIP_STM32F103ZE is not set
-CONFIG_ARCH_CHIP_STM32F105VB=y
-# CONFIG_ARCH_CHIP_STM32F105RB is not set
-# CONFIG_ARCH_CHIP_STM32F107VC is not set
-# CONFIG_ARCH_CHIP_STM32F205RG is not set
-# CONFIG_ARCH_CHIP_STM32F207IG is not set
-# CONFIG_ARCH_CHIP_STM32F207ZE is not set
-# CONFIG_ARCH_CHIP_STM32F302K6 is not set
-# CONFIG_ARCH_CHIP_STM32F302K8 is not set
-# CONFIG_ARCH_CHIP_STM32F302CB is not set
-# CONFIG_ARCH_CHIP_STM32F302CC is not set
-# CONFIG_ARCH_CHIP_STM32F302RB is not set
-# CONFIG_ARCH_CHIP_STM32F302RC is not set
-# CONFIG_ARCH_CHIP_STM32F302VB is not set
-# CONFIG_ARCH_CHIP_STM32F302VC is not set
-# CONFIG_ARCH_CHIP_STM32F303K6 is not set
-# CONFIG_ARCH_CHIP_STM32F303K8 is not set
-# CONFIG_ARCH_CHIP_STM32F303C6 is not set
-# CONFIG_ARCH_CHIP_STM32F303C8 is not set
-# CONFIG_ARCH_CHIP_STM32F303CB is not set
-# CONFIG_ARCH_CHIP_STM32F303CC is not set
-# CONFIG_ARCH_CHIP_STM32F303RB is not set
-# CONFIG_ARCH_CHIP_STM32F303RC is not set
-# CONFIG_ARCH_CHIP_STM32F303RD is not set
-# CONFIG_ARCH_CHIP_STM32F303RE is not set
-# CONFIG_ARCH_CHIP_STM32F303VB is not set
-# CONFIG_ARCH_CHIP_STM32F303VC is not set
-# CONFIG_ARCH_CHIP_STM32F334K4 is not set
-# CONFIG_ARCH_CHIP_STM32F334K6 is not set
-# CONFIG_ARCH_CHIP_STM32F334K8 is not set
-# CONFIG_ARCH_CHIP_STM32F334C4 is not set
-# CONFIG_ARCH_CHIP_STM32F334C6 is not set
-# CONFIG_ARCH_CHIP_STM32F334C8 is not set
-# CONFIG_ARCH_CHIP_STM32F334R4 is not set
-# CONFIG_ARCH_CHIP_STM32F334R6 is not set
-# CONFIG_ARCH_CHIP_STM32F334R8 is not set
-# CONFIG_ARCH_CHIP_STM32F372C8 is not set
-# CONFIG_ARCH_CHIP_STM32F372R8 is not set
-# CONFIG_ARCH_CHIP_STM32F372V8 is not set
-# CONFIG_ARCH_CHIP_STM32F372CB is not set
-# CONFIG_ARCH_CHIP_STM32F372RB is not set
-# CONFIG_ARCH_CHIP_STM32F372VB is not set
-# CONFIG_ARCH_CHIP_STM32F372CC is not set
-# CONFIG_ARCH_CHIP_STM32F372RC is not set
-# CONFIG_ARCH_CHIP_STM32F372VC is not set
-# CONFIG_ARCH_CHIP_STM32F373C8 is not set
-# CONFIG_ARCH_CHIP_STM32F373R8 is not set
-# CONFIG_ARCH_CHIP_STM32F373V8 is not set
-# CONFIG_ARCH_CHIP_STM32F373CB is not set
-# CONFIG_ARCH_CHIP_STM32F373RB is not set
-# CONFIG_ARCH_CHIP_STM32F373VB is not set
-# CONFIG_ARCH_CHIP_STM32F373CC is not set
-# CONFIG_ARCH_CHIP_STM32F373RC is not set
-# CONFIG_ARCH_CHIP_STM32F373VC is not set
-# CONFIG_ARCH_CHIP_STM32F401RE is not set
-# CONFIG_ARCH_CHIP_STM32F410RB is not set
-# CONFIG_ARCH_CHIP_STM32F411RE is not set
-# CONFIG_ARCH_CHIP_STM32F411VE is not set
-# CONFIG_ARCH_CHIP_STM32F405RG is not set
-# CONFIG_ARCH_CHIP_STM32F405VG is not set
-# CONFIG_ARCH_CHIP_STM32F405ZG is not set
-# CONFIG_ARCH_CHIP_STM32F407VE is not set
-# CONFIG_ARCH_CHIP_STM32F407VG is not set
-# CONFIG_ARCH_CHIP_STM32F407ZE is not set
-# CONFIG_ARCH_CHIP_STM32F407ZG is not set
-# CONFIG_ARCH_CHIP_STM32F407IE is not set
-# CONFIG_ARCH_CHIP_STM32F407IG is not set
-# CONFIG_ARCH_CHIP_STM32F427V is not set
-# CONFIG_ARCH_CHIP_STM32F427Z is not set
-# CONFIG_ARCH_CHIP_STM32F427I is not set
-# CONFIG_ARCH_CHIP_STM32F429V is not set
-# CONFIG_ARCH_CHIP_STM32F429Z is not set
-# CONFIG_ARCH_CHIP_STM32F429I is not set
-# CONFIG_ARCH_CHIP_STM32F429B is not set
-# CONFIG_ARCH_CHIP_STM32F429N is not set
-# CONFIG_ARCH_CHIP_STM32F446M is not set
-# CONFIG_ARCH_CHIP_STM32F446R is not set
-# CONFIG_ARCH_CHIP_STM32F446V is not set
-# CONFIG_ARCH_CHIP_STM32F446Z is not set
-# CONFIG_ARCH_CHIP_STM32F469A is not set
-# CONFIG_ARCH_CHIP_STM32F469I is not set
-# CONFIG_ARCH_CHIP_STM32F469B is not set
-# CONFIG_ARCH_CHIP_STM32F469N is not set
-CONFIG_STM32_FLASH_CONFIG_DEFAULT=y
-# CONFIG_STM32_FLASH_CONFIG_4 is not set
-# CONFIG_STM32_FLASH_CONFIG_6 is not set
-# CONFIG_STM32_FLASH_CONFIG_8 is not set
-# CONFIG_STM32_FLASH_CONFIG_B is not set
-# CONFIG_STM32_FLASH_CONFIG_C is not set
-# CONFIG_STM32_FLASH_CONFIG_D is not set
-# CONFIG_STM32_FLASH_CONFIG_E is not set
-# CONFIG_STM32_FLASH_CONFIG_F is not set
-# CONFIG_STM32_FLASH_CONFIG_G is not set
-# CONFIG_STM32_FLASH_CONFIG_I is not set
-# CONFIG_STM32_STM32L15XX is not set
-# CONFIG_STM32_ENERGYLITE is not set
-CONFIG_STM32_STM32F10XX=y
-# CONFIG_STM32_VALUELINE is not set
-CONFIG_STM32_CONNECTIVITYLINE=y
-# CONFIG_STM32_PERFORMANCELINE is not set
-# CONFIG_STM32_USBACCESSLINE is not set
-# CONFIG_STM32_HIGHDENSITY is not set
-# CONFIG_STM32_MEDIUMDENSITY is not set
-# CONFIG_STM32_LOWDENSITY is not set
-# CONFIG_STM32_STM32F20XX is not set
-# CONFIG_STM32_STM32F205 is not set
-# CONFIG_STM32_STM32F207 is not set
-# CONFIG_STM32_STM32F30XX is not set
-# CONFIG_STM32_STM32F302 is not set
-# CONFIG_STM32_STM32F303 is not set
-# CONFIG_STM32_STM32F33XX is not set
-# CONFIG_STM32_STM32F37XX is not set
-# CONFIG_STM32_STM32F4XXX is not set
-# CONFIG_STM32_STM32F401 is not set
-# CONFIG_STM32_STM32F410 is not set
-# CONFIG_STM32_STM32F411 is not set
-# CONFIG_STM32_STM32F405 is not set
-# CONFIG_STM32_STM32F407 is not set
-# CONFIG_STM32_STM32F427 is not set
-# CONFIG_STM32_STM32F429 is not set
-# CONFIG_STM32_STM32F446 is not set
-# CONFIG_STM32_STM32F469 is not set
-# CONFIG_STM32_DFU is not set
-
-#
-# STM32 Peripheral Support
-#
-# CONFIG_STM32_HAVE_CCM is not set
-# CONFIG_STM32_HAVE_USBDEV is not set
-CONFIG_STM32_HAVE_OTGFS=y
-# CONFIG_STM32_HAVE_FSMC is not set
-# CONFIG_STM32_HAVE_HRTIM1 is not set
-# CONFIG_STM32_HAVE_LTDC is not set
-CONFIG_STM32_HAVE_USART3=y
-CONFIG_STM32_HAVE_UART4=y
-CONFIG_STM32_HAVE_UART5=y
-# CONFIG_STM32_HAVE_USART6 is not set
-# CONFIG_STM32_HAVE_UART7 is not set
-# CONFIG_STM32_HAVE_UART8 is not set
-CONFIG_STM32_HAVE_TIM1=y
-# CONFIG_STM32_HAVE_TIM2 is not set
-CONFIG_STM32_HAVE_TIM3=y
-CONFIG_STM32_HAVE_TIM4=y
-CONFIG_STM32_HAVE_TIM5=y
-CONFIG_STM32_HAVE_TIM6=y
-CONFIG_STM32_HAVE_TIM7=y
-# CONFIG_STM32_HAVE_TIM8 is not set
-# CONFIG_STM32_HAVE_TIM9 is not set
-# CONFIG_STM32_HAVE_TIM10 is not set
-# CONFIG_STM32_HAVE_TIM11 is not set
-# CONFIG_STM32_HAVE_TIM12 is not set
-# CONFIG_STM32_HAVE_TIM13 is not set
-# CONFIG_STM32_HAVE_TIM14 is not set
-# CONFIG_STM32_HAVE_TIM15 is not set
-# CONFIG_STM32_HAVE_TIM16 is not set
-# CONFIG_STM32_HAVE_TIM17 is not set
-CONFIG_STM32_HAVE_ADC2=y
-# CONFIG_STM32_HAVE_ADC3 is not set
-# CONFIG_STM32_HAVE_ADC4 is not set
-# CONFIG_STM32_HAVE_ADC1_DMA is not set
-# CONFIG_STM32_HAVE_ADC2_DMA is not set
-# CONFIG_STM32_HAVE_ADC3_DMA is not set
-# CONFIG_STM32_HAVE_ADC4_DMA is not set
-# CONFIG_STM32_HAVE_SDADC1 is not set
-# CONFIG_STM32_HAVE_SDADC2 is not set
-# CONFIG_STM32_HAVE_SDADC3 is not set
-# CONFIG_STM32_HAVE_SDADC1_DMA is not set
-# CONFIG_STM32_HAVE_SDADC2_DMA is not set
-# CONFIG_STM32_HAVE_SDADC3_DMA is not set
-CONFIG_STM32_HAVE_CAN1=y
-CONFIG_STM32_HAVE_CAN2=y
-# CONFIG_STM32_HAVE_COMP1 is not set
-# CONFIG_STM32_HAVE_COMP2 is not set
-# CONFIG_STM32_HAVE_COMP3 is not set
-# CONFIG_STM32_HAVE_COMP4 is not set
-# CONFIG_STM32_HAVE_COMP5 is not set
-# CONFIG_STM32_HAVE_COMP6 is not set
-# CONFIG_STM32_HAVE_COMP7 is not set
-CONFIG_STM32_HAVE_DAC1=y
-CONFIG_STM32_HAVE_DAC2=y
-# CONFIG_STM32_HAVE_RNG is not set
-CONFIG_STM32_HAVE_ETHMAC=y
-CONFIG_STM32_HAVE_I2C2=y
-# CONFIG_STM32_HAVE_I2C3 is not set
-CONFIG_STM32_HAVE_SPI2=y
-CONFIG_STM32_HAVE_SPI3=y
-# CONFIG_STM32_HAVE_I2S3 is not set
-# CONFIG_STM32_HAVE_SPI4 is not set
-# CONFIG_STM32_HAVE_SPI5 is not set
-# CONFIG_STM32_HAVE_SPI6 is not set
-# CONFIG_STM32_HAVE_SAIPLL is not set
-# CONFIG_STM32_HAVE_I2SPLL is not set
-# CONFIG_STM32_HAVE_OPAMP1 is not set
-# CONFIG_STM32_HAVE_OPAMP2 is not set
-# CONFIG_STM32_HAVE_OPAMP3 is not set
-# CONFIG_STM32_HAVE_OPAMP4 is not set
-# CONFIG_STM32_ADC1 is not set
-# CONFIG_STM32_ADC2 is not set
-# CONFIG_STM32_BKP is not set
-# CONFIG_STM32_CAN1 is not set
-# CONFIG_STM32_CAN2 is not set
-# CONFIG_STM32_CRC is not set
-# CONFIG_STM32_DMA1 is not set
-# CONFIG_STM32_DMA2 is not set
-# CONFIG_STM32_DAC1 is not set
-# CONFIG_STM32_DAC2 is not set
-# CONFIG_STM32_ETHMAC is not set
-# CONFIG_STM32_I2C1 is not set
-# CONFIG_STM32_I2C2 is not set
-# CONFIG_STM32_OPAMP is not set
-# CONFIG_STM32_OTGFS is not set
-# CONFIG_STM32_PWR is not set
-# CONFIG_STM32_SPI1 is not set
-# CONFIG_STM32_SPI2 is not set
-# CONFIG_STM32_SPI3 is not set
-CONFIG_STM32_SYSCFG=y
-CONFIG_STM32_TIM1=y
-# CONFIG_STM32_TIM2 is not set
-# CONFIG_STM32_TIM3 is not set
-# CONFIG_STM32_TIM4 is not set
-# CONFIG_STM32_TIM5 is not set
-# CONFIG_STM32_TIM6 is not set
-# CONFIG_STM32_TIM7 is not set
-# CONFIG_STM32_USART1 is not set
-# CONFIG_STM32_USART2 is not set
-# CONFIG_STM32_USART3 is not set
-# CONFIG_STM32_UART4 is not set
-# CONFIG_STM32_UART5 is not set
-# CONFIG_STM32_IWDG is not set
-# CONFIG_STM32_WWDG is not set
-CONFIG_STM32_NOEXT_VECTORS=y
-
-#
-# Alternate Pin Mapping
-#
-# CONFIG_STM32_TIM1_NO_REMAP is not set
-# CONFIG_STM32_TIM1_FULL_REMAP is not set
-CONFIG_STM32_TIM1_PARTIAL_REMAP=y
-# CONFIG_STM32_FLASH_WORKAROUND_DATA_CACHE_CORRUPTION_ON_RWW is not set
-# CONFIG_STM32_JTAG_DISABLE is not set
-CONFIG_STM32_JTAG_FULL_ENABLE=y
-# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set
-# CONFIG_STM32_JTAG_SW_ENABLE is not set
-CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y
-# CONFIG_STM32_FORCEPOWER is not set
-# CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set
-
-#
-# Timer Configuration
-#
-# CONFIG_STM32_ONESHOT is not set
-# CONFIG_STM32_FREERUN is not set
-# CONFIG_STM32_TIM1_PWM is not set
-# CONFIG_STM32_TIM1_CAP is not set
-# CONFIG_STM32_TIM3_CAP is not set
-# CONFIG_STM32_TIM4_CAP is not set
-# CONFIG_STM32_TIM5_CAP is not set
-CONFIG_STM32_HAVE_RTC_COUNTER=y
-# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set
-
-#
-# USB FS Host Configuration
-#
-
-#
-# USB HS Host Configuration
-#
-
-#
-# USB Host Debug Configuration
-#
-
-#
-# USB Device Configuration
-#
-# CONFIG_ARCH_TOOLCHAIN_IAR is not set
-CONFIG_ARCH_TOOLCHAIN_GNU=y
-
-#
-# Architecture Options
-#
-# CONFIG_ARCH_NOINTC is not set
-# CONFIG_ARCH_VECNOTIRQ is not set
-# CONFIG_ARCH_DMA is not set
-CONFIG_ARCH_HAVE_IRQPRIO=y
-# CONFIG_ARCH_L2CACHE is not set
-# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set
-# CONFIG_ARCH_HAVE_ADDRENV is not set
-# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set
-# CONFIG_ARCH_HAVE_MULTICPU is not set
-CONFIG_ARCH_HAVE_VFORK=y
-# CONFIG_ARCH_HAVE_MMU is not set
-CONFIG_ARCH_HAVE_MPU=y
-# CONFIG_ARCH_NAND_HWECC is not set
-# CONFIG_ARCH_HAVE_EXTCLK is not set
-# CONFIG_ARCH_HAVE_POWEROFF is not set
-CONFIG_ARCH_HAVE_RESET=y
-# CONFIG_ARCH_HAVE_RTC_SUBSECONDS is not set
-# CONFIG_ARCH_USE_MPU is not set
-# CONFIG_ARCH_IRQPRIO is not set
-# CONFIG_ARCH_STACKDUMP is not set
-# CONFIG_ENDIAN_BIG is not set
-# CONFIG_ARCH_IDLE_CUSTOM is not set
-# CONFIG_ARCH_HAVE_RAMFUNCS is not set
-CONFIG_ARCH_HAVE_RAMVECTORS=y
-# CONFIG_ARCH_RAMVECTORS is not set
-# CONFIG_ARCH_MINIMAL_VECTORTABLE is not set
-
-#
-# Board Settings
-#
-CONFIG_BOARD_LOOPSPERMSEC=5483
-# CONFIG_ARCH_CALIBRATION is not set
-
-#
-# Interrupt options
-#
-CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
-CONFIG_ARCH_INTERRUPTSTACK=3072
-CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
-# CONFIG_ARCH_HIPRI_INTERRUPT is not set
-
-#
-# Boot options
-#
-# CONFIG_BOOT_RUNFROMEXTSRAM is not set
-CONFIG_BOOT_RUNFROMFLASH=y
-# CONFIG_BOOT_RUNFROMISRAM is not set
-# CONFIG_BOOT_RUNFROMSDRAM is not set
-# CONFIG_BOOT_COPYTORAM is not set
-
-#
-# Boot Memory Configuration
-#
-CONFIG_RAM_START=0x20000000
-CONFIG_RAM_SIZE=20480
-# CONFIG_ARCH_HAVE_SDRAM is not set
-
-#
-# Board Selection
-#
-CONFIG_ARCH_BOARD_ZUBAXGNSS_V1=y
-CONFIG_ARCH_BOARD="zubaxgnss-v1"
-
-#
-# Custom Board Configuration
-#
-# CONFIG_BOARD_CRASHDUMP is not set
-# CONFIG_BOARD_CUSTOM_LEDS is not set
-# CONFIG_BOARD_CUSTOM_BUTTONS is not set
-
-#
-# Common Board Options
-#
-CONFIG_ARCH_HAVE_LEDS=y
-# CONFIG_ARCH_LEDS is not set
-# CONFIG_ARCH_HAVE_BUTTONS is not set
-# CONFIG_ARCH_BUTTONS is not set
-# CONFIG_ARCH_HAVE_IRQBUTTONS is not set
-CONFIG_BOARD_HAS_PROBES=y
-# CONFIG_BOARD_USE_PROBES is not set
-
-#
-# Board-Specific Options
-#
-# CONFIG_BOARD_CRASHDUMP is not set
-# CONFIG_LIB_BOARDCTL is not set
-
-#
-# RTOS Features
-#
-CONFIG_DISABLE_OS_API=y
-CONFIG_DISABLE_POSIX_TIMERS=y
-CONFIG_DISABLE_PTHREAD=y
-CONFIG_DISABLE_SIGNALS=y
-CONFIG_DISABLE_MQUEUE=y
-CONFIG_DISABLE_ENVIRON=y
-
-#
-# Clocks and Timers
-#
-CONFIG_ARCH_HAVE_TICKLESS=y
-# CONFIG_SCHED_TICKLESS is not set
-CONFIG_USEC_PER_TICK=10000
-# CONFIG_SYSTEM_TIME64 is not set
-# CONFIG_CLOCK_MONOTONIC is not set
-CONFIG_ARCH_HAVE_TIMEKEEPING=y
-# CONFIG_JULIAN_TIME is not set
-CONFIG_START_YEAR=2016
-CONFIG_START_MONTH=11
-CONFIG_START_DAY=30
-CONFIG_MAX_WDOGPARMS=1
-CONFIG_PREALLOC_WDOGS=1
-CONFIG_WDOG_INTRESERVE=0
-CONFIG_PREALLOC_TIMERS=0
-
-#
-# Tasks and Scheduling
-#
-# CONFIG_SPINLOCK is not set
-# CONFIG_INIT_NONE is not set
-CONFIG_INIT_ENTRYPOINT=y
-CONFIG_USER_ENTRYPOINT="main"
-CONFIG_RR_INTERVAL=0
-# CONFIG_SCHED_SPORADIC is not set
-CONFIG_TASK_NAME_SIZE=0
-CONFIG_MAX_TASKS=0
-# CONFIG_SCHED_HAVE_PARENT is not set
-# CONFIG_SCHED_WAITPID is not set
-
-#
-# Performance Monitoring
-#
-# CONFIG_SCHED_CPULOAD is not set
-# CONFIG_SCHED_INSTRUMENTATION is not set
-
-#
-# Files and I/O
-#
-# CONFIG_DEV_CONSOLE is not set
-CONFIG_FDCLONE_DISABLE=y
-CONFIG_FDCLONE_STDIO=y
-CONFIG_SDCLONE_DISABLE=y
-CONFIG_NFILE_DESCRIPTORS=0
-CONFIG_NFILE_STREAMS=0
-CONFIG_NAME_MAX=0
-# CONFIG_PRIORITY_INHERITANCE is not set
-
-#
-# RTOS hooks
-#
-# CONFIG_BOARD_INITIALIZE is not set
-# CONFIG_SCHED_STARTHOOK is not set
-# CONFIG_SCHED_ATEXIT is not set
-# CONFIG_SCHED_ONEXIT is not set
-# CONFIG_MODULE is not set
-
-#
-# Work queue support
-#
-
-#
-# Stack and heap information
-#
-CONFIG_IDLETHREAD_STACKSIZE=4096
-CONFIG_USERMAIN_STACKSIZE=880
-CONFIG_PTHREAD_STACK_MIN=256
-CONFIG_PTHREAD_STACK_DEFAULT=464
-# CONFIG_LIB_SYSCALL is not set
-
-#
-# Device Drivers
-#
-CONFIG_DISABLE_POLL=y
-# CONFIG_DEV_NULL is not set
-# CONFIG_DEV_ZERO is not set
-# CONFIG_DEV_URANDOM is not set
-# CONFIG_DEV_LOOP is not set
-
-#
-# Buffering
-#
-# CONFIG_DRVR_WRITEBUFFER is not set
-# CONFIG_DRVR_READAHEAD is not set
-# CONFIG_RAMDISK is not set
-# CONFIG_CAN is not set
-# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set
-# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set
-# CONFIG_PWM is not set
-CONFIG_ARCH_HAVE_I2CRESET=y
-# CONFIG_I2C is not set
-# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set
-# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set
-CONFIG_ARCH_HAVE_SPI_BITORDER=y
-# CONFIG_SPI is not set
-# CONFIG_I2S is not set
-
-#
-# Timer Driver Support
-#
-# CONFIG_TIMER is not set
-# CONFIG_ONESHOT is not set
-# CONFIG_RTC is not set
-# CONFIG_WATCHDOG is not set
-# CONFIG_ANALOG is not set
-# CONFIG_AUDIO_DEVICES is not set
-# CONFIG_VIDEO_DEVICES is not set
-# CONFIG_BCH is not set
-# CONFIG_INPUT is not set
-
-#
-# IO Expander/GPIO Support
-#
-# CONFIG_IOEXPANDER is not set
-# CONFIG_DEV_GPIO is not set
-
-#
-# LCD Driver Support
-#
-# CONFIG_LCD is not set
-# CONFIG_SLCD is not set
-
-#
-# LED Support
-#
-# CONFIG_RGBLED is not set
-# CONFIG_PCA9635PW is not set
-# CONFIG_NCP5623C is not set
-# CONFIG_MMCSD is not set
-# CONFIG_MODEM is not set
-# CONFIG_MTD is not set
-# CONFIG_EEPROM is not set
-# CONFIG_PIPES is not set
-# CONFIG_PM is not set
-# CONFIG_DRIVERS_SMPS is not set
-# CONFIG_POWER is not set
-# CONFIG_SENSORS is not set
-# CONFIG_SERIAL is not set
-# CONFIG_USBDEV is not set
-# CONFIG_USBHOST is not set
-# CONFIG_USBMISC is not set
-# CONFIG_HAVE_USBTRACE is not set
-# CONFIG_DRIVERS_WIRELESS is not set
-# CONFIG_DRIVERS_CONTACTLESS is not set
-
-#
-# System Logging
-#
-# CONFIG_ARCH_SYSLOG is not set
-# CONFIG_SYSLOG_WRITE is not set
-# CONFIG_RAMLOG is not set
-# CONFIG_SYSLOG_INTBUFFER is not set
-# CONFIG_SYSLOG_TIMESTAMP is not set
-# CONFIG_SYSLOG_SERIAL_CONSOLE is not set
-# CONFIG_SYSLOG_CHAR is not set
-CONFIG_SYSLOG_NONE=y
-# CONFIG_SYSLOG_FILE is not set
-# CONFIG_SYSLOG_CHARDEV is not set
-
-#
-# Networking Support
-#
-# CONFIG_ARCH_HAVE_NET is not set
-# CONFIG_ARCH_HAVE_PHY is not set
-# CONFIG_NET is not set
-
-#
-# Crypto API
-#
-# CONFIG_CRYPTO is not set
-
-#
-# File Systems
-#
-
-#
-# File system configuration
-#
-CONFIG_DISABLE_MOUNTPOINT=y
-CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y
-# CONFIG_FS_READABLE is not set
-# CONFIG_FS_WRITABLE is not set
-# CONFIG_FS_NAMED_SEMAPHORES is not set
-# CONFIG_FS_RAMMAP is not set
-# CONFIG_FS_PROCFS is not set
-# CONFIG_FS_UNIONFS is not set
-
-#
-# Graphics Support
-#
-# CONFIG_NX is not set
-
-#
-# Memory Management
-#
-CONFIG_MM_SMALL=y
-CONFIG_MM_REGIONS=1
-# CONFIG_ARCH_HAVE_HEAP2 is not set
-# CONFIG_GRAN is not set
-
-#
-# Common I/O Buffer Support
-#
-# CONFIG_MM_IOB is not set
-
-#
-# Audio Support
-#
-# CONFIG_AUDIO is not set
-
-#
-# Wireless Support
-#
-# CONFIG_WIRELESS is not set
-
-#
-# Binary Loader
-#
-CONFIG_BINFMT_DISABLE=y
-# CONFIG_PIC is not set
-CONFIG_SYMTAB_ORDEREDBYNAME=y
-
-#
-# Library Routines
-#
-
-#
-# Standard C Library Options
-#
-
-#
-# Standard C I/O
-#
-CONFIG_STDIO_DISABLE_BUFFERING=y
-CONFIG_NUNGET_CHARS=0
-# CONFIG_NOPRINTF_FIELDWIDTH is not set
-# CONFIG_LIBC_FLOATINGPOINT is not set
-# CONFIG_LIBC_LONG_LONG is not set
-# CONFIG_LIBC_SCANSET is not set
-# CONFIG_EOL_IS_CR is not set
-# CONFIG_EOL_IS_LF is not set
-# CONFIG_EOL_IS_BOTH_CRLF is not set
-CONFIG_EOL_IS_EITHER_CRLF=y
-# CONFIG_MEMCPY_VIK is not set
-# CONFIG_LIBM is not set
-
-#
-# Architecture-Specific Support
-#
-# CONFIG_ARCH_LOWPUTC is not set
-# CONFIG_ARCH_ROMGETC is not set
-# CONFIG_LIBC_ARCH_MEMCPY is not set
-# CONFIG_LIBC_ARCH_MEMCMP is not set
-# CONFIG_LIBC_ARCH_MEMMOVE is not set
-# CONFIG_LIBC_ARCH_MEMSET is not set
-# CONFIG_LIBC_ARCH_STRCHR is not set
-# CONFIG_LIBC_ARCH_STRCMP is not set
-# CONFIG_LIBC_ARCH_STRCPY is not set
-# CONFIG_LIBC_ARCH_STRNCPY is not set
-# CONFIG_LIBC_ARCH_STRLEN is not set
-# CONFIG_LIBC_ARCH_STRNLEN is not set
-# CONFIG_LIBC_ARCH_ELF is not set
-# CONFIG_ARMV7M_MEMCPY is not set
-
-#
-# stdlib Options
-#
-CONFIG_LIB_RAND_ORDER=1
-
-#
-# Program Execution Options
-#
-CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=768
-CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=768
-
-#
-# errno Decode Support
-#
-# CONFIG_LIBC_STRERROR is not set
-# CONFIG_LIBC_PERROR_STDOUT is not set
-
-#
-# memcpy/memset Options
-#
-CONFIG_MEMSET_OPTSPEED=y
-CONFIG_MEMSET_64BIT=y
-# CONFIG_LIBC_DLLFCN is not set
-# CONFIG_LIBC_MODLIB is not set
-# CONFIG_LIBC_WCHAR is not set
-# CONFIG_LIBC_LOCALE is not set
-
-#
-# Time/Time Zone Support
-#
-# CONFIG_TIME_EXTENDED is not set
-CONFIG_ARCH_HAVE_TLS=y
-
-#
-# Thread Local Storage (TLS)
-#
-# CONFIG_TLS is not set
-
-#
-# Network-Related Options
-#
-# CONFIG_LIBC_IPv4_ADDRCONV is not set
-# CONFIG_LIBC_IPv6_ADDRCONV is not set
-# CONFIG_LIBC_NETDB is not set
-
-#
-# NETDB Support
-#
-# CONFIG_LIBC_IOCTL_VARIADIC is not set
-CONFIG_LIB_SENDFILE_BUFSIZE=0
-
-#
-# Non-standard Library Support
-#
-# CONFIG_LIB_CRC64_FAST is not set
-# CONFIG_LIB_KBDCODEC is not set
-# CONFIG_LIB_SLCDCODEC is not set
-# CONFIG_LIB_HEX2BIN is not set
-
-#
-# Basic CXX Support
-#
-CONFIG_C99_BOOL8=y
-CONFIG_HAVE_CXX=y
-# CONFIG_CXX_NEWLONG is not set
-
-#
-# LLVM C++ Library (libcxx)
-#
-# CONFIG_LIBCXX is not set
-
-#
-# uClibc++ Standard C++ Library
-#
-# CONFIG_UCLIBCXX is not set
-
-#
-# Application Configuration
-#
-
-#
-# CAN Utilities
-#
-
-#
-# Examples
-#
-# CONFIG_EXAMPLES_CCTYPE is not set
-# CONFIG_EXAMPLES_CHAT is not set
-# CONFIG_EXAMPLES_CONFIGDATA is not set
-# CONFIG_EXAMPLES_CXXTEST is not set
-# CONFIG_EXAMPLES_DHCPD is not set
-# CONFIG_EXAMPLES_ELF is not set
-# CONFIG_EXAMPLES_FTPC is not set
-# CONFIG_EXAMPLES_FTPD is not set
-# CONFIG_EXAMPLES_HELLO is not set
-# CONFIG_EXAMPLES_HELLOXX is not set
-# CONFIG_EXAMPLES_HIDKBD is not set
-# CONFIG_EXAMPLES_IGMP is not set
-# CONFIG_EXAMPLES_JSON is not set
-# CONFIG_EXAMPLES_MEDIA is not set
-# CONFIG_EXAMPLES_MM is not set
-# CONFIG_EXAMPLES_MODBUS is not set
-# CONFIG_EXAMPLES_MOUNT is not set
-# CONFIG_EXAMPLES_NSH is not set
-CONFIG_EXAMPLES_NULL=y
-# CONFIG_EXAMPLES_NXFFS is not set
-# CONFIG_EXAMPLES_NXHELLO is not set
-# CONFIG_EXAMPLES_NXIMAGE is not set
-# CONFIG_EXAMPLES_NX is not set
-# CONFIG_EXAMPLES_NXLINES is not set
-# CONFIG_EXAMPLES_NXTERM is not set
-# CONFIG_EXAMPLES_NXTEXT is not set
-# CONFIG_EXAMPLES_PCA9635 is not set
-# CONFIG_EXAMPLES_POSIXSPAWN is not set
-# CONFIG_EXAMPLES_POWERMONITOR is not set
-# CONFIG_EXAMPLES_PPPD is not set
-# CONFIG_EXAMPLES_RFID_READUID is not set
-# CONFIG_EXAMPLES_RGBLED is not set
-# CONFIG_EXAMPLES_SENDMAIL is not set
-# CONFIG_EXAMPLES_SERIALBLASTER is not set
-# CONFIG_EXAMPLES_SERIALRX is not set
-# CONFIG_EXAMPLES_SERLOOP is not set
-# CONFIG_EXAMPLES_SLCD is not set
-# CONFIG_EXAMPLES_SMART is not set
-# CONFIG_EXAMPLES_SMP is not set
-# CONFIG_EXAMPLES_STAT is not set
-# CONFIG_EXAMPLES_TCPECHO is not set
-# CONFIG_EXAMPLES_TIFF is not set
-# CONFIG_EXAMPLES_TOUCHSCREEN is not set
-# CONFIG_EXAMPLES_WATCHDOG is not set
-# CONFIG_EXAMPLES_WEBSERVER is not set
-# CONFIG_EXAMPLES_XBC_TEST is not set
-
-#
-# File System Utilities
-#
-# CONFIG_FSUTILS_INIFILE is not set
-
-#
-# GPS Utilities
-#
-# CONFIG_GPSUTILS_MINMEA_LIB is not set
-
-#
-# Graphics Support
-#
-# CONFIG_TIFF is not set
-# CONFIG_GRAPHICS_TRAVELER is not set
-
-#
-# Interpreters
-#
-# CONFIG_INTERPRETERS_FICL is not set
-# CONFIG_INTERPRETERS_MICROPYTHON is not set
-# CONFIG_INTERPRETERS_MINIBASIC is not set
-# CONFIG_INTERPRETERS_PCODE is not set
-
-#
-# FreeModBus
-#
-# CONFIG_MODBUS is not set
-
-#
-# Network Utilities
-#
-# CONFIG_NETUTILS_CODECS is not set
-# CONFIG_NETUTILS_ESP8266 is not set
-# CONFIG_NETUTILS_FTPC is not set
-# CONFIG_NETUTILS_JSON is not set
-# CONFIG_NETUTILS_SMTP is not set
-
-#
-# NSH Library
-#
-# CONFIG_NSH_LIBRARY is not set
-
-#
-# NxWidgets/NxWM
-#
-
-#
-# Platform-specific Support
-#
-# CONFIG_PLATFORM_CONFIGDATA is not set
-CONFIG_HAVE_CXXINITIALIZE=y
-
-#
-# System Libraries and NSH Add-Ons
-#
-# CONFIG_SYSTEM_CLE is not set
-# CONFIG_SYSTEM_CUTERM is not set
-# CONFIG_SYSTEM_FREE is not set
-# CONFIG_SYSTEM_HEX2BIN is not set
-# CONFIG_SYSTEM_HEXED is not set
-# CONFIG_SYSTEM_INSTALL is not set
-# CONFIG_SYSTEM_RAMTEST is not set
-# CONFIG_READLINE_HAVE_EXTMATCH is not set
-# CONFIG_SYSTEM_READLINE is not set
-# CONFIG_SYSTEM_STACKMONITOR is not set
-# CONFIG_SYSTEM_SUDOKU is not set
-# CONFIG_SYSTEM_TEE is not set
-# CONFIG_SYSTEM_UBLOXMODEM is not set
-# CONFIG_SYSTEM_VI is not set
-# CONFIG_SYSTEM_ZMODEM is not set
-
-#
-# Wireless Libraries and NSH Add-Ons
-#
-
-#
-# IEEE 802.15.4 applications
-#
-# CONFIG_IEEE802154_LIBMAC is not set
-# CONFIG_IEEE802154_LIBUTILS is not set
-# CONFIG_IEEE802154_I8SAK is not set
diff --git a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/scripts/ld.script b/platforms/nuttx/nuttx-configs/zubaxgnss-v1/scripts/ld.script
deleted file mode 100644
index 6f71caf2ea..0000000000
--- a/platforms/nuttx/nuttx-configs/zubaxgnss-v1/scripts/ld.script
+++ /dev/null
@@ -1,153 +0,0 @@
-/****************************************************************************
- * nuttx-configs/zubaxgnss-v1/scripts/ld.script
- *
- *   Copyright (C) 2015 Gregory Nutt. All rights reserved.
- *   Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 NuttX 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.
- *
- ****************************************************************************/
-
-/* The STM32F105RCT6 has 256KiB of FLASH beginning at address 0x0800:0000 and
- * 64KiB of SRAM beginning at address 0x2000:0000.  When booting from FLASH,
- * FLASH memory is aliased to address 0x0000:0000 where the code expects to
- * begin execution by jumping to the entry point in the 0x0800:0000 address
- * range.
- *
- * The first 8KiB of flash is reserved for the bootloader.
- */
-
-MEMORY
-{
-    flash (rx) : ORIGIN = 0x08002000, LENGTH = 248K
-    sram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
-}
-
-OUTPUT_ARCH(arm)
-
-ENTRY(__start)		/* treat __start as the anchor for dead code stripping */
-EXTERN(_vectors)  /* force the vectors to be included in the output */
-/*
- * Ensure that abort() is present in the final object.  The exception handling
- * code pulled in by libgcc.a requires it (and that code cannot be easily avoided).
- */
-EXTERN(abort)
-
-SECTIONS
-{
-  .text : {
-    _stext = ABSOLUTE(.);
-    *(.vectors)
-     . = ALIGN(8);
-      /*
-       * This section positions the app_descriptor_t used
-       * by the make_can_boot_descriptor.py tool to set
-       * the application image's descriptor so that the
-       * uavcan bootloader has the ability to validate the
-       * image crc, size etc
-      */
-    KEEP(*(.app_descriptor))
-    *(.text .text.*)
-    *(.fixup)
-    *(.gnu.warning)
-    *(.rodata .rodata.*)
-    *(.gnu.linkonce.t.*)
-    *(.got)
-    *(.gcc_except_table)
-    *(.gnu.linkonce.r.*)
-    _etext = ABSOLUTE(.);
-		/*
-		 * This is a hack to make the newlib libm __errno() call
-		 * use the NuttX get_errno_ptr() function.
-		 */
-		__errno = get_errno_ptr;
-  } > flash
-
-/*
- * Init functions (static constructors and the like)
- */
-  .init_section : {
-    _sinit = ABSOLUTE(.);
-    KEEP(*(.init_array .init_array.*))
-    _einit = ABSOLUTE(.);
-  } > flash
-
-	/*
-	 * Construction data for parameters.
-	 */
-	__param ALIGN(4): {
-		__param_start = ABSOLUTE(.);
-		KEEP(*(__param))
-		__param_end = ABSOLUTE(.);
-	} > flash
-
-  .ARM.extab : {
-    *(.ARM.extab*)
-  } > flash
-
-  __exidx_start = ABSOLUTE(.);
-  .ARM.exidx : {
-    *(.ARM.exidx*)
-  } > flash
-  __exidx_end = ABSOLUTE(.);
-
-  _eronly = ABSOLUTE(.);
-
-  /* The STM32F103CB has 20Kb of SRAM beginning at the following address */
-
-  .data : {
-    _sdata = ABSOLUTE(.);
-    *(.data .data.*)
-    *(.gnu.linkonce.d.*)
-    CONSTRUCTORS
-    _edata = ABSOLUTE(.);
-  } > sram AT > flash
-
-  .bss : {
-    _sbss = ABSOLUTE(.);
-    *(.bss .bss.*)
-    *(.gnu.linkonce.b.*)
-    *(COMMON)
-    . = ALIGN(4);
-    _ebss = ABSOLUTE(.);
-  } > sram
-
-  /* Stabs debugging sections. */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  .stab.excl 0 : { *(.stab.excl) }
-  .stab.exclstr 0 : { *(.stab.exclstr) }
-  .stab.index 0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
-  .comment 0 : { *(.comment) }
-  .debug_abbrev 0 : { *(.debug_abbrev) }
-  .debug_info 0 : { *(.debug_info) }
-  .debug_line 0 : { *(.debug_line) }
-  .debug_pubnames 0 : { *(.debug_pubnames) }
-  .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/platforms/nuttx/src/px4_layer/CMakeLists.txt b/platforms/nuttx/src/px4_layer/CMakeLists.txt
index 98f4065751..19dd2da806 100644
--- a/platforms/nuttx/src/px4_layer/CMakeLists.txt
+++ b/platforms/nuttx/src/px4_layer/CMakeLists.txt
@@ -32,7 +32,7 @@
 ############################################################################
 
 # skip for px4_layer support on an IO board
-if (NOT ${BOARD} MATCHES "px4io")
+if (NOT ${PX4_BOARD} MATCHES "px4io")
 
 	add_library(px4_layer
 		px4_nuttx_tasks.c
diff --git a/platforms/posix/CMakeLists.txt b/platforms/posix/CMakeLists.txt
index ef2dbfe39f..c8d56e7c27 100644
--- a/platforms/posix/CMakeLists.txt
+++ b/platforms/posix/CMakeLists.txt
@@ -21,7 +21,7 @@ px4_posix_generate_alias(
 	PREFIX ${PX4_SHELL_COMMAND_PREFIX}
 )
 
-if (("${BOARD}" STREQUAL "eagle") OR ("${BOARD}" STREQUAL "excelsior"))
+if (("${PX4_BOARD}" STREQUAL "atlflighteagle") OR ("${PX4_BOARD}" STREQUAL "atlflightexcelsior"))
 	include(fastrpc)
 	include(linux_app)
 
@@ -55,7 +55,7 @@ if (("${BOARD}" STREQUAL "eagle") OR ("${BOARD}" STREQUAL "excelsior"))
 		)
 
 else()
-	px4_add_executable(px4
+	add_executable(px4
 		src/main.cpp
 		apps.cpp
 		)
@@ -101,7 +101,7 @@ px4_posix_generate_symlinks(
 	TARGET px4
 )
 
-if ("${BOARD}" STREQUAL "rpi")
+if (("${PX4_BOARD}" MATCHES "raspberrypi") OR ("${PX4_BOARD}" MATCHES "navio2"))
 	add_custom_target(upload
 		COMMAND rsync -arh --progress ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${PX4_SOURCE_DIR}/posix-configs/rpi/*.config ${PX4_SOURCE_DIR}/ROMFS pi@"$ENV{AUTOPILOT_HOST}":/home/pi
 		DEPENDS px4
@@ -109,7 +109,7 @@ if ("${BOARD}" STREQUAL "rpi")
 		USES_TERMINAL
 		)
 
-elseif ("${BOARD}" STREQUAL "bbblue")
+elseif ("${PX4_BOARD}" MATCHES "bbblue")
 	target_link_libraries(px4 PRIVATE robotcontrol)
 
 	add_custom_target(upload
@@ -119,7 +119,7 @@ elseif ("${BOARD}" STREQUAL "bbblue")
 		USES_TERMINAL
 		)
 
-elseif ("${BOARD}" STREQUAL "bebop")
+elseif ("${PX4_BOARD}" MATCHES "bebop")
 
 	add_custom_target(upload
 		COMMAND ${PX4_SOURCE_DIR}/Tools/adb_upload_to_bebop.sh ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/. /data/ftp/internal_000
@@ -128,7 +128,7 @@ elseif ("${BOARD}" STREQUAL "bebop")
 		USES_TERMINAL
 		)
 
-elseif ("${BOARD}" STREQUAL "sitl")
+elseif ("${PX4_BOARD}" MATCHES "sitl")
 
 	include(sitl_target)
 	if(BUILD_TESTING)
@@ -178,9 +178,9 @@ elseif ("${BOARD}" STREQUAL "sitl")
 	# sitl_gazebo built plugins
 	install(
 		DIRECTORY
-			${PROJECT_SOURCE_DIR}/build/posix_sitl_default/build_gazebo
+			${PROJECT_SOURCE_DIR}/build/px4sitl_default/build_gazebo
 		DESTINATION
-			${PROJECT_NAME}/build/posix_sitl_default
+			${PROJECT_NAME}/build/px4sitl_default
 		FILES_MATCHING
 			PATTERN "CMakeFiles" EXCLUDE
 			PATTERN "*.so"
@@ -204,14 +204,4 @@ elseif ("${BOARD}" STREQUAL "sitl")
 			${PROJECT_NAME}/Tools/sitl_gazebo
 		)
 
-elseif (("${BOARD}" STREQUAL "eagle") OR ("${BOARD}" STREQUAL "excelsior"))
-
-	# package all libs?
-	#install(
-	#	FILES
-	#		$ENV{HEXAGON_ARM_SYSROOT}/usr/lib/libadsprpc.so
-	#	DESTINATION
-	#		lib
-	#	)
-
 endif()
diff --git a/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a53.cmake b/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a53.cmake
new file mode 100644
index 0000000000..0efdba6458
--- /dev/null
+++ b/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a53.cmake
@@ -0,0 +1,6 @@
+
+set(cpu_flags "-mcpu=cortex-a53 -mfpu=neon -mfloat-abi=hard")
+
+set(CMAKE_C_FLAGS "${cpu_flags}")
+set(CMAKE_CXX_FLAGS "${cpu_flags}")
+set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
diff --git a/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a8.cmake b/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a8.cmake
new file mode 100644
index 0000000000..dc2ada647b
--- /dev/null
+++ b/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a8.cmake
@@ -0,0 +1,6 @@
+
+set(cpu_flags "-mcpu=cortex-a9 -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb-interwork")
+
+set(CMAKE_C_FLAGS "${cpu_flags}")
+set(CMAKE_CXX_FLAGS "${cpu_flags}")
+set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
diff --git a/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a9.cmake b/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a9.cmake
new file mode 100644
index 0000000000..7b9b3e665f
--- /dev/null
+++ b/platforms/posix/cmake/Platform/Linux-arm-linux-gnueabihf-cortex-a9.cmake
@@ -0,0 +1,6 @@
+
+set(cpu_flags "-mcpu=cortex-a8 -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb-interwork")
+
+set(CMAKE_C_FLAGS "${cpu_flags}")
+set(CMAKE_CXX_FLAGS "${cpu_flags}")
+set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__")
diff --git a/platforms/posix/cmake/Toolchain-arm-linux-gnueabihf.cmake b/platforms/posix/cmake/Toolchain-arm-linux-gnueabihf.cmake
new file mode 100644
index 0000000000..9f68b2202c
--- /dev/null
+++ b/platforms/posix/cmake/Toolchain-arm-linux-gnueabihf.cmake
@@ -0,0 +1,45 @@
+# arm-linux-gnueabihf-gcc toolchain
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_VERSION 1)
+
+set(triple arm-linux-gnueabihf)
+set(CMAKE_LIBRARY_ARCHITECTURE ${triple})
+set(TOOLCHAIN_PREFIX ${triple})
+
+set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
+set(CMAKE_C_COMPILER_TARGET ${triple})
+
+set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
+set(CMAKE_CXX_COMPILER_TARGET ${triple})
+
+set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
+
+# compiler tools
+foreach(tool nm ld objcopy ranlib strip)
+	string(TOUPPER ${tool} TOOL)
+	find_program(CMAKE_${TOOL} ${TOOLCHAIN_PREFIX}-${tool})
+	if(CMAKE-${TOOL} MATCHES "NOTFOUND")
+		message(FATAL_ERROR "could not find ${TOOLCHAIN_PREFIX}-${tool}")
+	endif()
+endforeach()
+
+set(CMAKE_FIND_ROOT_PATH get_file_component(${CMAKE_C_COMPILER} PATH))
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+# os tools
+foreach(tool grep make)
+	string(TOUPPER ${tool} TOOL)
+	find_program(${TOOL} ${tool})
+	if(NOT ${TOOL})
+		message(FATAL_ERROR "could not find ${tool}")
+	endif()
+endforeach()
+
+# optional compiler tools
+foreach(tool gdb gdbtui)
+	string(TOUPPER ${tool} TOOL)
+	find_program(${TOOL} ${TOOLCHAIN_PREFIX}-${tool})
+endforeach()
diff --git a/cmake/toolchains/Toolchain-native.cmake b/platforms/posix/cmake/Toolchain-native.cmake
similarity index 100%
rename from cmake/toolchains/Toolchain-native.cmake
rename to platforms/posix/cmake/Toolchain-native.cmake
diff --git a/platforms/posix/cmake/px4_add_board_os.cmake b/platforms/posix/cmake/px4_add_board_os.cmake
new file mode 100644
index 0000000000..90d4acca8a
--- /dev/null
+++ b/platforms/posix/cmake/px4_add_board_os.cmake
@@ -0,0 +1,106 @@
+############################################################################
+#
+# Copyright (c) 2018 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.
+#
+############################################################################
+
+#=============================================================================
+#
+#	Defined functions in this file
+#
+# 	utility functions
+#
+#		* px4_add_board_os
+#
+
+include(px4_base)
+
+#=============================================================================
+#
+#	px4_add_board_os
+#
+#	This function creates a PX4 board.
+#
+#	Usage:
+#		px4_add_board_os(
+#			BOARD <string>
+#			OS <string>
+#			[ TOOLCHAIN ] <string>
+#			)
+#
+#	Input:
+#		BOARD		: name of board
+#		OS			: posix, nuttx, qurt
+#
+#
+#	Example:
+#		px4_add_board_os(
+#			BOARD px4fmu-v2_default
+#			OS nuttx
+#			)
+#
+function(px4_add_board_os)
+
+	px4_parse_function_args(
+		NAME px4_add_board_os
+		ONE_VALUE
+			VENDOR
+			MODEL
+			LABEL
+			PLATFORM
+			TOOLCHAIN
+			ARCH
+			ROMFSROOT
+			IO
+			BOOTLOADER
+			UAVCAN_INTERFACES
+		MULTI_VALUE
+			DRIVERS
+			MODULES
+			SYSTEMCMDS
+			EXAMPLES
+			SERIAL_PORTS
+			DF_DRIVERS # DriverFramework drivers
+		OPTIONS
+			CONSTRAINED_FLASH
+			ROMFS
+			TESTING
+		REQUIRED
+		ARGN ${ARGN})
+
+	if(NOT CMAKE_TOOLCHAIN_FILE)
+		# default to native toolchain
+		set(CMAKE_TOOLCHAIN_FILE Toolchain-native CACHE INTERNAL "toolchain file" FORCE)
+	endif()
+
+	include(px4_impl_os)
+	px4_os_prebuild_targets(OUT prebuild_targets BOARD ${PX4_BOARD})
+
+endfunction()
diff --git a/platforms/posix/cmake/px4_impl_os.cmake b/platforms/posix/cmake/px4_impl_os.cmake
index d21bccd3fc..acbc0d2937 100644
--- a/platforms/posix/cmake/px4_impl_os.cmake
+++ b/platforms/posix/cmake/px4_impl_os.cmake
@@ -45,8 +45,7 @@
 #		* px4_os_prebuild_targets
 #
 
-include(common/px4_base)
-list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/cmake/posix)
+include(px4_base)
 
 # This makes it possible to dynamically load code which depends on symbols
 # inside the px4 executable.
@@ -155,9 +154,7 @@ function(px4_posix_generate_alias)
 			)
 		endif()
 	endforeach()
-	configure_file(${PX4_SOURCE_DIR}/platforms/posix/src/px4-alias.sh_in
-		${OUT}
-	)
+	configure_file(${PX4_SOURCE_DIR}/platforms/posix/src/px4-alias.sh_in ${OUT})
 endfunction()
 
 
@@ -198,6 +195,7 @@ function(px4_posix_generate_symlinks)
 				set(${property} ${${property}_DEFAULT})
 			endif()
 		endforeach()
+
 		if (MAIN)
 			set(ln_name "${PREFIX}${MAIN}")
 			add_custom_command(TARGET ${TARGET}
@@ -262,7 +260,7 @@ function(px4_os_add_flags)
 		ARGN ${ARGN})
 
 	px4_add_common_flags(
-		BOARD ${BOARD}
+		BOARD ${PX4_BOARD}
 		C_FLAGS ${C_FLAGS}
 		CXX_FLAGS ${CXX_FLAGS}
 		OPTIMIZATION_FLAGS ${OPTIMIZATION_FLAGS}
@@ -292,8 +290,8 @@ function(px4_os_add_flags)
 			message(FATAL_ERROR "PX4 Firmware requires XCode 8 or newer on Mac OS. Version installed on this system: ${CMAKE_CXX_COMPILER_VERSION}")
 		endif()
 
-		EXEC_PROGRAM(uname ARGS -v  OUTPUT_VARIABLE DARWIN_VERSION)
-		STRING(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION})
+		execute_process(COMMAND uname -v OUTPUT_VARIABLE DARWIN_VERSION)
+		string(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION})
 		# message(STATUS "PX4 Darwin Version: ${DARWIN_VERSION}")
 		if (DARWIN_VERSION LESS 16)
 			add_definitions(
@@ -318,7 +316,7 @@ function(px4_os_add_flags)
 	endif()
 
 	# This block sets added_c_flags (appends to others).
-	if ("${BOARD}" STREQUAL "eagle")
+	if ("${PX4_BOARD}" STREQUAL "eagle")
 
 		if ("$ENV{HEXAGON_ARM_SYSROOT}" STREQUAL "")
 			message(FATAL_ERROR "HEXAGON_ARM_SYSROOT not set")
@@ -339,7 +337,7 @@ function(px4_os_add_flags)
 			--sysroot=${HEXAGON_ARM_SYSROOT}
 			)
 	# This block sets added_c_flags (appends to others).
-	elseif ("${BOARD}" STREQUAL "excelsior")
+	elseif ("${PX4_BOARD}" STREQUAL "excelsior")
 
 		if ("$ENV{HEXAGON_ARM_SYSROOT}" STREQUAL "")
 			message(FATAL_ERROR "HEXAGON_ARM_SYSROOT not set")
@@ -359,7 +357,14 @@ function(px4_os_add_flags)
 			${excelsior_flags}
 			)
 
-	elseif ("${BOARD}" STREQUAL "rpi")
+	elseif ("${PX4_BOARD}" STREQUAL "rpi")
+
+		add_definitions(
+			-D__PX4_POSIX_RPI
+			-D__DF_LINUX # For DriverFramework
+			-D__DF_RPI # For DriverFramework
+		)
+
 		set(RPI_COMPILE_FLAGS -mcpu=cortex-a53 -mfpu=neon -mfloat-abi=hard)
 		list(APPEND added_c_flags ${RPI_COMPILE_FLAGS})
 		list(APPEND added_cxx_flags ${RPI_COMPILE_FLAGS})
@@ -387,11 +392,41 @@ function(px4_os_add_flags)
 				-L${CXX_COMPILER_PATH}/arm-linux-gnueabihf/libc/usr/lib
 			)
 		ENDIF()
-	elseif ("${BOARD}" STREQUAL "bebop")
+	elseif ("${PX4_BOARD}" STREQUAL "bebop")
+
+		add_definitions(
+			-D__PX4_POSIX_BEBOP
+			-D__DF_LINUX # Define needed DriverFramework
+			-D__DF_BEBOP # Define needed DriverFramework
+		)
+
 		# TODO: Wmissing-field-initializers ignored on older toolchain, can be removed eventually
 		list(APPEND added_cxx_flags -Wno-missing-field-initializers)
-		
-	elseif ("${BOARD}" STREQUAL "bbblue")
+
+	elseif ("${PX4_BOARD}" MATCHES "ocpoc")
+
+		add_definitions(
+			-D__PX4_POSIX_OCPOC
+			-D__DF_LINUX # For DriverFramework
+			-D__DF_OCPOC # For DriverFramework
+			-D__PX4_POSIX
+		)
+
+	elseif ("${PX4_BOARD}" STREQUAL "bbblue")
+
+		add_definitions(
+			-D__PX4_POSIX_BBBLUE
+			-D__PX4_POSIX
+			-D__DF_LINUX        # For DriverFramework
+			-D__DF_BBBLUE       # For DriverFramework
+			-DRC_AUTOPILOT_EXT  # Enable extensions in Robotics Cape Library
+			#-DDEBUG_BUILD
+
+			#optional __DF_BBBLUE_USE_RC_BMP280_IMP
+			-D__DF_BBBLUE_USE_RC_BMP280_IMP
+			-D__PX4_BBBLUE_DEFAULT_MAVLINK_WIFI="wlan"
+		)
+
 		set(BBBLUE_COMPILE_FLAGS -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard -mtune=cortex-a8)
 		list(APPEND added_c_flags   ${BBBLUE_COMPILE_FLAGS})
 		list(APPEND added_cxx_flags ${BBBLUE_COMPILE_FLAGS})
@@ -414,7 +449,6 @@ function(px4_os_add_flags)
 	# output
 	foreach(var ${inout_vars})
 		string(TOLOWER ${var} lower_var)
-		#message(STATUS "posix: set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)")
 		set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)
 	endforeach()
 
@@ -433,7 +467,7 @@ endfunction()
 #			)
 #
 #	Input:
-#		BOARD 		: board
+#		BOARD		: board
 #
 #	Output:
 #		OUT	: the target list
@@ -445,9 +479,10 @@ function(px4_os_prebuild_targets)
 	px4_parse_function_args(
 			NAME px4_os_prebuild_targets
 			ONE_VALUE OUT BOARD
-			REQUIRED OUT BOARD
+			REQUIRED OUT
 			ARGN ${ARGN})
 
-	add_library(${OUT} INTERFACE)
-	add_dependencies(${OUT} DEPENDS uorb_headers)
+	add_library(prebuild_targets INTERFACE)
+	add_dependencies(prebuild_targets DEPENDS uorb_headers)
+
 endfunction()
diff --git a/platforms/posix/src/px4_layer/CMakeLists.txt b/platforms/posix/src/px4_layer/CMakeLists.txt
index 661da197fb..bbb71b48a6 100644
--- a/platforms/posix/src/px4_layer/CMakeLists.txt
+++ b/platforms/posix/src/px4_layer/CMakeLists.txt
@@ -33,7 +33,7 @@
 
 set(EXTRA_DEPENDS)
 if("${CONFIG_SHMEM}" STREQUAL "1")
-	set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
+	list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
 	include(hexagon_sdk)
 	include_directories(${HEXAGON_SDK_INCLUDES})
 	include_directories(${PX4_BINARY_DIR}/platforms/posix)
diff --git a/platforms/qurt/CMakeLists.txt b/platforms/qurt/CMakeLists.txt
index 64387f780b..3c46461e2d 100644
--- a/platforms/qurt/CMakeLists.txt
+++ b/platforms/qurt/CMakeLists.txt
@@ -1,4 +1,5 @@
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
+
+list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
 include(toolchain/Toolchain-qurt)
 include(fastrpc)
 include(qurt_lib)
diff --git a/platforms/qurt/cmake/px4_add_board_os.cmake b/platforms/qurt/cmake/px4_add_board_os.cmake
new file mode 100644
index 0000000000..975aec42dd
--- /dev/null
+++ b/platforms/qurt/cmake/px4_add_board_os.cmake
@@ -0,0 +1,101 @@
+############################################################################
+#
+# Copyright (c) 2018 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.
+#
+############################################################################
+
+#=============================================================================
+#
+#	Defined functions in this file
+#
+# 	utility functions
+#
+#		* px4_add_board_os
+#
+
+include(px4_base)
+
+#=============================================================================
+#
+#	px4_add_board_os
+#
+#	This function creates a PX4 board.
+#
+#	Usage:
+#		px4_add_board_os(
+#			BOARD <string>
+#			OS <string>
+#			[ TOOLCHAIN ] <string>
+#			)
+#
+#	Input:
+#		BOARD		: name of board
+#		OS			: posix, nuttx, qurt
+#
+#
+#	Example:
+#		px4_add_board_os(
+#			BOARD px4fmu-v2_default
+#			OS nuttx
+#			)
+#
+function(px4_add_board_os)
+
+	px4_parse_function_args(
+		NAME px4_add_board_os
+		ONE_VALUE
+			VENDOR
+			MODEL
+			LABEL
+			PLATFORM
+			TOOLCHAIN
+			ARCH
+			ROMFSROOT
+			IO
+			BOOTLOADER
+			UAVCAN_INTERFACES
+		MULTI_VALUE
+			DRIVERS
+			MODULES
+			SYSTEMCMDS
+			EXAMPLES
+			SERIAL_PORTS
+			DF_DRIVERS # DriverFramework drivers
+		OPTIONS
+			CONSTRAINED_FLASH
+			ROMFS
+			TESTING
+		REQUIRED
+		ARGN ${ARGN})
+
+	include(px4_impl_os)
+	px4_os_prebuild_targets(OUT prebuild_targets BOARD ${PX4_BOARD})
+
+endfunction()
diff --git a/platforms/qurt/cmake/px4_impl_os.cmake b/platforms/qurt/cmake/px4_impl_os.cmake
index d5797f8337..8e4db781e3 100644
--- a/platforms/qurt/cmake/px4_impl_os.cmake
+++ b/platforms/qurt/cmake/px4_impl_os.cmake
@@ -49,8 +49,7 @@
 #		* px4_os_prebuild_targets
 #
 
-include(common/px4_base)
-list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/cmake/qurt)
+include(px4_base)
 
 #=============================================================================
 #
@@ -152,7 +151,7 @@ function(px4_os_add_flags)
 		ARGN ${ARGN})
 
 	px4_add_common_flags(
-		BOARD ${BOARD}
+		BOARD ${PX4_BOARD}
 		C_FLAGS ${C_FLAGS}
 		CXX_FLAGS ${CXX_FLAGS}
 		OPTIMIZATION_FLAGS ${OPTIMIZATION_FLAGS}
@@ -205,7 +204,6 @@ function(px4_os_add_flags)
 	foreach(var ${inout_vars})
 		string(TOLOWER ${var} lower_var)
 		set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)
-		#message(STATUS "qurt: set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)")
 	endforeach()
 
 endfunction()
@@ -223,7 +221,7 @@ endfunction()
 #			)
 #
 #	Input:
-#		BOARD 		: board
+#		BOARD		: board
 #
 #	Output:
 #		OUT	: the target list
@@ -235,9 +233,10 @@ function(px4_os_prebuild_targets)
 	px4_parse_function_args(
 			NAME px4_os_prebuild_targets
 			ONE_VALUE OUT BOARD
-			REQUIRED OUT BOARD
+			REQUIRED OUT
 			ARGN ${ARGN})
 
-	add_library(${OUT} INTERFACE)
-	add_dependencies(${OUT} DEPENDS uorb_headers)
+	add_library(prebuild_targets INTERFACE)
+	add_dependencies(prebuild_targets DEPENDS uorb_headers)
+
 endfunction()
diff --git a/platforms/qurt/include/board_config.h b/platforms/qurt/include/board_config.h
index 6834fc28c3..7631af9347 100644
--- a/platforms/qurt/include/board_config.h
+++ b/platforms/qurt/include/board_config.h
@@ -13,4 +13,4 @@
 #define BOARD_HAS_NO_RESET
 #define BOARD_HAS_NO_BOOTLOADER
 
-#include "../common/board_common.h"
+#include <drivers/boards/common/board_common.h>
diff --git a/platforms/qurt/src/px4_layer/CMakeLists.txt b/platforms/qurt/src/px4_layer/CMakeLists.txt
index b7b1fd83c7..87affa5a40 100644
--- a/platforms/qurt/src/px4_layer/CMakeLists.txt
+++ b/platforms/qurt/src/px4_layer/CMakeLists.txt
@@ -31,7 +31,7 @@
 #
 ############################################################################
 
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
+list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/boards/atlflight/cmake_hexagon")
 include(hexagon_sdk)
 
 include_directories(${HEXAGON_8074_INCLUDES})
diff --git a/src/drivers/bbblue_adc/CMakeLists.txt b/src/drivers/bbblue_adc/CMakeLists.txt
index e85e9f45f3..8cb424ec2a 100644
--- a/src/drivers/bbblue_adc/CMakeLists.txt
+++ b/src/drivers/bbblue_adc/CMakeLists.txt
@@ -30,7 +30,7 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 ############################################################################
-if ("${BOARD}" STREQUAL "bbblue")
+if ("${PX4_BOARD}" STREQUAL "bbblue")
 	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error")
 	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error")
 
diff --git a/src/drivers/boards/CMakeLists.txt b/src/drivers/boards/CMakeLists.txt
index 3ff910cc31..0b2ad7992e 100644
--- a/src/drivers/boards/CMakeLists.txt
+++ b/src/drivers/boards/CMakeLists.txt
@@ -31,11 +31,4 @@
 #
 ############################################################################
 
-if (BOARD)
-	add_subdirectory(common)
-	add_subdirectory(${BOARD})
-else()
-	message(FATAL_ERROR "BOARD not defined")
-endif()
-
-
+add_subdirectory(common)
diff --git a/src/drivers/boards/common/CMakeLists.txt b/src/drivers/boards/common/CMakeLists.txt
index ce63d8d4eb..0650762097 100644
--- a/src/drivers/boards/common/CMakeLists.txt
+++ b/src/drivers/boards/common/CMakeLists.txt
@@ -32,7 +32,7 @@
 ############################################################################
 
 # common board drivers (currently only for nuttx fmu boards)
-if (${OS} MATCHES "nuttx" AND NOT ${BOARD} MATCHES "io")
+if ((${PX4_PLATFORM} MATCHES "nuttx") AND NOT ${PX4_BOARD} MATCHES "io")
 
 	px4_add_library(drivers_boards_common
 		board_crashdump.c
diff --git a/src/drivers/boards/common/board_common.h b/src/drivers/boards/common/board_common.h
index 12bcf0b294..1e4afa8623 100644
--- a/src/drivers/boards/common/board_common.h
+++ b/src/drivers/boards/common/board_common.h
@@ -255,7 +255,7 @@
 #  else
 /*  Use PX4IO FW search paths defaults based on version */
 #    if BOARD_USES_PX4IO_VERSION == 2
-#      define PX4IO_FW_SEARCH_PATHS {"/etc/extras/px4io-v2.bin", "/fs/microsd/px4io2.bin", "/fs/microsd/px4io.bin", nullptr }
+#      define PX4IO_FW_SEARCH_PATHS {"/etc/extras/px4io-v2_default.bin", "/fs/microsd/px4io2.bin", "/fs/microsd/px4io.bin", nullptr }
 #    endif
 #  endif
 #endif
diff --git a/src/drivers/boards/common/stm32/CMakeLists.txt b/src/drivers/boards/common/stm32/CMakeLists.txt
index 088003db7b..11c0107e2b 100644
--- a/src/drivers/boards/common/stm32/CMakeLists.txt
+++ b/src/drivers/boards/common/stm32/CMakeLists.txt
@@ -31,18 +31,11 @@
 #
 ############################################################################
 
-set(SRCS
+add_library(drivers_boards_common_arch
 	board_identity.c
+	board_mcu_version.c
+	board_reset.c
+	board_hw_rev_ver.c
 )
-
-if (NOT ${LABEL} STREQUAL "bootloader")
-	list(APPEND SRCS
-		board_mcu_version.c
-		board_reset.c
-		board_hw_rev_ver.c
-		)
-endif()
-
-add_library(drivers_boards_common_arch ${SRCS})
 add_dependencies(drivers_boards_common_arch prebuild_targets)
 target_link_libraries(drivers_boards_common_arch PRIVATE nuttx_arch)
diff --git a/src/drivers/boards/px4flow-v2/board_config.h b/src/drivers/boards/px4flow-v2/board_config.h
deleted file mode 100644
index a9241548db..0000000000
--- a/src/drivers/boards/px4flow-v2/board_config.h
+++ /dev/null
@@ -1,385 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (c) 2012-2015 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.
- *
- ****************************************************************************/
-
-/**
- * @file board_config.h
- *
- * PX4FLOWv2 internal definitions
- */
-
-#pragma once
-
-/****************************************************************************************************
- * Included Files
- ****************************************************************************************************/
-
-#include <px4_config.h>
-#include <nuttx/compiler.h>
-#include <stdint.h>
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-#if STM32_NSPI < 1
-#  undef CONFIG_STM32_SPI1
-#  undef CONFIG_STM32_SPI2
-#elif STM32_NSPI < 2
-#  undef CONFIG_STM32_SPI2
-#endif
-
-/* High-resolution timer
- */
-#define HRT_TIMER               8       /* use timer1 for the HRT */
-#define HRT_TIMER_CHANNEL       8       /* use capture/compare channel */
-
-/* GPIO ***********************************************************************
- *
- *   GPIO      Function                                     MPU        Board
- *                                                          Pin #      Name
- * -- ----- --------------------------------             ----------------------
- *
- *  PA[00] PA0/TIM2_CH1/TIM5_CH1/USART2_CTS/UART4_TX         23       TIM5_CH1
- *  PA[01] PA1/TIM2_CH2/TIM5_CH2/USART2_RTS/UART4_RX         24       TIM5_CH2 NC.
- *  PA[02] PA2/TIM2_CH3/TIM5_CH3/TIM9_CH1/USART2_TX          25       TIM5_CH3_EXPOSURE
- *  PA[03] PA3/TIM2_CH4/TIM5_CH4/TIM9_CH2/USART2_RX          26       TIM5_CH4_STANDBY
- *  PA[04] PA4/SPI1_NSS/SPI3_NSS/DCMI_HSYNC/LCD_VSYNC        29       DCMI_HSYNC
- *  PA[05] PA5/TIM2_CH1/TIM2_ETR/TIM8_CH1N/SPI1_SCK          30       CAM_NRESET
- *  PA[06] PA6/TIM3_CH1/SPI1_MISO/TIM13_CH1/DCMI_PIXCLK      31       DCMI_PIXCK
- *  PA[07] PA7/TIM1,8_CH1N/TIM3_CH2/SPI1_MOSI/TIM14_CH1      32       SPI1_MOSI---
- *  PA[08] PA8/MCO1/TIM1_CH1/I2C3_SCL/USART1_CK/LCD_R6/      67       MPU_CS
- *  PA[09] PA9/TIM1_CH2/USART1_TX/DCMI_D0/OTG_FS_VBUS        68       VBUS
- *  PA[10] PA10/TIM1_CH3/USART1_RX/OTG_FS_ID/DCMI_D1         69       OTG_FS_ID
- *  PA[11] PA11/TIM1_CH4/USART1_CTS/CAN1_RX/LCD_R4/OTG_FS_DM 70       OTG_FS_N
- *  PA[12] PA12/TIM1_ETR/USART1_RTS/CAN1_TX/LCD_R5/OTG_FS_DP 71       OTG_FS_P
- *  PA[13] PA13/JTMS-SWDIO                                   72       JTMS-SWDIO
- *  PA[14] PA14/JTCK-SWCLK                                   76       JTCK-SWCLK
- *  PA[15] PA15/JTDI/TIM2_CH1/TIM2_ETR/SPI1_NSS              77       JTDI
- *
- */
-/*
- *  PB[00] PB0/TIM1_CH2N/TIM3_CH3/TIM8_CH2N/OTG_HS_ULPI_D1   35       PRES_DRDY---
- *  PB[01] PB1/TIM1,8_CH3N/TIM3_CH4/LCD_R6/OTG_HS_ULPI_D2    36       MAG_DRDY---
- *  PB[02] PB2/BOOT1                                         37       PB2-BOOT1
- *  PB[03] PB3/JTDO/TRACESWO/TIM2_CH2/SPI1_SCK/SPI3_SCK      89       JTDO
- *  PB[04] PB4/NJTRST/TIM3_CH1/SPI1_MISO/SPI3_MISO           90       JTRST
- *  PB[05] PB5/TIM3_CH2/SPI1_MOSI/SPI3_MOSI/CAN2_RX/DCMI_D10 91       PCM1_D10 N.C
- *  PB[06] PB6/TIM4_CH1/I2C1_SCL/USART1_TX/CAN2_TX/DCMI_D5   92       PCMI_D5
- *  PB[07] PB7/TIM4_CH2/I2C1_SDA/USART1_RX/FMC_NL/DCMI_VSYNC 93       DCMI_VSYNC
- *  PB[08] PB8/TIM4_CH3/TIM10_CH1/I2C1_SCL/CAN1_RX/DCMI_D6   95       J2C1_SCL
- *  PB[09] PB9/TIM2_CH3/I2C2_SCL/SPI2_SCK/I2S2_CK/USART3_TX/ 96       J2C1_SDA
- *  PB[10] PB10/TIM2_CH3/I2C2_SCL/SPI2_SCK/I2S2_CK/USART3_TX 47       J2C2_SCL
- *  PB[11] PB11/TIM2_CH4/I2C2_SDA/USART3_RX/OTG_HS_ULPI_D4   48       J2C2_SDA
- *  PB[12] PB12/TIM1_BKIN/I2C2_SMBA/SPI2_NSS/CAN2_RX         51       SPI2_NSS
- *  PB[13] PB13/TIM1_CH1N/SPI2_SCK/USART3_CTS/CAN2_TX        52       SPI2_SCK
- *  PB[14] PB14/TIM1,8_CH2N/SPI2_MISO/USART3_RTS/TIM12_CH1   53       SPI2_MISO
- *  PB[15] PB15/TIM1_CH3N/TIM8_CH3N/SPI2_MOSI/TIM12_CH2      54       SPI2_MOSI
-
-
- *  PC[00] PC0/OTG_HS_ULPI_STP/FMC_SDNWE                     15       ADC123_IN10
- *  PC[01] PC1/ETH_MDC                                       16       ADC123_IN11
- *  PC[02] PC2/SPI2_MISO/I2S2ext_SD                          17       ADC123_IN12
- *  PC[03] PC3/SPI2_MOSI/I2S2_SD                             18       ADC123_IN13
- *  PC[04] PC4/ETH_MII_RXD0/ETH_RMII_RXD0                    33       ADC123_IN4
- *  PC[05] PC5/ETH_MII_RXD1/ETH_RMII_RXD1                    34       ADC123_IN5
- *  PC[06] PC6/TIM3_CH1/TIM8_CH1/USART6_TX/SDIO_D6/DCMI_D0   63       DCMI_O0
- *  PC[07] PC7/TIM3_CH2/TIM8_CH2/USART6_RX/SDIO_D7/DCMI_D1   64       DCMI_O1
- *  PC[08] PC8/TIM3_CH3/TIM8_CH3/USART6_CK/SDIO_D0/DCMI_D2   65       TIM8_CH3_MASTERCLOCK
- *  PC[09] PC9/MCO2/TIM3_CH3/TIM8_CH4/SDIO_D1/DCMI_D3        66       TIM8_CH4_LED_OUT
- *  PC[10] PC10/SPI3_SCK/USART3_TX/UART4_TX/SDIO_D2/DCMI_D8  78       DCMI_D8
- *  PC[11] PC11/SPI3_MISO/USART3_RX/UART4_RX/SDIO_D3DCMI_D4  78       UART4_RX
- *  PC[12] PC12/SPI3_MOSI/USART3_CK/UART5_TX/SDIO_CK/DCMI_D9 80       DCMI_09
- *  PC[13] PC13                                               7       ADDR0 NC
- *  PC[14] PC14                                               8       ADDR1 NC
- *  PC[15] PC15                                               9       ADDR2 NC
-
- *  PD[00] PD0/CAN1_RX/FMC_D2                                81       CAN1_RX
- *  PD[01] PD1/CAN1_TX/FMC_D3                                82       CAN1_TX
- *  PD[02] PD2/TIM3_ETR/UARTS_RX/SDIO_CMD/DCMI_D11           83       DCMI_D11_UARTS_RX NC
- *  PD[03] PD3/SPI2_SCK/USART2_CTS/FMC_CLK/DCMI_D5/LCD_G7    84       UART5_CTS
- *  PD[04] PD4/USART2_RTS/FMC_NOE                            85       USART2_RTS
- *  PD[05] PD5/USART2_TX/FMC_NWE                             86       USART2_TX
- *  PD[06] PD6/SPI3_MOSI/SAI1_SD_A/USART2_RX/DCMI_D10/LCD_B2 87       USART2_RX
- *  PD[07] PD7/USART2_CK/FMC_NE1/FMC_NCE2                    88       USART2_CK NC
- *  PD[08] PD8/USART3_TX/FMC_D13                             55       USART3_TX
- *  PD[09] PD9/USART3_RX/FMC_D14                             56       USART3_RX
- *  PD[10] PD10/USART3_CK/FMC_D15/LCD_B3                     57       USART3_CK
- *  PD[11] PD11/USART3_CTS/FMC_A16                           58       USART3_CTS
- *  PD[12] PD12/TIM4_CH1/USART3_RTS/FMC_A17                  59       USART3_RTS
- *  PD[13] PD13/TIM4_CH2/FMC_A18                             60       PWM
- *  PD[14] PD14/TIM4_CH3/FMC_D0                              61       POWER
- *  PD[15] PD15/TIM4_CH4/FMC_D1                              62       PWM_EN
-
- *  PE[00] PE0/TIM4_ETR/UART8_RX/FMC_NBL0/DCMI_D2            97       DCMI_D2
- *  PE[01] PE1/UART8_Tx/FMC_NBL1/DCMI_D3                     98       DCMI_D3
- *  PE[02] PE2/TRACECLK/SPI4_SCK/SAI1_MCLK_A/FMC_A23          1       LED_AMBER
- *  PE[03] PE3/TRACED0/SAI1_SD_B/FMC_A19                      2       LED_BLUE
- *  PE[04] PE4/TRACED1/SPI4_NSS/SAI1_FS_A/DCMI_D4/LCD_B0      3       DCMI_D4
- *  PE[05] PE5/TRACED2/TIM9_CH1/SPI4_MISO/DCMI_D6/LCD_G0      4       DCMI_D6
- *  PE[06] PE6/TRACED3/TIM9_CH2/SPI4_MOSI/DCMI_D7/LCD_G1      5       DCMI_D7
- *  PE[07] PE7/TIM1_ETR/UART7_Rx/FMC_D4                      38       LED RED
- *  PE[08] PE8/TIM1_CH1N/UART7_Tx/FMC_D5                     39       US_FN1
- *  PE[09] PE9/TIM1_CH1/FMC_D6                               40       RED_LED
- *  PE[10] PE10/TIM1_CH2N/FMC_D7                             41       US_EN2
- *  PE[11] PE11/TIM1_CH2/8PI4_NSS/FMC_D8/LCD_G3              42       GREEN_LED
- *  PE[12] PE12/TIM1_CH3N/SPI4_SCK/FMC_D9/LCD_B4             43       UDD_3U3
- *  PE[13] PE13/TIM1_CH3/SPI4_MISO/FMC_D10/LCD_DE            44       BLUE_LED
- *  PE[14] PE14/TIM1_CH4/SPI4_MOSI/FMC_D11/LCD_CLK           45       GND
- *  PE[15] PE15/TIM1_BKIN/FMC_D12/LCD_R7                     46       GND
-*/
-
-
-
-
-/* GPIO ***********************************************************************
- *
- *   GPIO      Function                                     MPU        Board
- *                                                          Pin #      Name
- * -- ----- --------------------------------             ----------------------
- *
- *  PB0
- */
-
-/* GPIO ***********************************************************************
- *
- *   GPIO      Function                                     MPU        Board
- *                                                          Pin #      Name
- * -- ----- --------------------------------             ----------------------
- *
- *  PC0
- */
-
-/* CAN ************************************************************************ *
- *
- *   GPIO      Function                                     MPU        Board
- *                                                          Pin #      Name
- * -- ----- --------------------------------             ------------------------
- *
- *  PD[00] PD0/TIM4_CH3/I2C1_SCL/CAN1_RX                     81       CAN1_RX
- *  PD[01] PD1/TIM4_CH4/I2C1_SDA/CAN1_TX                     82       CAN1_TX
- *
- */
-
-/* GPIO ***********************************************************************
- *
- *   GPIO      Function                                     MPU        Board
- *                                                          Pin #      Name
- * -- ----- --------------------------------             ----------------------
- *
- */
-
-#define GPIO_WAIT_GETNODEINFO   (GPIO_INPUT | GPIO_PULLUP | GPIO_PORTC | GPIO_PIN13)
-
-
-/* LEDs ***********************************************************************
- *
- *   GPIO      Function                                     MPU        Board
- *                                                          Pin #      Name
- * -- ----- --------------------------------             ----------------------
- *  PE[09] PE9/TIM1_CH1/FMC_D6                               40       RED_LED
- *  PE[11] PE11/TIM1_CH2/8PI4_NSS/FMC_D8/LCD_G3              42       GREEN_LED
- *  PE[13] PE13/TIM1_CH3/SPI4_MISO/FMC_D10/LCD_DE            44       BLUE_LED
- *
- */
-
-#define GPIO_LED1       (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \
-			 GPIO_PORTE | GPIO_PIN9 | GPIO_OUTPUT_SET)
-#define GPIO_LED2       (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \
-			 GPIO_PORTE | GPIO_PIN11 | GPIO_OUTPUT_SET)
-#define GPIO_LED3       (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \
-			 GPIO_PORTE | GPIO_PIN13 | GPIO_OUTPUT_SET)
-
-#define GPIO_TIM1_CH1OUT        GPIO_TIM1_CH1OUT_2      /* Red */
-#define GPIO_TIM1_CH2OUT        GPIO_TIM1_CH2OUT_2      /* Green */
-#define GPIO_TIM1_CH3OUT        GPIO_TIM1_CH3OUT_2      /* Blue */
-
-#define MIS_WIRED_V20
-/* todo:remove this */
-#if defined(MIS_WIRED_V20)
-#pragma message "Built with MIS_WIRED_V20 set Fix this when New HW comes out"
-/* The first proto (PCB) had red and Blow swapped */
-# define GPIO_LED_RED     GPIO_LED3
-# define GPIO_LED_GREEN   GPIO_LED2
-# define GPIO_LED_BLUE    GPIO_LED1
-#else
-/* This is the corrected wiring */
-# define GPIO_LED_RED     GPIO_LED1
-# define GPIO_LED_GREEN   GPIO_LED2
-# define GPIO_LED_BLUE    GPIO_LED3
-#endif
-
-#define BOARD_NAME "PX4FLOW_V2"
-
-__BEGIN_DECLS
-
-/************************************************************************************
- * Public Types
- ************************************************************************************/
-
-/************************************************************************************
- * Public data
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/************************************************************************************
- * Public Functions
- ************************************************************************************/
-
-/************************************************************************************
- * Name: stm32_spiinitialize
- *
- * Description:
- *   Called to configure SPI chip select GPIO pins.
- *
- ************************************************************************************/
-
-#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || \
-    defined(CONFIG_STM32_SPI3)
-void weak_function board_spiinitialize(void);
-#endif
-
-/************************************************************************************
- * Name: stm32_usbinitialize
- *
- * Description:
- *   Called to setup USB-related GPIO pins.
- *
- ************************************************************************************/
-
-void stm32_usbinitialize(void);
-
-/************************************************************************************
- * Name: stm32_usb_set_pwr_callback()
- *
- * Description:
- *   Called to setup set a call back for USB power state changes.
- *
- * Inputs:
- *   pwr_changed_handler: An interrupt handler that will be called on VBUS power
- *   state changes.
- *
- ************************************************************************************/
-
-void stm32_usb_set_pwr_callback(xcpt_t pwr_changed_handler);
-
-/****************************************************************************
- * Name: stm32_led_initialize
- *
- * Description:
- *   This functions is called very early in initialization to perform board-
- *   specific initialization of LED-related resources.  This includes such
- *   things as, for example, configure GPIO pins to drive the LEDs and also
- *   putting the LEDs in their correct initial state.
- *
- *   NOTE: In most architectures, LED initialization() is called from
- *   board-specific initialization and should, therefore, have the name
- *   <arch>_led_intialize().  But there are a few architectures where the
- *   LED initialization function is still called from common chip
- *   architecture logic.  This interface is not, however, a common board
- *   interface in any event and the name board_autoled_initialization is
- *   deprecated.
- *
- * Input Parameters:
- *   None
- *
- * Returned Value:
- *   None
- *
- ****************************************************************************/
-
-#ifdef CONFIG_ARCH_LEDS
-void board_autoled_initialize(void);
-#endif
-
-/************************************************************************************
- * Name: stm32_can_initialize
- *
- * Description:
- *   Called at application startup time to initialize the CAN functionality.
- *
- ************************************************************************************/
-
-#if defined(CONFIG_CAN) && (defined(CONFIG_STM32_CAN1) || defined(CONFIG_STM32_CAN2))
-int board_can_initialize(void);
-#endif
-
-/************************************************************************************
- * Name: board_button_initialize
- *
- * Description:
- *   Called at application startup time to initialize the Buttons functionality.
- *
- ************************************************************************************/
-
-#if defined(CONFIG_ARCH_BUTTONS)
-void board_button_initialize(void);
-#endif
-
-/****************************************************************************
- * Name: usbmsc_archinitialize
- *
- * Description:
- *   Called from the application system/usbmc or the boards_nsh if the
- *   application is not included.
- *   Perform architecture specific initialization.  This function must
- *   configure the block device to export via USB.  This function must be
- *   provided by architecture-specific logic in order to use this add-on.
- *
- ****************************************************************************/
-
-#if !defined(CONFIG_NSH_BUILTIN_APPS) && !defined(CONFIG_SYSTEM_USBMSC)
-int usbmsc_archinitialize(void);
-#endif
-
-/****************************************************************************
- * Name: composite_archinitialize
- *
- * Description:
- *   Called from the application system/composite or the boards_nsh if the
- *   application is not included.
- *   Perform architecture specific initialization.  This function must
- *   configure the block device to export via USB.  This function must be
- *   provided by architecture-specific logic in order to use this add-on.
- *
- ****************************************************************************/
-
-#if !defined(CONFIG_NSH_BUILTIN_APPS) && !defined(CONFIG_SYSTEM_COMPOSITE)
-extern int composite_archinitialize(void);
-#endif
-
-#include "../common/board_common.h"
-
-#endif /* __ASSEMBLY__ */
-
-__END_DECLS
diff --git a/src/drivers/boards/px4flow-v2/init.c b/src/drivers/boards/px4flow-v2/init.c
deleted file mode 100644
index 2ff3fb6e54..0000000000
--- a/src/drivers/boards/px4flow-v2/init.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (c) 2012-2015 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.
- *
- ****************************************************************************/
-
-/**
- * @file px4flow_init.c
- *
- * PX4FLOW-specific early startup code.  This file implements the
- * board_app_initialize() function that is called early by nsh during startup.
- *
- * Code here is run before the rcS script is invoked; it should start required
- * subsystems and perform board-specific initialization.
- */
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <px4_config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <debug.h>
-#include <errno.h>
-
-#include "platform/cxxinitialize.h"
-#include <nuttx/board.h>
-#include <nuttx/spi/spi.h>
-#include <nuttx/i2c/i2c_master.h>
-#include <nuttx/mmcsd.h>
-#include <nuttx/analog/adc.h>
-
-#include <stm32.h>
-#include "board_config.h"
-#include "stm32_uart.h"
-
-#include <arch/board/board.h>
-
-#include <drivers/drv_hrt.h>
-#include <drivers/drv_board_led.h>
-
-#include <systemlib/cpuload.h>
-
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-#endif
-
-#include "board_config.h"
-
-/* todo: This is constant but not proper */
-__BEGIN_DECLS
-extern void led_off(int led);
-__END_DECLS
-
-
-/****************************************************************************
- * Pre-Processor Definitions
- ****************************************************************************/
-
-/* Configuration ************************************************************/
-
-/* Debug ********************************************************************/
-
-/****************************************************************************
- * Protected Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/************************************************************************************
- * Name: stm32_boardinitialize
- *
- * Description:
- *   All STM32 architectures must provide the following entry point.  This entry point
- *   is called early in the initialization -- after all memory has been configured
- *   and mapped but before any devices have been initialized.
- *
- ************************************************************************************/
-
-__EXPORT void stm32_boardinitialize(void)
-{
-	/* configure LEDs */
-	board_autoled_initialize();
-#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || \
-    defined(CONFIG_STM32_SPI3)
-	board_spiinitialize();
-#endif
-}
-
-
-__EXPORT void board_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initalization logic and the the
- *         matching application logic.  The value cold be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-
-__EXPORT int board_app_initialize(uintptr_t arg)
-{
-	int result = OK;
-
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-
-	/* run C++ ctors before we go any further */
-
-	up_cxxinitialize();
-
-#	if defined(CONFIG_EXAMPLES_NSH_CXXINITIALIZE)
-#  		error CONFIG_EXAMPLES_NSH_CXXINITIALIZE Must not be defined! Use CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE.
-#	endif
-
-#else
-#  error platform is dependent on c++ both CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE must be defined.
-#endif
-
-	/* configure the high-resolution time/callout interface */
-	hrt_init();
-
-	/* set up the serial DMA polling */
-	static struct hrt_call serial_dma_call;
-	struct timespec ts;
-
-	/*
-	 * Poll at 1ms intervals for received bytes that have not triggered
-	 * a DMA event.
-	 */
-	ts.tv_sec = 0;
-	ts.tv_nsec = 1000000;
-
-	hrt_call_every(&serial_dma_call,
-		       ts_to_abstime(&ts),
-		       ts_to_abstime(&ts),
-		       (hrt_callout)stm32_serial_dma_poll,
-		       NULL);
-
-	return result;
-}
diff --git a/src/drivers/boards/px4flow-v2/led.c b/src/drivers/boards/px4flow-v2/led.c
deleted file mode 100644
index decfad3ac5..0000000000
--- a/src/drivers/boards/px4flow-v2/led.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (c) 2012-2015 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.
- *
- ****************************************************************************/
-
-/**
- * @file px4flow_led.c
- *
- * PX4ESC LED backend.
- */
-
-#include <px4_config.h>
-
-#include <stdbool.h>
-#include <nuttx/board.h>
-
-#include "stm32.h"
-#include "board_config.h"
-
-#include <arch/board/board.h>
-
-#include <systemlib/px4_macros.h>
-
-/*
- * Ideally we'd be able to get these from up_internal.h,
- * but since we want to be able to disable the NuttX use
- * of leds for system indication at will and there is no
- * separate switch, we need to build independent of the
- * CONFIG_ARCH_LEDS configuration switch.
- */
-__BEGIN_DECLS
-extern void led_init(void);
-extern void led_on(int led);
-extern void led_off(int led);
-extern void led_toggle(int led);
-__END_DECLS
-
-static uint16_t g_ledmap[] = {
-	GPIO_LED_RED,    // Indexed by BOARD_LED_RED
-	GPIO_LED_GREEN,  // Indexed by BOARD_LED_GREEN
-	GPIO_LED_BLUE,    // Indexed by BOARD_LED_BLUE
-};
-
-__EXPORT void led_init(void)
-{
-	/* Configure LED GPIOs for output */
-	for (size_t l = 0; l < arraySize(g_ledmap); l++) {
-		stm32_configgpio(g_ledmap[l]);
-	}
-}
-
-__EXPORT void board_autoled_initialize(void)
-{
-	led_init();
-}
-
-static void phy_set_led(int led, bool state)
-{
-	/* Pull Down to switch on */
-	stm32_gpiowrite(g_ledmap[led], !state);
-}
-
-static bool phy_get_led(int led)
-{
-
-	return !stm32_gpioread(g_ledmap[led]);
-}
-
-__EXPORT void led_on(int led)
-{
-	phy_set_led(led, true);
-}
-
-__EXPORT void led_off(int led)
-{
-	phy_set_led(led, false);
-}
-
-__EXPORT void led_toggle(int led)
-{
-
-	phy_set_led(led, !phy_get_led(led));
-}
-
-static bool g_initialized;
-
-// Nuttx Usages
-
-__EXPORT
-void board_autoled_on(int led)
-{
-	switch (led) {
-	default:
-	case LED_STARTED:
-	case LED_HEAPALLOCATE:
-		phy_set_led(BOARD_LED_BLUE, true);
-		break;
-
-	case LED_IRQSENABLED:
-		phy_set_led(BOARD_LED_GREEN, true);
-		break;
-
-	case LED_STACKCREATED:
-		phy_set_led(BOARD_LED_GREEN, true);
-		phy_set_led(BOARD_LED_BLUE, true);
-		g_initialized = true;
-		break;
-
-	case LED_INIRQ:
-	case LED_SIGNAL:
-		phy_set_led(BOARD_LED_GREEN, true);
-		break;
-
-	case LED_ASSERTION:
-		phy_set_led(BOARD_LED_RED, true);
-		phy_set_led(BOARD_LED_GREEN, true);
-		break;
-
-	case LED_PANIC:
-		phy_set_led(BOARD_LED_RED, true);
-		break;
-
-	case LED_IDLE : /* IDLE */
-		phy_set_led(BOARD_LED_RED, true);
-		phy_set_led(BOARD_LED_BLUE, true);
-		break;
-	}
-}
-
-/****************************************************************************
- * Name: board_autoled_off
- ****************************************************************************/
-
-
-__EXPORT void board_autoled_off(int led)
-{
-	switch (led) {
-	default:
-	case LED_STARTED:
-	case LED_HEAPALLOCATE:
-	case LED_IRQSENABLED:
-		phy_set_led(BOARD_LED_BLUE, false);
-
-	case LED_STACKCREATED:
-		break;
-
-	case LED_INIRQ:
-	case LED_SIGNAL:
-	case LED_ASSERTION:
-		phy_set_led(BOARD_LED_RED, false);
-		phy_set_led(BOARD_LED_GREEN, false);
-
-		break;
-
-	case LED_PANIC:
-		phy_set_led(BOARD_LED_RED, false);
-		phy_set_led(BOARD_LED_GREEN, false);
-		break;
-
-	case LED_IDLE: /* IDLE */
-		phy_set_led(BOARD_LED_GREEN, g_initialized);
-		break;
-	}
-}
diff --git a/src/drivers/boards/zubaxgnss-v1/board_config.h b/src/drivers/boards/zubaxgnss-v1/board_config.h
deleted file mode 100644
index d0fe26efaf..0000000000
--- a/src/drivers/boards/zubaxgnss-v1/board_config.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (c) 2012-2015 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.
- *
- ****************************************************************************/
-
-/**
- * @file board_config.h
- *
- * ZUBAXGNSSv1 internal definitions
- */
-
-#pragma once
-
-/****************************************************************************************************
- * Included Files
- ****************************************************************************************************/
-
-#include <px4_config.h>
-#include <nuttx/compiler.h>
-#include <stdint.h>
-
-/************************************************************************************
- * Definitions
- ************************************************************************************/
-
-#if STM32_NSPI < 1
-#  undef CONFIG_STM32_SPI1
-#  undef CONFIG_STM32_SPI2
-#elif STM32_NSPI < 2
-#  undef CONFIG_STM32_SPI2
-#endif
-
-/* High-resolution timer
- */
-#define HRT_TIMER               1       /* use timer1 for the HRT */
-#define HRT_TIMER_CHANNEL       1       /* use capture/compare channel */
-#define HRT_PPM_CHANNEL         3       /* use capture/compare channel 3 */
-#define GPIO_PPM_IN             (GPIO_ALT|GPIO_CNF_INPULLUP|GPIO_PORTB|GPIO_PIN12)
-
-/* LEDs ***********************************************************************
- *
- *   GPIO      Function                                     MPU        Board
- *                                                          Pin #      Name
- * -- ----- --------------------------------             ----------------------
- *
- *  PB[00] ADC12_IN8/TIM3_CH3/ETH_MII_RXD2/TIM1_CH2N        26       LED4
- *  PC[04] ADC12_IN14/ETH_MII_RXD0(8)/ETH_RMII_RXD0         24       LED3
- *  PC[05] ADC12_IN15/ETH_MII_RXD1(8)/ETH_RMII_RXD1         25       LED2
- */
-
-#define GPIO_LED2       (GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz | \
-			 GPIO_PORTC | GPIO_PIN5 | GPIO_OUTPUT_CLEAR)
-#define GPIO_LED_CAN1   GPIO_LED2
-
-#define GPIO_LED3       (GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz | \
-			 GPIO_PORTC | GPIO_PIN4 | GPIO_OUTPUT_CLEAR)
-#define GPIO_LED_CAN2   GPIO_LED3
-
-#define GPIO_LED4       (GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz | \
-			 GPIO_PORTB | GPIO_PIN0 | GPIO_OUTPUT_CLEAR)
-#define GPIO_LED_INFO   GPIO_LED4
-
-/* SPI ***************************************************************************
- *
- *   GPIO      Function                                     MPU        Board
- *                                                          Pin #      Name
- * -- ----- --------------------------------             ----------------------------
- *
- *  PC[09] PA4/SPI1_NSS/USART2_CK/ADC4                      20       D10(#SS1)
- *  PD[02] PD2/TIM3_ETR                                     54       D25(MMC_CS)
- */
-
-#define GPIO_SPI1_SSn (GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz | \
-		       GPIO_PORTA | GPIO_PIN4 | GPIO_OUTPUT_SET)
-#define USER_CSn      GPIO_SPI1_SSn
-
-__BEGIN_DECLS
-
-/************************************************************************************
- * Public Types
- ************************************************************************************/
-
-/************************************************************************************
- * Public data
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/************************************************************************************
- * Public Functions
- ************************************************************************************/
-
-/************************************************************************************
- * Name: stm32_spiinitialize
- *
- * Description:
- *   Called to configure SPI chip select GPIO pins.
- *
- ************************************************************************************/
-
-#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || \
-    defined(CONFIG_STM32_SPI3)
-void weak_function board_spiinitialize(void);
-#endif
-
-/************************************************************************************
- * Name: stm32_usbinitialize
- *
- * Description:
- *   Called to setup USB-related GPIO pins.
- *
- ************************************************************************************/
-
-void stm32_usbinitialize(void);
-
-/************************************************************************************
- * Name: stm32_usb_set_pwr_callback()
- *
- * Description:
- *   Called to setup set a call back for USB power state changes.
- *
- * Inputs:
- *   pwr_changed_handler: An interrupt handler that will be called on VBUS power
- *   state changes.
- *
- ************************************************************************************/
-
-void stm32_usb_set_pwr_callback(xcpt_t pwr_changed_handler);
-
-/****************************************************************************
- * Name: stm32_led_initialize
- *
- * Description:
- *   This functions is called very early in initialization to perform board-
- *   specific initialization of LED-related resources.  This includes such
- *   things as, for example, configure GPIO pins to drive the LEDs and also
- *   putting the LEDs in their correct initial state.
- *
- *   NOTE: In most architectures, LED initialization() is called from
- *   board-specific initialization and should, therefore, have the name
- *   <arch>_led_intialize().  But there are a few architectures where the
- *   LED initialization function is still called from common chip
- *   architecture logic.  This interface is not, however, a common board
- *   interface in any event and the name board_autoled_initialization is
- *   deprecated.
- *
- * Input Parameters:
- *   None
- *
- * Returned Value:
- *   None
- *
- ****************************************************************************/
-
-#ifdef CONFIG_ARCH_LEDS
-void board_autoled_initialize(void);
-#endif
-
-/************************************************************************************
- * Name: stm32_can_initialize
- *
- * Description:
- *   Called at application startup time to initialize the CAN functionality.
- *
- ************************************************************************************/
-
-#if defined(CONFIG_CAN) && (defined(CONFIG_STM32_CAN1) || defined(CONFIG_STM32_CAN2))
-int board_can_initialize(void);
-#endif
-
-/************************************************************************************
- * Name: board_button_initialize
- *
- * Description:
- *   Called at application startup time to initialize the Buttons functionality.
- *
- ************************************************************************************/
-
-#if defined(CONFIG_ARCH_BUTTONS)
-void board_button_initialize(void);
-#endif
-
-/****************************************************************************
- * Name: usbmsc_archinitialize
- *
- * Description:
- *   Called from the application system/usbmc or the boards_nsh if the
- *   application is not included.
- *   Perform architecture specific initialization.  This function must
- *   configure the block device to export via USB.  This function must be
- *   provided by architecture-specific logic in order to use this add-on.
- *
- ****************************************************************************/
-
-#if !defined(CONFIG_NSH_BUILTIN_APPS) && !defined(CONFIG_SYSTEM_USBMSC)
-int usbmsc_archinitialize(void);
-#endif
-
-/****************************************************************************
- * Name: composite_archinitialize
- *
- * Description:
- *   Called from the application system/composite or the boards_nsh if the
- *   application is not included.
- *   Perform architecture specific initialization.  This function must
- *   configure the block device to export via USB.  This function must be
- *   provided by architecture-specific logic in order to use this add-on.
- *
- ****************************************************************************/
-
-#if !defined(CONFIG_NSH_BUILTIN_APPS) && !defined(CONFIG_SYSTEM_COMPOSITE)
-extern int composite_archinitialize(void);
-#endif
-
-#include "../common/board_common.h"
-
-#endif /* __ASSEMBLY__ */
-
-__END_DECLS
diff --git a/src/drivers/boards/zubaxgnss-v1/gnss_init.c b/src/drivers/boards/zubaxgnss-v1/gnss_init.c
deleted file mode 100644
index 55a101a3ae..0000000000
--- a/src/drivers/boards/zubaxgnss-v1/gnss_init.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (c) 2012-2015 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.
- *
- ****************************************************************************/
-
-/**
- * @file zubax_gnss_init.c
- *
- * ZUBAXGNSS-specific early startup code.  This file implements the
- * board_app_initialize() function that is called early by nsh during startup.
- *
- * Code here is run before the rcS script is invoked; it should start required
- * subsystems and perform board-specific initialization.
- */
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <px4_config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <debug.h>
-#include <errno.h>
-
-#include "platform/cxxinitialize.h"
-#include <nuttx/board.h>
-#include <nuttx/spi/spi.h>
-#include <nuttx/i2c/i2c_master.h>
-#include <nuttx/mmcsd.h>
-#include <nuttx/analog/adc.h>
-
-#include <stm32.h>
-#include "board_config.h"
-#include "stm32_uart.h"
-
-#include <arch/board/board.h>
-
-#include <drivers/drv_hrt.h>
-#include <drivers/drv_board_led.h>
-
-#include <systemlib/cpuload.h>
-
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-#endif
-
-#include "board_config.h"
-
-/* todo: This is constant but not proper */
-__BEGIN_DECLS
-extern void led_off(int led);
-__END_DECLS
-
-
-/****************************************************************************
- * Pre-Processor Definitions
- ****************************************************************************/
-
-/* Configuration ************************************************************/
-
-/* Debug ********************************************************************/
-
-/****************************************************************************
- * Protected Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/************************************************************************************
- * Name: stm32_boardinitialize
- *
- * Description:
- *   All STM32 architectures must provide the following entry point.  This entry point
- *   is called early in the initialization -- after all memory has been configured
- *   and mapped but before any devices have been initialized.
- *
- ************************************************************************************/
-
-__EXPORT void stm32_boardinitialize(void)
-{
-	/* configure LEDs */
-	board_autoled_initialize();
-}
-
-
-__EXPORT void board_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- *   Perform application specific initialization.  This function is never
- *   called directly from application code, but only indirectly via the
- *   (non-standard) boardctl() interface using the command BOARDIOC_INIT.
- *
- * Input Parameters:
- *   arg - The boardctl() argument is passed to the board_app_initialize()
- *         implementation without modification.  The argument has no
- *         meaning to NuttX; the meaning of the argument is a contract
- *         between the board-specific initalization logic and the the
- *         matching application logic.  The value cold be such things as a
- *         mode enumeration value, a set of DIP switch switch settings, a
- *         pointer to configuration data read from a file or serial FLASH,
- *         or whatever you would like to do with it.  Every implementation
- *         should accept zero/NULL as a default configuration.
- *
- * Returned Value:
- *   Zero (OK) is returned on success; a negated errno value is returned on
- *   any failure to indicate the nature of the failure.
- *
- ****************************************************************************/
-
-
-__EXPORT int board_app_initialize(uintptr_t arg)
-{
-	int result = OK;
-
-#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
-
-	/* run C++ ctors before we go any further */
-
-	up_cxxinitialize();
-
-#	if defined(CONFIG_EXAMPLES_NSH_CXXINITIALIZE)
-#  		error CONFIG_EXAMPLES_NSH_CXXINITIALIZE Must not be defined! Use CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE.
-#	endif
-
-#else
-#  error platform is dependent on c++ both CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE must be defined.
-#endif
-
-	/* configure the high-resolution time/callout interface */
-	hrt_init();
-
-	/* set up the serial DMA polling */
-	static struct hrt_call serial_dma_call;
-	struct timespec ts;
-
-	/*
-	 * Poll at 1ms intervals for received bytes that have not triggered
-	 * a DMA event.
-	 */
-	ts.tv_sec = 0;
-	ts.tv_nsec = 1000000;
-
-	hrt_call_every(&serial_dma_call,
-		       ts_to_abstime(&ts),
-		       ts_to_abstime(&ts),
-		       (hrt_callout)stm32_serial_dma_poll,
-		       NULL);
-
-	return result;
-}
diff --git a/src/drivers/boards/zubaxgnss-v1/gnss_led.c b/src/drivers/boards/zubaxgnss-v1/gnss_led.c
deleted file mode 100644
index a3558ce795..0000000000
--- a/src/drivers/boards/zubaxgnss-v1/gnss_led.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/****************************************************************************
- *
- *   Copyright (c) 2012-2015 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.
- *
- ****************************************************************************/
-
-/**
- * @file zubax_gnss_led.c
- *
- * zubax_gnss LED backend.
- */
-
-#include <px4_config.h>
-
-#include <stdbool.h>
-#include <nuttx/board.h>
-
-#include "stm32.h"
-#include "board_config.h"
-
-#include <arch/board/board.h>
-
-#include <systemlib/px4_macros.h>
-
-/*
- * Ideally we'd be able to get these from up_internal.h,
- * but since we want to be able to disable the NuttX use
- * of leds for system indication at will and there is no
- * separate switch, we need to build independent of the
- * CONFIG_ARCH_LEDS configuration switch.
- */
-__BEGIN_DECLS
-extern void led_init(void);
-extern void led_on(int led);
-extern void led_off(int led);
-extern void led_toggle(int led);
-__END_DECLS
-
-static uint16_t g_ledmap[] = {
-	GPIO_LED_INFO,   // Indexed by BOARD_LED_GREEN
-	GPIO_LED_CAN1,    // Indexed by BOARD_LED_RED
-	GPIO_LED_CAN2,    // Indexed by BOARD_LED_BLUE - yes Blue
-};
-
-__EXPORT void led_init(void)
-{
-	/* Configure LED1-2 GPIOs for output */
-	for (size_t l = 0; l < arraySize(g_ledmap); l++) {
-		stm32_configgpio(g_ledmap[l]);
-	}
-}
-
-__EXPORT void board_autoled_initialize(void)
-{
-	led_init();
-}
-
-static void phy_set_led(int led, bool state)
-{
-	/* Pull Up to switch on */
-	stm32_gpiowrite(g_ledmap[led], state);
-}
-
-static bool phy_get_led(int led)
-{
-
-	return !stm32_gpioread(g_ledmap[led]);
-}
-
-__EXPORT void led_on(int led)
-{
-	phy_set_led(led, true);
-}
-
-__EXPORT void led_off(int led)
-{
-	phy_set_led(led, false);
-}
-
-__EXPORT void led_toggle(int led)
-{
-
-	phy_set_led(led, !phy_get_led(led));
-}
-
-static bool g_initialized;
-
-// Nuttx Usages
-
-void board_autoled_on(int led)
-{
-	switch (led) {
-	default:
-	case LED_STARTED:
-	case LED_HEAPALLOCATE:
-		phy_set_led(BOARD_LED_BLUE, true);
-		break;
-
-	case LED_IRQSENABLED:
-		phy_set_led(BOARD_LED_GREEN, true);
-		break;
-
-	case LED_STACKCREATED:
-		phy_set_led(BOARD_LED_GREEN, true);
-		phy_set_led(BOARD_LED_BLUE, true);
-		g_initialized = true;
-		break;
-
-	case LED_INIRQ:
-	case LED_SIGNAL:
-		phy_set_led(BOARD_LED_GREEN, true);
-		break;
-
-	case LED_ASSERTION:
-		phy_set_led(BOARD_LED_RED, true);
-		phy_set_led(BOARD_LED_GREEN, true);
-		break;
-
-	case LED_PANIC:
-		phy_set_led(BOARD_LED_RED, true);
-		break;
-
-	case LED_IDLE : /* IDLE */
-		phy_set_led(BOARD_LED_RED, true);
-		phy_set_led(BOARD_LED_BLUE, true);
-		break;
-	}
-}
-
-/****************************************************************************
- * Name: board_autoled_off
- ****************************************************************************/
-
-
-__EXPORT void board_autoled_off(int led)
-{
-	switch (led) {
-	default:
-	case LED_STARTED:
-	case LED_HEAPALLOCATE:
-	case LED_IRQSENABLED:
-		phy_set_led(BOARD_LED_BLUE, false);
-
-	case LED_STACKCREATED:
-		break;
-
-	case LED_INIRQ:
-	case LED_SIGNAL:
-	case LED_ASSERTION:
-		phy_set_led(BOARD_LED_RED, false);
-		phy_set_led(BOARD_LED_GREEN, false);
-
-		break;
-
-	case LED_PANIC:
-		phy_set_led(BOARD_LED_RED, false);
-		phy_set_led(BOARD_LED_GREEN, false);
-		break;
-
-	case LED_IDLE: /* IDLE */
-		phy_set_led(BOARD_LED_GREEN, g_initialized);
-		break;
-	}
-}
diff --git a/src/drivers/distance_sensor/sf0x/CMakeLists.txt b/src/drivers/distance_sensor/sf0x/CMakeLists.txt
index f26411f4b2..a40f07907d 100644
--- a/src/drivers/distance_sensor/sf0x/CMakeLists.txt
+++ b/src/drivers/distance_sensor/sf0x/CMakeLists.txt
@@ -33,12 +33,13 @@
 px4_add_module(
 	MODULE drivers__sf0x
 	MAIN sf0x
-	COMPILE_FLAGS
 	SRCS
 		sf0x.cpp
 		sf0x_parser.cpp
 	MODULE_CONFIG
 		module.yaml
-	DEPENDS
 	)
 
+if(PX4_TESTING)
+	add_subdirectory(sf0x_tests)
+endif()
diff --git a/src/drivers/px4io/CMakeLists.txt b/src/drivers/px4io/CMakeLists.txt
index 13461cfdde..9a3a040b34 100644
--- a/src/drivers/px4io/CMakeLists.txt
+++ b/src/drivers/px4io/CMakeLists.txt
@@ -49,20 +49,20 @@ px4_add_module(
 # include the px4io binary in ROMFS
 message(STATUS "Building and including ${config_io_board}")
 
-set(fw_io_exe "${PX4_SOURCE_DIR}/build/nuttx_${config_io_board}_default/nuttx_${config_io_board}_default.elf")
-set(fw_io_bin "${PX4_BINARY_DIR}/romfs_extras/${config_io_board}.bin" CACHE FILEPATH "px4io binary path")
+include(ExternalProject)
+ExternalProject_Add(px4io_firmware
+	SOURCE_DIR ${CMAKE_SOURCE_DIR}
+	DOWNLOAD_COMMAND ""
+	UPDATE_COMMAND ""
+	CMAKE_ARGS -DCONFIG=${config_io_board}
+	INSTALL_COMMAND ""
+	USES_TERMINAL_BUILD true
+)
 
-file(GLOB_RECURSE px4io_driver_files ${PX4_SOURCE_DIR}/src/drivers/boards/${config_io_board}/*)
-file(GLOB_RECURSE px4io_config_files ${PX4_SOURCE_DIR}/platforms/nuttx/NuttX/configs/${config_io_board}/*)
-file(GLOB_RECURSE px4io_firmware_files ${PX4_SOURCE_DIR}/src/modules/px4iofirmware/*)
-file(GLOB_RECURSE px4io_rc_files ${PX4_SOURCE_DIR}/src/lib/rc/*)
-add_custom_command(OUTPUT ${fw_io_exe}
-	COMMAND make --no-print-directory nuttx_${config_io_board}_default
-	DEPENDS ${px4io_driver_files} ${px4io_config_files} ${px4io_firmware_files} ${px4io_rc_files}
-	WORKING_DIRECTORY ${PX4_SOURCE_DIR}
-	COMMENT "Building ${config_io_board}"
-	USES_TERMINAL
-	)
+ExternalProject_Get_Property(px4io_firmware BINARY_DIR)
+
+set(fw_io_exe "${BINARY_DIR}/${config_io_board}.elf")
+set(fw_io_bin "${PX4_BINARY_DIR}/romfs_extras/${config_io_board}.bin" CACHE FILEPATH "px4io binary path")
 
 file(RELATIVE_PATH fw_io_exe_relative ${CMAKE_CURRENT_BINARY_DIR} ${fw_io_exe})
 file(RELATIVE_PATH fw_io_bin_relative ${CMAKE_CURRENT_BINARY_DIR} ${fw_io_bin})
@@ -70,7 +70,7 @@ file(RELATIVE_PATH fw_io_bin_relative ${CMAKE_CURRENT_BINARY_DIR} ${fw_io_bin})
 add_custom_command(OUTPUT ${fw_io_bin}
 	COMMAND ${CMAKE_COMMAND} -E make_directory ${PX4_BINARY_DIR}/romfs_extras
 	COMMAND ${CMAKE_OBJCOPY} -O binary ${fw_io_exe_relative} ${fw_io_bin_relative}
-	DEPENDS ${fw_io_exe}
+	DEPENDS px4io_firmware
 	COMMENT "Copying ${config_io_board} to ROMFS extras"
 	)
 add_custom_target(copy_px4io_bin DEPENDS ${fw_io_bin})
diff --git a/src/lib/cdev/CMakeLists.txt b/src/lib/cdev/CMakeLists.txt
index 1f5a981fd4..1f65c76cc4 100644
--- a/src/lib/cdev/CMakeLists.txt
+++ b/src/lib/cdev/CMakeLists.txt
@@ -32,7 +32,7 @@
 ############################################################################
 
 set(SRCS_PLATFORM)
-if (${OS} STREQUAL "nuttx")
+if (${PX4_PLATFORM} STREQUAL "nuttx")
 	list(APPEND SRCS_PLATFORM
 		nuttx/cdev_platform.cpp
 	)
diff --git a/src/lib/controllib/CMakeLists.txt b/src/lib/controllib/CMakeLists.txt
index e3077f2253..860ce49e15 100644
--- a/src/lib/controllib/CMakeLists.txt
+++ b/src/lib/controllib/CMakeLists.txt
@@ -42,4 +42,8 @@ px4_add_library(controllib
 	BlockLimitSym.cpp
 	BlockLowPass.cpp
 	BlockLowPass2.cpp
-)
\ No newline at end of file
+)
+
+if(PX4_TESTING)
+	add_subdirectory(controllib_test)
+endif()
diff --git a/src/lib/drivers/device/CMakeLists.txt b/src/lib/drivers/device/CMakeLists.txt
index e175e467b7..e6dca23d79 100644
--- a/src/lib/drivers/device/CMakeLists.txt
+++ b/src/lib/drivers/device/CMakeLists.txt
@@ -32,7 +32,7 @@
 ############################################################################
 
 set(SRCS_PLATFORM)
-if (${OS} STREQUAL "nuttx")
+if (${PX4_PLATFORM} STREQUAL "nuttx")
 	if ("${CONFIG_I2C}" STREQUAL "y")
 		list(APPEND SRCS_PLATFORM nuttx/I2C.cpp)
 	endif()
@@ -53,7 +53,7 @@ px4_add_library(drivers__device
 	${SRCS_PLATFORM}
 	)
 
-if (${OS} STREQUAL "nuttx")
+if (${PX4_PLATFORM} STREQUAL "nuttx")
 	target_link_libraries(drivers__device PRIVATE nuttx_arch)
 endif()
 
diff --git a/src/lib/parameters/CMakeLists.txt b/src/lib/parameters/CMakeLists.txt
index 79684d6810..bfac359edb 100644
--- a/src/lib/parameters/CMakeLists.txt
+++ b/src/lib/parameters/CMakeLists.txt
@@ -39,6 +39,7 @@ endif()
 
 # get full path for each module
 get_property(module_list GLOBAL PROPERTY PX4_MODULE_PATHS)
+
 if (DISABLE_PARAMS_MODULE_SCOPING)
 	# search all directories with .c files (potentially containing parameters)
 	file(GLOB_RECURSE new_list
@@ -49,20 +50,7 @@ if (DISABLE_PARAMS_MODULE_SCOPING)
 		get_filename_component(dir_path ${file_path} PATH)
 		list(APPEND module_list "${dir_path}")
 	endforeach()
-	list(REMOVE_DUPLICATES module_list)
 else()
-	foreach(module ${config_module_list})
-		# include all subdirectories as well
-		file(GLOB children RELATIVE ${PX4_SOURCE_DIR}/src/${module} ${PX4_SOURCE_DIR}/src/${module}/*)
-		foreach(child ${children})
-			if(IS_DIRECTORY ${PX4_SOURCE_DIR}/src/${module}/${child})
-				list(APPEND module_list ${PX4_SOURCE_DIR}/src/${module}/${child})
-			endif()
-		endforeach()
-
-		list(APPEND module_list ${PX4_SOURCE_DIR}/src/${module})
-	endforeach()
-
 	list(APPEND module_list ${external_module_paths})
 endif()
 
@@ -96,7 +84,7 @@ add_custom_command(OUTPUT ${parameters_xml}
 		--xml ${parameters_xml}
 		--inject-xml ${CMAKE_CURRENT_SOURCE_DIR}/parameters_injected.xml
 		--overrides ${PARAM_DEFAULT_OVERRIDES}
-		--board ${BOARD}
+		--board ${PX4_BOARD}
 		#--verbose
 	DEPENDS
 		${param_src_files}
@@ -132,12 +120,12 @@ else()
 	list(APPEND SRCS parameters.cpp)
 endif()
 
-if(${OS} STREQUAL "nuttx")
+if(${PX4_PLATFORM} STREQUAL "nuttx")
 	add_subdirectory(flashparams)
 endif()
 
 # TODO: find a better way to do this
-if (NOT "${CONFIG}" MATCHES "px4io")
+if (NOT "${PX4_BOARD}" MATCHES "px4io")
 	add_library(parameters
 		${SRCS}
 		px4_parameters.c
@@ -157,6 +145,6 @@ else()
 endif()
 add_dependencies(parameters prebuild_targets)
 
-if(${OS} STREQUAL "nuttx")
+if(${PX4_PLATFORM} STREQUAL "nuttx")
 	target_link_libraries(parameters PRIVATE flashparams tinybson)
 endif()
diff --git a/src/lib/rc/CMakeLists.txt b/src/lib/rc/CMakeLists.txt
index a517286221..1295729495 100644
--- a/src/lib/rc/CMakeLists.txt
+++ b/src/lib/rc/CMakeLists.txt
@@ -41,3 +41,7 @@ add_library(rc
 )
 target_compile_options(rc PRIVATE -Wno-unused-result)
 target_link_libraries(rc PRIVATE prebuild_targets)
+
+if(PX4_TESTING AND (${PX4_PLATFORM} MATCHES "posix"))
+	add_subdirectory(rc_tests)
+endif()
diff --git a/src/lib/rc/rc_tests/RCTest.cpp b/src/lib/rc/rc_tests/RCTest.cpp
index ba6fba2046..edc757f6d0 100644
--- a/src/lib/rc/rc_tests/RCTest.cpp
+++ b/src/lib/rc/rc_tests/RCTest.cpp
@@ -3,6 +3,7 @@
 #include <systemlib/err.h>
 
 #include <stdio.h>
+#include <string.h>
 #include <unistd.h>
 
 #include <drivers/drv_hrt.h>
diff --git a/src/modules/commander/CMakeLists.txt b/src/modules/commander/CMakeLists.txt
index a60fe3a828..83708af04d 100644
--- a/src/modules/commander/CMakeLists.txt
+++ b/src/modules/commander/CMakeLists.txt
@@ -30,6 +30,9 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 ############################################################################
+
+add_subdirectory(failure_detector)
+
 px4_add_module(
 	MODULE modules__commander
 	MAIN commander
@@ -52,10 +55,14 @@ px4_add_module(
 		rc_calibration.cpp
 		rc_check.cpp
 		state_machine_helper.cpp
-		failure_detector/FailureDetector.cpp
 	DEPENDS
 		circuit_breaker
 		df_driver_framework
+		failure_detector
 		git_ecl
 		ecl_geo
 	)
+
+if(PX4_TESTING)
+	add_subdirectory(commander_tests)
+endif()
diff --git a/src/drivers/boards/px4flow-v2/CMakeLists.txt b/src/modules/commander/failure_detector/CMakeLists.txt
similarity index 93%
rename from src/drivers/boards/px4flow-v2/CMakeLists.txt
rename to src/modules/commander/failure_detector/CMakeLists.txt
index bb7b1066a3..8c68bc6d71 100644
--- a/src/drivers/boards/px4flow-v2/CMakeLists.txt
+++ b/src/modules/commander/failure_detector/CMakeLists.txt
@@ -1,6 +1,6 @@
 ############################################################################
 #
-#   Copyright (c) 2015 PX4 Development Team. All rights reserved.
+#   Copyright (c) 2018 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
@@ -31,8 +31,6 @@
 #
 ############################################################################
 
-px4_add_library(drivers_board
-	can.c
-	init.c
-	led.c
+px4_add_library(failure_detector
+	FailureDetector.cpp
 )
diff --git a/src/modules/mavlink/CMakeLists.txt b/src/modules/mavlink/CMakeLists.txt
index 1b82aee2fa..5aecb2a653 100644
--- a/src/modules/mavlink/CMakeLists.txt
+++ b/src/modules/mavlink/CMakeLists.txt
@@ -70,3 +70,7 @@ px4_add_module(
 		version
 	UNITY_BUILD
 	)
+
+if(PX4_TESTING)
+	add_subdirectory(mavlink_tests)
+endif()
diff --git a/src/modules/micrortps_bridge/CMakeLists.txt b/src/modules/micrortps_bridge/CMakeLists.txt
index 364f5b2325..533ee53ebb 100644
--- a/src/modules/micrortps_bridge/CMakeLists.txt
+++ b/src/modules/micrortps_bridge/CMakeLists.txt
@@ -76,7 +76,7 @@ if (GENERATE_RTPS_BRIDGE)
 	###############################################################################
 	# micro-cdr serialization
 	###############################################################################
-	include(common/px4_git)
+	include(px4_git)
 	px4_add_git_submodule(TARGET git_micro_cdr PATH micro-CDR)
 	add_subdirectory(micro-CDR)
 
diff --git a/src/modules/simulator/CMakeLists.txt b/src/modules/simulator/CMakeLists.txt
index 437a418658..f47d3da71e 100644
--- a/src/modules/simulator/CMakeLists.txt
+++ b/src/modules/simulator/CMakeLists.txt
@@ -48,7 +48,7 @@ configure_file(simulator_config.h.in simulator_config.h @ONLY)
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
 
 set(SIMULATOR_SRCS simulator.cpp)
-if (NOT ${OS} STREQUAL "qurt")
+if (NOT ${PX4_PLATFORM} STREQUAL "qurt")
 	list(APPEND SIMULATOR_SRCS
 		simulator_mavlink.cpp)
 endif()
diff --git a/src/modules/systemlib/CMakeLists.txt b/src/modules/systemlib/CMakeLists.txt
index 0427d42f1c..1dccad1454 100644
--- a/src/modules/systemlib/CMakeLists.txt
+++ b/src/modules/systemlib/CMakeLists.txt
@@ -40,7 +40,7 @@ set(SRCS
 	otp.c
 	)
 
-if(${OS} STREQUAL "nuttx")
+if(${PX4_PLATFORM} STREQUAL "nuttx")
 	list(APPEND SRCS
 		print_load_nuttx.c
 		)
@@ -51,7 +51,7 @@ else()
 endif()
 
 # TODO: find a better way to do this
-if (NOT "${CONFIG}" MATCHES "px4io")
+if (NOT "${PX4_BOARD}" MATCHES "px4io")
 	px4_add_library(systemlib ${SRCS})
 else()
 	add_library(systemlib ${PX4_SOURCE_DIR}/src/platforms/empty.c)
diff --git a/src/modules/uORB/CMakeLists.txt b/src/modules/uORB/CMakeLists.txt
index af1ad1be3e..8ffeeffebe 100644
--- a/src/modules/uORB/CMakeLists.txt
+++ b/src/modules/uORB/CMakeLists.txt
@@ -50,3 +50,7 @@ px4_add_module(
 	DEPENDS
 		uorb_msgs
 	)
+
+if(PX4_TESTING)
+	add_subdirectory(uORB_tests)
+endif()
diff --git a/src/modules/uavcan/CMakeLists.txt b/src/modules/uavcan/CMakeLists.txt
index 7e3b2208f6..0a6fb2427e 100644
--- a/src/modules/uavcan/CMakeLists.txt
+++ b/src/modules/uavcan/CMakeLists.txt
@@ -35,21 +35,22 @@ px4_add_git_submodule(TARGET git_uavcan PATH "libuavcan")
 
 set(UAVCAN_USE_CPP03 ON CACHE BOOL "uavcan cpp03")
 
-# The default is the stm32
-if(NOT UAVCAN_PLATFORM)
-	set(UAVCAN_PLATFORM stm32 CACHE STRING "uavcan platform")
-endif()
+if(CONFIG_ARCH_CHIP)
 
-# The default timer the 5
-if(NOT UAVCAN_TIMER)
-	set(UAVCAN_TIMER 5)
+	if (${CONFIG_ARCH_CHIP} MATCHES "kinetis")
+		set(UAVCAN_PLATFORM "kinetis")
+		set(UAVCAN_TIMER 1)
+	elseif (${CONFIG_ARCH_CHIP} MATCHES "stm32")
+		set(UAVCAN_PLATFORM "stm32")
+		set(UAVCAN_TIMER 5) # The default timer the 5
+	endif()
 endif()
 
 if(NOT config_uavcan_num_ifaces)
 	message(FATAL_ERROR "config_uavcan_num_ifaces not set")
 endif()
 
-string(TOUPPER "${OS}" OS_UPPER)
+string(TOUPPER "${PX4_PLATFORM}" OS_UPPER)
 string(TOUPPER "${UAVCAN_PLATFORM}" UAVCAN_PLATFORM_UPPER)
 add_definitions(
 		-DUAVCAN_CPP_VERSION=UAVCAN_CPP03
diff --git a/src/modules/uavcanesc/CMakeLists.txt b/src/modules/uavcanesc/CMakeLists.txt
index e9f94456af..e7af4c6c90 100644
--- a/src/modules/uavcanesc/CMakeLists.txt
+++ b/src/modules/uavcanesc/CMakeLists.txt
@@ -36,7 +36,7 @@ px4_add_git_submodule(TARGET git_uavcan PATH "../uavcan/libuavcan")
 set(UAVCAN_USE_CPP03 ON CACHE BOOL "uavcan cpp03")
 set(UAVCAN_PLATFORM stm32 CACHE STRING "uavcan platform")
 
-string(TOUPPER "${OS}" OS_UPPER)
+string(TOUPPER "${PX4_PLATFORM}" OS_UPPER)
 add_definitions(
 		-DUAVCAN_CPP_VERSION=UAVCAN_CPP03
 		-DUAVCAN_MAX_NETWORK_SIZE_HINT=16
diff --git a/src/modules/uavcannode/CMakeLists.txt b/src/modules/uavcannode/CMakeLists.txt
index bf6373edbf..863a19e44b 100644
--- a/src/modules/uavcannode/CMakeLists.txt
+++ b/src/modules/uavcannode/CMakeLists.txt
@@ -36,7 +36,7 @@ px4_add_git_submodule(TARGET git_uavcan PATH "../uavcan/libuavcan")
 set(UAVCAN_USE_CPP03 ON CACHE BOOL "uavcan cpp03")
 set(UAVCAN_PLATFORM stm32 CACHE STRING "uavcan platform")
 
-string(TOUPPER "${OS}" OS_UPPER)
+string(TOUPPER "${PX4_PLATFORM}" OS_UPPER)
 add_definitions(
 		-DUAVCAN_CPP_VERSION=UAVCAN_CPP03
 		-DUAVCAN_MAX_NETWORK_SIZE_HINT=16
diff --git a/src/platforms/common/CMakeLists.txt b/src/platforms/common/CMakeLists.txt
index fcd2eb5b04..5639e5b915 100644
--- a/src/platforms/common/CMakeLists.txt
+++ b/src/platforms/common/CMakeLists.txt
@@ -33,7 +33,7 @@
 
 set(SRCS)
 
-if (NOT "${OS}" MATCHES "qurt" AND NOT "${CONFIG}" MATCHES "px4io")
+if (NOT "${PX4_PLATFORM}" MATCHES "qurt" AND NOT "${PX4_BOARD}" MATCHES "io-v2")
 	list(APPEND SRCS
 		px4_log.c
 		)
diff --git a/src/platforms/common/work_queue/CMakeLists.txt b/src/platforms/common/work_queue/CMakeLists.txt
index 22eef45761..f47f0b5829 100644
--- a/src/platforms/common/work_queue/CMakeLists.txt
+++ b/src/platforms/common/work_queue/CMakeLists.txt
@@ -32,7 +32,7 @@
 ############################################################################
 
 # nuttx uses internal work queue currently
-if (NOT "${OS}" MATCHES "nuttx")
+if (NOT "${PX4_PLATFORM}" MATCHES "nuttx")
 
 	add_library(work_queue
 		dq_addlast.c
diff --git a/src/systemcmds/tests/CMakeLists.txt b/src/systemcmds/tests/CMakeLists.txt
index 2914e58fef..88ff7ce09b 100644
--- a/src/systemcmds/tests/CMakeLists.txt
+++ b/src/systemcmds/tests/CMakeLists.txt
@@ -75,7 +75,7 @@ set(srcs
 	tests_main.c
 	)
 
-if(${OS} STREQUAL "nuttx")
+if(${PX4_PLATFORM} STREQUAL "nuttx")
 	list(APPEND srcs
 		test_time.c
 		test_uart_break.c
diff --git a/test/rostest_px4_run.sh b/test/rostest_px4_run.sh
index c80c2ab7eb..44f4f8b882 100755
--- a/test/rostest_px4_run.sh
+++ b/test/rostest_px4_run.sh
@@ -4,7 +4,7 @@ DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
 PX4_SRC_DIR=${DIR}/..
 
 source /opt/ros/kinetic/setup.bash
-source ${PX4_SRC_DIR}/Tools/setup_gazebo.bash ${PX4_SRC_DIR} ${PX4_SRC_DIR}/build/posix_sitl_default
+source ${PX4_SRC_DIR}/Tools/setup_gazebo.bash ${PX4_SRC_DIR} ${PX4_SRC_DIR}/build/px4sitl_default
 
 export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:${PX4_SRC_DIR}:${PX4_SRC_DIR}/Tools/sitl_gazebo
 
-- 
GitLab