From 82cb9353d18bfc7c2971937344c576fe6644efa2 Mon Sep 17 00:00:00 2001
From: David Sidrane <david_s5@nscdg.com>
Date: Mon, 12 Dec 2016 13:32:39 -1000
Subject: [PATCH] Changes to px4fmu-v1 for upstream Nuttx

---
 cmake/configs/nuttx_px4fmu-v1_default.cmake |   2 +
 nuttx-configs/px4fmu-v1/include/board.h     |  20 +-
 nuttx-configs/px4fmu-v1/nsh/Make.defs       |  26 +-
 nuttx-configs/px4fmu-v1/nsh/defconfig       | 894 +++++++++++++++-----
 nuttx-configs/px4fmu-v1/nsh/setenv.sh       |   2 +-
 nuttx-configs/px4fmu-v1/scripts/ld.script   |   2 +-
 nuttx-configs/px4fmu-v1/src/Makefile        |   5 +-
 src/drivers/boards/px4fmu-v1/board_config.h |  24 +-
 src/drivers/boards/px4fmu-v1/px4fmu_can.c   |  21 +-
 src/drivers/boards/px4fmu-v1/px4fmu_init.c  |  82 +-
 src/drivers/boards/px4fmu-v1/px4fmu_led.c   |  24 +-
 src/drivers/boards/px4fmu-v1/px4fmu_spi.c   |  41 +-
 src/drivers/boards/px4fmu-v1/px4fmu_usb.c   |   8 +-
 13 files changed, 828 insertions(+), 323 deletions(-)

diff --git a/cmake/configs/nuttx_px4fmu-v1_default.cmake b/cmake/configs/nuttx_px4fmu-v1_default.cmake
index fbd216e678..f4480c789f 100644
--- a/cmake/configs/nuttx_px4fmu-v1_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v1_default.cmake
@@ -1,5 +1,7 @@
 include(nuttx/px4_impl_nuttx)
 
+px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common)
+
 set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
 
 set(config_module_list
diff --git a/nuttx-configs/px4fmu-v1/include/board.h b/nuttx-configs/px4fmu-v1/include/board.h
index 9e6d50a8b9..4b10deada9 100644
--- a/nuttx-configs/px4fmu-v1/include/board.h
+++ b/nuttx-configs/px4fmu-v1/include/board.h
@@ -1,5 +1,5 @@
 /************************************************************************************
- * configs/stm32f4discovery/include/board.h
+ * nuttx-configs/px4fmu-v1/include/board.h
  * include/arch/board/board.h
  *
  *   Copyright (C) 2012 Gregory Nutt. All rights reserved.
@@ -150,11 +150,23 @@
 
 /* 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
+ * Note: TIM1,8-11 are on APB2, others on APB1
  */
 
-#define STM32_TIM18_FREQUENCY   (2*STM32_PCLK2_FREQUENCY)
-#define STM32_TIM27_FREQUENCY   (2*STM32_PCLK1_FREQUENCY)
+#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
+#define BOARD_TIM9_FREQUENCY    STM32_APB2_TIM9_CLKIN
+#define BOARD_TIM10_FREQUENCY   STM32_APB2_TIM10_CLKIN
+#define BOARD_TIM11_FREQUENCY   STM32_APB2_TIM11_CLKIN
+#define BOARD_TIM12_FREQUENCY   STM32_APB1_TIM12_CLKIN
+#define BOARD_TIM13_FREQUENCY   STM32_APB1_TIM13_CLKIN
+#define BOARD_TIM14_FREQUENCY   STM32_APB1_TIM14_CLKIN
 
 /* LED definitions ******************************************************************/
 /* If CONFIG_ARCH_LEDS is not defined, then the user can control the LEDs in any
diff --git a/nuttx-configs/px4fmu-v1/nsh/Make.defs b/nuttx-configs/px4fmu-v1/nsh/Make.defs
index 6f21d09777..2f777425c3 100644
--- a/nuttx-configs/px4fmu-v1/nsh/Make.defs
+++ b/nuttx-configs/px4fmu-v1/nsh/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# configs/px4fmu-v1/nsh/Make.defs
+# nuttx-configs/px4fmu-v1/nsh/Make.defs
 #
 #   Copyright (C) 2011 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
@@ -35,14 +35,14 @@
 
 include ${TOPDIR}/.config
 include ${TOPDIR}/tools/Config.mk
-
 include $(TOPDIR)/PX4_Warnings.mk
+include $(TOPDIR)/PX4_Config.mk
 
 #
 # We only support building with the ARM bare-metal toolchain from
 # https://launchpad.net/gcc-arm-embedded on Windows, Linux or Mac OS.
 #
-CONFIG_ARMV7M_TOOLCHAIN	:= GNU_EABI
+CONFIG_ARMV7M_TOOLCHAIN	:= GNU_EABI${HOST_OS_FIRST_LETTER}
 
 include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
 
@@ -62,17 +62,18 @@ ARCHCPUFLAGS		 = -mcpu=cortex-m4 \
 			   -mfpu=fpv4-sp-d16 \
 			   -mfloat-abi=hard
 
+# Enable precise stack overflow tracking
 
-# enable precise stack overflow tracking
 ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
 INSTRUMENTATIONDEFINES	 = -finstrument-functions -ffixed-r10
 endif
 
-# pull in *just* libm from the toolchain ... this is grody
+# Pull in *just* libm from the toolchain ... this is grody
 LIBM			 = "${shell $(CC) $(ARCHCPUFLAGS) -print-file-name=libm.a}"
 EXTRA_LIBS		+= $(LIBM)
 
-# use our linker script
+# Use our linker script
+
 LDSCRIPT		 = ld.script
 
 ifeq ($(WINTOOL),y)
@@ -94,18 +95,20 @@ else
     ARCHSCRIPT		 = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)
   else
     # Linux/Cygwin-native toolchain
-    MKDEP		 = $(TOPDIR)/tools/mkdeps.sh
+    MKDEP		 = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT)
     ARCHINCLUDES	 = -I. -isystem $(TOPDIR)/include
     ARCHXXINCLUDES	 = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
     ARCHSCRIPT		 = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)
   endif
 endif
 
-# tool versions
+# Tool versions
+
 ARCHCCVERSION		 = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
 ARCHCCMAJOR		 = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
 
-# optimisation flags
+# Optimization flags
+
 ARCHOPTIMIZATION	 = $(MAXOPTIMIZATION) \
 			   -fno-strict-aliasing \
 			   -fno-strength-reduce \
@@ -127,7 +130,8 @@ ARCHWARNINGSXX		 = $(ARCHWARNINGS) $(PX4_ARCHWARNINGSXX)
 ARCHDEFINES		 =
 ARCHPICFLAGS		 = -fpic -msingle-pic-base -mpic-register=r10
 
-# this seems to be the only way to add linker flags
+# This seems to be the only way to add linker flags
+
 EXTRA_LIBS		+= --warn-common \
 			   --gc-sections
 
@@ -146,8 +150,8 @@ OBJEXT			 = .o
 LIBEXT			 = .a
 EXEEXT			 =
 
+# Produce partially-linked $1 from files in $2
 
-# produce partially-linked $1 from files in $2
 define PRELINK
 	@echo "PRELINK: $1"
 	$(Q) $(LD) -Ur -o $1 $2 && $(OBJCOPY) --localize-hidden $1
diff --git a/nuttx-configs/px4fmu-v1/nsh/defconfig b/nuttx-configs/px4fmu-v1/nsh/defconfig
index af88860c11..1d13986d48 100644
--- a/nuttx-configs/px4fmu-v1/nsh/defconfig
+++ b/nuttx-configs/px4fmu-v1/nsh/defconfig
@@ -2,13 +2,14 @@
 # Automatically generated file; DO NOT EDIT.
 # Nuttx/ Configuration
 #
-CONFIG_NUTTX_NEWCONFIG=y
+
 #
 # Build Setup
 #
 # CONFIG_EXPERIMENTAL is not set
-# CONFIG_HOST_LINUX is not set
-CONFIG_HOST_OSX=y
+# 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
 
@@ -16,6 +17,7 @@ CONFIG_HOST_OSX=y
 # Build Configuration
 #
 CONFIG_APPS_DIR="../apps"
+CONFIG_BUILD_FLAT=y
 # CONFIG_BUILD_2PASS is not set
 
 #
@@ -25,25 +27,36 @@ CONFIG_APPS_DIR="../apps"
 # 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
+# CONFIG_ARCH_DEBUG_H is not set
 
 #
 # Debug Options
 #
-# CONFIG_DEBUG is not set
+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 is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
 
 #
 # System Type
 #
-# CONFIG_ARCH_8051 is not set
 CONFIG_ARCH_ARM=y
 # CONFIG_ARCH_AVR is not set
 # CONFIG_ARCH_HC is not set
@@ -59,39 +72,81 @@ 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_IMX 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_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_STM32L4 is not set
 # CONFIG_ARCH_CHIP_STR71X is not set
+# CONFIG_ARCH_CHIP_TMS570 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_CORTEXA9 is not set
+# CONFIG_ARCH_CORTEXR4 is not set
+# CONFIG_ARCH_CORTEXR4F is not set
+# CONFIG_ARCH_CORTEXR5 is not set
+# CONFIG_ARCH_CORTEX5F 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_ARM_TOOLCHAIN_IAR is not set
+CONFIG_ARM_TOOLCHAIN_GNU=y
 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_MPU=y
-# CONFIG_ARMV7M_MPU 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_GNU_EABI=y
-CONFIG_ARMV7M_STACKCHECK=n
+# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
+# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
+CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y
+CONFIG_ARMV7M_HAVE_STACKCHECK=y
+# CONFIG_ARMV7M_STACKCHECK is not set
+# CONFIG_ARMV7M_ITMSYSLOG is not set
 CONFIG_SERIAL_TERMIOS=y
 
 #
@@ -115,6 +170,8 @@ CONFIG_SERIAL_TERMIOS=y
 # 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
@@ -127,27 +184,70 @@ CONFIG_SERIAL_TERMIOS=y
 # 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_STM32F103RET6 is not set
-# CONFIG_ARCH_CHIP_STM32F103VCT6 is not set
-# CONFIG_ARCH_CHIP_STM32F103VET6 is not set
-# CONFIG_ARCH_CHIP_STM32F103ZET6 is not set
-# CONFIG_ARCH_CHIP_STM32F105VBT7 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_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_STM32F411VE is not set
 CONFIG_ARCH_CHIP_STM32F405RG=y
 # CONFIG_ARCH_CHIP_STM32F405VG is not set
 # CONFIG_ARCH_CHIP_STM32F405ZG is not set
@@ -160,23 +260,111 @@ CONFIG_ARCH_CHIP_STM32F405RG=y
 # 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 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=y
+# CONFIG_STM32_FLASH_CONFIG_I 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_STM32F302 is not set
+# CONFIG_STM32_STM32F303 is not set
+# CONFIG_STM32_STM32F37XX is not set
 CONFIG_STM32_STM32F40XX=y
+# CONFIG_STM32_STM32F401 is not set
+# CONFIG_STM32_STM32F411 is not set
+CONFIG_STM32_STM32F405=y
+# 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=y
+# CONFIG_STM32_HAVE_USBDEV is not set
+CONFIG_STM32_HAVE_OTGFS=y
+CONFIG_STM32_HAVE_FSMC=y
+# 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 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=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_CAN1=y
+CONFIG_STM32_HAVE_CAN2=y
+CONFIG_STM32_HAVE_DAC1=y
+CONFIG_STM32_HAVE_DAC2=y
+CONFIG_STM32_HAVE_RNG=y
+# CONFIG_STM32_HAVE_ETHMAC is not set
+CONFIG_STM32_HAVE_I2C2=y
+CONFIG_STM32_HAVE_I2C3=y
+CONFIG_STM32_HAVE_SPI2=y
+CONFIG_STM32_HAVE_SPI3=y
+# 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_ADC1=y
 # CONFIG_STM32_ADC2 is not set
 # CONFIG_STM32_ADC3 is not set
@@ -191,7 +379,6 @@ 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
@@ -231,6 +418,7 @@ 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
@@ -245,6 +433,12 @@ CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y
 # CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set
 # CONFIG_STM32_CCMEXCLUDE is not set
 CONFIG_STM32_DMACAPABLE=y
+
+#
+# Timer Configuration
+#
+# CONFIG_STM32_ONESHOT is not set
+# CONFIG_STM32_FREERUN is not set
 # CONFIG_STM32_TIM4_PWM is not set
 # CONFIG_STM32_TIM5_PWM is not set
 # CONFIG_STM32_TIM9_PWM is not set
@@ -255,26 +449,56 @@ CONFIG_STM32_DMACAPABLE=y
 # CONFIG_STM32_TIM14_PWM is not set
 # CONFIG_STM32_TIM4_ADC is not set
 # CONFIG_STM32_TIM5_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_ADC1_DMA is not set
 CONFIG_STM32_USART=y
+CONFIG_STM32_SERIALDRIVER=y
 
 #
 # U[S]ART Configuration
 #
-# Hot fix for lost data
-CONFIG_STM32_RXDMA_BUFFER_SIZE_OVERRIDE=64
+
+#
+# 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 is not set
+CONFIG_STM32_USART2_SERIALDRIVER=y
+# CONFIG_STM32_USART2_1WIREDRIVER is not set
 # CONFIG_USART2_RS485 is not set
 CONFIG_USART2_RXDMA=y
-# CONFIG_USART3_RXDMA is not set
-# CONFIG_UART4_RXDMA is not set
+CONFIG_STM32_UART5_SERIALDRIVER=y
+# CONFIG_STM32_UART5_1WIREDRIVER is not set
 # CONFIG_UART5_RS485 is not set
 CONFIG_UART5_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_USART7_RXDMA is not set
-# CONFIG_USART8_RXDMA is not set
+
+#
+# Serial Driver Configuration
+#
 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
 
 #
@@ -286,21 +510,32 @@ CONFIG_STM32_USART_SINGLEWIRE=y
 #
 # 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_BBSRAM is not set
+CONFIG_STM32_BBSRAM_FILES=4
+# CONFIG_STM32_SAVE_CRASHDUMP is not set
+# CONFIG_STM32_HAVE_RTC_COUNTER is not set
+# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set
 
 #
-# USB Host Configuration
+# USB FS Host Configuration
 #
 
 #
-# USB Device Configuration
+# USB HS Host Configuration
 #
 
 #
-# External Memory Configuration
+# USB Host Debug Configuration
+#
+
+#
+# USB Device Configuration
 #
 
 #
@@ -309,12 +544,24 @@ CONFIG_STM32_I2CTIMEOMS=10
 # CONFIG_ARCH_NOINTC is not set
 # CONFIG_ARCH_VECNOTIRQ is not set
 CONFIG_ARCH_DMA=y
-# CONFIG_ARCH_IRQPRIO is not set
-# CONFIG_CUSTOM_STACK is not set
-# CONFIG_ADDRENV 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_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
@@ -324,11 +571,14 @@ CONFIG_ARCH_HAVE_RAMVECTORS=y
 #
 CONFIG_BOARD_LOOPSPERMSEC=16717
 # CONFIG_ARCH_CALIBRATION is not set
-CONFIG_DRAM_START=0x20000000
-CONFIG_DRAM_SIZE=196608
+
+#
+# Interrupt options
+#
 CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
-# The actual usage is 420 bytes
-CONFIG_ARCH_INTERRUPTSTACK=750
+CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
+# CONFIG_ARCH_HIPRI_INTERRUPT is not set
+CONFIG_ARCH_INTERRUPTSTACK=670
 
 #
 # Boot options
@@ -339,58 +589,123 @@ CONFIG_BOOT_RUNFROMFLASH=y
 # CONFIG_BOOT_RUNFROMSDRAM is not set
 # CONFIG_BOOT_COPYTORAM is not set
 
+#
+# Boot Memory Configuration
+#
+CONFIG_RAM_START=0x20000000
+CONFIG_RAM_SIZE=196608
+# CONFIG_ARCH_HAVE_SDRAM is not set
+
 #
 # Board Selection
 #
 CONFIG_ARCH_BOARD_PX4FMU_V1=y
-CONFIG_ARCH_BOARD_CUSTOM=y
-CONFIG_ARCH_BOARD=""
+CONFIG_ARCH_BOARD="px4fmu-v1"
+
+#
+# Custom Board Configuration
+#
+# CONFIG_BOARD_CUSTOM_LEDS is not set
+# CONFIG_BOARD_CUSTOM_BUTTONS is not set
 
 #
 # Common Board Options
 #
-CONFIG_NSH_MMCSDMINOR=0
-CONFIG_NSH_MMCSDSLOTNO=0
-CONFIG_NSH_MMCSDSPIPORTNO=3
 
 #
 # Board-Specific Options
 #
+# CONFIG_BOARD_CRASHDUMP is not set
+CONFIG_LIB_BOARDCTL=y
+# CONFIG_BOARDCTL_RESET is not set
+# CONFIG_BOARDCTL_UNIQUEID is not set
+CONFIG_BOARDCTL_USBDEVCTRL=y
+# 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
 
 #
 # RTOS Features
 #
-# CONFIG_BOARD_INITIALIZE is not set
-CONFIG_MSEC_PER_TICK=1
-CONFIG_RR_INTERVAL=0
-CONFIG_SCHED_INSTRUMENTATION=y
-CONFIG_TASK_NAME_SIZE=24
-# CONFIG_SCHED_HAVE_PARENT is not set
+CONFIG_DISABLE_OS_API=y
+# CONFIG_DISABLE_POSIX_TIMERS is not set
+# CONFIG_DISABLE_PTHREAD is not set
+# CONFIG_DISABLE_SIGNALS is not set
+# CONFIG_DISABLE_MQUEUE is not set
+# CONFIG_DISABLE_ENVIRON 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=1970
 CONFIG_START_MONTH=1
 CONFIG_START_DAY=1
-CONFIG_DEV_CONSOLE=y
+CONFIG_MAX_WDOGPARMS=2
+CONFIG_PREALLOC_WDOGS=50
+CONFIG_WDOG_INTRESERVE=4
+CONFIG_PREALLOC_TIMERS=50
+
+#
+# Tasks and Scheduling
+#
+# 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_MUTEX_TYPES is not set
-CONFIG_PRIORITY_INHERITANCE=y
-CONFIG_SEM_PREALLOCHOLDERS=0
-CONFIG_SEM_NNESTPRIO=8
+CONFIG_NPTHREAD_KEYS=4
+
+#
+# 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_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_SCHED_WAITPID=y
+CONFIG_NFILE_DESCRIPTORS=51
+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_USER_ENTRYPOINT="nsh_main"
-CONFIG_DISABLE_OS_API=y
-# CONFIG_DISABLE_CLOCK is not set
-# CONFIG_DISABLE_POSIX_TIMERS is not set
-# CONFIG_DISABLE_PTHREAD is not set
-# CONFIG_DISABLE_SIGNALS is not set
-# CONFIG_DISABLE_MQUEUE is not set
-# CONFIG_DISABLE_ENVIRON is not set
+# CONFIG_SIG_EVTHREAD is not set
 
 #
 # Signal Numbers
@@ -402,19 +717,26 @@ CONFIG_SIG_SIGCONDTIMEDOUT=16
 CONFIG_SIG_SIGWORK=4
 
 #
-# Sizes of configurable things (0 disables)
+# POSIX Message Queue Options
 #
-CONFIG_MAX_TASKS=32
-CONFIG_MAX_TASK_ARGS=10
-CONFIG_NPTHREAD_KEYS=4
-CONFIG_NFILE_DESCRIPTORS=51
-CONFIG_NFILE_STREAMS=8
-CONFIG_NAME_MAX=32
 CONFIG_PREALLOC_MQ_MSGS=4
 CONFIG_MQ_MAXMSGSIZE=32
-CONFIG_MAX_WDOGPARMS=2
-CONFIG_PREALLOC_WDOGS=50
-CONFIG_PREALLOC_TIMERS=50
+# CONFIG_MODULE is not set
+
+#
+# Work queue support
+#
+CONFIG_SCHED_WORKQUEUE=y
+CONFIG_SCHED_HPWORK=y
+CONFIG_SCHED_HPWORKPRIORITY=192
+CONFIG_SCHED_HPWORKPERIOD=5000
+CONFIG_SCHED_HPWORKSTACKSIZE=1600
+CONFIG_SCHED_LPWORK=y
+CONFIG_SCHED_LPNTHREADS=1
+CONFIG_SCHED_LPWORKPRIORITY=50
+CONFIG_SCHED_LPWORKPRIOMAX=176
+CONFIG_SCHED_LPWORKPERIOD=50000
+CONFIG_SCHED_LPWORKSTACKSIZE=1600
 
 #
 # Stack and heap information
@@ -423,6 +745,7 @@ CONFIG_IDLETHREAD_STACKSIZE=600
 CONFIG_USERMAIN_STACKSIZE=1800
 CONFIG_PTHREAD_STACK_MIN=512
 CONFIG_PTHREAD_STACK_DEFAULT=2048
+# CONFIG_LIB_SYSCALL is not set
 
 #
 # Device Drivers
@@ -430,29 +753,70 @@ CONFIG_PTHREAD_STACK_DEFAULT=2048
 # CONFIG_DISABLE_POLL is not set
 CONFIG_DEV_NULL=y
 # CONFIG_DEV_ZERO is not set
-# CONFIG_LOOP 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_TRANSFER=y
-# CONFIG_I2C_WRITEREAD is not set
 # CONFIG_I2C_POLLED is not set
-# CONFIG_I2C_TRACE is not set
-CONFIG_ARCH_HAVE_I2CRESET=y
 CONFIG_I2C_RESET=y
+# CONFIG_I2C_TRACE is not set
+# CONFIG_I2C_DRIVER is not set
 CONFIG_SPI=y
-# CONFIG_SPI_OWNBUS is not set
+# CONFIG_SPI_SLAVE is not set
 CONFIG_SPI_EXCHANGE=y
 # CONFIG_SPI_CMDDATA is not set
+# CONFIG_SPI_CALLBACK is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_HWFEATURES is not set
+# CONFIG_SPI_CRCGENERATION is not set
+# CONFIG_SPI_CS_CONTROL is not set
+# CONFIG_SPI_CS_DELAY_CONTROL is not set
+# CONFIG_I2S is not set
+
+#
+# Timer Driver Support
+#
+# CONFIG_TIMER is not set
 # CONFIG_RTC is not set
 CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0"
+# CONFIG_TIMERS_CS2100CP 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=y
 CONFIG_MMCSD_NSLOTS=1
 # CONFIG_MMCSD_READONLY is not set
@@ -461,47 +825,95 @@ CONFIG_MMCSD_NSLOTS=1
 # CONFIG_MMCSD_HAVECARDDETECT is not set
 CONFIG_MMCSD_SPI=y
 CONFIG_MMCSD_SPICLOCK=24000000
-# CONFIG_MMCSD_SDIO is not set
+CONFIG_MMCSD_SPIMODE=0
+# CONFIG_ARCH_HAVE_SDIO is not set
+# CONFIG_ARCH_HAVE_SDIOWAIT_WRCOMPLETE is not set
+# CONFIG_MODEM is not set
 CONFIG_MTD=y
-CONFIG_PIPES=y
-# CONFIG_PM 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_16550_UART is not set
-CONFIG_ARCH_HAVE_UART5=y
-CONFIG_ARCH_HAVE_USART1=y
-CONFIG_ARCH_HAVE_USART2=y
-CONFIG_ARCH_HAVE_USART6=y
-CONFIG_MCU_SERIAL=y
-CONFIG_STANDARD_SERIAL=y
-CONFIG_SERIAL_NPOLLWAITERS=2
-CONFIG_USART1_SERIAL_CONSOLE=y
-# CONFIG_USART2_SERIAL_CONSOLE is not set
-# CONFIG_UART5_SERIAL_CONSOLE is not set
-# CONFIG_USART6_SERIAL_CONSOLE is not set
-# CONFIG_NO_SERIAL_CONSOLE is not set
 
 #
 # 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_S25FL1 is not set
+# CONFIG_MTD_N25QXXX is not set
 # CONFIG_MTD_SMART is not set
 # CONFIG_MTD_RAMTRON 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=y
+# CONFIG_SPI_EE_25XX is not set
+CONFIG_PIPES=y
+CONFIG_DEV_PIPE_MAXSIZE=1024
+CONFIG_DEV_PIPE_SIZE=1024
+CONFIG_DEV_FIFO_SIZE=0
+# 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_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 is not set
+CONFIG_UART5_SERIALDRIVER=y
+# 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=y
+CONFIG_USART2_SERIALDRIVER=y
+# CONFIG_USART3_SERIALDRIVER is not set
+# 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=y
+# CONFIG_USART2_SERIAL_CONSOLE is not set
+# CONFIG_UART5_SERIAL_CONSOLE is not set
+# CONFIG_USART6_SERIAL_CONSOLE is not set
+# CONFIG_OTHER_SERIAL_CONSOLE is not set
+# CONFIG_NO_SERIAL_CONSOLE is not set
 
 #
 # USART1 Configuration
@@ -514,6 +926,7 @@ 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
@@ -526,6 +939,7 @@ CONFIG_USART2_PARITY=0
 CONFIG_USART2_2STOP=0
 CONFIG_USART2_IFLOWCONTROL=y
 CONFIG_USART2_OFLOWCONTROL=y
+# CONFIG_USART2_DMA is not set
 
 #
 # UART5 Configuration
@@ -538,6 +952,7 @@ CONFIG_UART5_PARITY=0
 CONFIG_UART5_2STOP=0
 # CONFIG_UART5_IFLOWCONTROL is not set
 # CONFIG_UART5_OFLOWCONTROL is not set
+# CONFIG_UART5_DMA is not set
 
 #
 # USART6 Configuration
@@ -550,8 +965,8 @@ CONFIG_USART6_PARITY=0
 CONFIG_USART6_2STOP=0
 # CONFIG_USART6_IFLOWCONTROL is not set
 # CONFIG_USART6_OFLOWCONTROL is not set
-CONFIG_SERIAL_IFLOWCONTROL=y
-CONFIG_SERIAL_OFLOWCONTROL=y
+# CONFIG_USART6_DMA is not set
+# CONFIG_PSEUDOTERM is not set
 CONFIG_USBDEV=y
 
 #
@@ -562,8 +977,8 @@ CONFIG_USBDEV=y
 # CONFIG_USBDEV_SELFPOWERED is not set
 CONFIG_USBDEV_BUSPOWERED=y
 CONFIG_USBDEV_MAXPOWER=500
-# CONFIG_USBDEV_REMOTEWAKEUP is not set
 # CONFIG_USBDEV_DMA is not set
+# CONFIG_ARCH_USBDEV_STALLQUEUE is not set
 # CONFIG_USBDEV_TRACE is not set
 
 #
@@ -572,7 +987,7 @@ CONFIG_USBDEV_MAXPOWER=500
 # CONFIG_USBDEV_COMPOSITE is not set
 # CONFIG_PL2303 is not set
 CONFIG_CDCACM=y
-CONFIG_CDCACM_CONSOLE=n
+# CONFIG_CDCACM_CONSOLE is not set
 CONFIG_CDCACM_EP0MAXPACKET=64
 CONFIG_CDCACM_EPINTIN=1
 CONFIG_CDCACM_EPINTIN_FSSIZE=64
@@ -583,8 +998,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512
 CONFIG_CDCACM_EPBULKIN=2
 CONFIG_CDCACM_EPBULKIN_FSSIZE=64
 CONFIG_CDCACM_EPBULKIN_HSSIZE=512
-CONFIG_CDCACM_NWRREQS=4
 CONFIG_CDCACM_NRDREQS=4
+CONFIG_CDCACM_NWRREQS=4
 CONFIG_CDCACM_BULKIN_REQLEN=96
 CONFIG_CDCACM_RXBUFSIZE=300
 CONFIG_CDCACM_TXBUFSIZE=1000
@@ -594,22 +1009,38 @@ CONFIG_CDCACM_VENDORSTR="3D Robotics"
 CONFIG_CDCACM_PRODUCTSTR="PX4 FMU v1.x"
 # CONFIG_USBMSC is not set
 # CONFIG_USBHOST is not set
-# CONFIG_WIRELESS is not set
-
-#
-# System Logging Device Options
-#
+# CONFIG_HAVE_USBTRACE is not set
+# CONFIG_DRIVERS_WIRELESS is not set
 
 #
 # System Logging
 #
+# CONFIG_ARCH_SYSLOG 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=y
+# CONFIG_SYSLOG_CONSOLE is not set
+# CONFIG_SYSLOG_NONE is not set
+# CONFIG_SYSLOG_FILE is not set
+# CONFIG_CONSOLE_SYSLOG is not set
+CONFIG_SYSLOG_CHAR_CRLF=y
+CONFIG_SYSLOG_DEVPATH="/dev/ttyS0"
+# 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
 #
@@ -618,25 +1049,39 @@ CONFIG_CDCACM_PRODUCTSTR="PX4 FMU v1.x"
 # 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=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 is not set
+# CONFIG_FAT_DIRECT_RETRY is not set
 # 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 is not set
 
 #
-# System Logging
+# Exclude individual procfs entries
 #
-# CONFIG_SYSLOG_ENABLE is not set
-CONFIG_SYSLOG=y
-CONFIG_SYSLOG_CHAR=y
-CONFIG_SYSLOG_DEVPATH="/dev/ttyS0"
+# 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
@@ -646,9 +1091,9 @@ CONFIG_SYSLOG_DEVPATH="/dev/ttyS0"
 #
 # Memory Management
 #
-# CONFIG_MM_MULTIHEAP is not set
 # CONFIG_MM_SMALL is not set
 CONFIG_MM_REGIONS=2
+# CONFIG_ARCH_HAVE_HEAP2 is not set
 CONFIG_GRAN=y
 CONFIG_GRAN_SINGLE=y
 CONFIG_GRAN_INTR=y
@@ -659,7 +1104,11 @@ CONFIG_GRAN_INTR=y
 # CONFIG_AUDIO is not set
 
 #
-# Binary Formats
+# Wireless Support
+#
+
+#
+# Binary Loader
 #
 # CONFIG_BINFMT_DISABLE is not set
 # CONFIG_BINFMT_EXEPATH is not set
@@ -682,6 +1131,8 @@ CONFIG_NUNGET_CHARS=2
 CONFIG_LIB_HOMEDIR="/"
 # CONFIG_NOPRINTF_FIELDWIDTH is not set
 CONFIG_LIBC_FLOATINGPOINT=y
+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
@@ -693,7 +1144,11 @@ CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048
 CONFIG_LIBC_STRERROR=y
 # CONFIG_LIBC_STRERROR_SHORT is not set
 # CONFIG_LIBC_PERROR_STDOUT is not set
+CONFIG_LIBC_TMPDIR="/tmp"
+CONFIG_LIBC_MAX_TMPFILE=32
 CONFIG_ARCH_LOWPUTC=y
+# CONFIG_LIBC_LOCALTIME is not set
+CONFIG_TIME_EXTENDED=y
 CONFIG_LIB_SENDFILE_BUFSIZE=512
 # CONFIG_ARCH_ROMGETC is not set
 CONFIG_ARCH_OPTIMIZED_FUNCTIONS=y
@@ -709,21 +1164,18 @@ CONFIG_ARCH_MEMCPY=y
 # CONFIG_ARCH_STRLEN is not set
 # CONFIG_ARCH_STRNLEN is not set
 # CONFIG_ARCH_BZERO is not set
+CONFIG_ARCH_HAVE_TLS=y
+# CONFIG_TLS is not set
+# CONFIG_LIBC_NETDB is not set
+# CONFIG_NETDB_HOSTFILE is not set
 
 #
 # Non-standard Library Support
 #
-CONFIG_SCHED_WORKQUEUE=y
-CONFIG_SCHED_HPWORK=y
-CONFIG_SCHED_WORKPRIORITY=192
-CONFIG_SCHED_WORKPERIOD=5000
-CONFIG_SCHED_WORKSTACKSIZE=1400
-CONFIG_SCHED_LPWORK=y
-CONFIG_SCHED_LPWORKPRIORITY=50
-CONFIG_SCHED_LPWORKPERIOD=50000
-CONFIG_SCHED_LPWORKSTACKSIZE=1200
+# 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
@@ -747,113 +1199,152 @@ CONFIG_HAVE_CXXINITIALIZE=y
 #
 CONFIG_BUILTIN_PROXY_STACKSIZE=1024
 
+#
+# CAN Utilities
+#
+# CONFIG_CANUTILS_LIBUAVCAN is not set
+
 #
 # Examples
 #
-# CONFIG_EXAMPLES_BUTTONS is not set
-# CONFIG_EXAMPLES_CAN is not set
-CONFIG_EXAMPLES_CDCACM=y
-# CONFIG_EXAMPLES_COMPOSITE 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_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_JSON is not set
 # CONFIG_EXAMPLES_HIDKBD is not set
-# CONFIG_EXAMPLES_KEYPADTEST is not set
 # CONFIG_EXAMPLES_IGMP is not set
-# CONFIG_EXAMPLES_LCDRW is not set
+# CONFIG_EXAMPLES_JSON is not set
+# CONFIG_EXAMPLES_KEYPADTEST is not set
+# CONFIG_EXAMPLES_MEDIA is not set
 # CONFIG_EXAMPLES_MM is not set
 # CONFIG_EXAMPLES_MODBUS is not set
 CONFIG_EXAMPLES_MOUNT=y
+# CONFIG_EXAMPLES_MOUNT_BLOCKDEVICE is not set
+CONFIG_EXAMPLES_MOUNT_NSECTORS=2048
+CONFIG_EXAMPLES_MOUNT_SECTORSIZE=512
+CONFIG_EXAMPLES_MOUNT_RAMDEVNO=0
+# CONFIG_EXAMPLES_MTDPART is not set
 # CONFIG_EXAMPLES_NRF24L01TERM is not set
 CONFIG_EXAMPLES_NSH=y
+# CONFIG_EXAMPLES_NSH_CXXINITIALIZE is not set
 # CONFIG_EXAMPLES_NULL is not set
-# CONFIG_EXAMPLES_NX is not set
-# CONFIG_EXAMPLES_NXCONSOLE is not set
 # CONFIG_EXAMPLES_NXFFS is not set
-# CONFIG_EXAMPLES_NXFLAT 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_PASHELLO is not set
+# CONFIG_EXAMPLES_PCA9635 is not set
 # CONFIG_EXAMPLES_PIPE is not set
 # CONFIG_EXAMPLES_POSIXSPAWN is not set
-# CONFIG_EXAMPLES_QENCODER is not set
+# CONFIG_EXAMPLES_PPPD is not set
+# CONFIG_EXAMPLES_RGBLED is not set
 # CONFIG_EXAMPLES_RGMP 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_TEST is not set
 # CONFIG_EXAMPLES_SMART is not set
+# CONFIG_EXAMPLES_SMART_TEST is not set
+# CONFIG_EXAMPLES_SMP is not set
 # CONFIG_EXAMPLES_TCPECHO is not set
 # CONFIG_EXAMPLES_TELNETD is not set
 # CONFIG_EXAMPLES_THTTPD is not set
 # CONFIG_EXAMPLES_TIFF is not set
 # CONFIG_EXAMPLES_TOUCHSCREEN is not set
-# CONFIG_EXAMPLES_UDP is not set
-# CONFIG_EXAMPLES_UIP is not set
+# CONFIG_EXAMPLES_UNIONFS is not set
 # CONFIG_EXAMPLES_USBSERIAL is not set
-# CONFIG_EXAMPLES_USBMSC is not set
 # CONFIG_EXAMPLES_USBTERM is not set
 # CONFIG_EXAMPLES_WATCHDOG is not set
+# CONFIG_EXAMPLES_WEBSERVER 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_PCODE is not set
 
 #
-# Network Utilities
+# FreeModBus
 #
+# CONFIG_MODBUS is not set
 
 #
-# Networking Utilities
+# Network Utilities
 #
+# CONFIG_NETUTILS_CHAT is not set
 # CONFIG_NETUTILS_CODECS is not set
-# CONFIG_NETUTILS_DHCPC is not set
-# CONFIG_NETUTILS_DHCPD is not set
+# CONFIG_NETUTILS_ESP8266 is not set
 # CONFIG_NETUTILS_FTPC is not set
-# CONFIG_NETUTILS_FTPD is not set
 # CONFIG_NETUTILS_JSON is not set
-# CONFIG_NETUTILS_RESOLV is not set
 # CONFIG_NETUTILS_SMTP is not set
-# CONFIG_NETUTILS_TELNETD is not set
-# CONFIG_NETUTILS_TFTPC is not set
 # CONFIG_NETUTILS_THTTPD is not set
-# CONFIG_NETUTILS_UIPLIB is not set
-# CONFIG_NETUTILS_WEBCLIENT is not set
 
 #
-# FreeModBus
+# NSH Library
 #
-# CONFIG_MODBUS is not set
+CONFIG_NSH_LIBRARY=y
+# CONFIG_NSH_MOTD is not set
 
 #
-# NSH Library
+# Command Line Configuration
 #
-CONFIG_NSH_LIBRARY=y
+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_ADDROUTE=y
+# CONFIG_NSH_DISABLE_BASENAME is not set
 # 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 is not set
+# CONFIG_NSH_DISABLE_DATE is not set
 # CONFIG_NSH_DISABLE_DD is not set
+# CONFIG_NSH_DISABLE_DF is not set
+CONFIG_NSH_DISABLE_DELROUTE=y
+# CONFIG_NSH_DISABLE_DIRNAME is not set
 # CONFIG_NSH_DISABLE_ECHO is not set
 # CONFIG_NSH_DISABLE_EXEC is not set
 # CONFIG_NSH_DISABLE_EXIT is not set
@@ -861,9 +1352,11 @@ CONFIG_NSH_BUILTIN_APPS=y
 # CONFIG_NSH_DISABLE_GET is not set
 # CONFIG_NSH_DISABLE_HELP is not set
 # CONFIG_NSH_DISABLE_HEXDUMP is not set
-# CONFIG_NSH_DISABLE_IFCONFIG is not set
+CONFIG_NSH_DISABLE_IFCONFIG=y
+CONFIG_NSH_DISABLE_IFUPDOWN=y
 # CONFIG_NSH_DISABLE_KILL is not set
 # CONFIG_NSH_DISABLE_LOSETUP is not set
+CONFIG_NSH_DISABLE_LOSMART=y
 # CONFIG_NSH_DISABLE_LS is not set
 # CONFIG_NSH_DISABLE_MB is not set
 # CONFIG_NSH_DISABLE_MKDIR is not set
@@ -872,10 +1365,10 @@ CONFIG_NSH_BUILTIN_APPS=y
 # CONFIG_NSH_DISABLE_MKRD is not set
 # CONFIG_NSH_DISABLE_MH is not set
 # CONFIG_NSH_DISABLE_MOUNT is not set
+# CONFIG_NSH_DISABLE_MV is not set
 # CONFIG_NSH_DISABLE_MW is not set
-# CONFIG_NSH_DISABLE_NSFMOUNT is not set
 # CONFIG_NSH_DISABLE_PS is not set
-# CONFIG_NSH_DISABLE_PING is not set
+# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set
 # CONFIG_NSH_DISABLE_PUT is not set
 # CONFIG_NSH_DISABLE_PWD is not set
 # CONFIG_NSH_DISABLE_RM is not set
@@ -883,99 +1376,92 @@ CONFIG_NSH_BUILTIN_APPS=y
 # CONFIG_NSH_DISABLE_SET is not set
 # CONFIG_NSH_DISABLE_SH is not set
 # CONFIG_NSH_DISABLE_SLEEP is not set
+# CONFIG_NSH_DISABLE_TIME is not set
 # CONFIG_NSH_DISABLE_TEST is not set
 # CONFIG_NSH_DISABLE_UMOUNT is not set
+# CONFIG_NSH_DISABLE_UNAME is not set
 # CONFIG_NSH_DISABLE_UNSET is not set
 # CONFIG_NSH_DISABLE_USLEEP is not set
-# CONFIG_NSH_DISABLE_WGET is not set
+CONFIG_NSH_DISABLE_WGET=y
 # CONFIG_NSH_DISABLE_XD is not set
+CONFIG_NSH_MMCSDMINOR=0
+CONFIG_NSH_MMCSDSLOTNO=0
+CONFIG_NSH_MMCSDSPIPORTNO=3
 
 #
 # Configure Command Options
 #
 # CONFIG_NSH_CMDOPT_DF_H is not set
 CONFIG_NSH_CODECS_BUFSIZE=128
+CONFIG_NSH_CMDOPT_HEXDUMP=y
+CONFIG_NSH_PROC_MOUNTPOINT="/proc"
 CONFIG_NSH_FILEIOSIZE=512
 CONFIG_NSH_STRERROR=y
-CONFIG_NSH_LINELEN=128
-CONFIG_NSH_MAXARGUMENTS=12
-CONFIG_NSH_NESTDEPTH=8
+
+#
+# Scripting Support
+#
 # CONFIG_NSH_DISABLESCRIPT is not set
-# CONFIG_NSH_DISABLEBG 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"
-CONFIG_NSH_CONSOLE=y
-# CONFIG_NSH_USBCONSOLE is not set
 
 #
-# USB Trace Support
+# Console Configuration
 #
-# CONFIG_NSH_CONDEV is not set
+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
 #
 
 #
-# System NSH Add-Ons
+# Platform-specific Support
 #
+# CONFIG_PLATFORM_CONFIGDATA is not set
 
 #
-# Custom Free Memory Command
+# System Libraries and NSH Add-Ons
 #
+CONFIG_SYSTEM_CDCACM=y
+CONFIG_SYSTEM_CDCACM_DEVMINOR=0
+# CONFIG_SYSTEM_CLE is not set
+CONFIG_SYSTEM_CUTERM=y
+CONFIG_SYSTEM_CUTERM_DEFAULT_DEVICE="/dev/ttyS0"
+CONFIG_SYSTEM_CUTERM_DEFAULT_BAUD=57600
+CONFIG_SYSTEM_CUTERM_STACKSIZE=2048
+CONFIG_SYSTEM_CUTERM_PRIORITY=100
+# CONFIG_SYSTEM_FLASH_ERASEALL is not set
 # CONFIG_SYSTEM_FREE is not set
-
-#
-# I2C tool
-#
+# CONFIG_SYSTEM_HEX2BIN is not set
+# CONFIG_SYSTEM_HEXED is not set
 # CONFIG_SYSTEM_I2CTOOL is not set
-
-#
-# FLASH Program Installation
-#
 # CONFIG_SYSTEM_INSTALL is not set
-
-#
-# FLASH Erase-all Command
-#
-
-#
-# readline()
-#
+# CONFIG_SYSTEM_RAMTEST is not set
+CONFIG_READLINE_HAVE_EXTMATCH=y
 CONFIG_SYSTEM_READLINE=y
 CONFIG_READLINE_ECHO=y
-
-#
-# Power Off
-#
-# CONFIG_SYSTEM_POWEROFF is not set
-
-#
-# RAMTRON
-#
-# CONFIG_SYSTEM_RAMTRON is not set
-
-#
-# SD Card
-#
-# CONFIG_SYSTEM_SDCARD is not set
-
-#
-# Sysinfo
-#
-CONFIG_SYSTEM_SYSINFO=y
-
-#
-# USB Monitor
-#
-CONFIG_NSOCKET_DESCRIPTORS=0
+# 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_UBLOXMODEM is not set
+# CONFIG_SYSTEM_VI is not set
+# CONFIG_SYSTEM_ZMODEM is not set
diff --git a/nuttx-configs/px4fmu-v1/nsh/setenv.sh b/nuttx-configs/px4fmu-v1/nsh/setenv.sh
index db372217cd..80a6ffe067 100755
--- a/nuttx-configs/px4fmu-v1/nsh/setenv.sh
+++ b/nuttx-configs/px4fmu-v1/nsh/setenv.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-# configs/px4fmu-v1/usbnsh/setenv.sh
+# nuttx-configs/px4fmu-v1/nsh/setenv.sh
 #
 #   Copyright (C) 2013 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
diff --git a/nuttx-configs/px4fmu-v1/scripts/ld.script b/nuttx-configs/px4fmu-v1/scripts/ld.script
index ced5b21b7c..f7eaeed90a 100644
--- a/nuttx-configs/px4fmu-v1/scripts/ld.script
+++ b/nuttx-configs/px4fmu-v1/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * configs/px4fmu-v1/scripts/ld.script
+ * nuttx-configs/px4fmu-v1/scripts/ld.script
  *
  *   Copyright (C) 2011 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
diff --git a/nuttx-configs/px4fmu-v1/src/Makefile b/nuttx-configs/px4fmu-v1/src/Makefile
index 6ef8b7d6af..367746479e 100644
--- a/nuttx-configs/px4fmu-v1/src/Makefile
+++ b/nuttx-configs/px4fmu-v1/src/Makefile
@@ -1,5 +1,4 @@
 ############################################################################
-# configs/px4fmu-v1/src/Makefile
 #
 #   Copyright (C) 2013 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gnutt@nuttx.org>
@@ -80,5 +79,9 @@ distclean: clean
 	$(call DELFILE, Make.dep)
 	$(call DELFILE, .depend)
 
+ifneq ($(BOARD_CONTEXT),y)
+context:
+endif
+
 -include Make.dep
 
diff --git a/src/drivers/boards/px4fmu-v1/board_config.h b/src/drivers/boards/px4fmu-v1/board_config.h
index 3fa0058444..2fb09e8c84 100644
--- a/src/drivers/boards/px4fmu-v1/board_config.h
+++ b/src/drivers/boards/px4fmu-v1/board_config.h
@@ -46,9 +46,7 @@
 #include <px4_config.h>
 #include <nuttx/compiler.h>
 #include <stdint.h>
-
-#include <stm32.h>
-#include <arch/board/board.h>
+#include <nuttx/board.h>
 
 /****************************************************************************************************
  * Definitions
@@ -57,7 +55,6 @@
 
 /* PX4IO connection configuration */
 #define PX4IO_SERIAL_DEVICE	"/dev/ttyS2"
-#define UDID_START		0x1FFF7A10
 
 //#ifdef CONFIG_STM32_SPI2
 //#  error "SPI2 is not supported on this board"
@@ -252,25 +249,6 @@ extern void stm32_usbinitialize(void);
 
 #define board_peripheral_reset(ms)
 
-/****************************************************************************
- * Name: nsh_archinitialize
- *
- * Description:
- *   Perform architecture specific initialization for NSH.
- *
- *   CONFIG_NSH_ARCHINIT=y :
- *     Called from the NSH library
- *
- *   CONFIG_BOARD_INITIALIZE=y, CONFIG_NSH_LIBRARY=y, &&
- *   CONFIG_NSH_ARCHINIT=n :
- *     Called from board_initialize().
- *
- ****************************************************************************/
-
-#ifdef CONFIG_NSH_LIBRARY
-int nsh_archinitialize(void);
-#endif
-
 #include "../common/board_common.h"
 
 #endif /* __ASSEMBLY__ */
diff --git a/src/drivers/boards/px4fmu-v1/px4fmu_can.c b/src/drivers/boards/px4fmu-v1/px4fmu_can.c
index 104d6ff237..b811544fea 100644
--- a/src/drivers/boards/px4fmu-v1/px4fmu_can.c
+++ b/src/drivers/boards/px4fmu-v1/px4fmu_can.c
@@ -46,7 +46,7 @@
 #include <errno.h>
 #include <debug.h>
 
-#include <nuttx/can.h>
+#include <nuttx/drivers/can.h>
 #include <arch/board/board.h>
 
 #include "chip.h"
@@ -74,21 +74,6 @@
 #  define CAN_PORT 2
 #endif
 
-/* Debug ***************************************************************************/
-/* Non-standard debug that may be enabled just for testing CAN */
-
-#ifdef CONFIG_DEBUG_CAN
-#  define candbg    dbg
-#  define canvdbg   vdbg
-#  define canlldbg  lldbg
-#  define canllvdbg llvdbg
-#else
-#  define candbg(x...)
-#  define canvdbg(x...)
-#  define canlldbg(x...)
-#  define canllvdbg(x...)
-#endif
-
 /************************************************************************************
  * Private Functions
  ************************************************************************************/
@@ -120,7 +105,7 @@ int can_devinit(void)
 		can = stm32_caninitialize(CAN_PORT);
 
 		if (can == NULL) {
-			candbg("ERROR:  Failed to get CAN interface\n");
+			canerr("ERROR:  Failed to get CAN interface\n");
 			return -ENODEV;
 		}
 
@@ -129,7 +114,7 @@ int can_devinit(void)
 		ret = can_register("/dev/can0", can);
 
 		if (ret < 0) {
-			candbg("ERROR: can_register failed: %d\n", ret);
+			canerr("ERROR: can_register failed: %d\n", ret);
 			return ret;
 		}
 
diff --git a/src/drivers/boards/px4fmu-v1/px4fmu_init.c b/src/drivers/boards/px4fmu-v1/px4fmu_init.c
index d807f6726f..e1c2914744 100644
--- a/src/drivers/boards/px4fmu-v1/px4fmu_init.c
+++ b/src/drivers/boards/px4fmu-v1/px4fmu_init.c
@@ -1,6 +1,6 @@
 /****************************************************************************
  *
- *   Copyright (c) 2012, 2013 PX4 Development Team. All rights reserved.
+ *   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
@@ -35,10 +35,10 @@
  * @file px4fmu_init.c
  *
  * PX4FMU-specific early startup code.  This file implements the
- * nsh_archinitialize() function that is called early by nsh during startup.
+ * 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 initialisation.
+ * subsystems and perform board-specific initialization.
  */
 
 /****************************************************************************
@@ -53,8 +53,9 @@
 #include <errno.h>
 
 #include <nuttx/arch.h>
-#include <nuttx/spi.h>
-#include <nuttx/i2c.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>
 
@@ -79,13 +80,13 @@
 
 #ifdef CONFIG_CPP_HAVE_VARARGS
 #  ifdef CONFIG_DEBUG
-#    define message(...) lowsyslog(__VA_ARGS__)
+#    define message(...) syslog(__VA_ARGS__)
 #  else
 #    define message(...) printf(__VA_ARGS__)
 #  endif
 #else
 #  ifdef CONFIG_DEBUG
-#    define message lowsyslog
+#    define message syslog
 #  else
 #    define message printf
 #  endif
@@ -124,18 +125,39 @@ __END_DECLS
 
 __EXPORT void stm32_boardinitialize(void)
 {
+	/* configure always-on ADC pins */
+	stm32_configgpio(GPIO_ADC1_IN10);
+	stm32_configgpio(GPIO_ADC1_IN11);
+
 	/* configure SPI interfaces */
 	stm32_spiinitialize();
 
-	/* configure LEDs (empty call to NuttX' ledinit) */
-	up_ledinit();
+	/* configure LEDs (empty call to NuttX' ) */
+	board_autoled_initialize();
 }
 
 /****************************************************************************
- * Name: nsh_archinitialize
+ * Name: board_app_initialize
  *
  * Description:
- *   Perform architecture specific initialization
+ *   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.
  *
  ****************************************************************************/
 
@@ -143,17 +165,27 @@ static struct spi_dev_s *spi1;
 static struct spi_dev_s *spi2;
 static struct spi_dev_s *spi3;
 
-#include <math.h>
-
-__EXPORT int nsh_archinitialize(void)
+__EXPORT int board_app_initialize(uintptr_t arg)
 {
+
 	int result;
 
-	/* configure always-on ADC pins */
-	px4_arch_configgpio(GPIO_ADC1_IN10);
-	px4_arch_configgpio(GPIO_ADC1_IN11);
 	/* IN12 and IN13 further below */
 
+#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();
 
@@ -187,11 +219,11 @@ __EXPORT int nsh_archinitialize(void)
 
 	/* Configure SPI-based devices */
 
-	spi1 = px4_spibus_initialize(1);
+	spi1 = stm32_spibus_initialize(1);
 
 	if (!spi1) {
 		message("[boot] FAILED to initialize SPI port 1\r\n");
-		up_ledon(LED_AMBER);
+		board_autoled_on(LED_AMBER);
 		return -ENODEV;
 	}
 
@@ -210,7 +242,7 @@ __EXPORT int nsh_archinitialize(void)
 	 */
 
 #ifdef CONFIG_STM32_SPI2
-	spi2 = px4_spibus_initialize(2);
+	spi2 = stm32_spibus_initialize(2);
 	/* Default SPI2 to 1MHz and de-assert the known chip selects. */
 	SPI_SETFREQUENCY(spi2, 10000000);
 	SPI_SETBITS(spi2, 8);
@@ -223,17 +255,17 @@ __EXPORT int nsh_archinitialize(void)
 	spi2 = NULL;
 	message("[boot] Enabling IN12/13 instead of SPI2\n");
 	/* no SPI2, use pins for ADC */
-	px4_arch_configgpio(GPIO_ADC1_IN12);
-	px4_arch_configgpio(GPIO_ADC1_IN13);	// jumperable to MPU6000 DRDY on some boards
+	stm32_configgpio(GPIO_ADC1_IN12);
+	stm32_configgpio(GPIO_ADC1_IN13);	// jumperable to MPU6000 DRDY on some boards
 #endif
 
 	/* Get the SPI port for the microSD slot */
 
-	spi3 = px4_spibus_initialize(3);
+	spi3 = stm32_spibus_initialize(3);
 
 	if (!spi3) {
 		message("[boot] FAILED to initialize SPI port 3\n");
-		up_ledon(LED_AMBER);
+		board_autoled_on(LED_AMBER);
 		return -ENODEV;
 	}
 
@@ -242,7 +274,7 @@ __EXPORT int nsh_archinitialize(void)
 
 	if (result != OK) {
 		message("[boot] FAILED to bind SPI port 3 to the MMCSD driver\n");
-		up_ledon(LED_AMBER);
+		board_autoled_on(LED_AMBER);
 		return -ENODEV;
 	}
 
diff --git a/src/drivers/boards/px4fmu-v1/px4fmu_led.c b/src/drivers/boards/px4fmu-v1/px4fmu_led.c
index 5678056d51..8a92cc6e3f 100644
--- a/src/drivers/boards/px4fmu-v1/px4fmu_led.c
+++ b/src/drivers/boards/px4fmu-v1/px4fmu_led.c
@@ -64,20 +64,20 @@ __EXPORT void led_init(void)
 {
 	/* Configure LED1-2 GPIOs for output */
 
-	px4_arch_configgpio(GPIO_LED1);
-	px4_arch_configgpio(GPIO_LED2);
+	stm32_configgpio(GPIO_LED1);
+	stm32_configgpio(GPIO_LED2);
 }
 
 __EXPORT void led_on(int led)
 {
 	if (led == 0) {
 		/* Pull down to switch on */
-		px4_arch_gpiowrite(GPIO_LED1, false);
+		stm32_gpiowrite(GPIO_LED1, false);
 	}
 
 	if (led == 1) {
 		/* Pull down to switch on */
-		px4_arch_gpiowrite(GPIO_LED2, false);
+		stm32_gpiowrite(GPIO_LED2, false);
 	}
 }
 
@@ -85,32 +85,32 @@ __EXPORT void led_off(int led)
 {
 	if (led == 0) {
 		/* Pull up to switch off */
-		px4_arch_gpiowrite(GPIO_LED1, true);
+		stm32_gpiowrite(GPIO_LED1, true);
 	}
 
 	if (led == 1) {
 		/* Pull up to switch off */
-		px4_arch_gpiowrite(GPIO_LED2, true);
+		stm32_gpiowrite(GPIO_LED2, true);
 	}
 }
 
 __EXPORT void led_toggle(int led)
 {
 	if (led == 0) {
-		if (px4_arch_gpioread(GPIO_LED1)) {
-			px4_arch_gpiowrite(GPIO_LED1, false);
+		if (stm32_gpioread(GPIO_LED1)) {
+			stm32_gpiowrite(GPIO_LED1, false);
 
 		} else {
-			px4_arch_gpiowrite(GPIO_LED1, true);
+			stm32_gpiowrite(GPIO_LED1, true);
 		}
 	}
 
 	if (led == 1) {
-		if (px4_arch_gpioread(GPIO_LED2)) {
-			px4_arch_gpiowrite(GPIO_LED2, false);
+		if (stm32_gpioread(GPIO_LED2)) {
+			stm32_gpiowrite(GPIO_LED2, false);
 
 		} else {
-			px4_arch_gpiowrite(GPIO_LED2, true);
+			stm32_gpiowrite(GPIO_LED2, true);
 		}
 	}
 }
diff --git a/src/drivers/boards/px4fmu-v1/px4fmu_spi.c b/src/drivers/boards/px4fmu-v1/px4fmu_spi.c
index 3a0348fd1f..ab7af7512c 100644
--- a/src/drivers/boards/px4fmu-v1/px4fmu_spi.c
+++ b/src/drivers/boards/px4fmu-v1/px4fmu_spi.c
@@ -47,7 +47,7 @@
 #include <stdbool.h>
 #include <debug.h>
 
-#include <nuttx/spi.h>
+#include <nuttx/spi/spi.h>
 #include <arch/board/board.h>
 
 #include "up_arch.h"
@@ -69,19 +69,19 @@
 
 __EXPORT void stm32_spiinitialize(void)
 {
-	px4_arch_configgpio(GPIO_SPI_CS_GYRO);
-	px4_arch_configgpio(GPIO_SPI_CS_ACCEL);
-	px4_arch_configgpio(GPIO_SPI_CS_MPU);
-	px4_arch_configgpio(GPIO_SPI_CS_SDCARD);
+	stm32_configgpio(GPIO_SPI_CS_GYRO);
+	stm32_configgpio(GPIO_SPI_CS_ACCEL);
+	stm32_configgpio(GPIO_SPI_CS_MPU);
+	stm32_configgpio(GPIO_SPI_CS_SDCARD);
 
 	/* De-activate all peripherals,
 	 * required for some peripheral
 	 * state machines
 	 */
-	px4_arch_gpiowrite(GPIO_SPI_CS_GYRO, 1);
-	px4_arch_gpiowrite(GPIO_SPI_CS_ACCEL, 1);
-	px4_arch_gpiowrite(GPIO_SPI_CS_MPU, 1);
-	px4_arch_gpiowrite(GPIO_SPI_CS_SDCARD, 1);
+	stm32_gpiowrite(GPIO_SPI_CS_GYRO, 1);
+	stm32_gpiowrite(GPIO_SPI_CS_ACCEL, 1);
+	stm32_gpiowrite(GPIO_SPI_CS_MPU, 1);
+	stm32_gpiowrite(GPIO_SPI_CS_SDCARD, 1);
 }
 
 __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
@@ -91,23 +91,23 @@ __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid,
 	switch (devid) {
 	case PX4_SPIDEV_GYRO:
 		/* Making sure the other peripherals are not selected */
-		px4_arch_gpiowrite(GPIO_SPI_CS_GYRO, !selected);
-		px4_arch_gpiowrite(GPIO_SPI_CS_MPU, 1);
-		px4_arch_gpiowrite(GPIO_SPI_CS_ACCEL, 1);
+		stm32_gpiowrite(GPIO_SPI_CS_GYRO, !selected);
+		stm32_gpiowrite(GPIO_SPI_CS_MPU, 1);
+		stm32_gpiowrite(GPIO_SPI_CS_ACCEL, 1);
 		break;
 
 	case PX4_SPIDEV_ACCEL:
 		/* Making sure the other peripherals are not selected */
-		px4_arch_gpiowrite(GPIO_SPI_CS_ACCEL, !selected);
-		px4_arch_gpiowrite(GPIO_SPI_CS_MPU, 1);
-		px4_arch_gpiowrite(GPIO_SPI_CS_GYRO, 1);
+		stm32_gpiowrite(GPIO_SPI_CS_ACCEL, !selected);
+		stm32_gpiowrite(GPIO_SPI_CS_MPU, 1);
+		stm32_gpiowrite(GPIO_SPI_CS_GYRO, 1);
 		break;
 
 	case PX4_SPIDEV_MPU:
 		/* Making sure the other peripherals are not selected */
-		px4_arch_gpiowrite(GPIO_SPI_CS_ACCEL, 1);
-		px4_arch_gpiowrite(GPIO_SPI_CS_GYRO, 1);
-		px4_arch_gpiowrite(GPIO_SPI_CS_MPU, !selected);
+		stm32_gpiowrite(GPIO_SPI_CS_ACCEL, 1);
+		stm32_gpiowrite(GPIO_SPI_CS_GYRO, 1);
+		stm32_gpiowrite(GPIO_SPI_CS_MPU, !selected);
 		break;
 
 	default:
@@ -121,6 +121,8 @@ __EXPORT uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devi
 	return SPI_STATUS_PRESENT;
 }
 
+
+#ifdef CONFIG_STM32_SPI2
 __EXPORT void stm32_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
 {
 	/* SPI select is active low, so write !selected to select the device */
@@ -138,12 +140,13 @@ __EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devi
 {
 	return SPI_STATUS_PRESENT;
 }
+#endif
 
 
 __EXPORT void stm32_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
 {
 	/* there can only be one device on this bus, so always select it */
-	px4_arch_gpiowrite(GPIO_SPI_CS_SDCARD, !selected);
+	stm32_gpiowrite(GPIO_SPI_CS_SDCARD, !selected);
 }
 
 __EXPORT uint8_t stm32_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
diff --git a/src/drivers/boards/px4fmu-v1/px4fmu_usb.c b/src/drivers/boards/px4fmu-v1/px4fmu_usb.c
index 3b73d43ed3..85448ef6d6 100644
--- a/src/drivers/boards/px4fmu-v1/px4fmu_usb.c
+++ b/src/drivers/boards/px4fmu-v1/px4fmu_usb.c
@@ -82,10 +82,10 @@ __EXPORT void stm32_usbinitialize(void)
 	/* Configure the OTG FS VBUS sensing GPIO, Power On, and Overcurrent GPIOs */
 
 #ifdef CONFIG_STM32_OTGFS
-	px4_arch_configgpio(GPIO_OTGFS_VBUS);
+	stm32_configgpio(GPIO_OTGFS_VBUS);
 	/* XXX We only support device mode
-	px4_arch_configgpio(GPIO_OTGFS_PWRON);
-	px4_arch_configgpio(GPIO_OTGFS_OVER);
+	stm32_configgpio(GPIO_OTGFS_PWRON);
+	stm32_configgpio(GPIO_OTGFS_OVER);
 	*/
 #endif
 }
@@ -103,6 +103,6 @@ __EXPORT void stm32_usbinitialize(void)
 
 __EXPORT void stm32_usbsuspend(FAR struct usbdev_s *dev, bool resume)
 {
-	//ulldbg("resume: %d\n", resume);
+	uinfo("resume: %d\n", resume);
 }
 
-- 
GitLab