You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/09/16 06:47:34 UTC

[incubator-nuttx] branch master updated (5253861e7e -> 7dbaa4f4c4)

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


    from 5253861e7e mm: Fix minor style issue
     new 0f0a94186f arch/arm/toolchain: migrate the toolchain define to arch/arm/Kconfig
     new 54aa91f02b arch/arm: unify compile flags to common/Toolchain.defs
     new 7dbaa4f4c4 arch/arm: add support for armclang compiler(AC6)

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 README.md                                          |   2 +-
 arch/arm/Kconfig                                   |  42 ++++
 arch/arm/src/Makefile                              |  38 ++--
 arch/arm/src/arm/Kconfig                           |  28 ---
 arch/arm/src/arm/Toolchain.defs                    | 165 +-------------
 arch/arm/src/armv6-m/Kconfig                       |  21 --
 arch/arm/src/armv6-m/Toolchain.defs                | 210 +-----------------
 arch/arm/src/armv7-a/Kconfig                       |  32 ---
 arch/arm/src/armv7-a/Toolchain.defs                | 177 ++-------------
 arch/arm/src/armv7-m/Kconfig                       |  36 ---
 arch/arm/src/armv7-m/Toolchain.defs                | 233 ++------------------
 arch/arm/src/armv7-r/Kconfig                       |  32 ---
 arch/arm/src/armv7-r/Toolchain.defs                | 179 ++-------------
 arch/arm/src/armv8-m/Kconfig                       |  30 ---
 arch/arm/src/armv8-m/Toolchain.defs                | 243 +++------------------
 arch/arm/src/{armv6-m => common}/Toolchain.defs    | 159 ++++++++------
 arch/arm/src/tlsr82/Toolchain.defs                 | 172 +--------------
 arch/arm64/src/Toolchain.defs                      |   2 +-
 boards/arm/a1x/pcduino-a10/README.txt              |   2 +-
 boards/arm/am335x/beaglebone-black/README.txt      |   2 +-
 boards/arm/dm320/ntosd-dm320/README.txt            |   2 +-
 boards/arm/efm32/efm32-g8xx-stk/README.txt         |   2 +-
 boards/arm/efm32/efm32gg-stk3700/README.txt        |   2 +-
 .../arm/efm32/olimex-efm32g880f128-stk/README.txt  |   2 +-
 boards/arm/eoss3/quickfeather/scripts/Make.defs    |   2 +-
 boards/arm/imx6/sabre-6quad/README.txt             |   2 +-
 boards/arm/kinetis/freedom-k64f/README.txt         |   6 +-
 boards/arm/kinetis/freedom-k66f/README.txt         |   6 +-
 boards/arm/kinetis/kwikstik-k40/README.txt         |   4 +-
 .../kinetis/kwikstik-k40/configs/ostest/defconfig  |   3 +-
 boards/arm/kinetis/teensy-3.x/README.txt           |   4 +-
 boards/arm/kinetis/twr-k60n512/README.txt          |   4 +-
 .../arm/kinetis/twr-k60n512/configs/nsh/defconfig  |   3 +-
 boards/arm/kl/freedom-kl25z/README.txt             |   2 +-
 boards/arm/kl/freedom-kl26z/README.txt             |   2 +-
 boards/arm/lpc17xx_40xx/lincoln60/README.txt       |   2 +-
 boards/arm/lpc17xx_40xx/lpc4088-devkit/README.txt  |   6 +-
 .../lpc4088-devkit/configs/knsh/defconfig          |   3 +-
 .../lpc4088-devkit/configs/nsh/defconfig           |   2 +-
 .../arm/lpc17xx_40xx/lpc4088-quickstart/README.txt |  10 +-
 .../lpc4088-quickstart/configs/knsh/defconfig      |   3 +-
 .../lpc4088-quickstart/configs/nsh/defconfig       |   2 +-
 .../arm/lpc17xx_40xx/lpcxpresso-lpc1768/README.txt |   2 +-
 boards/arm/lpc17xx_40xx/lx_cpu/README.txt          |   4 +-
 .../arm/lpc17xx_40xx/mcb1700/configs/nsh/defconfig |   2 +-
 .../arm/lpc17xx_40xx/olimex-lpc1766stk/README.txt  |  14 +-
 .../olimex-lpc1766stk/configs/nettest/defconfig    |   3 +-
 .../olimex-lpc1766stk/configs/nsh/defconfig        |   3 +-
 .../olimex-lpc1766stk/configs/slip-httpd/defconfig |   2 +-
 .../configs/thttpd-nxflat/defconfig                |   2 +-
 .../olimex-lpc1766stk/configs/usbmsc/defconfig     |   2 +-
 .../olimex-lpc1766stk/configs/usbserial/defconfig  |   3 +-
 .../olimex-lpc1766stk/configs/zmodem/defconfig     |   3 +-
 boards/arm/lpc17xx_40xx/open1788/README.txt        |  10 +-
 .../lpc17xx_40xx/open1788/configs/knsh/defconfig   |   3 +-
 .../lpc17xx_40xx/open1788/configs/nsh/defconfig    |   3 +-
 boards/arm/lpc17xx_40xx/zkit-arm-1769/README.txt   |   4 +-
 .../zkit-arm-1769/configs/hello/defconfig          |   3 +-
 .../zkit-arm-1769/configs/nsh/defconfig            |   3 +-
 .../zkit-arm-1769/configs/nxhello/defconfig        |   3 +-
 .../zkit-arm-1769/configs/thttpd/defconfig         |   3 +-
 boards/arm/lpc43xx/bambino-200e/README.txt         |   2 +-
 boards/arm/lpc43xx/lpc4330-xplorer/README.txt      |   4 +-
 boards/arm/lpc43xx/lpc4337-ws/README.txt           |   4 +-
 boards/arm/lpc43xx/lpc4357-evb/README.txt          |   4 +-
 boards/arm/lpc43xx/lpc4370-link2/README.txt        |   4 +-
 boards/arm/lpc54xx/lpcxpresso-lpc54628/README.txt  |   2 +-
 boards/arm/nuc1xx/nutiny-nuc120/README.txt         |   2 +-
 .../arm/nuc1xx/nutiny-nuc120/configs/nsh/defconfig |   2 +-
 boards/arm/sam34/arduino-due/README.txt            |   6 +-
 boards/arm/sam34/arduino-due/configs/nsh/defconfig |   3 +-
 boards/arm/sam34/flipnclick-sam3x/README.txt       |   2 +-
 boards/arm/sam34/sam3u-ek/README.txt               |   6 +-
 boards/arm/sam34/sam3u-ek/configs/knsh/defconfig   |   3 +-
 boards/arm/sam34/sam3u-ek/configs/nsh/defconfig    |   3 +-
 boards/arm/sam34/sam3u-ek/configs/nx/defconfig     |   3 +-
 boards/arm/sam34/sam3u-ek/configs/nxwm/defconfig   |   3 +-
 boards/arm/sam34/sam4e-ek/README.txt               |   6 +-
 boards/arm/sam34/sam4e-ek/configs/usbnsh/defconfig |   2 +-
 boards/arm/sam34/sam4l-xplained/README.txt         |   6 +-
 .../arm/sam34/sam4l-xplained/configs/nsh/defconfig |   3 +-
 boards/arm/sam34/sam4s-xplained-pro/README.txt     |   6 +-
 boards/arm/sam34/sam4s-xplained/README.txt         |   6 +-
 .../arm/sam34/sam4s-xplained/configs/nsh/defconfig |   3 +-
 boards/arm/sama5/giant-board/README.md             |   2 +-
 boards/arm/sama5/sama5d2-xult/README.txt           |   2 +-
 boards/arm/sama5/sama5d3-xplained/README.txt       |  10 +-
 boards/arm/sama5/sama5d3x-ek/README.txt            |  12 +-
 boards/arm/sama5/sama5d4-ek/README.txt             |  18 +-
 boards/arm/samd2l2/samd20-xplained/README.txt      |   6 +-
 boards/arm/samd2l2/samd21-xplained/README.txt      |   2 +-
 boards/arm/samd2l2/saml21-xplained/README.txt      |   8 +-
 boards/arm/samv7/same70-qmtech/README.txt          |   2 +-
 boards/arm/samv7/same70-xplained/README.txt        |   2 +-
 boards/arm/samv7/samv71-xult/README.txt            |   2 +-
 boards/arm/stm32/clicker2-stm32/README.txt         |   2 +-
 boards/arm/stm32/cloudctrl/README.txt              |   2 +-
 boards/arm/stm32/hymini-stm32v/README.txt          |   2 +-
 boards/arm/stm32/mikroe-stm32f4/README.txt         |   4 +-
 boards/arm/stm32/nucleo-f446re/README.txt          |   2 +-
 boards/arm/stm32/nucleo-f4x1re/README.txt          |   2 +-
 .../olimex-stm32-e407/configs/discover/defconfig   |   2 +-
 .../olimex-stm32-e407/configs/netnsh/defconfig     |   2 +-
 .../olimex-stm32-e407/configs/telnetd/defconfig    |   2 +-
 .../olimex-stm32-e407/configs/webserver/defconfig  |   2 +-
 .../olimex-stm32-h405/configs/usbnsh/defconfig     |   2 +-
 .../stm32/olimex-stm32-p207/configs/nsh/defconfig  |   2 +-
 boards/arm/stm32/shenzhou/README.txt               |   2 +-
 boards/arm/stm32/shenzhou/configs/thttpd/defconfig |   2 +-
 boards/arm/stm32/stm3210e-eval/README.txt          |  10 +-
 .../arm/stm32/stm3210e-eval/configs/nsh/defconfig  |   2 +-
 .../stm32/stm3210e-eval/configs/usbmsc/defconfig   |   2 +-
 .../stm3210e-eval/configs/usbserial/defconfig      |   3 +-
 boards/arm/stm32/stm3220g-eval/README.txt          |   8 +-
 boards/arm/stm32/stm3240g-eval/README.txt          |  14 +-
 .../stm32/stm3240g-eval/configs/knxwm/defconfig    |   2 +-
 boards/arm/stm32/stm32_tiny/README.txt             |   4 +-
 boards/arm/stm32/stm32_tiny/configs/nsh/defconfig  |   2 +-
 .../stm32/stm32butterfly2/configs/nsh/defconfig    |   2 +-
 .../stm32/stm32butterfly2/configs/nshnet/defconfig |   2 +-
 .../stm32butterfly2/configs/nshusbdev/defconfig    |   2 +-
 .../stm32butterfly2/configs/nshusbhost/defconfig   |   2 +-
 boards/arm/stm32/stm32f103-minimum/README.txt      |   2 +-
 .../stm32/stm32f334-disco/configs/nsh/defconfig    |   2 +-
 .../stm32f334-disco/configs/powerled/defconfig     |   2 +-
 boards/arm/stm32/stm32f3discovery/README.txt       |   4 +-
 boards/arm/stm32/stm32f429i-disco/README.txt       |   2 +-
 boards/arm/stm32/stm32f4discovery/README.txt       |  16 +-
 .../arm/stm32/stm32f4discovery/scripts/Make.defs   |   2 +-
 boards/arm/stm32/stm32ldiscovery/README.txt        |   2 +-
 boards/arm/stm32/stm32vldiscovery/README.txt       |   2 +-
 boards/arm/stm32/viewtool-stm32f107/README.txt     |   6 +-
 boards/arm/stm32f0l0g0/nucleo-f072rb/README.txt    |   2 +-
 boards/arm/stm32f0l0g0/nucleo-f091rc/README.txt    |   2 +-
 boards/arm/stm32f7/nucleo-144/README.txt           |   4 +-
 boards/arm/stm32f7/stm32f746g-disco/README.txt     |   2 +-
 boards/arm/stm32l4/b-l475e-iot01a/README.txt       |   2 +-
 boards/arm/stm32l4/nucleo-l432kc/README.txt        |   2 +-
 boards/arm/stm32l4/nucleo-l452re/README.txt        |   2 +-
 boards/arm/stm32l4/nucleo-l476rg/README.txt        |   2 +-
 boards/arm/stm32l4/nucleo-l496zg/README.txt        |   2 +-
 boards/arm/stm32l4/stm32l476vg-disco/README.txt    |   2 +-
 boards/arm/stm32l4/stm32l4r9ai-disco/README.txt    |   2 +-
 boards/arm/stm32l5/nucleo-l552ze/README.txt        |   2 +-
 boards/arm/stm32l5/stm32l562e-dk/README.txt        |   2 +-
 boards/arm/stm32u5/b-u585i-iot02a/README.txt       |   2 +-
 boards/arm/tiva/dk-tm4c129x/README.txt             |   2 +-
 boards/arm/tiva/eagle100/README.txt                |   6 +-
 boards/arm/tiva/eagle100/configs/thttpd/defconfig  |   2 +-
 boards/arm/tiva/ekk-lm3s9b96/configs/nsh/defconfig |   3 +-
 boards/arm/tiva/lm3s6965-ek/README.txt             |  12 +-
 boards/arm/tiva/lm3s6965-ek/configs/nsh/defconfig  |   3 +-
 boards/arm/tiva/lm3s6965-ek/configs/nx/defconfig   |   3 +-
 .../tiva/lm3s6965-ek/configs/qemu-nxflat/defconfig |   2 +-
 boards/arm/tiva/lm3s8962-ek/README.txt             |   4 +-
 boards/arm/tiva/lm3s8962-ek/configs/nsh/defconfig  |   2 +-
 boards/arm/tiva/lm3s8962-ek/configs/nx/defconfig   |   2 +-
 boards/arm/tiva/lm4f120-launchpad/README.txt       |   2 +-
 .../tiva/lm4f120-launchpad/configs/nsh/defconfig   |   3 +-
 boards/arm/tiva/tm4c123g-launchpad/README.txt      |   2 +-
 .../tiva/tm4c123g-launchpad/configs/nsh/defconfig  |   3 +-
 boards/arm/tiva/tm4c1294-launchpad/README.txt      |   2 +-
 boards/arm/tiva/tm4c129e-launchpad/README.txt      |   2 +-
 boards/arm/tms570/launchxl-tms57004/README.txt     |   4 +-
 .../tms570/launchxl-tms57004/configs/nsh/defconfig |   2 +-
 boards/arm/xmc4/xmc4500-relax/README.txt           |   2 +-
 tools/ci/testlist/arm-01.dat                       |   4 +-
 tools/ci/testlist/arm-02.dat                       |   2 +-
 tools/ci/testlist/arm-03.dat                       |   2 +-
 tools/ci/testlist/arm-04.dat                       |  12 +-
 tools/ci/testlist/arm-05.dat                       |   6 +-
 tools/ci/testlist/arm-06.dat                       |   8 +-
 tools/ci/testlist/arm-07.dat                       |   8 +-
 tools/ci/testlist/arm-08.dat                       |  10 +-
 tools/ci/testlist/arm-09.dat                       |  14 +-
 tools/ci/testlist/arm-10.dat                       |  16 +-
 tools/ci/testlist/arm-11.dat                       |   8 +-
 tools/ci/testlist/arm-12.dat                       |   4 +-
 tools/ci/testlist/arm-13.dat                       |   6 +-
 tools/ci/testlist/macos.dat                        |   2 +-
 180 files changed, 551 insertions(+), 1871 deletions(-)
 copy arch/arm/src/{armv6-m => common}/Toolchain.defs (66%)


[incubator-nuttx] 02/03: arch/arm: unify compile flags to common/Toolchain.defs

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 54aa91f02b59e67c19c0c74692e6c3369bf6c260
Author: chao an <an...@xiaomi.com>
AuthorDate: Thu Sep 15 22:06:54 2022 +0800

    arch/arm: unify compile flags to common/Toolchain.defs
    
    Signed-off-by: chao an <an...@xiaomi.com>
---
 arch/arm/src/arm/Toolchain.defs                    | 165 +---------------
 arch/arm/src/armv6-m/Toolchain.defs                | 208 +------------------
 arch/arm/src/armv7-a/Toolchain.defs                | 167 +---------------
 arch/arm/src/armv7-m/Toolchain.defs                | 219 +--------------------
 arch/arm/src/armv7-r/Toolchain.defs                | 167 +---------------
 arch/arm/src/armv8-m/Toolchain.defs                | 219 +--------------------
 arch/arm/src/{armv6-m => common}/Toolchain.defs    | 111 +++++------
 arch/arm/src/tlsr82/Toolchain.defs                 | 172 +---------------
 boards/arm/eoss3/quickfeather/scripts/Make.defs    |   2 +-
 .../arm/stm32/stm32f4discovery/scripts/Make.defs   |   2 +-
 10 files changed, 66 insertions(+), 1366 deletions(-)

diff --git a/arch/arm/src/arm/Toolchain.defs b/arch/arm/src/arm/Toolchain.defs
index 702990b5ce..6a2c34afe9 100644
--- a/arch/arm/src/arm/Toolchain.defs
+++ b/arch/arm/src/arm/Toolchain.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# arch/arm/src/armv/Toolchain.defs
+# arch/arm/src/arm/Toolchain.defs
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -18,165 +18,4 @@
 #
 ############################################################################
 
-# Setup for the selected toolchain
-
-#
-# Handle old-style chip-specific toolchain names in the absence of
-# a new-style toolchain specification, force the selection of a single
-# toolchain and allow the selected toolchain to be overridden by a
-# command-line selection.
-#
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= BUILDROOT
-endif
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= GNU_EABI
-endif
-
-#
-# Supported toolchains
-#
-# TODO - It's likely that all of these toolchains now support the
-#        CortexM4.  Since they are all GCC-based, we could almost
-#        certainly simplify this further.
-#
-# Each toolchain definition should set:
-#
-#  CROSSDEV         The GNU toolchain triple (command prefix)
-#  ARCHCPUFLAGS     CPU-specific flags selecting the instruction set
-#                   FPU options, etc.
-#  ARCHOPTIMIZATION The optimization level that results in
-#                   reliable code generation.
-#
-
-ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
-  ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
-else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ARCHOPTIMIZATION += -Os
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -fno-strict-aliasing
-endif
-
-ifeq ($(CONFIG_FRAME_POINTER),y)
-  ARCHOPTIMIZATION += -fno-omit-frame-pointer -fno-optimize-sibling-calls
-else
-  ARCHOPTIMIZATION += -fomit-frame-pointer
-endif
-
-ifeq ($(CONFIG_STACK_CANARIES),y)
-  ARCHOPTIMIZATION += -fstack-protector-all
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE_ALL),y)
-  ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage
-endif
-
-ifeq ($(CONFIG_MM_KASAN_ALL),y)
-  ARCHOPTIMIZATION += -fsanitize=kernel-address
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_ALL),y)
-  ARCHOPTIMIZATION += $(CONFIG_MM_UBSAN_OPTION)
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_TRAP_ON_ERROR),y)
-  ARCHOPTIMIZATION += -fsanitize-undefined-trap-on-error
-endif
-
-# NuttX buildroot under Linux or Cygwin
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
-  CROSSDEV ?= arm-nuttx-eabi-
-endif
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
-  CROSSDEV ?= arm-nuttx-elf-
-endif
-
-# Generic GNU EABI toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-  CROSSDEV ?= arm-none-eabi-
-endif
-
-ARCHCFLAGS += -fno-common
-ARCHCXXFLAGS += -fno-common -nostdinc++
-
-ARCHCFLAGS += -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHCXXFLAGS += -Wall -Wshadow -Wundef
-
-ifneq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
-endif
-
-ifneq ($(CONFIG_CXX_RTTI),y)
-  ARCHCXXFLAGS += -fno-rtti
-endif
-
-LDFLAGS += -nostdlib
-
-# Optimization of unused sections
-
-ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
-  LDFLAGS          += --gc-sections
-  ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
-endif
-
-# Debug link map
-
-ifeq ($(CONFIG_DEBUG_LINK_MAP),y)
-  LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION += -g
-endif
-
-# Default toolchain
-
-CC      = $(CROSSDEV)gcc
-CXX     = $(CROSSDEV)g++
-CPP     = $(CROSSDEV)gcc -E -P -x c
-STRIP   = $(CROSSDEV)strip --strip-unneeded
-OBJCOPY = $(CROSSDEV)objcopy
-OBJDUMP = $(CROSSDEV)objdump
-LD      = $(CROSSDEV)ld
-AR      = $(CROSSDEV)ar rcs
-NM      = $(CROSSDEV)nm
-
-# Link Time Optimization
-
-ifeq ($(CONFIG_LTO_FULL),y)
-  ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-    LD := $(CROSSDEV)gcc
-    AR := $(CROSSDEV)gcc-ar rcs
-    NM := $(CROSSDEV)gcc-nm
-    ARCHOPTIMIZATION += -fuse-linker-plugin
-    ARCHOPTIMIZATION += -fno-builtin
-  endif
-endif
-
-# Add the builtin library
-
-EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name))
-
-ifneq ($(CONFIG_LIBM),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a))
-endif
-
-ifeq ($(CONFIG_LIBSUPCXX),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a))
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a))
-endif
+include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs
index 102f803219..e3bcd7daef 100644
--- a/arch/arm/src/armv6-m/Toolchain.defs
+++ b/arch/arm/src/armv6-m/Toolchain.defs
@@ -18,71 +18,6 @@
 #
 ############################################################################
 
-# Setup for the selected toolchain
-
-#
-# Handle old-style chip-specific toolchain names in the absence of
-# a new-style toolchain specification, force the selection of a single
-# toolchain and allow the selected toolchain to be overridden by a
-# command-line selection.
-#
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_BUILDROOT)),y)
-  CONFIG_TOOLCHAIN ?= BUILDROOT
-endif
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_GNU_EABI)),y)
-  CONFIG_TOOLCHAIN ?= GNU_EABI
-endif
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_CLANG)),y)
-  CONFIG_TOOLCHAIN ?= CLANG
-endif
-
-#
-# Supported toolchains
-#
-# TODO - It's likely that all of these toolchains now support the
-#        CortexM0.  Since they are all GCC-based, we could almost
-#        certainly simplify this further.
-#
-# Each toolchain definition should set:
-#
-#  CROSSDEV         The GNU toolchain triple (command prefix)
-#  ARCHCPUFLAGS     CPU-specific flags selecting the instruction set
-#                   options, etc.
-#  ARCHOPTIMIZATION The optimization level that results in
-#                   reliable code generation.
-#
-
-ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
-  ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
-else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-    ARCHOPTIMIZATION += -Oz
-  else
-    ARCHOPTIMIZATION += -Os
-  endif
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -fno-strict-aliasing
-endif
-
-ifeq ($(CONFIG_FRAME_POINTER),y)
-  ARCHOPTIMIZATION += -fno-omit-frame-pointer -fno-optimize-sibling-calls
-else
-  ARCHOPTIMIZATION += -fomit-frame-pointer
-endif
-
-ifeq ($(CONFIG_STACK_CANARIES),y)
-  ARCHOPTIMIZATION += -fstack-protector-all
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE_ALL),y)
-  ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage
-endif
-
 # Parametrization for ARCHCPUFLAGS
 
 TOOLCHAIN_MTUNE  := -mcpu=cortex-m0 -mthumb
@@ -90,147 +25,8 @@ TOOLCHAIN_MFLOAT := -mfloat-abi=soft
 
 # Clang Configuration files
 
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
   TOOLCHAIN_MARCH := --config armv6m_soft_nofp_nosys
 endif
 
-# Link Time Optimization
-
-ifeq ($(CONFIG_LTO_THIN),y)
-  ARCHOPTIMIZATION += -flto=thin
-else ifeq ($(CONFIG_LTO_FULL),y)
-  ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-    ARCHOPTIMIZATION += -fuse-linker-plugin
-  endif
-endif
-
-# NuttX buildroot under Linux or Cygwin
-
-ifeq ($(CONFIG_TOOLCHAIN),BUILDROOT)
-  CROSSDEV ?= arm-nuttx-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-endif
-
-# Generic GNU EABI toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-  CROSSDEV ?= arm-none-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-endif
-
-# Clang toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-
-  CC      = clang
-  CXX     = clang++
-  CPP     = clang -E -P -x c
-  LD      = ld.lld -m armelf
-  STRIP   = llvm-strip --strip-unneeded
-  AR      = llvm-ar rcs
-  NM      = llvm-nm
-  OBJCOPY = llvm-objcopy
-  OBJDUMP = llvm-objdump
-
-  # Since the no_builtin attribute is not fully supported on Clang
-  # disable the built-in functions, refer:
-  # https://github.com/apache/incubator-nuttx/pull/5971
-
-  ARCHOPTIMIZATION += -fno-builtin
-
-# Default toolchain
-
-else
-  CC      = $(CROSSDEV)gcc
-  CXX     = $(CROSSDEV)g++
-  CPP     = $(CROSSDEV)gcc -E -P -x c
-  STRIP   = $(CROSSDEV)strip --strip-unneeded
-  OBJCOPY = $(CROSSDEV)objcopy
-  OBJDUMP = $(CROSSDEV)objdump
-  LD      = $(CROSSDEV)ld
-  AR      = $(CROSSDEV)ar rcs
-  NM      = $(CROSSDEV)nm
-
-  ifeq ($(CONFIG_LTO_FULL),y)
-    ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-      LD := $(CROSSDEV)gcc
-      AR := $(CROSSDEV)gcc-ar rcs
-      NM := $(CROSSDEV)gcc-nm
-      ARCHOPTIMIZATION += -fno-builtin
-    endif
-  endif
-endif
-
-# Architecture flags
-
-ifeq ($(CONFIG_MM_KASAN_ALL),y)
-  ARCHOPTIMIZATION += -fsanitize=kernel-address
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_ALL),y)
-  ARCHOPTIMIZATION += $(CONFIG_MM_UBSAN_OPTION)
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_TRAP_ON_ERROR),y)
-  ARCHOPTIMIZATION += -fsanitize-undefined-trap-on-error
-endif
-
-ARCHCFLAGS += -fno-common
-ARCHCXXFLAGS += -fno-common -nostdinc++
-
-ARCHCFLAGS += -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHCXXFLAGS += -Wall -Wshadow -Wundef
-
-ifneq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
-endif
-
-ifneq ($(CONFIG_CXX_RTTI),y)
-  ARCHCXXFLAGS += -fno-rtti
-endif
-
-LDFLAGS += -nostdlib
-
-# Optimization of unused sections
-
-ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
-  LDFLAGS          += --gc-sections
-  ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
-endif
-
-# Debug link map
-
-ifeq ($(CONFIG_DEBUG_LINK_MAP),y)
-  LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION += -g
-endif
-
-# Add the builtin library
-
-COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ifeq ($(wildcard $(COMPILER_RT_LIB)),)
-    # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
-    # then go ahead and try "--print-file-name"
-    COMPILER_RT_LIB := $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name $(notdir $(COMPILER_RT_LIB))))
-  endif
-endif
-
-EXTRA_LIBS += $(COMPILER_RT_LIB)
-
-ifneq ($(CONFIG_LIBM),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a))
-endif
-
-ifeq ($(CONFIG_LIBSUPCXX),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a))
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a))
-endif
+include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs
index 9cb0273223..1d44918a10 100644
--- a/arch/arm/src/armv7-a/Toolchain.defs
+++ b/arch/arm/src/armv7-a/Toolchain.defs
@@ -18,41 +18,6 @@
 #
 ############################################################################
 
-# Setup for the selected toolchain
-
-#
-# Select and allow the selected toolchain to be overridden by a command-line
-#selection.
-#
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= BUILDROOT
-endif
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= GNU_EABI
-endif
-
-#
-# Supported toolchains
-#
-# Each toolchain definition should set:
-#
-#  CROSSDEV         The GNU toolchain triple (command prefix)
-#  ARCHCPUFLAGS     CPU-specific flags selecting the instruction set
-#                   FPU options, etc.
-#  ARCHOPTIMIZATION The optimization level that results in
-#                   reliable code generation.
-#
-
-ifeq ($(CONFIG_ARM_THUMB),y)
-  ARCHCPUFLAGS += -mthumb
-endif
-
 ifeq ($(CONFIG_ARCH_CORTEXA5),y)
   ARCHCPUFLAGS += -mcpu=cortex-a5
 else ifeq ($(CONFIG_ARCH_CORTEXA7),y)
@@ -96,134 +61,4 @@ else
   ARCHCPUFLAGS += -mfloat-abi=soft
 endif
 
-ifeq ($(CONFIG_MM_KASAN_ALL),y)
-  ARCHOPTIMIZATION += -fsanitize=kernel-address
-endif
-
-ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
-  ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
-else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ARCHOPTIMIZATION += -Os
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -fno-strict-aliasing
-endif
-
-ifeq ($(CONFIG_FRAME_POINTER),y)
-  ARCHOPTIMIZATION += -fno-omit-frame-pointer -fno-optimize-sibling-calls
-else
-  ARCHOPTIMIZATION += -fomit-frame-pointer
-endif
-
-ifeq ($(CONFIG_STACK_CANARIES),y)
-  ARCHOPTIMIZATION += -fstack-protector-all
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE_ALL),y)
-  ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_ALL),y)
-  ARCHOPTIMIZATION += $(CONFIG_MM_UBSAN_OPTION)
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_TRAP_ON_ERROR),y)
-  ARCHOPTIMIZATION += -fsanitize-undefined-trap-on-error
-endif
-
-ifeq ($(CONFIG_ENDIAN_BIG),y)
-  TARGET_ARCH := armeb
-else
-  TARGET_ARCH := arm
-endif
-
-ARCHCFLAGS += -fno-common
-ARCHCXXFLAGS += -fno-common -nostdinc++
-
-ARCHCFLAGS += -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHCXXFLAGS += -Wall -Wshadow -Wundef
-
-ifneq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
-endif
-
-ifneq ($(CONFIG_CXX_RTTI),y)
-  ARCHCXXFLAGS += -fno-rtti
-endif
-
-LDFLAGS += -nostdlib
-
-# Optimization of unused sections
-
-ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
-  LDFLAGS          += --gc-sections
-  ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
-endif
-
-# Debug link map
-
-ifeq ($(CONFIG_DEBUG_LINK_MAP),y)
-  LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION += -g
-endif
-
-# NuttX buildroot under Linux or Cygwin
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
-  CROSSDEV ?= $(TARGET_ARCH)-nuttx-eabi-
-endif
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
-  CROSSDEV ?= $(TARGET_ARCH)-nuttx-elf-
-endif
-
-# Generic GNU EABI toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-  CROSSDEV ?= $(TARGET_ARCH)-none-eabi-
-endif
-
-# Default toolchain
-
-CC      = $(CROSSDEV)gcc
-CXX     = $(CROSSDEV)g++
-CPP     = $(CROSSDEV)gcc -E -P -x c
-STRIP   = $(CROSSDEV)strip --strip-unneeded
-OBJCOPY = $(CROSSDEV)objcopy
-OBJDUMP = $(CROSSDEV)objdump
-LD      = $(CROSSDEV)ld
-AR      = $(CROSSDEV)ar rcs
-NM      = $(CROSSDEV)nm
-
-# Link Time Optimization
-
-ifeq ($(CONFIG_LTO_FULL),y)
-  ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-    LD := $(CROSSDEV)gcc
-    AR := $(CROSSDEV)gcc-ar rcs
-    NM := $(CROSSDEV)gcc-nm
-    ARCHOPTIMIZATION += -fuse-linker-plugin
-    ARCHOPTIMIZATION += -fno-builtin
-  endif
-endif
-
-# Add the builtin library
-
-EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name))
-
-ifneq ($(CONFIG_LIBM),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a))
-endif
-
-ifeq ($(CONFIG_LIBSUPCXX),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a))
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a))
-endif
+include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs
index 5e7f6c63b5..07f939ec38 100644
--- a/arch/arm/src/armv7-m/Toolchain.defs
+++ b/arch/arm/src/armv7-m/Toolchain.defs
@@ -18,85 +18,6 @@
 #
 ############################################################################
 
-# Setup for the selected toolchain
-
-#
-# Handle old-style chip-specific toolchain names in the absence of
-# a new-style toolchain specification, force the selection of a single
-# toolchain and allow the selected toolchain to be overridden by a
-# command-line selection.
-#
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= BUILDROOT
-endif
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= GNU_EABI
-endif
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_CLANG) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= CLANG
-endif
-
-#
-# Supported toolchains
-#
-# Each toolchain definition should set:
-#
-#  CROSSDEV         The GNU toolchain triple (command prefix)
-#  ARCHCPUFLAGS     CPU-specific flags selecting the instruction set
-#                   FPU options, etc.
-#  ARCHOPTIMIZATION The optimization level that results in
-#                   reliable code generation.
-#
-
-ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
-  ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
-else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-    ARCHOPTIMIZATION += -Oz
-  else
-    ARCHOPTIMIZATION += -Os
-  endif
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -fno-strict-aliasing
-endif
-
-ifeq ($(CONFIG_FRAME_POINTER),y)
-  ARCHOPTIMIZATION += -fno-omit-frame-pointer -fno-optimize-sibling-calls
-else
-  ARCHOPTIMIZATION += -fomit-frame-pointer
-endif
-
-ifeq ($(CONFIG_STACK_CANARIES),y)
-  ARCHOPTIMIZATION += -fstack-protector-all
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE_ALL),y)
-  ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage
-endif
-
-ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
-  ARCHOPTIMIZATION += -finstrument-functions -ffixed-r10
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_ALL),y)
-  ARCHOPTIMIZATION += $(CONFIG_MM_UBSAN_OPTION)
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_TRAP_ON_ERROR),y)
-  ARCHOPTIMIZATION += -fsanitize-undefined-trap-on-error
-endif
-
 # Parametrization for ARCHCPUFLAGS
 
 ifeq ($(CONFIG_ARCH_CORTEXM4),y)
@@ -136,7 +57,7 @@ endif
 
 # Clang Configuration files
 
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
 
   ifeq ($(CONFIG_ARCH_CORTEXM4),y)
     ifeq ($(CONFIG_ARCH_FPU),y)
@@ -156,140 +77,8 @@ ifeq ($(CONFIG_TOOLCHAIN),CLANG)
 
 endif
 
-# Link Time Optimization
-
-ifeq ($(CONFIG_LTO_THIN),y)
-  ARCHOPTIMIZATION += -flto=thin
-else ifeq ($(CONFIG_LTO_FULL),y)
-  ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-    ARCHOPTIMIZATION += -fuse-linker-plugin
-  endif
-endif
-
-# NuttX buildroot under Linux or Cygwin
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
-  CROSSDEV ?= arm-nuttx-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
-endif
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
-  CROSSDEV ?= arm-nuttx-elf-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-endif
-
-ifeq ($(CONFIG_MM_KASAN_ALL),y)
-  ARCHOPTIMIZATION += -fsanitize=kernel-address
-endif
-
-# Generic GNU EABI toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-  CROSSDEV ?= arm-none-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
-endif
-
-# Clang toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-
-  CC      = clang
-  CXX     = clang++
-  CPP     = clang -E -P -x c
-  LD      = ld.lld -m armelf
-  STRIP   = llvm-strip --strip-unneeded
-  AR      = llvm-ar rcs
-  NM      = llvm-nm
-  OBJCOPY = llvm-objcopy
-  OBJDUMP = llvm-objdump
-
-  # Since the no_builtin attribute is not fully supported on Clang
-  # disable the built-in functions, refer:
-  # https://github.com/apache/incubator-nuttx/pull/5971
-
-  ARCHOPTIMIZATION += -fno-builtin
-
-# Default toolchain
-
-else
-  CC      = $(CROSSDEV)gcc
-  CXX     = $(CROSSDEV)g++
-  CPP     = $(CROSSDEV)gcc -E -P -x c
-  STRIP   = $(CROSSDEV)strip --strip-unneeded
-  OBJCOPY = $(CROSSDEV)objcopy
-  OBJDUMP = $(CROSSDEV)objdump
-  LD      = $(CROSSDEV)ld
-  AR      = $(CROSSDEV)ar rcs
-  NM      = $(CROSSDEV)nm
-
-  ifeq ($(CONFIG_LTO_FULL),y)
-    ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-      LD := $(CROSSDEV)gcc
-      AR := $(CROSSDEV)gcc-ar rcs
-      NM := $(CROSSDEV)gcc-nm
-      ARCHOPTIMIZATION += -fno-builtin
-    endif
-  endif
-endif
-
-# Architecture flags
-
-ARCHCFLAGS += -fno-common
-ARCHCXXFLAGS += -fno-common -nostdinc++
-
-ARCHCFLAGS += -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHCXXFLAGS += -Wall -Wshadow -Wundef
-
-ifneq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
-endif
-
-ifneq ($(CONFIG_CXX_RTTI),y)
-  ARCHCXXFLAGS += -fno-rtti
-endif
-
-LDFLAGS += -nostdlib
-
-# Optimization of unused sections
-
-ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
-  LDFLAGS          += --gc-sections
-  ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
-endif
-
-# Debug link map
-
-ifeq ($(CONFIG_DEBUG_LINK_MAP),y)
-  LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION += -g
-endif
-
-# Add the builtin library
-
-COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ifeq ($(wildcard $(COMPILER_RT_LIB)),)
-    # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
-    # then go ahead and try "--print-file-name"
-    COMPILER_RT_LIB := $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name $(notdir $(COMPILER_RT_LIB))))
-  endif
-endif
-
-EXTRA_LIBS += $(COMPILER_RT_LIB)
-
-ifneq ($(CONFIG_LIBM),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a))
-endif
-
-ifeq ($(CONFIG_LIBSUPCXX),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a))
+ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
+  ARCHOPTIMIZATION += -finstrument-functions -ffixed-r10
 endif
 
-ifeq ($(CONFIG_ARCH_COVERAGE),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a))
-endif
+include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs
index 627f50556d..6ee10178f3 100644
--- a/arch/arm/src/armv7-r/Toolchain.defs
+++ b/arch/arm/src/armv7-r/Toolchain.defs
@@ -18,61 +18,6 @@
 #
 ############################################################################
 
-# Setup for the selected toolchain
-
-#
-# Select and allow the selected toolchain to be overridden by a command-line
-#selection.
-#
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= BUILDROOT
-endif
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= GNU_EABI
-endif
-
-#
-# Supported toolchains
-#
-# Each toolchain definition should set:
-#
-#  CROSSDEV         The GNU toolchain triple (command prefix)
-#  ARCHCPUFLAGS     CPU-specific flags selecting the instruction set
-#                   FPU options, etc.
-#  ARCHOPTIMIZATION The optimization level that results in
-#                   reliable code generation.
-#
-
-ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
-  ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
-else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ARCHOPTIMIZATION += -Os
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -fno-strict-aliasing
-endif
-
-ifeq ($(CONFIG_FRAME_POINTER),y)
-  ARCHOPTIMIZATION += -fno-omit-frame-pointer -fno-optimize-sibling-calls
-else
-  ARCHOPTIMIZATION += -fomit-frame-pointer
-endif
-
-ifeq ($(CONFIG_STACK_CANARIES),y)
-  ARCHOPTIMIZATION += -fstack-protector-all
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE_ALL),y)
-  ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage
-endif
-
 ifeq ($(CONFIG_ARCH_CORTEXR4),y)
   ARCHCPUFLAGS += -mcpu=cortex-r4
 else ifeq ($(CONFIG_ARCH_CORTEXR5),y)
@@ -92,114 +37,4 @@ else
   ARCHCPUFLAGS += -mfloat-abi=soft
 endif
 
-ifeq ($(CONFIG_ENDIAN_BIG),y)
-  ARCHCPUFLAGS += -mbig-endian
-endif
-
-ifeq ($(CONFIG_MM_KASAN_ALL),y)
-  ARCHOPTIMIZATION += -fsanitize=kernel-address
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_ALL),y)
-  ARCHOPTIMIZATION += $(CONFIG_MM_UBSAN_OPTION)
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_TRAP_ON_ERROR),y)
-  ARCHOPTIMIZATION += -fsanitize-undefined-trap-on-error
-endif
-
-ifeq ($(CONFIG_ENDIAN_BIG),y)
-  TARGET_ARCH := armeb
-else
-  TARGET_ARCH := arm
-endif
-
-# NuttX buildroot under Linux or Cygwin
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
-  CROSSDEV ?= $(TARGET_ARCH)-nuttx-eabi-
-endif
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
-  CROSSDEV ?= $(TARGET_ARCH)-nuttx-elf-
-endif
-
-# Generic GNU EABI toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-  CROSSDEV ?= $(TARGET_ARCH)-none-eabi-
-endif
-
-ARCHCFLAGS += -fno-common
-ARCHCXXFLAGS += -fno-common -nostdinc++
-
-ARCHCFLAGS += -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHCXXFLAGS += -Wall -Wshadow -Wundef
-
-ifneq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
-endif
-
-ifneq ($(CONFIG_CXX_RTTI),y)
-  ARCHCXXFLAGS += -fno-rtti
-endif
-
-LDFLAGS += -nostdlib
-
-# Optimization of unused sections
-
-ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
-  LDFLAGS          += --gc-sections
-  ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
-endif
-
-# Debug link map
-
-ifeq ($(CONFIG_DEBUG_LINK_MAP),y)
-  LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION += -g
-endif
-
-# Default toolchain
-
-CC      = $(CROSSDEV)gcc
-CXX     = $(CROSSDEV)g++
-CPP     = $(CROSSDEV)gcc -E -P -x c
-STRIP   = $(CROSSDEV)strip --strip-unneeded
-OBJCOPY = $(CROSSDEV)objcopy
-OBJDUMP = $(CROSSDEV)objdump
-LD      = $(CROSSDEV)ld
-AR      = $(CROSSDEV)ar rcs
-NM      = $(CROSSDEV)nm
-
-# Link Time Optimization
-
-ifeq ($(CONFIG_LTO_FULL),y)
-  ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-    LD := $(CROSSDEV)gcc
-    AR := $(CROSSDEV)gcc-ar rcs
-    NM := $(CROSSDEV)gcc-nm
-    ARCHOPTIMIZATION += -fuse-linker-plugin
-    ARCHOPTIMIZATION += -fno-builtin
-  endif
-endif
-
-# Add the builtin library
-
-EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name))
-
-ifneq ($(CONFIG_LIBM),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a))
-endif
-
-ifeq ($(CONFIG_LIBSUPCXX),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a))
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a))
-endif
+include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv8-m/Toolchain.defs b/arch/arm/src/armv8-m/Toolchain.defs
index cd228683ba..8ad07e0def 100644
--- a/arch/arm/src/armv8-m/Toolchain.defs
+++ b/arch/arm/src/armv8-m/Toolchain.defs
@@ -18,85 +18,6 @@
 #
 ############################################################################
 
-# Setup for the selected toolchain
-
-#
-# Handle old-style chip-specific toolchain names in the absence of
-# a new-style toolchain specification, force the selection of a single
-# toolchain and allow the selected toolchain to be overridden by a
-# command-line selection.
-#
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= BUILDROOT
-endif
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= GNU_EABI
-endif
-
-ifeq ($(filter y, \
-      $(CONFIG_ARM_TOOLCHAIN_CLANG) \
-    ),y)
-  CONFIG_TOOLCHAIN ?= CLANG
-endif
-
-#
-# Supported toolchains
-#
-# Each toolchain definition should set:
-#
-#  CROSSDEV         The GNU toolchain triple (command prefix)
-#  ARCHCPUFLAGS     CPU-specific flags selecting the instruction set
-#                   FPU options, etc.
-#  ARCHOPTIMIZATION The optimization level that results in
-#                   reliable code generation.
-#
-
-ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
-  ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
-else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-    ARCHOPTIMIZATION += -Oz
-  else
-    ARCHOPTIMIZATION += -Os
-  endif
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -fno-strict-aliasing
-endif
-
-ifeq ($(CONFIG_FRAME_POINTER),y)
-  ARCHOPTIMIZATION += -fno-omit-frame-pointer -fno-optimize-sibling-calls
-else
-  ARCHOPTIMIZATION += -fomit-frame-pointer
-endif
-
-ifeq ($(CONFIG_STACK_CANARIES),y)
-  ARCHOPTIMIZATION += -fstack-protector-all
-endif
-
-ifeq ($(CONFIG_ARCH_COVERAGE_ALL),y)
-  ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage
-endif
-
-ifeq ($(CONFIG_ARMV8M_STACKCHECK),y)
-  ARCHOPTIMIZATION += -finstrument-functions -ffixed-r10
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_ALL),y)
-  ARCHOPTIMIZATION += $(CONFIG_MM_UBSAN_OPTION)
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_TRAP_ON_ERROR),y)
-  ARCHOPTIMIZATION += -fsanitize-undefined-trap-on-error
-endif
-
 # Parametrization for ARCHCPUFLAGS
 
 ifeq ($(CONFIG_ARCH_CORTEXM23),y)
@@ -139,7 +60,7 @@ endif
 
 # Clang Configuration files
 
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
 
   ifeq ($(CONFIG_ARCH_CORTEXM23),y)
     TOOLCHAIN_MARCH += --config armv8m.main_soft_nofp_nosys
@@ -165,140 +86,8 @@ ifeq ($(CONFIG_TOOLCHAIN),CLANG)
 
 endif
 
-# Link Time Optimization
-
-ifeq ($(CONFIG_LTO_THIN),y)
-  ARCHOPTIMIZATION += -flto=thin
-else ifeq ($(CONFIG_LTO_FULL),y)
-  ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-    ARCHOPTIMIZATION += -fuse-linker-plugin
-  endif
-endif
-
-# NuttX buildroot under Linux or Cygwin
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
-  CROSSDEV ?= arm-nuttx-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
-endif
-
-ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
-  CROSSDEV ?= arm-nuttx-elf-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-endif
-
-ifeq ($(CONFIG_MM_KASAN_ALL),y)
-  ARCHOPTIMIZATION += -fsanitize=kernel-address
-endif
-
-# Generic GNU EABI toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-  CROSSDEV ?= arm-none-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
-endif
-
-# Clang toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
-
-  CC      = clang
-  CXX     = clang++
-  CPP     = clang -E -P -x c
-  LD      = ld.lld -m armelf
-  STRIP   = llvm-strip --strip-unneeded
-  AR      = llvm-ar rcs
-  NM      = llvm-nm
-  OBJCOPY = llvm-objcopy
-  OBJDUMP = llvm-objdump
-
-  # Since the no_builtin attribute is not fully supported on Clang
-  # disable the built-in functions, refer:
-  # https://github.com/apache/incubator-nuttx/pull/5971
-
-  ARCHOPTIMIZATION += -fno-builtin
-
-# Default toolchain
-
-else
-  CC      = $(CROSSDEV)gcc
-  CXX     = $(CROSSDEV)g++
-  CPP     = $(CROSSDEV)gcc -E -P -x c
-  LD      = $(CROSSDEV)ld
-  STRIP   = $(CROSSDEV)strip --strip-unneeded
-  AR      = $(CROSSDEV)ar rcs
-  NM      = $(CROSSDEV)nm
-  OBJCOPY = $(CROSSDEV)objcopy
-  OBJDUMP = $(CROSSDEV)objdump
-
-  ifeq ($(CONFIG_LTO_FULL),y)
-    ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-      LD := $(CROSSDEV)gcc
-      AR := $(CROSSDEV)gcc-ar rcs
-      NM := $(CROSSDEV)gcc-nm
-      ARCHOPTIMIZATION += -fno-builtin
-    endif
-  endif
-endif
-
-# Architecture flags
-
-ARCHCFLAGS += -fno-common
-ARCHCXXFLAGS += -fno-common -nostdinc++
-
-ARCHCFLAGS += -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHCXXFLAGS += -Wall -Wshadow -Wundef
-
-ifneq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
-endif
-
-ifneq ($(CONFIG_CXX_RTTI),y)
-  ARCHCXXFLAGS += -fno-rtti
-endif
-
-LDFLAGS += -nostdlib
-
-# Optimization of unused sections
-
-ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
-  LDFLAGS          += --gc-sections
-  ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
-endif
-
-# Debug link map
-
-ifeq ($(CONFIG_DEBUG_LINK_MAP),y)
-  LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION += -g
-endif
-
-# Add the builtin library
-
-COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ifeq ($(wildcard $(COMPILER_RT_LIB)),)
-    # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
-    # then go ahead and try "--print-file-name"
-    COMPILER_RT_LIB := $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name $(notdir $(COMPILER_RT_LIB))))
-  endif
-endif
-
-EXTRA_LIBS += $(COMPILER_RT_LIB)
-
-ifneq ($(CONFIG_LIBM),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a))
-endif
-
-ifeq ($(CONFIG_LIBSUPCXX),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a))
+ifeq ($(CONFIG_ARMV8M_STACKCHECK),y)
+  ARCHOPTIMIZATION += -finstrument-functions -ffixed-r10
 endif
 
-ifeq ($(CONFIG_ARCH_COVERAGE),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libgcov.a))
-endif
+include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/common/Toolchain.defs
similarity index 73%
copy from arch/arm/src/armv6-m/Toolchain.defs
copy to arch/arm/src/common/Toolchain.defs
index 102f803219..29ad342faa 100644
--- a/arch/arm/src/armv6-m/Toolchain.defs
+++ b/arch/arm/src/common/Toolchain.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# arch/arm/src/armv6-m/Toolchain.defs
+# arch/arm/src/armv8-m/Toolchain.defs
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -18,39 +18,14 @@
 #
 ############################################################################
 
-# Setup for the selected toolchain
-
-#
-# Handle old-style chip-specific toolchain names in the absence of
-# a new-style toolchain specification, force the selection of a single
-# toolchain and allow the selected toolchain to be overridden by a
-# command-line selection.
-#
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_BUILDROOT)),y)
-  CONFIG_TOOLCHAIN ?= BUILDROOT
-endif
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_GNU_EABI)),y)
-  CONFIG_TOOLCHAIN ?= GNU_EABI
-endif
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_CLANG)),y)
-  CONFIG_TOOLCHAIN ?= CLANG
-endif
-
 #
 # Supported toolchains
 #
-# TODO - It's likely that all of these toolchains now support the
-#        CortexM0.  Since they are all GCC-based, we could almost
-#        certainly simplify this further.
-#
 # Each toolchain definition should set:
 #
 #  CROSSDEV         The GNU toolchain triple (command prefix)
 #  ARCHCPUFLAGS     CPU-specific flags selecting the instruction set
-#                   options, etc.
+#                   FPU options, etc.
 #  ARCHOPTIMIZATION The optimization level that results in
 #                   reliable code generation.
 #
@@ -58,7 +33,7 @@ endif
 ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
   ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
 else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
+  ifeq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),y)
     ARCHOPTIMIZATION += -Oz
   else
     ARCHOPTIMIZATION += -Os
@@ -83,15 +58,20 @@ ifeq ($(CONFIG_ARCH_COVERAGE_ALL),y)
   ARCHOPTIMIZATION += -fprofile-generate -ftest-coverage
 endif
 
-# Parametrization for ARCHCPUFLAGS
+ifeq ($(CONFIG_MM_UBSAN_ALL),y)
+  ARCHOPTIMIZATION += $(CONFIG_MM_UBSAN_OPTION)
+endif
 
-TOOLCHAIN_MTUNE  := -mcpu=cortex-m0 -mthumb
-TOOLCHAIN_MFLOAT := -mfloat-abi=soft
+ifeq ($(CONFIG_MM_UBSAN_TRAP_ON_ERROR),y)
+  ARCHOPTIMIZATION += -fsanitize-undefined-trap-on-error
+endif
 
-# Clang Configuration files
+ifeq ($(CONFIG_MM_KASAN_ALL),y)
+  ARCHOPTIMIZATION += -fsanitize=kernel-address
+endif
 
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  TOOLCHAIN_MARCH := --config armv6m_soft_nofp_nosys
+ifeq ($(CONFIG_ARM_THUMB),y)
+  ARCHOPTIMIZATION += -mthumb
 endif
 
 # Link Time Optimization
@@ -100,29 +80,40 @@ ifeq ($(CONFIG_LTO_THIN),y)
   ARCHOPTIMIZATION += -flto=thin
 else ifeq ($(CONFIG_LTO_FULL),y)
   ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
+  ifeq ($(CONFIG_ARM_TOOLCHAIN_GNU_EABI),y)
     ARCHOPTIMIZATION += -fuse-linker-plugin
   endif
 endif
 
 # NuttX buildroot under Linux or Cygwin
 
-ifeq ($(CONFIG_TOOLCHAIN),BUILDROOT)
-  CROSSDEV ?= arm-nuttx-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
+ifeq ($(CONFIG_ENDIAN_BIG),y)
+  ARCHCPUFLAGS += -mbig-endian
+  TARGET_ARCH := armeb
+else
+  ARCHCPUFLAGS += -mlittle-endian
+  TARGET_ARCH := arm
+endif
+
+ARCHCPUFLAGS += $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
+
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
+  CROSSDEV ?= $(TARGET_ARCH)-nuttx-eabi-
+endif
+
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
+  CROSSDEV ?= $(TARGET_ARCH)-nuttx-elf-
 endif
 
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
-  CROSSDEV ?= arm-none-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_GNU_EABI),y)
+  CROSSDEV ?= $(TARGET_ARCH)-none-eabi-
 endif
 
 # Clang toolchain
 
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
 
   CC      = clang
   CXX     = clang++
@@ -146,15 +137,15 @@ else
   CC      = $(CROSSDEV)gcc
   CXX     = $(CROSSDEV)g++
   CPP     = $(CROSSDEV)gcc -E -P -x c
-  STRIP   = $(CROSSDEV)strip --strip-unneeded
-  OBJCOPY = $(CROSSDEV)objcopy
-  OBJDUMP = $(CROSSDEV)objdump
   LD      = $(CROSSDEV)ld
+  STRIP   = $(CROSSDEV)strip --strip-unneeded
   AR      = $(CROSSDEV)ar rcs
   NM      = $(CROSSDEV)nm
+  OBJCOPY = $(CROSSDEV)objcopy
+  OBJDUMP = $(CROSSDEV)objdump
 
   ifeq ($(CONFIG_LTO_FULL),y)
-    ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
+    ifeq ($(CONFIG_ARM_TOOLCHAIN_GNU_EABI),y)
       LD := $(CROSSDEV)gcc
       AR := $(CROSSDEV)gcc-ar rcs
       NM := $(CROSSDEV)gcc-nm
@@ -163,25 +154,14 @@ else
   endif
 endif
 
-# Architecture flags
-
-ifeq ($(CONFIG_MM_KASAN_ALL),y)
-  ARCHOPTIMIZATION += -fsanitize=kernel-address
-endif
-
-ifeq ($(CONFIG_MM_UBSAN_ALL),y)
-  ARCHOPTIMIZATION += $(CONFIG_MM_UBSAN_OPTION)
+ifeq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),y)
+  ARCHOPTIMIZATION += -fshort-enums
 endif
 
-ifeq ($(CONFIG_MM_UBSAN_TRAP_ON_ERROR),y)
-  ARCHOPTIMIZATION += -fsanitize-undefined-trap-on-error
-endif
-
-ARCHCFLAGS += -fno-common
-ARCHCXXFLAGS += -fno-common -nostdinc++
+# Architecture flags
 
-ARCHCFLAGS += -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHCXXFLAGS += -Wall -Wshadow -Wundef
+ARCHCFLAGS += -Wstrict-prototypes
+ARCHCXXFLAGS += -nostdinc++
 
 ifneq ($(CONFIG_CXX_EXCEPTION),y)
   ARCHCXXFLAGS += -fno-exceptions -fcheck-new
@@ -191,6 +171,9 @@ ifneq ($(CONFIG_CXX_RTTI),y)
   ARCHCXXFLAGS += -fno-rtti
 endif
 
+ARCHOPTIMIZATION += -fno-common -Wall -Wshadow -Wundef
+ARCHOPTIMIZATION += -nostdlib
+
 LDFLAGS += -nostdlib
 
 # Optimization of unused sections
@@ -213,7 +196,7 @@ endif
 # Add the builtin library
 
 COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),y)
   ifeq ($(wildcard $(COMPILER_RT_LIB)),)
     # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
     # then go ahead and try "--print-file-name"
diff --git a/arch/arm/src/tlsr82/Toolchain.defs b/arch/arm/src/tlsr82/Toolchain.defs
index d4180df13c..410eae8aa9 100644
--- a/arch/arm/src/tlsr82/Toolchain.defs
+++ b/arch/arm/src/tlsr82/Toolchain.defs
@@ -18,182 +18,16 @@
 #
 ############################################################################
 
-# Setup for the selected toolchain
-
-#
-# Handle old-style chip-specific toolchain names in the absence of
-# a new-style toolchain specification, force the selection of a single
-# toolchain and allow the selected toolchain to be overridden by a
-# command-line selection.
-#
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_BUILDROOT)),y)
-  CONFIG_TOOLCHAIN ?= BUILDROOT
-endif
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_GNU_EABI)),y)
-  CONFIG_TOOLCHAIN ?= GNU_EABI
-endif
-
-ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_CLANG)),y)
-  CONFIG_TOOLCHAIN ?= CLANG
-endif
-
-#
-# Supported toolchains
-#
-# Each toolchain definition should set:
-#
-#  CROSSDEV         The GNU toolchain triple (command prefix)
-#  ARCHCPUFLAGS     CPU-specific flags selecting the instruction set
-#                   options, etc.
-#  ARCHOPTIMIZATION The optimization level that results in
-#                   reliable code generation.
-#
-
-ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
-  ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
-else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-    ARCHOPTIMIZATION += -Oz
-  else
-    ARCHOPTIMIZATION += -Os
-  endif
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -fno-strict-aliasing
-endif
-
-ifeq ($(CONFIG_FRAME_POINTER),y)
-  ARCHOPTIMIZATION += -fno-omit-frame-pointer -fno-optimize-sibling-calls
-else
-  ARCHOPTIMIZATION += -fomit-frame-pointer
-endif
-
-ifeq ($(CONFIG_STACK_CANARIES),y)
-  ARCHOPTIMIZATION += -fstack-protector-all
-endif
-
 # Clang Configuration files
 
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
   TOOLCHAIN_MARCH := --config armv6m_soft_nofp_nosys
 endif
 
-# Link Time Optimization
-
-ifeq ($(CONFIG_LTO_THIN),y)
-  ARCHOPTIMIZATION += -flto=thin
-else ifeq ($(CONFIG_LTO_FULL),y)
-  ARCHOPTIMIZATION += -flto
-endif
-
-# NuttX buildroot under Linux or Cygwin
-
-ifeq ($(CONFIG_TOOLCHAIN),BUILDROOT)
-  CROSSDEV ?= arm-nuttx-eabi-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-endif
-
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_GNU_EABI),y)
   CROSSDEV ?= tc32-elf-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-endif
-
-# Clang toolchain
-
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-
-  CC      = clang
-  CXX     = clang++
-  CPP     = clang -E -P -x c
-  LD      = ld.lld -m armelf
-  STRIP   = llvm-strip --strip-unneeded
-  AR      = llvm-ar rcs
-  NM      = llvm-nm
-  OBJCOPY = llvm-objcopy
-  OBJDUMP = llvm-objdump
-
-  # Since the no_builtin attribute is not fully supported on Clang
-  # disable the built-in functions, refer:
-  # https://github.com/apache/incubator-nuttx/pull/5971
-
-  ARCHOPTIMIZATION += -fno-builtin
-
-# Default toolchain
-
-else
-  CC      = $(CROSSDEV)gcc
-  CXX     = $(CROSSDEV)g++
-  CPP     = $(CROSSDEV)gcc -E -P -x c
-  LD      = $(CROSSDEV)ld
-  STRIP   = $(CROSSDEV)strip --strip-unneeded
-  AR      = $(CROSSDEV)ar rcs
-  NM      = $(CROSSDEV)nm
-  OBJCOPY = $(CROSSDEV)objcopy
-  OBJDUMP = $(CROSSDEV)objdump
-endif
-
-# Architecture flags
-
-ifeq ($(CONFIG_MM_KASAN_ALL),y)
-  ARCHOPTIMIZATION += -fsanitize=kernel-address
-endif
-
-ARCHCFLAGS += -fno-common
-ARCHCXXFLAGS += -fno-common -nostdinc++
-
-ARCHCFLAGS += -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHCXXFLAGS += -Wall -Wshadow -Wundef
-
-ifneq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
-endif
-
-ifneq ($(CONFIG_CXX_RTTI),y)
-  ARCHCXXFLAGS += -fno-rtti
 endif
 
-LDFLAGS += -nostdlib
-
-# Optimization of unused sections
-
-ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
-  LDFLAGS          += --gc-sections
-  ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
-endif
-
-# Debug link map
-
-ifeq ($(CONFIG_DEBUG_LINK_MAP),y)
-  LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION += -g
-endif
-
-# Add the builtin library
-
-COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_TOOLCHAIN),CLANG)
-  ifeq ($(wildcard $(COMPILER_RT_LIB)),)
-    # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
-    # then go ahead and try "--print-file-name"
-    COMPILER_RT_LIB := $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name $(notdir $(COMPILER_RT_LIB))))
-  endif
-endif
-
-EXTRA_LIBS += $(COMPILER_RT_LIB)
-
-ifneq ($(CONFIG_LIBM),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a))
-endif
-
-ifeq ($(CONFIG_LIBSUPCXX),y)
-  EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a))
-endif
+include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/boards/arm/eoss3/quickfeather/scripts/Make.defs b/boards/arm/eoss3/quickfeather/scripts/Make.defs
index 151f043d9f..a9a3a43921 100644
--- a/boards/arm/eoss3/quickfeather/scripts/Make.defs
+++ b/boards/arm/eoss3/quickfeather/scripts/Make.defs
@@ -27,7 +27,7 @@ ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
 
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 
-ifneq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
+ifneq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),y)
   ARCHCFLAGS += -funwind-tables
   ARCHCXXFLAGS += -funwind-tables
 endif
diff --git a/boards/arm/stm32/stm32f4discovery/scripts/Make.defs b/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
index de6e0fde6b..c309ae1a9f 100644
--- a/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
@@ -27,7 +27,7 @@ ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
 
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 
-ifneq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
+ifneq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),y)
   ARCHCFLAGS += -funwind-tables
   ARCHCXXFLAGS += -funwind-tables
 endif


[incubator-nuttx] 01/03: arch/arm/toolchain: migrate the toolchain define to arch/arm/Kconfig

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 0f0a94186fffddbdef6bfdc5112ae8d03137338a
Author: chao an <an...@xiaomi.com>
AuthorDate: Thu Sep 15 18:17:26 2022 +0800

    arch/arm/toolchain: migrate the toolchain define to arch/arm/Kconfig
    
    migrate the toolchain define to arch/arm/Kconfig to simplify new toolchain registration
    
    Signed-off-by: chao an <an...@xiaomi.com>
---
 README.md                                          |  2 +-
 arch/arm/Kconfig                                   | 38 ++++++++++++++++++++++
 arch/arm/src/arm/Kconfig                           | 28 ----------------
 arch/arm/src/arm/Toolchain.defs                    | 16 ++++-----
 arch/arm/src/armv6-m/Kconfig                       | 21 ------------
 arch/arm/src/armv6-m/Toolchain.defs                | 28 ++++++++--------
 arch/arm/src/armv7-a/Kconfig                       | 32 ------------------
 arch/arm/src/armv7-a/Toolchain.defs                | 20 ++++++------
 arch/arm/src/armv7-m/Kconfig                       | 36 --------------------
 arch/arm/src/armv7-m/Toolchain.defs                | 36 ++++++++++----------
 arch/arm/src/armv7-r/Kconfig                       | 32 ------------------
 arch/arm/src/armv7-r/Toolchain.defs                | 20 ++++++------
 arch/arm/src/armv8-m/Kconfig                       | 30 -----------------
 arch/arm/src/armv8-m/Toolchain.defs                | 36 ++++++++++----------
 arch/arm/src/tlsr82/Toolchain.defs                 | 24 +++++++-------
 arch/arm64/src/Toolchain.defs                      |  2 +-
 boards/arm/a1x/pcduino-a10/README.txt              |  2 +-
 boards/arm/am335x/beaglebone-black/README.txt      |  2 +-
 boards/arm/dm320/ntosd-dm320/README.txt            |  2 +-
 boards/arm/efm32/efm32-g8xx-stk/README.txt         |  2 +-
 boards/arm/efm32/efm32gg-stk3700/README.txt        |  2 +-
 .../arm/efm32/olimex-efm32g880f128-stk/README.txt  |  2 +-
 boards/arm/eoss3/quickfeather/scripts/Make.defs    |  2 +-
 boards/arm/imx6/sabre-6quad/README.txt             |  2 +-
 boards/arm/kinetis/freedom-k64f/README.txt         |  6 ++--
 boards/arm/kinetis/freedom-k66f/README.txt         |  6 ++--
 boards/arm/kinetis/kwikstik-k40/README.txt         |  4 +--
 .../kinetis/kwikstik-k40/configs/ostest/defconfig  |  3 +-
 boards/arm/kinetis/teensy-3.x/README.txt           |  4 +--
 boards/arm/kinetis/twr-k60n512/README.txt          |  4 +--
 .../arm/kinetis/twr-k60n512/configs/nsh/defconfig  |  3 +-
 boards/arm/kl/freedom-kl25z/README.txt             |  2 +-
 boards/arm/kl/freedom-kl26z/README.txt             |  2 +-
 boards/arm/lpc17xx_40xx/lincoln60/README.txt       |  2 +-
 boards/arm/lpc17xx_40xx/lpc4088-devkit/README.txt  |  6 ++--
 .../lpc4088-devkit/configs/knsh/defconfig          |  3 +-
 .../lpc4088-devkit/configs/nsh/defconfig           |  2 +-
 .../arm/lpc17xx_40xx/lpc4088-quickstart/README.txt | 10 +++---
 .../lpc4088-quickstart/configs/knsh/defconfig      |  3 +-
 .../lpc4088-quickstart/configs/nsh/defconfig       |  2 +-
 .../arm/lpc17xx_40xx/lpcxpresso-lpc1768/README.txt |  2 +-
 boards/arm/lpc17xx_40xx/lx_cpu/README.txt          |  4 +--
 .../arm/lpc17xx_40xx/mcb1700/configs/nsh/defconfig |  2 +-
 .../arm/lpc17xx_40xx/olimex-lpc1766stk/README.txt  | 14 ++++----
 .../olimex-lpc1766stk/configs/nettest/defconfig    |  3 +-
 .../olimex-lpc1766stk/configs/nsh/defconfig        |  3 +-
 .../olimex-lpc1766stk/configs/slip-httpd/defconfig |  2 +-
 .../configs/thttpd-nxflat/defconfig                |  2 +-
 .../olimex-lpc1766stk/configs/usbmsc/defconfig     |  2 +-
 .../olimex-lpc1766stk/configs/usbserial/defconfig  |  3 +-
 .../olimex-lpc1766stk/configs/zmodem/defconfig     |  3 +-
 boards/arm/lpc17xx_40xx/open1788/README.txt        | 10 +++---
 .../lpc17xx_40xx/open1788/configs/knsh/defconfig   |  3 +-
 .../lpc17xx_40xx/open1788/configs/nsh/defconfig    |  3 +-
 boards/arm/lpc17xx_40xx/zkit-arm-1769/README.txt   |  4 +--
 .../zkit-arm-1769/configs/hello/defconfig          |  3 +-
 .../zkit-arm-1769/configs/nsh/defconfig            |  3 +-
 .../zkit-arm-1769/configs/nxhello/defconfig        |  3 +-
 .../zkit-arm-1769/configs/thttpd/defconfig         |  3 +-
 boards/arm/lpc43xx/bambino-200e/README.txt         |  2 +-
 boards/arm/lpc43xx/lpc4330-xplorer/README.txt      |  4 +--
 boards/arm/lpc43xx/lpc4337-ws/README.txt           |  4 +--
 boards/arm/lpc43xx/lpc4357-evb/README.txt          |  4 +--
 boards/arm/lpc43xx/lpc4370-link2/README.txt        |  4 +--
 boards/arm/lpc54xx/lpcxpresso-lpc54628/README.txt  |  2 +-
 boards/arm/nuc1xx/nutiny-nuc120/README.txt         |  2 +-
 .../arm/nuc1xx/nutiny-nuc120/configs/nsh/defconfig |  2 +-
 boards/arm/sam34/arduino-due/README.txt            |  6 ++--
 boards/arm/sam34/arduino-due/configs/nsh/defconfig |  3 +-
 boards/arm/sam34/flipnclick-sam3x/README.txt       |  2 +-
 boards/arm/sam34/sam3u-ek/README.txt               |  6 ++--
 boards/arm/sam34/sam3u-ek/configs/knsh/defconfig   |  3 +-
 boards/arm/sam34/sam3u-ek/configs/nsh/defconfig    |  3 +-
 boards/arm/sam34/sam3u-ek/configs/nx/defconfig     |  3 +-
 boards/arm/sam34/sam3u-ek/configs/nxwm/defconfig   |  3 +-
 boards/arm/sam34/sam4e-ek/README.txt               |  6 ++--
 boards/arm/sam34/sam4e-ek/configs/usbnsh/defconfig |  2 +-
 boards/arm/sam34/sam4l-xplained/README.txt         |  6 ++--
 .../arm/sam34/sam4l-xplained/configs/nsh/defconfig |  3 +-
 boards/arm/sam34/sam4s-xplained-pro/README.txt     |  6 ++--
 boards/arm/sam34/sam4s-xplained/README.txt         |  6 ++--
 .../arm/sam34/sam4s-xplained/configs/nsh/defconfig |  3 +-
 boards/arm/sama5/giant-board/README.md             |  2 +-
 boards/arm/sama5/sama5d2-xult/README.txt           |  2 +-
 boards/arm/sama5/sama5d3-xplained/README.txt       | 10 +++---
 boards/arm/sama5/sama5d3x-ek/README.txt            | 12 +++----
 boards/arm/sama5/sama5d4-ek/README.txt             | 18 +++++-----
 boards/arm/samd2l2/samd20-xplained/README.txt      |  6 ++--
 boards/arm/samd2l2/samd21-xplained/README.txt      |  2 +-
 boards/arm/samd2l2/saml21-xplained/README.txt      |  8 ++---
 boards/arm/samv7/same70-qmtech/README.txt          |  2 +-
 boards/arm/samv7/same70-xplained/README.txt        |  2 +-
 boards/arm/samv7/samv71-xult/README.txt            |  2 +-
 boards/arm/stm32/clicker2-stm32/README.txt         |  2 +-
 boards/arm/stm32/cloudctrl/README.txt              |  2 +-
 boards/arm/stm32/hymini-stm32v/README.txt          |  2 +-
 boards/arm/stm32/mikroe-stm32f4/README.txt         |  4 +--
 boards/arm/stm32/nucleo-f446re/README.txt          |  2 +-
 boards/arm/stm32/nucleo-f4x1re/README.txt          |  2 +-
 .../olimex-stm32-e407/configs/discover/defconfig   |  2 +-
 .../olimex-stm32-e407/configs/netnsh/defconfig     |  2 +-
 .../olimex-stm32-e407/configs/telnetd/defconfig    |  2 +-
 .../olimex-stm32-e407/configs/webserver/defconfig  |  2 +-
 .../olimex-stm32-h405/configs/usbnsh/defconfig     |  2 +-
 .../stm32/olimex-stm32-p207/configs/nsh/defconfig  |  2 +-
 boards/arm/stm32/shenzhou/README.txt               |  2 +-
 boards/arm/stm32/shenzhou/configs/thttpd/defconfig |  2 +-
 boards/arm/stm32/stm3210e-eval/README.txt          | 10 +++---
 .../arm/stm32/stm3210e-eval/configs/nsh/defconfig  |  2 +-
 .../stm32/stm3210e-eval/configs/usbmsc/defconfig   |  2 +-
 .../stm3210e-eval/configs/usbserial/defconfig      |  3 +-
 boards/arm/stm32/stm3220g-eval/README.txt          |  8 ++---
 boards/arm/stm32/stm3240g-eval/README.txt          | 14 ++++----
 .../stm32/stm3240g-eval/configs/knxwm/defconfig    |  2 +-
 boards/arm/stm32/stm32_tiny/README.txt             |  4 +--
 boards/arm/stm32/stm32_tiny/configs/nsh/defconfig  |  2 +-
 .../stm32/stm32butterfly2/configs/nsh/defconfig    |  2 +-
 .../stm32/stm32butterfly2/configs/nshnet/defconfig |  2 +-
 .../stm32butterfly2/configs/nshusbdev/defconfig    |  2 +-
 .../stm32butterfly2/configs/nshusbhost/defconfig   |  2 +-
 boards/arm/stm32/stm32f103-minimum/README.txt      |  2 +-
 .../stm32/stm32f334-disco/configs/nsh/defconfig    |  2 +-
 .../stm32f334-disco/configs/powerled/defconfig     |  2 +-
 boards/arm/stm32/stm32f3discovery/README.txt       |  4 +--
 boards/arm/stm32/stm32f429i-disco/README.txt       |  2 +-
 boards/arm/stm32/stm32f4discovery/README.txt       | 16 ++++-----
 .../arm/stm32/stm32f4discovery/scripts/Make.defs   |  2 +-
 boards/arm/stm32/stm32ldiscovery/README.txt        |  2 +-
 boards/arm/stm32/stm32vldiscovery/README.txt       |  2 +-
 boards/arm/stm32/viewtool-stm32f107/README.txt     |  6 ++--
 boards/arm/stm32f0l0g0/nucleo-f072rb/README.txt    |  2 +-
 boards/arm/stm32f0l0g0/nucleo-f091rc/README.txt    |  2 +-
 boards/arm/stm32f7/nucleo-144/README.txt           |  4 +--
 boards/arm/stm32f7/stm32f746g-disco/README.txt     |  2 +-
 boards/arm/stm32l4/b-l475e-iot01a/README.txt       |  2 +-
 boards/arm/stm32l4/nucleo-l432kc/README.txt        |  2 +-
 boards/arm/stm32l4/nucleo-l452re/README.txt        |  2 +-
 boards/arm/stm32l4/nucleo-l476rg/README.txt        |  2 +-
 boards/arm/stm32l4/nucleo-l496zg/README.txt        |  2 +-
 boards/arm/stm32l4/stm32l476vg-disco/README.txt    |  2 +-
 boards/arm/stm32l4/stm32l4r9ai-disco/README.txt    |  2 +-
 boards/arm/stm32l5/nucleo-l552ze/README.txt        |  2 +-
 boards/arm/stm32l5/stm32l562e-dk/README.txt        |  2 +-
 boards/arm/stm32u5/b-u585i-iot02a/README.txt       |  2 +-
 boards/arm/tiva/dk-tm4c129x/README.txt             |  2 +-
 boards/arm/tiva/eagle100/README.txt                |  6 ++--
 boards/arm/tiva/eagle100/configs/thttpd/defconfig  |  2 +-
 boards/arm/tiva/ekk-lm3s9b96/configs/nsh/defconfig |  3 +-
 boards/arm/tiva/lm3s6965-ek/README.txt             | 12 +++----
 boards/arm/tiva/lm3s6965-ek/configs/nsh/defconfig  |  3 +-
 boards/arm/tiva/lm3s6965-ek/configs/nx/defconfig   |  3 +-
 .../tiva/lm3s6965-ek/configs/qemu-nxflat/defconfig |  2 +-
 boards/arm/tiva/lm3s8962-ek/README.txt             |  4 +--
 boards/arm/tiva/lm3s8962-ek/configs/nsh/defconfig  |  2 +-
 boards/arm/tiva/lm3s8962-ek/configs/nx/defconfig   |  2 +-
 boards/arm/tiva/lm4f120-launchpad/README.txt       |  2 +-
 .../tiva/lm4f120-launchpad/configs/nsh/defconfig   |  3 +-
 boards/arm/tiva/tm4c123g-launchpad/README.txt      |  2 +-
 .../tiva/tm4c123g-launchpad/configs/nsh/defconfig  |  3 +-
 boards/arm/tiva/tm4c1294-launchpad/README.txt      |  2 +-
 boards/arm/tiva/tm4c129e-launchpad/README.txt      |  2 +-
 boards/arm/tms570/launchxl-tms57004/README.txt     |  4 +--
 .../tms570/launchxl-tms57004/configs/nsh/defconfig |  2 +-
 boards/arm/xmc4/xmc4500-relax/README.txt           |  2 +-
 tools/ci/testlist/arm-01.dat                       |  4 +--
 tools/ci/testlist/arm-02.dat                       |  2 +-
 tools/ci/testlist/arm-03.dat                       |  2 +-
 tools/ci/testlist/arm-04.dat                       | 12 +++----
 tools/ci/testlist/arm-05.dat                       |  6 ++--
 tools/ci/testlist/arm-06.dat                       |  8 ++---
 tools/ci/testlist/arm-07.dat                       |  8 ++---
 tools/ci/testlist/arm-08.dat                       | 10 +++---
 tools/ci/testlist/arm-09.dat                       | 14 ++++----
 tools/ci/testlist/arm-10.dat                       | 16 ++++-----
 tools/ci/testlist/arm-11.dat                       |  8 ++---
 tools/ci/testlist/arm-12.dat                       |  4 +--
 tools/ci/testlist/arm-13.dat                       |  6 ++--
 tools/ci/testlist/macos.dat                        |  2 +-
 178 files changed, 427 insertions(+), 595 deletions(-)

diff --git a/README.md b/README.md
index 04c1b6ae1c..7404d4f501 100644
--- a/README.md
+++ b/README.md
@@ -1402,7 +1402,7 @@ damage your configuration (see
   toolchains.  If you are using the older OABI toolchain the prefix for
   the tools will be `arm-nuttx-elf-`; for the EABI toolchain the prefix will
   be `arm-nuttx-eabi-`. If you are using the older OABI toolchain with
-  an ARM Cortex-M3/4, you will need to set CONFIG_ARMV7M_OABI_TOOLCHAIN
+  an ARM Cortex-M3/4, you will need to set CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI
   in the `.config` file in order to pick the right tool prefix.
 
   If the make system ever picks the wrong prefix for your toolchain, you
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c6474c937f..c54e25f61b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -6,6 +6,44 @@
 if ARCH_ARM
 comment "ARM Options"
 
+choice
+	prompt "Toolchain Selection"
+	default ARM_TOOLCHAIN_GNU_EABI
+
+config ARM_TOOLCHAIN_IAR
+	bool "IAR ANSI C/C++ toolchain"
+	select CYGWIN_WINTOOL if WINDOWS_CYGWIN
+
+config ARM_TOOLCHAIN_BUILDROOT
+	bool "Buildroot (Cygwin or Linux)"
+	depends on !WINDOWS_NATIVE
+	select ARCH_TOOLCHAIN_GNU
+
+config ARM_TOOLCHAIN_BUILDROOT_OABI
+	bool "OABI (vs EABI)"
+	depends on !WINDOWS_NATIVE
+	select ARCH_TOOLCHAIN_GNU
+	---help---
+		Most of the older buildroot toolchains are OABI
+
+config ARM_TOOLCHAIN_GNU_EABI
+	bool "Generic GNU EABI toolchain"
+	select ARCH_TOOLCHAIN_GNU
+	---help---
+		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
+
+config ARM_TOOLCHAIN_GNU_OABI
+	bool "Generic GNU OABI toolchain"
+	select ARCH_TOOLCHAIN_GNU
+	---help---
+		This option should work for any GNU toolchain.
+
+config ARM_TOOLCHAIN_CLANG
+	bool "Generic Clang toolchain"
+	select ARCH_TOOLCHAIN_CLANG
+
+endchoice
+
 choice
 	prompt "ARM MCU selection"
 	default ARCH_CHIP_STM32
diff --git a/arch/arm/src/arm/Kconfig b/arch/arm/src/arm/Kconfig
index 39547f4d8d..585051c53a 100644
--- a/arch/arm/src/arm/Kconfig
+++ b/arch/arm/src/arm/Kconfig
@@ -4,31 +4,3 @@
 #
 
 comment "ARM Configuration Options"
-
-choice
-	prompt "Toolchain Selection"
-	default ARM_TOOLCHAIN_GNU_EABI
-
-config ARM_TOOLCHAIN_BUILDROOT
-	bool "Buildroot (Cygwin or Linux)"
-	depends on !WINDOWS_NATIVE
-
-config ARM_TOOLCHAIN_GNU_EABI
-	bool "Generic GNU EABI toolchain"
-	---help---
-		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
-		configured for arm-none-eabi-.
-
-config ARM_TOOLCHAIN_GNU_OABI
-	bool "Generic GNU OABI toolchain"
-	---help---
-		This option should work for any GNU toolchain configured for arm-elf-.
-
-endchoice
-
-config ARM_OABI_TOOLCHAIN
-	bool "OABI (vs EABI)"
-	default n
-	depends on ARM_TOOLCHAIN_BUILDROOT
-	---help---
-		Most of the older buildroot toolchains are OABI and are named arm-nuttx-elf- vs. arm-nuttx-eabi-
diff --git a/arch/arm/src/arm/Toolchain.defs b/arch/arm/src/arm/Toolchain.defs
index 592cfadb03..702990b5ce 100644
--- a/arch/arm/src/arm/Toolchain.defs
+++ b/arch/arm/src/arm/Toolchain.defs
@@ -30,13 +30,13 @@
 ifeq ($(filter y, \
       $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
     ),y)
-  CONFIG_ARM_TOOLCHAIN ?= BUILDROOT
+  CONFIG_TOOLCHAIN ?= BUILDROOT
 endif
 
 ifeq ($(filter y, \
       $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
     ),y)
-  CONFIG_ARM_TOOLCHAIN ?= GNU_EABI
+  CONFIG_TOOLCHAIN ?= GNU_EABI
 endif
 
 #
@@ -93,17 +93,17 @@ endif
 
 # NuttX buildroot under Linux or Cygwin
 
-ifeq ($(CONFIG_ARM_TOOLCHAIN),BUILDROOT)
-ifeq ($(CONFIG_ARM_OABI_TOOLCHAIN),y)
-  CROSSDEV ?= arm-nuttx-elf-
-else
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
   CROSSDEV ?= arm-nuttx-eabi-
 endif
+
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
+  CROSSDEV ?= arm-nuttx-elf-
 endif
 
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_ARM_TOOLCHAIN),GNU_EABI)
+ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= arm-none-eabi-
 endif
 
@@ -156,7 +156,7 @@ NM      = $(CROSSDEV)nm
 
 ifeq ($(CONFIG_LTO_FULL),y)
   ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_ARM_TOOLCHAIN),GNU_EABI)
+  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
     LD := $(CROSSDEV)gcc
     AR := $(CROSSDEV)gcc-ar rcs
     NM := $(CROSSDEV)gcc-nm
diff --git a/arch/arm/src/armv6-m/Kconfig b/arch/arm/src/armv6-m/Kconfig
index 5268d48c73..15c7f0bbd9 100644
--- a/arch/arm/src/armv6-m/Kconfig
+++ b/arch/arm/src/armv6-m/Kconfig
@@ -4,24 +4,3 @@
 #
 
 comment "ARMv6-M Configuration Options"
-
-choice
-	prompt "Toolchain Selection"
-	default ARMV6M_TOOLCHAIN_GNU_EABI
-
-config ARMV6M_TOOLCHAIN_BUILDROOT
-	bool "Buildroot (Cygwin or Linux)"
-	select ARCH_TOOLCHAIN_GNU
-
-config ARMV6M_TOOLCHAIN_GNU_EABI
-	bool "Generic GNU EABI toolchain"
-	select ARCH_TOOLCHAIN_GNU
-	---help---
-		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
-		configured for arm-none-eabi.
-
-config ARMV6M_TOOLCHAIN_CLANG
-	bool "Generic Clang toolchain"
-	select ARCH_TOOLCHAIN_CLANG
-
-endchoice
diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs
index 80d43368bd..102f803219 100644
--- a/arch/arm/src/armv6-m/Toolchain.defs
+++ b/arch/arm/src/armv6-m/Toolchain.defs
@@ -27,16 +27,16 @@
 # command-line selection.
 #
 
-ifeq ($(filter y, $(CONFIG_ARMV6M_TOOLCHAIN_BUILDROOT)),y)
-  CONFIG_ARMV6M_TOOLCHAIN ?= BUILDROOT
+ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_BUILDROOT)),y)
+  CONFIG_TOOLCHAIN ?= BUILDROOT
 endif
 
-ifeq ($(filter y, $(CONFIG_ARMV6M_TOOLCHAIN_GNU_EABI)),y)
-  CONFIG_ARMV6M_TOOLCHAIN ?= GNU_EABI
+ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_GNU_EABI)),y)
+  CONFIG_TOOLCHAIN ?= GNU_EABI
 endif
 
-ifeq ($(filter y, $(CONFIG_ARMV6M_TOOLCHAIN_CLANG)),y)
-  CONFIG_ARMV6M_TOOLCHAIN ?= CLANG
+ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_CLANG)),y)
+  CONFIG_TOOLCHAIN ?= CLANG
 endif
 
 #
@@ -58,7 +58,7 @@ endif
 ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
   ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
 else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CLANG)
+  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
     ARCHOPTIMIZATION += -Oz
   else
     ARCHOPTIMIZATION += -Os
@@ -90,7 +90,7 @@ TOOLCHAIN_MFLOAT := -mfloat-abi=soft
 
 # Clang Configuration files
 
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   TOOLCHAIN_MARCH := --config armv6m_soft_nofp_nosys
 endif
 
@@ -100,28 +100,28 @@ ifeq ($(CONFIG_LTO_THIN),y)
   ARCHOPTIMIZATION += -flto=thin
 else ifeq ($(CONFIG_LTO_FULL),y)
   ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),GNU_EABI)
+  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
     ARCHOPTIMIZATION += -fuse-linker-plugin
   endif
 endif
 
 # NuttX buildroot under Linux or Cygwin
 
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),BUILDROOT)
+ifeq ($(CONFIG_TOOLCHAIN),BUILDROOT)
   CROSSDEV ?= arm-nuttx-eabi-
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 endif
 
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),GNU_EABI)
+ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= arm-none-eabi-
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 endif
 
 # Clang toolchain
 
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 
   CC      = clang
@@ -154,7 +154,7 @@ else
   NM      = $(CROSSDEV)nm
 
   ifeq ($(CONFIG_LTO_FULL),y)
-    ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),GNU_EABI)
+    ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
       LD := $(CROSSDEV)gcc
       AR := $(CROSSDEV)gcc-ar rcs
       NM := $(CROSSDEV)gcc-nm
@@ -213,7 +213,7 @@ endif
 # Add the builtin library
 
 COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   ifeq ($(wildcard $(COMPILER_RT_LIB)),)
     # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
     # then go ahead and try "--print-file-name"
diff --git a/arch/arm/src/armv7-a/Kconfig b/arch/arm/src/armv7-a/Kconfig
index 9f68fc3cfc..0b265084c7 100644
--- a/arch/arm/src/armv7-a/Kconfig
+++ b/arch/arm/src/armv7-a/Kconfig
@@ -126,38 +126,6 @@ endif # ARCH_L2CACHE
 endmenu # L2 Cache Configuration
 endif # ARMV7A_HAVE_L2CC
 
-choice
-	prompt "Toolchain Selection"
-	default ARMV7A_TOOLCHAIN_GNU_EABI
-
-config ARMV7A_TOOLCHAIN_BUILDROOT
-	bool "Buildroot (Cygwin or Linux)"
-	select ARCH_TOOLCHAIN_GNU
-	depends on !WINDOWS_NATIVE
-
-config ARMV7A_TOOLCHAIN_GNU_EABI
-	bool "Generic GNU EABI toolchain"
-	select ARCH_TOOLCHAIN_GNU
-	---help---
-		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
-		configured for arm-none-eabi-.
-
-config ARMV7A_TOOLCHAIN_GNU_OABI
-	bool "Generic GNU OABI toolchain"
-	select ARCH_TOOLCHAIN_GNU
-	---help---
-		This option should work for any GNU toolchain configured for arm-elf-.
-
-endchoice # Toolchain Selection
-
-config ARMV7A_OABI_TOOLCHAIN
-	bool "OABI (vs EABI)"
-	default n
-	depends on ARMV7A_TOOLCHAIN_BUILDROOT
-	---help---
-		Most of the older buildroot toolchains are OABI and are named
-		arm-nuttx-elf- vs. arm-nuttx-eabi-
-
 config ARMV7A_DECODEFIQ
 	bool "FIQ Handler"
 	default n
diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs
index 73a0cd0b89..9cb0273223 100644
--- a/arch/arm/src/armv7-a/Toolchain.defs
+++ b/arch/arm/src/armv7-a/Toolchain.defs
@@ -26,15 +26,15 @@
 #
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV7A_TOOLCHAIN_BUILDROOT) \
+      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
     ),y)
-  CONFIG_ARMV7A_TOOLCHAIN ?= BUILDROOT
+  CONFIG_TOOLCHAIN ?= BUILDROOT
 endif
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI) \
+      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
     ),y)
-  CONFIG_ARMV7A_TOOLCHAIN ?= GNU_EABI
+  CONFIG_TOOLCHAIN ?= GNU_EABI
 endif
 
 #
@@ -173,17 +173,17 @@ endif
 
 # NuttX buildroot under Linux or Cygwin
 
-ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),BUILDROOT)
-ifeq ($(CONFIG_ARMV7A_OABI_TOOLCHAIN),y)
-  CROSSDEV ?= $(TARGET_ARCH)-nuttx-elf-
-else
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
   CROSSDEV ?= $(TARGET_ARCH)-nuttx-eabi-
 endif
+
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
+  CROSSDEV ?= $(TARGET_ARCH)-nuttx-elf-
 endif
 
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),GNU_EABI)
+ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= $(TARGET_ARCH)-none-eabi-
 endif
 
@@ -203,7 +203,7 @@ NM      = $(CROSSDEV)nm
 
 ifeq ($(CONFIG_LTO_FULL),y)
   ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),GNU_EABI)
+  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
     LD := $(CROSSDEV)gcc
     AR := $(CROSSDEV)gcc-ar rcs
     NM := $(CROSSDEV)gcc-nm
diff --git a/arch/arm/src/armv7-m/Kconfig b/arch/arm/src/armv7-m/Kconfig
index fb401a64ff..5dc99f3e00 100644
--- a/arch/arm/src/armv7-m/Kconfig
+++ b/arch/arm/src/armv7-m/Kconfig
@@ -86,42 +86,6 @@ config ARMV7M_DTCM
 	default n
 	depends on ARMV7M_HAVE_DTCM
 
-choice
-	prompt "Toolchain Selection"
-	default ARMV7M_TOOLCHAIN_GNU_EABI
-
-config ARMV7M_TOOLCHAIN_IAR
-	bool "IAR ANSI C/C++ toolchain"
-	select CYGWIN_WINTOOL if WINDOWS_CYGWIN
-	select ARCH_TOOLCHAIN_IAR
-
-config ARMV7M_TOOLCHAIN_BUILDROOT
-	bool "Buildroot (Cygwin or Linux)"
-	depends on !WINDOWS_NATIVE
-	select ARCH_TOOLCHAIN_GNU
-
-config ARMV7M_TOOLCHAIN_GNU_EABI
-	bool "Generic GNU EABI toolchain"
-	select CYGWIN_WINTOOL if WINDOWS_CYGWIN
-	select ARCH_TOOLCHAIN_GNU
-	---help---
-		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
-		configured for arm-none-eabi.
-
-config ARMV7M_TOOLCHAIN_CLANG
-	bool "Generic Clang toolchain"
-	select ARCH_TOOLCHAIN_CLANG
-
-endchoice
-
-config ARMV7M_OABI_TOOLCHAIN
-	bool "OABI (vs EABI)"
-	default n
-	depends on ARMV7M_TOOLCHAIN_BUILDROOT
-	---help---
-		Most of the older buildroot toolchains are OABI and are named
-		arm-nuttx-elf- vs. arm-nuttx-eabi-
-
 config ARMV7M_TARGET2_PREL
 	bool "R_ARM_TARGET2 is PC relative"
 	default n if !CXX_EXCEPTION
diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs
index e769a348d8..5e7f6c63b5 100644
--- a/arch/arm/src/armv7-m/Toolchain.defs
+++ b/arch/arm/src/armv7-m/Toolchain.defs
@@ -28,21 +28,21 @@
 #
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT) \
+      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
     ),y)
-  CONFIG_ARMV7M_TOOLCHAIN ?= BUILDROOT
+  CONFIG_TOOLCHAIN ?= BUILDROOT
 endif
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI) \
+      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
     ),y)
-  CONFIG_ARMV7M_TOOLCHAIN ?= GNU_EABI
+  CONFIG_TOOLCHAIN ?= GNU_EABI
 endif
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV7M_TOOLCHAIN_CLANG) \
+      $(CONFIG_ARM_TOOLCHAIN_CLANG) \
     ),y)
-  CONFIG_ARMV7M_TOOLCHAIN ?= CLANG
+  CONFIG_TOOLCHAIN ?= CLANG
 endif
 
 #
@@ -60,7 +60,7 @@ endif
 ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
   ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
 else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CLANG)
+  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
     ARCHOPTIMIZATION += -Oz
   else
     ARCHOPTIMIZATION += -Os
@@ -136,7 +136,7 @@ endif
 
 # Clang Configuration files
 
-ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
 
   ifeq ($(CONFIG_ARCH_CORTEXM4),y)
     ifeq ($(CONFIG_ARCH_FPU),y)
@@ -162,21 +162,21 @@ ifeq ($(CONFIG_LTO_THIN),y)
   ARCHOPTIMIZATION += -flto=thin
 else ifeq ($(CONFIG_LTO_FULL),y)
   ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),GNU_EABI)
+  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
     ARCHOPTIMIZATION += -fuse-linker-plugin
   endif
 endif
 
 # NuttX buildroot under Linux or Cygwin
 
-ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),BUILDROOT)
-ifeq ($(CONFIG_ARMV7M_OABI_TOOLCHAIN),y)
-  CROSSDEV ?= arm-nuttx-elf-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-else
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
   CROSSDEV ?= arm-nuttx-eabi-
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
 endif
+
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
+  CROSSDEV ?= arm-nuttx-elf-
+  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 endif
 
 ifeq ($(CONFIG_MM_KASAN_ALL),y)
@@ -185,14 +185,14 @@ endif
 
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),GNU_EABI)
+ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= arm-none-eabi-
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
 endif
 
 # Clang toolchain
 
-ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 
   CC      = clang
@@ -225,7 +225,7 @@ else
   NM      = $(CROSSDEV)nm
 
   ifeq ($(CONFIG_LTO_FULL),y)
-    ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),GNU_EABI)
+    ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
       LD := $(CROSSDEV)gcc
       AR := $(CROSSDEV)gcc-ar rcs
       NM := $(CROSSDEV)gcc-nm
@@ -272,7 +272,7 @@ endif
 # Add the builtin library
 
 COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   ifeq ($(wildcard $(COMPILER_RT_LIB)),)
     # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
     # then go ahead and try "--print-file-name"
diff --git a/arch/arm/src/armv7-r/Kconfig b/arch/arm/src/armv7-r/Kconfig
index f356526ac1..a000887538 100644
--- a/arch/arm/src/armv7-r/Kconfig
+++ b/arch/arm/src/armv7-r/Kconfig
@@ -133,38 +133,6 @@ endif # ARCH_L2CACHE
 endmenu # L2 Cache Configuration
 endif # ARMV7R_HAVE_L2CC
 
-choice
-	prompt "Toolchain Selection"
-	default ARMV7R_TOOLCHAIN_GNU_EABI
-
-config ARMV7R_TOOLCHAIN_BUILDROOT
-	bool "Buildroot (Cygwin or Linux)"
-	select ARCH_TOOLCHAIN_GNU
-	depends on !WINDOWS_NATIVE
-
-config ARMV7R_TOOLCHAIN_GNU_EABI
-	bool "Generic GNU EABI toolchain"
-	select ARCH_TOOLCHAIN_GNU
-	---help---
-		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
-		configured for arm-none-eabi-.
-
-config ARMV7R_TOOLCHAIN_GNU_OABI
-	bool "Generic GNU OABI toolchain"
-	select ARCH_TOOLCHAIN_GNU
-	---help---
-		This option should work for any GNU toolchain configured for arm-elf-.
-
-endchoice # Toolchain Selection
-
-config ARMV7R_OABI_TOOLCHAIN
-	bool "OABI (vs EABI)"
-	default n
-	depends on ARMV7R_TOOLCHAIN_BUILDROOT
-	---help---
-		Most of the older buildroot toolchains are OABI and are named
-		arm-nuttx-elf- vs. arm-nuttx-eabi-
-
 config ARMV7R_HAVE_DECODEFIQ
 	bool
 	default n
diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs
index 978b1b2143..627f50556d 100644
--- a/arch/arm/src/armv7-r/Toolchain.defs
+++ b/arch/arm/src/armv7-r/Toolchain.defs
@@ -26,15 +26,15 @@
 #
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV7R_TOOLCHAIN_BUILDROOT) \
+      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
     ),y)
-  CONFIG_ARMV7R_TOOLCHAIN ?= BUILDROOT
+  CONFIG_TOOLCHAIN ?= BUILDROOT
 endif
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV7R_TOOLCHAIN_GNU_EABI) \
+      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
     ),y)
-  CONFIG_ARMV7R_TOOLCHAIN ?= GNU_EABI
+  CONFIG_TOOLCHAIN ?= GNU_EABI
 endif
 
 #
@@ -116,17 +116,17 @@ endif
 
 # NuttX buildroot under Linux or Cygwin
 
-ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),BUILDROOT)
-ifeq ($(CONFIG_ARMV7R_OABI_TOOLCHAIN),y)
-  CROSSDEV ?= $(TARGET_ARCH)-nuttx-elf-
-else
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
   CROSSDEV ?= $(TARGET_ARCH)-nuttx-eabi-
 endif
+
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
+  CROSSDEV ?= $(TARGET_ARCH)-nuttx-elf-
 endif
 
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),GNU_EABI)
+ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= $(TARGET_ARCH)-none-eabi-
 endif
 
@@ -179,7 +179,7 @@ NM      = $(CROSSDEV)nm
 
 ifeq ($(CONFIG_LTO_FULL),y)
   ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),GNU_EABI)
+  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
     LD := $(CROSSDEV)gcc
     AR := $(CROSSDEV)gcc-ar rcs
     NM := $(CROSSDEV)gcc-nm
diff --git a/arch/arm/src/armv8-m/Kconfig b/arch/arm/src/armv8-m/Kconfig
index 82ba9d60d4..c6c77cfc2a 100644
--- a/arch/arm/src/armv8-m/Kconfig
+++ b/arch/arm/src/armv8-m/Kconfig
@@ -67,36 +67,6 @@ config ARMV8M_DTCM
 	default n
 	depends on ARMV8M_HAVE_DTCM
 
-choice
-	prompt "Toolchain Selection"
-	default ARMV8M_TOOLCHAIN_GNU_EABI
-
-config ARMV8M_TOOLCHAIN_BUILDROOT
-	bool "Buildroot (Cygwin or Linux)"
-	depends on !WINDOWS_NATIVE
-	select ARCH_TOOLCHAIN_GNU
-
-config ARMV8M_TOOLCHAIN_GNU_EABI
-	bool "Generic GNU EABI toolchain"
-	select ARCH_TOOLCHAIN_GNU
-	---help---
-		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
-		configured for arm-none-eabi.
-
-config ARMV8M_TOOLCHAIN_CLANG
-	bool "Generic Clang toolchain"
-	select ARCH_TOOLCHAIN_CLANG
-
-endchoice
-
-config ARMV8M_OABI_TOOLCHAIN
-	bool "OABI (vs EABI)"
-	default n
-	depends on ARMV8M_TOOLCHAIN_BUILDROOT
-	---help---
-		Most of the older buildroot toolchains are OABI and are named
-		arm-nuttx-elf- vs. arm-nuttx-eabi-
-
 config ARMV8M_TARGET2_PREL
 	bool "R_ARM_TARGET2 is PC relative"
 	default n if !CXX_EXCEPTION
diff --git a/arch/arm/src/armv8-m/Toolchain.defs b/arch/arm/src/armv8-m/Toolchain.defs
index 67989a43cd..cd228683ba 100644
--- a/arch/arm/src/armv8-m/Toolchain.defs
+++ b/arch/arm/src/armv8-m/Toolchain.defs
@@ -28,21 +28,21 @@
 #
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV8M_TOOLCHAIN_BUILDROOT) \
+      $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \
     ),y)
-  CONFIG_ARMV8M_TOOLCHAIN ?= BUILDROOT
+  CONFIG_TOOLCHAIN ?= BUILDROOT
 endif
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV8M_TOOLCHAIN_GNU_EABI) \
+      $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \
     ),y)
-  CONFIG_ARMV8M_TOOLCHAIN ?= GNU_EABI
+  CONFIG_TOOLCHAIN ?= GNU_EABI
 endif
 
 ifeq ($(filter y, \
-      $(CONFIG_ARMV8M_TOOLCHAIN_CLANG) \
+      $(CONFIG_ARM_TOOLCHAIN_CLANG) \
     ),y)
-  CONFIG_ARMV8M_TOOLCHAIN ?= CLANG
+  CONFIG_TOOLCHAIN ?= CLANG
 endif
 
 #
@@ -60,7 +60,7 @@ endif
 ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
   ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
 else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),CLANG)
+  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
     ARCHOPTIMIZATION += -Oz
   else
     ARCHOPTIMIZATION += -Os
@@ -139,7 +139,7 @@ endif
 
 # Clang Configuration files
 
-ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
 
   ifeq ($(CONFIG_ARCH_CORTEXM23),y)
     TOOLCHAIN_MARCH += --config armv8m.main_soft_nofp_nosys
@@ -171,21 +171,21 @@ ifeq ($(CONFIG_LTO_THIN),y)
   ARCHOPTIMIZATION += -flto=thin
 else ifeq ($(CONFIG_LTO_FULL),y)
   ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),GNU_EABI)
+  ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
     ARCHOPTIMIZATION += -fuse-linker-plugin
   endif
 endif
 
 # NuttX buildroot under Linux or Cygwin
 
-ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),BUILDROOT)
-ifeq ($(CONFIG_ARMV8M_OABI_TOOLCHAIN),y)
-  CROSSDEV ?= arm-nuttx-elf-
-  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
-else
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT),y)
   CROSSDEV ?= arm-nuttx-eabi-
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
 endif
+
+ifeq ($(CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI),y)
+  CROSSDEV ?= arm-nuttx-elf-
+  ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 endif
 
 ifeq ($(CONFIG_MM_KASAN_ALL),y)
@@ -194,14 +194,14 @@ endif
 
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),GNU_EABI)
+ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= arm-none-eabi-
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
 endif
 
 # Clang toolchain
 
-ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
 
   CC      = clang
@@ -234,7 +234,7 @@ else
   OBJDUMP = $(CROSSDEV)objdump
 
   ifeq ($(CONFIG_LTO_FULL),y)
-    ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),GNU_EABI)
+    ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
       LD := $(CROSSDEV)gcc
       AR := $(CROSSDEV)gcc-ar rcs
       NM := $(CROSSDEV)gcc-nm
@@ -281,7 +281,7 @@ endif
 # Add the builtin library
 
 COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   ifeq ($(wildcard $(COMPILER_RT_LIB)),)
     # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
     # then go ahead and try "--print-file-name"
diff --git a/arch/arm/src/tlsr82/Toolchain.defs b/arch/arm/src/tlsr82/Toolchain.defs
index 528ea6c8eb..d4180df13c 100644
--- a/arch/arm/src/tlsr82/Toolchain.defs
+++ b/arch/arm/src/tlsr82/Toolchain.defs
@@ -27,16 +27,16 @@
 # command-line selection.
 #
 
-ifeq ($(filter y, $(CONFIG_ARMV6M_TOOLCHAIN_BUILDROOT)),y)
-  CONFIG_ARMV6M_TOOLCHAIN ?= BUILDROOT
+ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_BUILDROOT)),y)
+  CONFIG_TOOLCHAIN ?= BUILDROOT
 endif
 
-ifeq ($(filter y, $(CONFIG_ARMV6M_TOOLCHAIN_GNU_EABI)),y)
-  CONFIG_ARMV6M_TOOLCHAIN ?= GNU_EABI
+ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_GNU_EABI)),y)
+  CONFIG_TOOLCHAIN ?= GNU_EABI
 endif
 
-ifeq ($(filter y, $(CONFIG_ARMV6M_TOOLCHAIN_CLANG)),y)
-  CONFIG_ARMV6M_TOOLCHAIN ?= CLANG
+ifeq ($(filter y, $(CONFIG_ARM_TOOLCHAIN_CLANG)),y)
+  CONFIG_TOOLCHAIN ?= CLANG
 endif
 
 #
@@ -54,7 +54,7 @@ endif
 ifeq ($(CONFIG_DEBUG_CUSTOMOPT),y)
   ARCHOPTIMIZATION += $(CONFIG_DEBUG_OPTLEVEL)
 else ifeq ($(CONFIG_DEBUG_FULLOPT),y)
-  ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CLANG)
+  ifeq ($(CONFIG_TOOLCHAIN),CLANG)
     ARCHOPTIMIZATION += -Oz
   else
     ARCHOPTIMIZATION += -Os
@@ -77,7 +77,7 @@ endif
 
 # Clang Configuration files
 
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   TOOLCHAIN_MARCH := --config armv6m_soft_nofp_nosys
 endif
 
@@ -91,21 +91,21 @@ endif
 
 # NuttX buildroot under Linux or Cygwin
 
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),BUILDROOT)
+ifeq ($(CONFIG_TOOLCHAIN),BUILDROOT)
   CROSSDEV ?= arm-nuttx-eabi-
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 endif
 
 # Generic GNU EABI toolchain
 
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),GNU_EABI)
+ifeq ($(CONFIG_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= tc32-elf-
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 endif
 
 # Clang toolchain
 
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) $(TOOLCHAIN_MFLOAT)
 
   CC      = clang
@@ -180,7 +180,7 @@ endif
 # Add the builtin library
 
 COMPILER_RT_LIB = $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)
-ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CLANG)
+ifeq ($(CONFIG_TOOLCHAIN),CLANG)
   ifeq ($(wildcard $(COMPILER_RT_LIB)),)
     # if "--print-libgcc-file-name" unable to find the correct libgcc PATH
     # then go ahead and try "--print-file-name"
diff --git a/arch/arm64/src/Toolchain.defs b/arch/arm64/src/Toolchain.defs
index dc725d4133..279a5435eb 100644
--- a/arch/arm64/src/Toolchain.defs
+++ b/arch/arm64/src/Toolchain.defs
@@ -121,7 +121,7 @@ NM = $(CROSSDEV)nm
 
 ifeq ($(CONFIG_LTO_FULL),y)
   ARCHOPTIMIZATION += -flto
-  ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),GNU_EABI)
+  ifeq ($(CONFIG_ARM_TOOLCHAIN_GNU_EABI),y)
     LD := $(CROSSDEV)gcc
     AR := $(CROSSDEV)gcc-ar rcs
     NM := $(CROSSDEV)gcc-nm
diff --git a/boards/arm/a1x/pcduino-a10/README.txt b/boards/arm/a1x/pcduino-a10/README.txt
index cd070e43b3..6ebf35399c 100644
--- a/boards/arm/a1x/pcduino-a10/README.txt
+++ b/boards/arm/a1x/pcduino-a10/README.txt
@@ -367,7 +367,7 @@ Configurations
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
   Configuration Sub-directories
   -----------------------------
diff --git a/boards/arm/am335x/beaglebone-black/README.txt b/boards/arm/am335x/beaglebone-black/README.txt
index ad6570e481..1cb0390f28 100644
--- a/boards/arm/am335x/beaglebone-black/README.txt
+++ b/boards/arm/am335x/beaglebone-black/README.txt
@@ -210,7 +210,7 @@ Configurations
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
   Configuration Sub-directories
   -----------------------------
diff --git a/boards/arm/dm320/ntosd-dm320/README.txt b/boards/arm/dm320/ntosd-dm320/README.txt
index f6ce8284a3..cf9a349f88 100644
--- a/boards/arm/dm320/ntosd-dm320/README.txt
+++ b/boards/arm/dm320/ntosd-dm320/README.txt
@@ -239,7 +239,7 @@ Common Configuration Notes
      Linux.  This is easily reconfigured:
 
         CONFIG_HOST_LINUX=y
-        CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+        CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
 Configuration Sub-Directories
 -----------------------------
diff --git a/boards/arm/efm32/efm32-g8xx-stk/README.txt b/boards/arm/efm32/efm32-g8xx-stk/README.txt
index f28a592e79..26c2e606d1 100644
--- a/boards/arm/efm32/efm32-g8xx-stk/README.txt
+++ b/boards/arm/efm32/efm32-g8xx-stk/README.txt
@@ -262,4 +262,4 @@ CONFIGURATIONS
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
diff --git a/boards/arm/efm32/efm32gg-stk3700/README.txt b/boards/arm/efm32/efm32gg-stk3700/README.txt
index a3af5ef440..9325355c24 100644
--- a/boards/arm/efm32/efm32gg-stk3700/README.txt
+++ b/boards/arm/efm32/efm32gg-stk3700/README.txt
@@ -214,4 +214,4 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
diff --git a/boards/arm/efm32/olimex-efm32g880f128-stk/README.txt b/boards/arm/efm32/olimex-efm32g880f128-stk/README.txt
index 54df3df3ba..b7e260ac9e 100644
--- a/boards/arm/efm32/olimex-efm32g880f128-stk/README.txt
+++ b/boards/arm/efm32/olimex-efm32g880f128-stk/README.txt
@@ -162,5 +162,5 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
diff --git a/boards/arm/eoss3/quickfeather/scripts/Make.defs b/boards/arm/eoss3/quickfeather/scripts/Make.defs
index 2415322210..151f043d9f 100644
--- a/boards/arm/eoss3/quickfeather/scripts/Make.defs
+++ b/boards/arm/eoss3/quickfeather/scripts/Make.defs
@@ -27,7 +27,7 @@ ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
 
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 
-ifneq ($(CONFIG_ARMV7M_TOOLCHAIN_CLANG),y)
+ifneq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
   ARCHCFLAGS += -funwind-tables
   ARCHCXXFLAGS += -funwind-tables
 endif
diff --git a/boards/arm/imx6/sabre-6quad/README.txt b/boards/arm/imx6/sabre-6quad/README.txt
index 46ef1a3bc8..f623ed96c4 100644
--- a/boards/arm/imx6/sabre-6quad/README.txt
+++ b/boards/arm/imx6/sabre-6quad/README.txt
@@ -754,7 +754,7 @@ NOTES:
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
 Configuration sub-directories
 -----------------------------
diff --git a/boards/arm/kinetis/freedom-k64f/README.txt b/boards/arm/kinetis/freedom-k64f/README.txt
index 3df8c60129..dae758b14b 100644
--- a/boards/arm/kinetis/freedom-k64f/README.txt
+++ b/boards/arm/kinetis/freedom-k64f/README.txt
@@ -620,7 +620,7 @@ GNU Toolchain Options
      under the System Type menu.
   2. The default toolchain is the NuttX buildroot under Linux or Cygwin:
 
-    CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+    CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 
   You may also have to modify the PATH environment variable if your make cannot
   find the tools.
@@ -810,7 +810,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y               : Cygwin under Windows
        CONFIG_WINDOWS_CYGWIN=y
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : ARM/mbed toolcahin (arm-none-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : ARM/mbed toolcahin (arm-none-elf-gcc)
        CONFIG_INTELHEX_BINARY=y            : Output formats: Intel hex binary
 
     3. The Serial Console is provided on UART3 with the correct pin
@@ -860,7 +860,7 @@ Where <subdir> is one of the following:
 
          CONFIG_HOST_WINDOWS=y               : Cygwin under Windows
          CONFIG_WINDOWS_CYGWIN=y
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : ARM/mbed toolcahin (arm-none-elf-gcc)
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : ARM/mbed toolcahin (arm-none-elf-gcc)
          CONFIG_INTELHEX_BINARY=y            : Output formats: Intel hex binary
 
     3. The Serial Console is provided on UART0 with the correct pin
diff --git a/boards/arm/kinetis/freedom-k66f/README.txt b/boards/arm/kinetis/freedom-k66f/README.txt
index 8c78ccd967..b2c8c1e279 100644
--- a/boards/arm/kinetis/freedom-k66f/README.txt
+++ b/boards/arm/kinetis/freedom-k66f/README.txt
@@ -623,7 +623,7 @@ GNU Toolchain Options
      under the System Type menu.
   2. The default toolchain is the NuttX buildroot under Linux or Cygwin:
 
-    CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+    CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 
 Freedom K66F Configuration Options
 ==================================
@@ -814,7 +814,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y               : Cygwin under Windows
        CONFIG_WINDOWS_CYGWIN=y
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : ARM/mbed toolcahin (arm-none-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : ARM/mbed toolcahin (arm-none-elf-gcc)
        CONFIG_INTELHEX_BINARY=y            : Output formats: Intel hex binary
 
     3. The Serial Console is provided on UART1 with the correct pin
@@ -864,7 +864,7 @@ Where <subdir> is one of the following:
 
          CONFIG_HOST_WINDOWS=y               : Cygwin under Windows
          CONFIG_WINDOWS_CYGWIN=y
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : ARM/mbed toolcahin (arm-none-elf-gcc)
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : ARM/mbed toolcahin (arm-none-elf-gcc)
          CONFIG_INTELHEX_BINARY=y            : Output formats: Intel hex binary
 
     3. The Serial Console is provided on UART1 with the correct pin
diff --git a/boards/arm/kinetis/kwikstik-k40/README.txt b/boards/arm/kinetis/kwikstik-k40/README.txt
index da97e7bb5f..cf93cd776a 100644
--- a/boards/arm/kinetis/kwikstik-k40/README.txt
+++ b/boards/arm/kinetis/kwikstik-k40/README.txt
@@ -329,6 +329,6 @@ Where <subdir> is one of the following:
     2. Default platform/toolchain:
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : The older OABI version
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : The older OABI version
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
diff --git a/boards/arm/kinetis/kwikstik-k40/configs/ostest/defconfig b/boards/arm/kinetis/kwikstik-k40/configs/ostest/defconfig
index 99ead82413..78312779bf 100644
--- a/boards/arm/kinetis/kwikstik-k40/configs/ostest/defconfig
+++ b/boards/arm/kinetis/kwikstik-k40/configs/ostest/defconfig
@@ -13,8 +13,7 @@ CONFIG_ARCH_CHIP="kinetis"
 CONFIG_ARCH_CHIP_KINETIS=y
 CONFIG_ARCH_CHIP_MK40X256VLQ100=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=9535
 CONFIG_CONSOLE_SYSLOG=y
 CONFIG_DISABLE_ENVIRON=y
diff --git a/boards/arm/kinetis/teensy-3.x/README.txt b/boards/arm/kinetis/teensy-3.x/README.txt
index e30e3a3614..1f96d96301 100644
--- a/boards/arm/kinetis/teensy-3.x/README.txt
+++ b/boards/arm/kinetis/teensy-3.x/README.txt
@@ -266,7 +266,7 @@ NOTES:
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
      NOTE: As of this writing, there are issues with using this tool at
      the -Os level of optimization.  This has not been proven to be a
@@ -298,7 +298,7 @@ NOTES:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
  Support
     for  builtin applications is enabled, but in the base configuration
diff --git a/boards/arm/kinetis/twr-k60n512/README.txt b/boards/arm/kinetis/twr-k60n512/README.txt
index 804b5823ce..319e94c548 100644
--- a/boards/arm/kinetis/twr-k60n512/README.txt
+++ b/boards/arm/kinetis/twr-k60n512/README.txt
@@ -467,8 +467,8 @@ Where <subdir> is one of the following:
     2. Default platform/toolchain:
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : The older OABI version
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : The older OABI version
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
 
     3. An SDHC driver is under work and can be enabled in the NSH configuration
diff --git a/boards/arm/kinetis/twr-k60n512/configs/nsh/defconfig b/boards/arm/kinetis/twr-k60n512/configs/nsh/defconfig
index 2cc62becdf..fce4025488 100644
--- a/boards/arm/kinetis/twr-k60n512/configs/nsh/defconfig
+++ b/boards/arm/kinetis/twr-k60n512/configs/nsh/defconfig
@@ -15,8 +15,7 @@ CONFIG_ARCH_CHIP="kinetis"
 CONFIG_ARCH_CHIP_KINETIS=y
 CONFIG_ARCH_CHIP_MK60N512VMD100=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=9535
 CONFIG_FS_FAT=y
 CONFIG_INIT_ENTRYPOINT="nsh_main"
diff --git a/boards/arm/kl/freedom-kl25z/README.txt b/boards/arm/kl/freedom-kl25z/README.txt
index 2297c7d68e..789d4ecc89 100644
--- a/boards/arm/kl/freedom-kl25z/README.txt
+++ b/boards/arm/kl/freedom-kl25z/README.txt
@@ -306,7 +306,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. Serial Console.  A serial console is necessary to interrupt with
        NSH.   The serial console is configured on UART0 which is available
diff --git a/boards/arm/kl/freedom-kl26z/README.txt b/boards/arm/kl/freedom-kl26z/README.txt
index ede757e5f3..080c5cdb1b 100644
--- a/boards/arm/kl/freedom-kl26z/README.txt
+++ b/boards/arm/kl/freedom-kl26z/README.txt
@@ -284,7 +284,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. Serial Console.  A serial console is necessary to interrupt with
        NSH.   The serial console is configured on UART0 which is available
diff --git a/boards/arm/lpc17xx_40xx/lincoln60/README.txt b/boards/arm/lpc17xx_40xx/lincoln60/README.txt
index c96f681da8..c898b9c315 100644
--- a/boards/arm/lpc17xx_40xx/lincoln60/README.txt
+++ b/boards/arm/lpc17xx_40xx/lincoln60/README.txt
@@ -348,7 +348,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        CONFIG_HOST_WINDOWS_CYGWIN=y            : under Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
   STATUS:
     2015-06-06:  The BINFS CGI files are seems to be running, but the
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-devkit/README.txt b/boards/arm/lpc17xx_40xx/lpc4088-devkit/README.txt
index e23f3f95d2..9860e8a18a 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-devkit/README.txt
+++ b/boards/arm/lpc17xx_40xx/lpc4088-devkit/README.txt
@@ -262,7 +262,7 @@ Information Common to All Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   3. By Default, UART0 is used as the serial console in all configurations.
      This may be connected to your computer via an external RS-232 driver or
@@ -294,8 +294,8 @@ Configuration Directories
     1. Uses the older, OABI, buildroot toolchain.  But that is easily
        reconfigured:
 
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
     2. This configuration has DMA-based SD card support enabled by
        default.  That support can be disabled as follow:
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/defconfig b/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/defconfig
index 43f3ea0ac2..28da534f8a 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/defconfig
@@ -16,9 +16,8 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_CHIP_LPC4088=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
 CONFIG_ARM_MPU=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LATE_INITIALIZE=y
 CONFIG_BOARD_LOOPSPERMSEC=11934
 CONFIG_BUILD_PROTECTED=y
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/nsh/defconfig b/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/nsh/defconfig
index 7adccc8b6b..f82b917d6b 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/nsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/nsh/defconfig
@@ -15,7 +15,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_CHIP_LPC4088=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=11934
 CONFIG_BUILTIN=y
 CONFIG_DEBUG_ERROR=y
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/README.txt b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/README.txt
index 1fbeec6f6c..e2d94d1e47 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/README.txt
+++ b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/README.txt
@@ -247,7 +247,7 @@ Information Common to All Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   3. By Default, UART0 is used as the serial console in all configurations.
      This may be connected to your computer via an external RS-232 driver or
@@ -279,8 +279,8 @@ Configuration Directories
     1. Uses the older, OABI, buildroot toolchain.  But that is easily
        reconfigured:
 
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
     2. At the end of the build, there will be several files in the top-level
        NuttX build directory:
@@ -361,8 +361,8 @@ Configuration Directories
     1. Uses the older, OABI, buildroot toolchain.  But that is easily
        reconfigured:
 
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
     2. This NSH has support for built-in applications enabled, however,
        no built-in configurations are built in the defulat configuration.
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/knsh/defconfig b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/knsh/defconfig
index 86abcb0916..ecba1d7ccb 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/knsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/knsh/defconfig
@@ -16,9 +16,8 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_CHIP_LPC4088=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
 CONFIG_ARM_MPU=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LATE_INITIALIZE=y
 CONFIG_BOARD_LOOPSPERMSEC=11934
 CONFIG_BUILD_PROTECTED=y
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/nsh/defconfig b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/nsh/defconfig
index 02d69da8ae..05996da2a7 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/nsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/nsh/defconfig
@@ -15,7 +15,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_CHIP_LPC4088=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=11934
 CONFIG_BUILTIN=y
 CONFIG_DEV_LOOP=y
diff --git a/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/README.txt b/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/README.txt
index 722670e5d9..129e6dbff3 100644
--- a/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/README.txt
+++ b/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/README.txt
@@ -653,7 +653,7 @@ Where <subdir> is one of the following:
     3. Build setup (easily reconfigured):
 
        CONFIG_HOST_LINUX=y                 : Linux
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Linux
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Linux
 
     4. Jumpers: Nothing special.  Use the default base board jumper
        settings.
diff --git a/boards/arm/lpc17xx_40xx/lx_cpu/README.txt b/boards/arm/lpc17xx_40xx/lx_cpu/README.txt
index 765cc15fbd..c8220349a7 100644
--- a/boards/arm/lpc17xx_40xx/lx_cpu/README.txt
+++ b/boards/arm/lpc17xx_40xx/lx_cpu/README.txt
@@ -256,8 +256,8 @@ CONFIGURATION
     2. Uses the older, OABI, buildroot toolchain.  But that is easily
        reconfigured:
 
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
     3. This NSH has support for built-in applications enabled, however,
        no built-in configurations are built in the defulat configuration.
diff --git a/boards/arm/lpc17xx_40xx/mcb1700/configs/nsh/defconfig b/boards/arm/lpc17xx_40xx/mcb1700/configs/nsh/defconfig
index c01ff3524f..07ab5eea54 100644
--- a/boards/arm/lpc17xx_40xx/mcb1700/configs/nsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/mcb1700/configs/nsh/defconfig
@@ -20,7 +20,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1768=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=7982
 CONFIG_FS_FAT=y
 CONFIG_INIT_ENTRYPOINT="nsh_main"
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/README.txt b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/README.txt
index db997f558a..231745001e 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/README.txt
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/README.txt
@@ -737,7 +737,7 @@ Configuration Sub-Directories
     2. This configuration targets Linux using a generic ARM EABI toolchain:
 
        CONFIG_LINUX=y
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
        But that can easily be re-configured.
 
@@ -780,7 +780,7 @@ Configuration Sub-Directories
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Cygwin environment on Windows
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     2. The mouse is really useless with no display and no cursor.  So this
        configuration is only suited for low-level testing.  It is also awkward
@@ -813,8 +813,8 @@ Configuration Sub-Directories
     1. Uses the older, OABI, buildroot toolchain.  But that is easily
        reconfigured:
 
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
     2. This configuration supports a network.  You may have to change
        these settings for your network:
@@ -893,7 +893,7 @@ Configuration Sub-Directories
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        CONFIG_HOST_WINDOWS_CYGWIN=y            : under Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
   STATUS:
     2015-06-02.  This configuration was added in an attempt to replace
@@ -920,8 +920,8 @@ Configuration Sub-Directories
        reconfigured:
 
        CONFIG_HOST_LINUX=y                 : Linux
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=n      : Newer, EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=n      : Newer, EABI toolchain
 
   STATUS:
     2015-06-02.  Do to issues introduced by recent versions of GCC, NXFLAT
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/nettest/defconfig b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/nettest/defconfig
index a335bfb8ee..0a86a677fe 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/nettest/defconfig
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/nettest/defconfig
@@ -12,8 +12,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1766=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8111
 CONFIG_CONSOLE_SYSLOG=y
 CONFIG_DISABLE_ENVIRON=y
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/nsh/defconfig b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/nsh/defconfig
index 638a804bf0..51ca1ea215 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/nsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/nsh/defconfig
@@ -19,8 +19,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1766=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8111
 CONFIG_BUILTIN=y
 CONFIG_ETH0_PHY_KS8721=y
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/slip-httpd/defconfig b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/slip-httpd/defconfig
index 6173c8e600..d8b0c31d6d 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/slip-httpd/defconfig
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/slip-httpd/defconfig
@@ -13,7 +13,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1766=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=8111
 CONFIG_DISABLE_MQUEUE=y
 CONFIG_DISABLE_POSIX_TIMERS=y
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-nxflat/defconfig b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-nxflat/defconfig
index 15cfd13b17..3678528bed 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-nxflat/defconfig
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-nxflat/defconfig
@@ -12,7 +12,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1766=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=8111
 CONFIG_CONSOLE_SYSLOG=y
 CONFIG_DISABLE_MQUEUE=y
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/usbmsc/defconfig b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/usbmsc/defconfig
index 78d407738a..00be462895 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/usbmsc/defconfig
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/usbmsc/defconfig
@@ -16,7 +16,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1766=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARDCTL=y
 CONFIG_BOARD_LOOPSPERMSEC=8111
 CONFIG_INIT_ENTRYPOINT="msconn_main"
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/usbserial/defconfig b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/usbserial/defconfig
index 00e2ebc8e4..a72a4d2146 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/usbserial/defconfig
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/usbserial/defconfig
@@ -12,8 +12,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1766=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARDCTL=y
 CONFIG_BOARD_LOOPSPERMSEC=8111
 CONFIG_DISABLE_MOUNTPOINT=y
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/zmodem/defconfig b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/zmodem/defconfig
index 52f899f621..a9b6ab51be 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/zmodem/defconfig
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/zmodem/defconfig
@@ -18,8 +18,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1766=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8111
 CONFIG_BUILTIN=y
 CONFIG_ETH0_PHY_KS8721=y
diff --git a/boards/arm/lpc17xx_40xx/open1788/README.txt b/boards/arm/lpc17xx_40xx/open1788/README.txt
index 7d764bbb6e..9cddfbe1a2 100644
--- a/boards/arm/lpc17xx_40xx/open1788/README.txt
+++ b/boards/arm/lpc17xx_40xx/open1788/README.txt
@@ -273,7 +273,7 @@ Information Common to All Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   3. By Default, UART0 is used as the serial console in all configurations.
      This may be connected to your computer via an external RS-232 driver or
@@ -315,8 +315,8 @@ Configuration Directories
     1. Uses the older, OABI, buildroot toolchain.  But that is easily
        reconfigured:
 
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
     2. This configuration has DMA-based SD card support enabled by
        default.  That support can be disabled as follow:
@@ -416,8 +416,8 @@ Configuration Directories
     1. Uses the older, OABI, buildroot toolchain.  But that is easily
        reconfigured:
 
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
     2. This NSH has support for built-in applications enabled, however,
        no built-in configurations are built in the defulat configuration.
diff --git a/boards/arm/lpc17xx_40xx/open1788/configs/knsh/defconfig b/boards/arm/lpc17xx_40xx/open1788/configs/knsh/defconfig
index 2f3b4d0669..b5e9ee3fb0 100644
--- a/boards/arm/lpc17xx_40xx/open1788/configs/knsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/open1788/configs/knsh/defconfig
@@ -16,9 +16,8 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1788=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
 CONFIG_ARM_MPU=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LATE_INITIALIZE=y
 CONFIG_BOARD_LOOPSPERMSEC=11934
 CONFIG_BUILD_PROTECTED=y
diff --git a/boards/arm/lpc17xx_40xx/open1788/configs/nsh/defconfig b/boards/arm/lpc17xx_40xx/open1788/configs/nsh/defconfig
index e22a997222..f1b4d722de 100644
--- a/boards/arm/lpc17xx_40xx/open1788/configs/nsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/open1788/configs/nsh/defconfig
@@ -15,8 +15,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1788=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=11934
 CONFIG_BUILTIN=y
 CONFIG_DEV_LOOP=y
diff --git a/boards/arm/lpc17xx_40xx/zkit-arm-1769/README.txt b/boards/arm/lpc17xx_40xx/zkit-arm-1769/README.txt
index 32b043d4e6..da75501ce3 100644
--- a/boards/arm/lpc17xx_40xx/zkit-arm-1769/README.txt
+++ b/boards/arm/lpc17xx_40xx/zkit-arm-1769/README.txt
@@ -390,7 +390,7 @@ Where <subdir> is one of the following:
     2. Default toolchain:
 
        CONFIG_HOST_LINUX=y                 : Builds under Windows (or Cygwin)
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : NuttX buildroot toolchain
 
   thttpd:
     This builds the THTTPD web server example using the THTTPD and
@@ -410,7 +410,7 @@ Where <subdir> is one of the following:
     2. Default toolchain:
 
        CONFIG_HOST_LINUX=y                 : Builds under Windows (or Cygwin)
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : NuttX buildroot toolchain
 
     3. TCP/IP (only) networking is enabled with this configuration:
 
diff --git a/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/hello/defconfig b/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/hello/defconfig
index 0d0e8b0135..7fd413782b 100644
--- a/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/hello/defconfig
+++ b/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/hello/defconfig
@@ -12,8 +12,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1768=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8079
 CONFIG_CONSOLE_SYSLOG=y
 CONFIG_DISABLE_MQUEUE=y
diff --git a/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/nsh/defconfig b/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/nsh/defconfig
index 385e671b12..c2f554906b 100644
--- a/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/nsh/defconfig
+++ b/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/nsh/defconfig
@@ -21,8 +21,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1768=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8079
 CONFIG_ETH0_PHY_DP83848C=y
 CONFIG_FAT_LCNAMES=y
diff --git a/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/nxhello/defconfig b/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/nxhello/defconfig
index 160d4195d6..095d6e23ef 100644
--- a/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/nxhello/defconfig
+++ b/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/nxhello/defconfig
@@ -24,8 +24,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1768=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8079
 CONFIG_ETH0_PHY_DP83848C=y
 CONFIG_EXAMPLES_NXHELLO=y
diff --git a/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/thttpd/defconfig b/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/thttpd/defconfig
index 9cb6c9558c..7374e372fa 100644
--- a/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/thttpd/defconfig
+++ b/boards/arm/lpc17xx_40xx/zkit-arm-1769/configs/thttpd/defconfig
@@ -12,8 +12,7 @@ CONFIG_ARCH_CHIP="lpc17xx_40xx"
 CONFIG_ARCH_CHIP_LPC1768=y
 CONFIG_ARCH_CHIP_LPC17XX_40XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8079
 CONFIG_CONSOLE_SYSLOG=y
 CONFIG_DISABLE_MQUEUE=y
diff --git a/boards/arm/lpc43xx/bambino-200e/README.txt b/boards/arm/lpc43xx/bambino-200e/README.txt
index 717cb258a6..4d3d1f3bb9 100644
--- a/boards/arm/lpc43xx/bambino-200e/README.txt
+++ b/boards/arm/lpc43xx/bambino-200e/README.txt
@@ -415,7 +415,7 @@ Where <subdir> is one of the following:
        SRAM.
 
          CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
 
     3. To execute from SPIFI, you would need to set:
 
diff --git a/boards/arm/lpc43xx/lpc4330-xplorer/README.txt b/boards/arm/lpc43xx/lpc4330-xplorer/README.txt
index 050e2883fa..295e387d8c 100644
--- a/boards/arm/lpc43xx/lpc4330-xplorer/README.txt
+++ b/boards/arm/lpc43xx/lpc4330-xplorer/README.txt
@@ -279,7 +279,7 @@ Code Red IDE/Tools
   from SRAM.
 
     CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
 
   To execute from SPIFI, you would need to set:
 
@@ -576,7 +576,7 @@ Where <subdir> is one of the following:
        SRAM.
 
          CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
 
     3. To execute from SPIFI, you would need to set:
 
diff --git a/boards/arm/lpc43xx/lpc4337-ws/README.txt b/boards/arm/lpc43xx/lpc4337-ws/README.txt
index ddc30d7a05..b58cf0034e 100644
--- a/boards/arm/lpc43xx/lpc4337-ws/README.txt
+++ b/boards/arm/lpc43xx/lpc4337-ws/README.txt
@@ -275,7 +275,7 @@ Code Red IDE/Tools
   from SRAM.
 
     CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
 
   To execute from SPIFI, you would need to set:
 
@@ -615,7 +615,7 @@ Where <subdir> is one of the following:
        by setting the following configuration options.
 
          CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
 
     3. To execute from SPIFI, you would need to set:
 
diff --git a/boards/arm/lpc43xx/lpc4357-evb/README.txt b/boards/arm/lpc43xx/lpc4357-evb/README.txt
index ab5c327ff9..e224d07d94 100644
--- a/boards/arm/lpc43xx/lpc4357-evb/README.txt
+++ b/boards/arm/lpc43xx/lpc4357-evb/README.txt
@@ -272,7 +272,7 @@ Code Red IDE/Tools
   from SRAM.
 
     CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Linux
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Linux
 
   To execute from SPIFI, you would need to set:
 
@@ -612,7 +612,7 @@ Where <subdir> is one of the following:
        by setting the following configuration options.
 
          CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
 
     3. To execute from SPIFI, you would need to set:
 
diff --git a/boards/arm/lpc43xx/lpc4370-link2/README.txt b/boards/arm/lpc43xx/lpc4370-link2/README.txt
index ee24ae0fa5..22f30eaa32 100644
--- a/boards/arm/lpc43xx/lpc4370-link2/README.txt
+++ b/boards/arm/lpc43xx/lpc4370-link2/README.txt
@@ -275,7 +275,7 @@ Code Red IDE/Tools
   from SRAM.
 
     CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
 
   To execute from SPIFI, you would need to set:
 
@@ -615,7 +615,7 @@ Where <subdir> is one of the following:
        by setting the following configuration options.
 
          CONFIG_LPC43_BOOT_SRAM=y            : Executing in SRAM
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
 
     3. To execute from SPIFI, you would need to set:
 
diff --git a/boards/arm/lpc54xx/lpcxpresso-lpc54628/README.txt b/boards/arm/lpc54xx/lpcxpresso-lpc54628/README.txt
index bcbb0cb973..08e9023737 100644
--- a/boards/arm/lpc54xx/lpcxpresso-lpc54628/README.txt
+++ b/boards/arm/lpc54xx/lpcxpresso-lpc54628/README.txt
@@ -185,7 +185,7 @@ Configurations
          CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
        System Type -> Toolchain:
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   Configuration Sub-directories
   -----------------------------
diff --git a/boards/arm/nuc1xx/nutiny-nuc120/README.txt b/boards/arm/nuc1xx/nutiny-nuc120/README.txt
index 5d57da2ef6..668f612480 100644
--- a/boards/arm/nuc1xx/nutiny-nuc120/README.txt
+++ b/boards/arm/nuc1xx/nutiny-nuc120/README.txt
@@ -287,7 +287,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. Serial Console.  A serial console is necessary to interrupt with
        NSH. The serial console is configured on UART1 which is available
diff --git a/boards/arm/nuc1xx/nutiny-nuc120/configs/nsh/defconfig b/boards/arm/nuc1xx/nutiny-nuc120/configs/nsh/defconfig
index ee529602c3..36dde1dbf1 100644
--- a/boards/arm/nuc1xx/nutiny-nuc120/configs/nsh/defconfig
+++ b/boards/arm/nuc1xx/nutiny-nuc120/configs/nsh/defconfig
@@ -19,7 +19,7 @@ CONFIG_ARCH_CHIP="nuc1xx"
 CONFIG_ARCH_CHIP_NUC120LE3AN=y
 CONFIG_ARCH_CHIP_NUC1XX=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV6M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BINFMT_DISABLE=y
 CONFIG_BOARD_LOOPSPERMSEC=2988
 CONFIG_DEFAULT_SMALL=y
diff --git a/boards/arm/sam34/arduino-due/README.txt b/boards/arm/sam34/arduino-due/README.txt
index 90dd165c91..18e0b0e306 100644
--- a/boards/arm/sam34/arduino-due/README.txt
+++ b/boards/arm/sam34/arduino-due/README.txt
@@ -699,8 +699,8 @@ Configurations
      that is easily reconfigured:
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
      If you want to use the Atmel GCC toolchain, here are the steps to
      do so:
@@ -710,7 +710,7 @@ Configurations
        CONFIG_HOST_CYGWIN=y    : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
 
      This re-configuration should be done before making NuttX or else the
      subsequent 'make' will fail.  If you have already attempted building
diff --git a/boards/arm/sam34/arduino-due/configs/nsh/defconfig b/boards/arm/sam34/arduino-due/configs/nsh/defconfig
index 7b763524f1..8d83c64e9f 100644
--- a/boards/arm/sam34/arduino-due/configs/nsh/defconfig
+++ b/boards/arm/sam34/arduino-due/configs/nsh/defconfig
@@ -14,8 +14,7 @@ CONFIG_ARCH_CHIP_ATSAM3X8E=y
 CONFIG_ARCH_CHIP_SAM34=y
 CONFIG_ARCH_CHIP_SAM3X=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=6965
 CONFIG_BUILTIN=y
 CONFIG_FS_PROCFS=y
diff --git a/boards/arm/sam34/flipnclick-sam3x/README.txt b/boards/arm/sam34/flipnclick-sam3x/README.txt
index 42932a24a8..bcd82ff9a3 100644
--- a/boards/arm/sam34/flipnclick-sam3x/README.txt
+++ b/boards/arm/sam34/flipnclick-sam3x/README.txt
@@ -595,7 +595,7 @@ Configurations
      'make menuconfig'.  Here are the relevant current settings:
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain for Windows
 
 Configuration sub-directories
 -----------------------------
diff --git a/boards/arm/sam34/sam3u-ek/README.txt b/boards/arm/sam34/sam3u-ek/README.txt
index f79123053e..ec7f7a0727 100644
--- a/boards/arm/sam34/sam3u-ek/README.txt
+++ b/boards/arm/sam34/sam3u-ek/README.txt
@@ -247,8 +247,8 @@ Configurations
        CONFIG_HOST_LINUX=y                 : Linux or other pure POSIX invironment
                                            : (including Cygwin)
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
      If you want to use the Atmel GCC toolchain, for example, here are the
      steps to do so:
@@ -258,7 +258,7 @@ Configurations
        CONFIG_HOST_CYGWIN=y    : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
 
      Library Routines ->
        CONFIG_ARCH_SIZET_LONG=n            : size_t is an unsigned int, not long
diff --git a/boards/arm/sam34/sam3u-ek/configs/knsh/defconfig b/boards/arm/sam34/sam3u-ek/configs/knsh/defconfig
index bdb9590b50..080032c503 100644
--- a/boards/arm/sam34/sam3u-ek/configs/knsh/defconfig
+++ b/boards/arm/sam34/sam3u-ek/configs/knsh/defconfig
@@ -18,9 +18,8 @@ CONFIG_ARCH_CHIP_ATSAM3U4E=y
 CONFIG_ARCH_CHIP_SAM34=y
 CONFIG_ARCH_CHIP_SAM3U=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
 CONFIG_ARM_MPU=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8720
 CONFIG_BUILD_PROTECTED=y
 CONFIG_FS_FAT=y
diff --git a/boards/arm/sam34/sam3u-ek/configs/nsh/defconfig b/boards/arm/sam34/sam3u-ek/configs/nsh/defconfig
index 4d78bf89a1..166c58a7df 100644
--- a/boards/arm/sam34/sam3u-ek/configs/nsh/defconfig
+++ b/boards/arm/sam34/sam3u-ek/configs/nsh/defconfig
@@ -17,8 +17,7 @@ CONFIG_ARCH_CHIP_ATSAM3U4E=y
 CONFIG_ARCH_CHIP_SAM34=y
 CONFIG_ARCH_CHIP_SAM3U=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8720
 CONFIG_BUILTIN=y
 CONFIG_FS_FAT=y
diff --git a/boards/arm/sam34/sam3u-ek/configs/nx/defconfig b/boards/arm/sam34/sam3u-ek/configs/nx/defconfig
index ffe9db5389..c3fb2fadc6 100644
--- a/boards/arm/sam34/sam3u-ek/configs/nx/defconfig
+++ b/boards/arm/sam34/sam3u-ek/configs/nx/defconfig
@@ -20,9 +20,8 @@ CONFIG_ARCH_CHIP_SAM34=y
 CONFIG_ARCH_CHIP_SAM3U=y
 CONFIG_ARCH_INTERRUPTSTACK=1024
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
 CONFIG_ARMV7M_USEBASEPRI=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8720
 CONFIG_DISABLE_ENVIRON=y
 CONFIG_DISABLE_MOUNTPOINT=y
diff --git a/boards/arm/sam34/sam3u-ek/configs/nxwm/defconfig b/boards/arm/sam34/sam3u-ek/configs/nxwm/defconfig
index 7d9f5bbd6a..f373ba69fb 100644
--- a/boards/arm/sam34/sam3u-ek/configs/nxwm/defconfig
+++ b/boards/arm/sam34/sam3u-ek/configs/nxwm/defconfig
@@ -24,8 +24,7 @@ CONFIG_ARCH_CHIP_ATSAM3U4E=y
 CONFIG_ARCH_CHIP_SAM34=y
 CONFIG_ARCH_CHIP_SAM3U=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=8720
 CONFIG_HAVE_CXX=y
 CONFIG_HAVE_CXXINITIALIZE=y
diff --git a/boards/arm/sam34/sam4e-ek/README.txt b/boards/arm/sam34/sam4e-ek/README.txt
index 213fc30966..6f2b03bb5d 100644
--- a/boards/arm/sam34/sam4e-ek/README.txt
+++ b/boards/arm/sam34/sam4e-ek/README.txt
@@ -1060,8 +1060,8 @@ Configurations
        CONFIG_HOST_LINUX=y                 : Linux or other pure POSIX invironment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=n      : EABI (Not OABI
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=n      : EABI (Not OABI
 
      If you want to use the Atmel GCC toolchain, for example, here are the
      steps to do so:
@@ -1071,7 +1071,7 @@ Configurations
        CONFIG_HOST_CYGWIN=y    : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
 
      Library Routines ->
        CONFIG_ARCH_SIZET_LONG=n            : size_t is an unsigned int, not long
diff --git a/boards/arm/sam34/sam4e-ek/configs/usbnsh/defconfig b/boards/arm/sam34/sam4e-ek/configs/usbnsh/defconfig
index cfbaa2a94b..ba40da82ea 100644
--- a/boards/arm/sam34/sam4e-ek/configs/usbnsh/defconfig
+++ b/boards/arm/sam34/sam4e-ek/configs/usbnsh/defconfig
@@ -19,7 +19,7 @@ CONFIG_ARCH_CHIP_SAM34=y
 CONFIG_ARCH_CHIP_SAM4E=y
 CONFIG_ARCH_INTERRUPTSTACK=2048
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARDCTL_USBDEVCTRL=y
 CONFIG_BOARD_LOOPSPERMSEC=11990
 CONFIG_BUILTIN=y
diff --git a/boards/arm/sam34/sam4l-xplained/README.txt b/boards/arm/sam34/sam4l-xplained/README.txt
index 9a0d168272..2041aecc4f 100644
--- a/boards/arm/sam34/sam4l-xplained/README.txt
+++ b/boards/arm/sam34/sam4l-xplained/README.txt
@@ -446,8 +446,8 @@ Configurations
      that is easily reconfigured:
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
      If you want to use the Atmel GCC toolchain, here are the steps to
      do so:
@@ -457,7 +457,7 @@ Configurations
        CONFIG_HOST_CYGWIN=y    : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
 
      This re-configuration should be done before making NuttX or else the
      subsequent 'make' will fail.  If you have already attempted building
diff --git a/boards/arm/sam34/sam4l-xplained/configs/nsh/defconfig b/boards/arm/sam34/sam4l-xplained/configs/nsh/defconfig
index ad8fcc9652..23d9cf4689 100644
--- a/boards/arm/sam34/sam4l-xplained/configs/nsh/defconfig
+++ b/boards/arm/sam34/sam4l-xplained/configs/nsh/defconfig
@@ -16,8 +16,7 @@ CONFIG_ARCH_CHIP_ATSAM4LC4C=y
 CONFIG_ARCH_CHIP_SAM34=y
 CONFIG_ARCH_CHIP_SAM4L=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=3410
 CONFIG_BUILTIN=y
 CONFIG_DISABLE_ENVIRON=y
diff --git a/boards/arm/sam34/sam4s-xplained-pro/README.txt b/boards/arm/sam34/sam4s-xplained-pro/README.txt
index 74074c316c..57714ea99c 100644
--- a/boards/arm/sam34/sam4s-xplained-pro/README.txt
+++ b/boards/arm/sam34/sam4s-xplained-pro/README.txt
@@ -328,8 +328,8 @@ Configurations
      that is easily reconfigured:
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
      If you want to use the Atmel GCC toolchain, here are the steps to
      do so:
@@ -339,7 +339,7 @@ Configurations
        CONFIG_HOST_CYGWIN=y    : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
 
      This re-configuration should be done before making NuttX or else the
      subsequent 'make' will fail.  If you have already attempted building
diff --git a/boards/arm/sam34/sam4s-xplained/README.txt b/boards/arm/sam34/sam4s-xplained/README.txt
index 5a1a556b96..a1958f72e6 100644
--- a/boards/arm/sam34/sam4s-xplained/README.txt
+++ b/boards/arm/sam34/sam4s-xplained/README.txt
@@ -323,8 +323,8 @@ Configurations
      that is easily reconfigured:
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : Older, OABI toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : Older, OABI toolchain
 
      If you want to use the Atmel GCC toolchain, here are the steps to
      do so:
@@ -334,7 +334,7 @@ Configurations
        CONFIG_HOST_CYGWIN=y    : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : General GCC EABI toolchain under windows
 
      This re-configuration should be done before making NuttX or else the
      subsequent 'make' will fail.  If you have already attempted building
diff --git a/boards/arm/sam34/sam4s-xplained/configs/nsh/defconfig b/boards/arm/sam34/sam4s-xplained/configs/nsh/defconfig
index 5d10516ad9..e9d402dbd7 100644
--- a/boards/arm/sam34/sam4s-xplained/configs/nsh/defconfig
+++ b/boards/arm/sam34/sam4s-xplained/configs/nsh/defconfig
@@ -17,8 +17,7 @@ CONFIG_ARCH_CHIP_ATSAM4S16C=y
 CONFIG_ARCH_CHIP_SAM34=y
 CONFIG_ARCH_CHIP_SAM4S=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=9186
 CONFIG_BUILTIN=y
 CONFIG_DISABLE_ENVIRON=y
diff --git a/boards/arm/sama5/giant-board/README.md b/boards/arm/sama5/giant-board/README.md
index 6e5c02b9d2..1b9507f1c6 100644
--- a/boards/arm/sama5/giant-board/README.md
+++ b/boards/arm/sama5/giant-board/README.md
@@ -453,7 +453,7 @@ NOTES:
 
 System Type -> Toolchain:
 
-    CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
 
 4. The SAMA5Dx is running at 528MHz by default in these configurations.
 
diff --git a/boards/arm/sama5/sama5d2-xult/README.txt b/boards/arm/sama5/sama5d2-xult/README.txt
index c038600b7d..16f80ec5d9 100644
--- a/boards/arm/sama5/sama5d2-xult/README.txt
+++ b/boards/arm/sama5/sama5d2-xult/README.txt
@@ -757,7 +757,7 @@ Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
 
   4. The SAMA5Dx is running at 528MHz by default in these configurations.
 
diff --git a/boards/arm/sama5/sama5d3-xplained/README.txt b/boards/arm/sama5/sama5d3-xplained/README.txt
index d58eb078e7..8590411a6f 100644
--- a/boards/arm/sama5/sama5d3-xplained/README.txt
+++ b/boards/arm/sama5/sama5d3-xplained/README.txt
@@ -108,8 +108,8 @@ GNU Toolchain Options
   a different toolchain, you simply need to add change to one of the following
   configuration options to your .config (or defconfig) file:
 
-    CONFIG_ARMV7A_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
-    CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain
+    CONFIG_ARM_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain
 
   NOTE about Windows native toolchains
   ------------------------------------
@@ -3109,7 +3109,7 @@ Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
 
   4. The SAMA5Dx is running at 396MHz by default in these configurations.
      This is because the original timing for the PLLs, NOR FLASH, and SDRAM
@@ -3172,7 +3172,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
@@ -3234,7 +3234,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
diff --git a/boards/arm/sama5/sama5d3x-ek/README.txt b/boards/arm/sama5/sama5d3x-ek/README.txt
index a84d8f4031..09d56634bd 100644
--- a/boards/arm/sama5/sama5d3x-ek/README.txt
+++ b/boards/arm/sama5/sama5d3x-ek/README.txt
@@ -130,8 +130,8 @@ GNU Toolchain Options
   a different toolchain, you simply need to add change to one of the following
   configuration options to your .config (or defconfig) file:
 
-    CONFIG_ARMV7A_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
-    CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain
+    CONFIG_ARM_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain
 
 IDEs
 ====
@@ -3293,7 +3293,7 @@ Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
 
   4. The SAMA5Dx is running at 396MHz by default in these configurations.
      This is because the original timing for the PLLs, NOR FLASH, and SDRAM
@@ -3389,7 +3389,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
@@ -3467,7 +3467,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
@@ -3540,7 +3540,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
diff --git a/boards/arm/sama5/sama5d4-ek/README.txt b/boards/arm/sama5/sama5d4-ek/README.txt
index 227ccc9822..7cd86d0844 100644
--- a/boards/arm/sama5/sama5d4-ek/README.txt
+++ b/boards/arm/sama5/sama5d4-ek/README.txt
@@ -124,8 +124,8 @@ GNU Toolchain Options
   a different toolchain, you simply need to add change to one of the following
   configuration options to your .config (or defconfig) file:
 
-    CONFIG_ARMV7A_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
-    CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain
+    CONFIG_ARM_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain
 
 IDEs
 ====
@@ -3572,7 +3572,7 @@ Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Using Cygwin or other POSIX environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain
 
   4. The SAMA5Dx is running at 528MHz by default in these configurations.
 
@@ -3664,7 +3664,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
@@ -3733,7 +3733,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
@@ -3812,7 +3812,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y     : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y     : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
@@ -3981,7 +3981,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
@@ -4227,7 +4227,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
@@ -4879,7 +4879,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain
 
        If you are running on Linux, make *certain* that you have
        CONFIG_HOST_LINUX=y *before* the first make or you will create a
diff --git a/boards/arm/samd2l2/samd20-xplained/README.txt b/boards/arm/samd2l2/samd20-xplained/README.txt
index 56343d0b21..66f224d406 100644
--- a/boards/arm/samd2l2/samd20-xplained/README.txt
+++ b/boards/arm/samd2l2/samd20-xplained/README.txt
@@ -282,8 +282,8 @@ GNU Toolchain Options
   toolchain.  To use alternative toolchain, you simply need to add change of
   the following configuration options to your .config (or defconfig) file:
 
-    CONFIG_ARMV6M_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
-    CONFIG_ARMV6M_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain
+    CONFIG_ARM_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain
 
   NOTE about Windows native toolchains
   ------------------------------------
@@ -663,7 +663,7 @@ Configurations
      that is easily reconfigured:
 
      System Type -> Toolchain:
-       CONFIG_ARMV6M_TOOLCHAIN_GNU_EABI=y
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
      Any re-configuration should be done before making NuttX or else the
      subsequent 'make' will fail.  If you have already attempted building
diff --git a/boards/arm/samd2l2/samd21-xplained/README.txt b/boards/arm/samd2l2/samd21-xplained/README.txt
index be3accc83b..51fe25a2f1 100644
--- a/boards/arm/samd2l2/samd21-xplained/README.txt
+++ b/boards/arm/samd2l2/samd21-xplained/README.txt
@@ -536,7 +536,7 @@ Configurations
      that is easily reconfigured:
 
      System Type -> Toolchain:
-       CONFIG_ARMV6M_TOOLCHAIN_GNU_EABI=y
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
      Any re-configuration should be done before making NuttX or else the
      subsequent 'make' will fail.  If you have already attempted building
diff --git a/boards/arm/samd2l2/saml21-xplained/README.txt b/boards/arm/samd2l2/saml21-xplained/README.txt
index 4c33b93745..5ee7ddc8de 100644
--- a/boards/arm/samd2l2/saml21-xplained/README.txt
+++ b/boards/arm/samd2l2/saml21-xplained/README.txt
@@ -264,9 +264,9 @@ GNU Toolchain Options
   toolchain.  To use alternative toolchain, you simply need to add change of
   the following configuration options to your .config (or defconfig) file:
 
-    CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain for Linux
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain for Windows
+    CONFIG_ARM_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin (default)
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain for Linux
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y   : Generic GCC ARM EABI toolchain for Windows
 
   NOTE about Windows native toolchains
   ------------------------------------
@@ -694,7 +694,7 @@ Configurations
      that is easily reconfigured:
 
      System Type -> Toolchain:
-       CONFIG_ARMV6M_TOOLCHAIN_GNU_EABI=y
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
      Any re-configuration should be done before making NuttX or else the
      subsequent 'make' will fail.  If you have already attempted building
diff --git a/boards/arm/samv7/same70-qmtech/README.txt b/boards/arm/samv7/same70-qmtech/README.txt
index b3853ab409..db32cef394 100644
--- a/boards/arm/samv7/same70-qmtech/README.txt
+++ b/boards/arm/samv7/same70-qmtech/README.txt
@@ -700,7 +700,7 @@ NOTES:
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
      NOTE: As of this writing, there are issues with using this tool at
      the -Os level of optimization.  This has not been proven to be a
diff --git a/boards/arm/samv7/same70-xplained/README.txt b/boards/arm/samv7/same70-xplained/README.txt
index d4cecb3cb2..a164614b00 100644
--- a/boards/arm/samv7/same70-xplained/README.txt
+++ b/boards/arm/samv7/same70-xplained/README.txt
@@ -1300,7 +1300,7 @@ NOTES:
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
      NOTE: As of this writing, there are issues with using this tool at
      the -Os level of optimization.  This has not been proven to be a
diff --git a/boards/arm/samv7/samv71-xult/README.txt b/boards/arm/samv7/samv71-xult/README.txt
index 359123da40..b4d478b587 100644
--- a/boards/arm/samv7/samv71-xult/README.txt
+++ b/boards/arm/samv7/samv71-xult/README.txt
@@ -1691,7 +1691,7 @@ NOTES:
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
 Configuration sub-directories
 -----------------------------
diff --git a/boards/arm/stm32/clicker2-stm32/README.txt b/boards/arm/stm32/clicker2-stm32/README.txt
index c53cc225f5..9c50830929 100644
--- a/boards/arm/stm32/clicker2-stm32/README.txt
+++ b/boards/arm/stm32/clicker2-stm32/README.txt
@@ -216,7 +216,7 @@ Configurations
        CONFIG_HOST_LINUX  =y               : Linux environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   Configuration sub-directories
   -----------------------------
diff --git a/boards/arm/stm32/cloudctrl/README.txt b/boards/arm/stm32/cloudctrl/README.txt
index 45695fa9f0..3252734144 100644
--- a/boards/arm/stm32/cloudctrl/README.txt
+++ b/boards/arm/stm32/cloudctrl/README.txt
@@ -474,7 +474,7 @@ Where <subdir> is one of the following:
     Configures the NuttShell (nsh) located at apps/examples/nsh.  The
     Configuration enables both the serial and telnet NSH interfaces.
 
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y        : GNU EABI toolchain for Windows
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y        : GNU EABI toolchain for Windows
     CONFIG_NSH_DHCPC=n                        : DHCP is disabled
     CONFIG_NSH_IPADDR=0x0a000002              : Target IP address 10.0.0.2
     CONFIG_NSH_DRIPADDR=0x0a000001            : Host IP address 10.0.0.1
diff --git a/boards/arm/stm32/hymini-stm32v/README.txt b/boards/arm/stm32/hymini-stm32v/README.txt
index 06659172d6..a9cc5d8233 100644
--- a/boards/arm/stm32/hymini-stm32v/README.txt
+++ b/boards/arm/stm32/hymini-stm32v/README.txt
@@ -482,7 +482,7 @@ Where <subdir> is one of the following:
     more information.
 
       CONFIG_HOST_LINUX=y                      : Linux host
-      CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y       : GNU EABI toolchain for Linux
+      CONFIG_ARM_TOOLCHAIN_GNU_EABI=y       : GNU EABI toolchain for Linux
 
     USB debug output can be enabled as by changing the following
     settings in the configuration file:
diff --git a/boards/arm/stm32/mikroe-stm32f4/README.txt b/boards/arm/stm32/mikroe-stm32f4/README.txt
index 9b0dd4a714..90b37e9eb8 100644
--- a/boards/arm/stm32/mikroe-stm32f4/README.txt
+++ b/boards/arm/stm32/mikroe-stm32f4/README.txt
@@ -479,7 +479,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Cygwin environment on Windows
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
        This is easily changed by modifying the configuration.
 
@@ -612,7 +612,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. This configuration does have UART2 output enabled and set up as
        the system logging device:
diff --git a/boards/arm/stm32/nucleo-f446re/README.txt b/boards/arm/stm32/nucleo-f446re/README.txt
index 8ec543e4ae..0367e4f30f 100644
--- a/boards/arm/stm32/nucleo-f446re/README.txt
+++ b/boards/arm/stm32/nucleo-f446re/README.txt
@@ -535,7 +535,7 @@ Configurations
        for Linux.  That can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                     : Builds under Linux
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
 
     3. Although the default console is USART2 (which would correspond to
        the Virtual COM port) I have done all testing with the console
diff --git a/boards/arm/stm32/nucleo-f4x1re/README.txt b/boards/arm/stm32/nucleo-f4x1re/README.txt
index 1b65abb162..1329856fe7 100644
--- a/boards/arm/stm32/nucleo-f4x1re/README.txt
+++ b/boards/arm/stm32/nucleo-f4x1re/README.txt
@@ -560,7 +560,7 @@ Configurations
        for Linux.  That can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                     : Builds under Linux
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
 
     3. Although the default console is USART2 (which would correspond to
        the Virtual COM port) I have done all testing with the console
diff --git a/boards/arm/stm32/olimex-stm32-e407/configs/discover/defconfig b/boards/arm/stm32/olimex-stm32-e407/configs/discover/defconfig
index 372bb38b5e..eaee0aa150 100644
--- a/boards/arm/stm32/olimex-stm32-e407/configs/discover/defconfig
+++ b/boards/arm/stm32/olimex-stm32-e407/configs/discover/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F407ZG=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
 CONFIG_BUILTIN=y
 CONFIG_DEBUG_FULLOPT=y
diff --git a/boards/arm/stm32/olimex-stm32-e407/configs/netnsh/defconfig b/boards/arm/stm32/olimex-stm32-e407/configs/netnsh/defconfig
index 12a3151c3c..e76a865267 100644
--- a/boards/arm/stm32/olimex-stm32-e407/configs/netnsh/defconfig
+++ b/boards/arm/stm32/olimex-stm32-e407/configs/netnsh/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F407ZG=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
 CONFIG_BUILTIN=y
 CONFIG_DEBUG_FULLOPT=y
diff --git a/boards/arm/stm32/olimex-stm32-e407/configs/telnetd/defconfig b/boards/arm/stm32/olimex-stm32-e407/configs/telnetd/defconfig
index abfa4ffc38..8bd778e9a1 100644
--- a/boards/arm/stm32/olimex-stm32-e407/configs/telnetd/defconfig
+++ b/boards/arm/stm32/olimex-stm32-e407/configs/telnetd/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F407ZG=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
 CONFIG_BUILTIN=y
 CONFIG_DEBUG_FULLOPT=y
diff --git a/boards/arm/stm32/olimex-stm32-e407/configs/webserver/defconfig b/boards/arm/stm32/olimex-stm32-e407/configs/webserver/defconfig
index 37267fa252..2d489b8832 100644
--- a/boards/arm/stm32/olimex-stm32-e407/configs/webserver/defconfig
+++ b/boards/arm/stm32/olimex-stm32-e407/configs/webserver/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F407ZG=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
 CONFIG_BUILTIN=y
 CONFIG_DEBUG_FULLOPT=y
diff --git a/boards/arm/stm32/olimex-stm32-h405/configs/usbnsh/defconfig b/boards/arm/stm32/olimex-stm32-h405/configs/usbnsh/defconfig
index 12b5219030..71983a6be9 100644
--- a/boards/arm/stm32/olimex-stm32-h405/configs/usbnsh/defconfig
+++ b/boards/arm/stm32/olimex-stm32-h405/configs/usbnsh/defconfig
@@ -20,7 +20,7 @@ CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F405RG=y
 CONFIG_ARCH_IRQBUTTONS=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARDCTL_USBDEVCTRL=y
 CONFIG_BOARD_LATE_INITIALIZE=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
diff --git a/boards/arm/stm32/olimex-stm32-p207/configs/nsh/defconfig b/boards/arm/stm32/olimex-stm32-p207/configs/nsh/defconfig
index c07b04a7b3..9f66e283c2 100644
--- a/boards/arm/stm32/olimex-stm32-p207/configs/nsh/defconfig
+++ b/boards/arm/stm32/olimex-stm32-p207/configs/nsh/defconfig
@@ -18,7 +18,7 @@ CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F207ZE=y
 CONFIG_ARCH_IRQBUTTONS=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LATE_INITIALIZE=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
 CONFIG_BUILTIN=y
diff --git a/boards/arm/stm32/shenzhou/README.txt b/boards/arm/stm32/shenzhou/README.txt
index 27e0a0f58f..d3b451aee3 100644
--- a/boards/arm/stm32/shenzhou/README.txt
+++ b/boards/arm/stm32/shenzhou/README.txt
@@ -491,7 +491,7 @@ Where <subdir> is one of the following:
     Configures the NuttShell (nsh) located at apps/examples/nsh.  The
     Configuration enables both the serial and telnet NSH interfaces.
 
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y        : GNU EABI toolchain for Windows
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y        : GNU EABI toolchain for Windows
     CONFIG_NSH_DHCPC=n                        : DHCP is disabled
     CONFIG_NSH_IPADDR=0x0a000002              : Target IP address 10.0.0.2
     CONFIG_NSH_DRIPADDR=0x0a000001            : Host IP address 10.0.0.1
diff --git a/boards/arm/stm32/shenzhou/configs/thttpd/defconfig b/boards/arm/stm32/shenzhou/configs/thttpd/defconfig
index 15786b4862..70414c06bb 100644
--- a/boards/arm/stm32/shenzhou/configs/thttpd/defconfig
+++ b/boards/arm/stm32/shenzhou/configs/thttpd/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F107VC=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_BUILTIN=y
 CONFIG_ETH0_PHY_DM9161=y
diff --git a/boards/arm/stm32/stm3210e-eval/README.txt b/boards/arm/stm32/stm3210e-eval/README.txt
index fe8f0a46a0..402ec7642c 100644
--- a/boards/arm/stm32/stm3210e-eval/README.txt
+++ b/boards/arm/stm32/stm3210e-eval/README.txt
@@ -606,7 +606,7 @@ Where <subdir> is one of the following:
     focuses on general window controls, movement, mouse and keyboard
     input.
 
-      CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
+      CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU EABI toolchain for Windows
       CONFIG_LCD_RPORTRAIT=y              : 240x320 reverse portrait
 
     NOTES:
@@ -772,7 +772,7 @@ Where <subdir> is one of the following:
 
          CONFIG_HOST_WINDOWS=y               : Windows
          CONFIG_WINDOWS_CYGWIN=y             : with Cygwin
-         CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin
+         CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin
          CONFIG_LCD_LANDSCAPE=y              : 320x240 landscape
 
   pm:
@@ -800,7 +800,7 @@ Where <subdir> is one of the following:
 
          CONFIG_HOST_WINDOWS=y                   : Windows
          CONFIG_WINDOWS_CYGWIN=y                 : Cygwin
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. CONFIG_ARCH_CUSTOM_PMINIT and CONFIG_ARCH_IDLE_CUSTOM are necessary
        parts of the PM configuration:
@@ -845,7 +845,7 @@ Where <subdir> is one of the following:
     driver at examples/usbserial.  See examples/README.txt for
     more information.
 
-      CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y      : NuttX buildroot under Linux or Cygwin
+      CONFIG_ARM_TOOLCHAIN_BUILDROOT=y      : NuttX buildroot under Linux or Cygwin
 
     USB debug output can be enabled as by changing the following
     settings in the configuration file:
@@ -906,4 +906,4 @@ Where <subdir> is one of the following:
     2. Build environment (can be easily reconfigured):
 
        CONFIG_HOST_LINUX=y                  : Linux (or Cygwin)
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y  : NuttX buildroot under Linux or Cygwin
diff --git a/boards/arm/stm32/stm3210e-eval/configs/nsh/defconfig b/boards/arm/stm32/stm3210e-eval/configs/nsh/defconfig
index ee293ac8e4..df50a3af91 100644
--- a/boards/arm/stm32/stm3210e-eval/configs/nsh/defconfig
+++ b/boards/arm/stm32/stm3210e-eval/configs/nsh/defconfig
@@ -16,7 +16,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F103ZE=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_FAT_LCNAMES=y
 CONFIG_FS_FAT=y
diff --git a/boards/arm/stm32/stm3210e-eval/configs/usbmsc/defconfig b/boards/arm/stm32/stm3210e-eval/configs/usbmsc/defconfig
index f3c8203308..15fe9f08b6 100644
--- a/boards/arm/stm32/stm3210e-eval/configs/usbmsc/defconfig
+++ b/boards/arm/stm32/stm3210e-eval/configs/usbmsc/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F103ZE=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARDCTL=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_INIT_ENTRYPOINT="msconn_main"
diff --git a/boards/arm/stm32/stm3210e-eval/configs/usbserial/defconfig b/boards/arm/stm32/stm3210e-eval/configs/usbserial/defconfig
index 68bf7ecd80..205b97bbc4 100644
--- a/boards/arm/stm32/stm3210e-eval/configs/usbserial/defconfig
+++ b/boards/arm/stm32/stm3210e-eval/configs/usbserial/defconfig
@@ -12,8 +12,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F103ZE=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARDCTL=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_DISABLE_MOUNTPOINT=y
diff --git a/boards/arm/stm32/stm3220g-eval/README.txt b/boards/arm/stm32/stm3220g-eval/README.txt
index 4b854ba7fa..1f9be95be5 100644
--- a/boards/arm/stm32/stm3220g-eval/README.txt
+++ b/boards/arm/stm32/stm3220g-eval/README.txt
@@ -534,7 +534,7 @@ Where <subdir> is one of the following:
 
       CONFIG_HOST_WINDOWS=y
       CONFIG_WINDOWS_CYGWIN=y
-      CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+      CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
   nettest:
   -------
@@ -564,7 +564,7 @@ Where <subdir> is one of the following:
 
         CONFIG_HOST_WINDOWS=y                    : Windows
         CONFIG_WINDOWS_CYGWIN=y                  : Under Cygwin
-        CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y       : GNU EABI toolchain for Windows
+        CONFIG_ARM_TOOLCHAIN_GNU_EABI=y       : GNU EABI toolchain for Windows
 
        Than can, of course, be easily changes by reconfiguring per Note 1.
 
@@ -573,7 +573,7 @@ Where <subdir> is one of the following:
     Configures the NuttShell (nsh) located at apps/examples/nsh.  The
     Configuration enables both the serial and telnet NSH interfaces.
 
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y            : GNU EABI toolchain for Windows
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y            : GNU EABI toolchain for Windows
     CONFIG_NSH_DHCPC=n                            : DHCP is disabled
     CONFIG_NSH_IPADDR=(192<<24|168<<16|13<<8|161) : Target IP address 192.168.8.161
     CONFIG_NSH_DRIPADDR=(192<<24|168<<16|13<<8|1) : Host IP address 192.168.8.1
@@ -843,4 +843,4 @@ Where <subdir> is one of the following:
 
       CONFIG_HOST_WINDOWS=y
       CONFIG_WINDOWS_CYGWIN=y
-      CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+      CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
diff --git a/boards/arm/stm32/stm3240g-eval/README.txt b/boards/arm/stm32/stm3240g-eval/README.txt
index 47f650b2a7..8b7a35aa0c 100644
--- a/boards/arm/stm32/stm3240g-eval/README.txt
+++ b/boards/arm/stm32/stm3240g-eval/README.txt
@@ -630,7 +630,7 @@ Where <subdir> is one of the following:
 
       CONFIG_HOST_WINDOWS=y
       CONFIG_WINDOWS_CYGWIN=y
-      CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+      CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
   discover:
   --------
@@ -645,7 +645,7 @@ Where <subdir> is one of the following:
     Configuration settings that you may need to change for your
     environment:
 
-      CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      - GNU EABI toolchain for Linux
+      CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      - GNU EABI toolchain for Linux
       CONFIG_EXAMPLES_DISCOVER_DHCPC=y        - DHCP Client
       CONFIG_EXAMPLES_DISCOVER_IPADDR         - (not defined)
       CONFIG_EXAMPLES_DISCOVER_DRIPADDR       - Router IP address
@@ -714,7 +714,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Cygwin environment on Windows
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y     : NuttX EABI buildroot toolchain
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y     : NuttX EABI buildroot toolchain
        CONFIG_ARCH_SIZET_LONG=y                : size_t is long (maybe?)
 
        This is easily changed by modifying the configuration.
@@ -809,7 +809,7 @@ Where <subdir> is one of the following:
     using the STM32's Ethernet controller. It uses apps/examples/nettest to exercise the
     TCP/IP network.
 
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y                     : GNU EABI toolchain for Windows
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y                     : GNU EABI toolchain for Windows
     CONFIG_EXAMPLES_NETTEST_SERVER=n                       : Target is configured as the client
     CONFIG_EXAMPLES_NETTEST_PERFORMANCE=y                  : Only network performance is verified.
     CONFIG_EXAMPLES_NETTEST_IPADDR=(10<<24|0<<16|0<<8|2)   : Target side is IP: 10.0.0.2
@@ -832,7 +832,7 @@ Where <subdir> is one of the following:
     Configures the NuttShell (nsh) located at apps/examples/nsh.  The
     Configuration enables both the serial and telnet NSH interfaces.
 
-   CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y         : GNU EABI toolchain for Windows
+   CONFIG_ARM_TOOLCHAIN_GNU_EABI=y         : GNU EABI toolchain for Windows
     CONFIG_NSH_DHCPC=n                        : DHCP is disabled
     CONFIG_NSH_IPADDR=(10<<24|0<<16|0<<8|2)   : Target IP address 10.0.0.2
     CONFIG_NSH_DRIPADDR=(10<<24|0<<16|0<<8|1) : Host IP address 10.0.0.1
@@ -1168,7 +1168,7 @@ Where <subdir> is one of the following:
 
          CONFIG_HOST_WINDOWS=y                    : Windows
          CONFIG_WINDOWS_CYGWIN=y                  : With Cygwin
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y       : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y       : GNU EABI toolchain for Windows
 
   nxwm
   ----
@@ -1206,7 +1206,7 @@ Where <subdir> is one of the following:
 
       CONFIG_HOST_WINDOWS=y
       CONFIG_WINDOWS_CYGWIN=y
-      CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+      CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
   xmlrpc
   ------
diff --git a/boards/arm/stm32/stm3240g-eval/configs/knxwm/defconfig b/boards/arm/stm32/stm3240g-eval/configs/knxwm/defconfig
index 4c185f7e6a..dc2de40c87 100644
--- a/boards/arm/stm32/stm3240g-eval/configs/knxwm/defconfig
+++ b/boards/arm/stm32/stm3240g-eval/configs/knxwm/defconfig
@@ -19,8 +19,8 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F407IG=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
 CONFIG_ARM_MPU=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARDCTL=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
 CONFIG_BUILD_PROTECTED=y
diff --git a/boards/arm/stm32/stm32_tiny/README.txt b/boards/arm/stm32/stm32_tiny/README.txt
index ffd2ca76ee..2e4d4b0dd1 100644
--- a/boards/arm/stm32/stm32_tiny/README.txt
+++ b/boards/arm/stm32/stm32_tiny/README.txt
@@ -294,7 +294,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. This example supports the PWM test (apps/examples/pwm) but this must
        be manually enabled by selecting:
@@ -400,7 +400,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. This configuration does have UART2 output enabled and set up as
        the system logging device:
diff --git a/boards/arm/stm32/stm32_tiny/configs/nsh/defconfig b/boards/arm/stm32/stm32_tiny/configs/nsh/defconfig
index a13384fae3..2f3613369c 100644
--- a/boards/arm/stm32/stm32_tiny/configs/nsh/defconfig
+++ b/boards/arm/stm32/stm32_tiny/configs/nsh/defconfig
@@ -25,7 +25,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F103C8=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_BUILTIN=y
 CONFIG_DEFAULT_SMALL=y
diff --git a/boards/arm/stm32/stm32butterfly2/configs/nsh/defconfig b/boards/arm/stm32/stm32butterfly2/configs/nsh/defconfig
index b3c80ebb53..5bd778c070 100644
--- a/boards/arm/stm32/stm32butterfly2/configs/nsh/defconfig
+++ b/boards/arm/stm32/stm32butterfly2/configs/nsh/defconfig
@@ -20,7 +20,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F107VC=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_BUILTIN=y
 CONFIG_EXAMPLES_ADC=y
diff --git a/boards/arm/stm32/stm32butterfly2/configs/nshnet/defconfig b/boards/arm/stm32/stm32butterfly2/configs/nshnet/defconfig
index ff0e77de61..d9f60819ad 100644
--- a/boards/arm/stm32/stm32butterfly2/configs/nshnet/defconfig
+++ b/boards/arm/stm32/stm32butterfly2/configs/nshnet/defconfig
@@ -21,7 +21,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F107VC=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_BUILTIN=y
 CONFIG_ETH0_PHY_DP83848C=y
diff --git a/boards/arm/stm32/stm32butterfly2/configs/nshusbdev/defconfig b/boards/arm/stm32/stm32butterfly2/configs/nshusbdev/defconfig
index ce27396f1a..9baeea0242 100644
--- a/boards/arm/stm32/stm32butterfly2/configs/nshusbdev/defconfig
+++ b/boards/arm/stm32/stm32butterfly2/configs/nshusbdev/defconfig
@@ -20,7 +20,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F107VC=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_BUILTIN=y
 CONFIG_EXAMPLES_ADC=y
diff --git a/boards/arm/stm32/stm32butterfly2/configs/nshusbhost/defconfig b/boards/arm/stm32/stm32butterfly2/configs/nshusbhost/defconfig
index b3c80ebb53..5bd778c070 100644
--- a/boards/arm/stm32/stm32butterfly2/configs/nshusbhost/defconfig
+++ b/boards/arm/stm32/stm32butterfly2/configs/nshusbhost/defconfig
@@ -20,7 +20,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F107VC=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=5483
 CONFIG_BUILTIN=y
 CONFIG_EXAMPLES_ADC=y
diff --git a/boards/arm/stm32/stm32f103-minimum/README.txt b/boards/arm/stm32/stm32f103-minimum/README.txt
index 84571cf497..0578159283 100644
--- a/boards/arm/stm32/stm32f103-minimum/README.txt
+++ b/boards/arm/stm32/stm32f103-minimum/README.txt
@@ -833,7 +833,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. This configuration does have UART2 output enabled and set up as
        the system logging device:
diff --git a/boards/arm/stm32/stm32f334-disco/configs/nsh/defconfig b/boards/arm/stm32/stm32f334-disco/configs/nsh/defconfig
index 5a710701e9..4ee4d0761b 100644
--- a/boards/arm/stm32/stm32f334-disco/configs/nsh/defconfig
+++ b/boards/arm/stm32/stm32f334-disco/configs/nsh/defconfig
@@ -16,7 +16,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F334C8=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
 CONFIG_BUILTIN=y
 CONFIG_DEBUG_FEATURES=y
diff --git a/boards/arm/stm32/stm32f334-disco/configs/powerled/defconfig b/boards/arm/stm32/stm32f334-disco/configs/powerled/defconfig
index 14858f07c5..ced65744c5 100644
--- a/boards/arm/stm32/stm32f334-disco/configs/powerled/defconfig
+++ b/boards/arm/stm32/stm32f334-disco/configs/powerled/defconfig
@@ -17,7 +17,7 @@ CONFIG_ARCH_CHIP="stm32"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32F334C8=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=16717
 CONFIG_BUILTIN=y
 CONFIG_COMP=y
diff --git a/boards/arm/stm32/stm32f3discovery/README.txt b/boards/arm/stm32/stm32f3discovery/README.txt
index 6440634b16..c62ff36f88 100644
--- a/boards/arm/stm32/stm32f3discovery/README.txt
+++ b/boards/arm/stm32/stm32f3discovery/README.txt
@@ -393,7 +393,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. This configuration includes USB Support (CDC/ACM device)
 
@@ -475,7 +475,7 @@ Where <subdir> is one of the following:
          CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
 
        System Type:
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. This configuration does have USART2 output enabled and set up as
        the system logging device:
diff --git a/boards/arm/stm32/stm32f429i-disco/README.txt b/boards/arm/stm32/stm32f429i-disco/README.txt
index 3dc19d168c..668bdf66e8 100644
--- a/boards/arm/stm32/stm32f429i-disco/README.txt
+++ b/boards/arm/stm32/stm32f429i-disco/README.txt
@@ -701,7 +701,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     3. This example supports the PWM test (apps/examples/pwm) but this must
        be manually enabled by selecting:
diff --git a/boards/arm/stm32/stm32f4discovery/README.txt b/boards/arm/stm32/stm32f4discovery/README.txt
index 09b47f1b5f..25bea41b40 100644
--- a/boards/arm/stm32/stm32f4discovery/README.txt
+++ b/boards/arm/stm32/stm32f4discovery/README.txt
@@ -1357,7 +1357,7 @@ Configuration Sub-directories
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Cygwin environment on Windows
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     2. By default, this project assumes that you are *NOT* using the DFU
        bootloader.
@@ -1608,7 +1608,7 @@ Configuration Sub-directories
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Cygwin environment on Windows
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
        This is easily changed by modifying the configuration.
 
@@ -1768,7 +1768,7 @@ Configuration Sub-directories
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     2. To use this configuration with the STM32F4DIS-BB baseboard you
        should:
@@ -2070,7 +2070,7 @@ Configuration Sub-directories
     An example using the NuttX graphics system (NX).   This example focuses on
     placing lines on the background in various orientations.
 
-      CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+      CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
       CONFIG_LCD_LANDSCAPE=y                  : 320x240 landscape orientation
 
     The STM32F4Discovery board does not have any graphics capability.  This
@@ -2146,7 +2146,7 @@ Configuration Sub-directories
 
          CONFIG_HOST_WINDOWS=y                   : Windows
          CONFIG_WINDOWS_CYGWIN=y                 : Cygwin
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     2. CONFIG_ARCH_CUSTOM_PMINIT and CONFIG_ARCH_IDLE_CUSTOM are necessary
        parts of the PM configuration:
@@ -2196,7 +2196,7 @@ Configuration Sub-directories
 
        CONFIG_HOST_WINDOWS=y                   : Builds under windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin and
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : Generic ARM EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : Generic ARM EABI toolchain for Windows
 
     2. By default, this project assumes that you are *NOT* using the DFU
        bootloader.
@@ -2336,7 +2336,7 @@ Configuration Sub-directories
 
        CONFIG_HOST_WINDOWS=y                   : Builds under Windows
        CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     2. This configuration does have USART2 output enabled and set up as
        the system logging device:
@@ -2415,7 +2415,7 @@ Configuration Sub-directories
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        CONFIG_WINDOWS_NATIVE=y                 : Native Windows environment
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
       Build Tools.  The build still relies on some Unix-like commands.  I use
       the GNUWin32 tools that can be downloaded from http://gnuwin32.sourceforge.net/.
diff --git a/boards/arm/stm32/stm32f4discovery/scripts/Make.defs b/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
index 1145555684..de6e0fde6b 100644
--- a/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
@@ -27,7 +27,7 @@ ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
 
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 
-ifneq ($(CONFIG_ARMV7M_TOOLCHAIN_CLANG),y)
+ifneq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
   ARCHCFLAGS += -funwind-tables
   ARCHCXXFLAGS += -funwind-tables
 endif
diff --git a/boards/arm/stm32/stm32ldiscovery/README.txt b/boards/arm/stm32/stm32ldiscovery/README.txt
index 0330730d7d..0b06b23aca 100644
--- a/boards/arm/stm32/stm32ldiscovery/README.txt
+++ b/boards/arm/stm32/stm32ldiscovery/README.txt
@@ -519,7 +519,7 @@ Configuration sub-directories
          CONFIG_WINDOWS_CYGWIN=y                 : Using Cygwin
 
        System Type:
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     4. To enable SLCD support:
 
diff --git a/boards/arm/stm32/stm32vldiscovery/README.txt b/boards/arm/stm32/stm32vldiscovery/README.txt
index fb1d093c8a..974d9806a4 100644
--- a/boards/arm/stm32/stm32vldiscovery/README.txt
+++ b/boards/arm/stm32/stm32vldiscovery/README.txt
@@ -215,4 +215,4 @@ Where <subdir> is one of the following:
 
     Default toolchain:
 
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
diff --git a/boards/arm/stm32/viewtool-stm32f107/README.txt b/boards/arm/stm32/viewtool-stm32f107/README.txt
index f62fbac6c3..0b1ca0b6a7 100644
--- a/boards/arm/stm32/viewtool-stm32f107/README.txt
+++ b/boards/arm/stm32/viewtool-stm32f107/README.txt
@@ -852,7 +852,7 @@ Configurations
      Here are the relevant current settings:
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
      See also the "NOTE about Windows native toolchains" in the section call
      "GNU Toolchain Options" above.
@@ -938,7 +938,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     6. USB support is disabled by default.  See the section above entitled,
        "USB Interface"
@@ -970,7 +970,7 @@ Configurations
 
        CONFIG_HOST_WINDOWS=y                   : Windows operating system
        CONFIG_WINDOWS_CYGWIN=y                 : POSIX environment under Windows
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
 
     4. USB support is disabled by default.  See the section above entitled,
        "USB Interface"
diff --git a/boards/arm/stm32f0l0g0/nucleo-f072rb/README.txt b/boards/arm/stm32f0l0g0/nucleo-f072rb/README.txt
index 7c5f7e04bf..fd42961742 100644
--- a/boards/arm/stm32f0l0g0/nucleo-f072rb/README.txt
+++ b/boards/arm/stm32f0l0g0/nucleo-f072rb/README.txt
@@ -265,7 +265,7 @@ Configurations
        CONFIG_HOST_LINUX=y                 : Linux environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   Configuration sub-directories
   -----------------------------
diff --git a/boards/arm/stm32f0l0g0/nucleo-f091rc/README.txt b/boards/arm/stm32f0l0g0/nucleo-f091rc/README.txt
index 27ab23492e..b48762d233 100644
--- a/boards/arm/stm32f0l0g0/nucleo-f091rc/README.txt
+++ b/boards/arm/stm32f0l0g0/nucleo-f091rc/README.txt
@@ -251,7 +251,7 @@ Configurations
        CONFIG_HOST_LINUX=y                 : Linux environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   Configuration sub-directories
   -----------------------------
diff --git a/boards/arm/stm32f7/nucleo-144/README.txt b/boards/arm/stm32f7/nucleo-144/README.txt
index 551d5ef7a2..652d9b0e83 100644
--- a/boards/arm/stm32f7/nucleo-144/README.txt
+++ b/boards/arm/stm32f7/nucleo-144/README.txt
@@ -535,7 +535,7 @@ f7xx-nsh:
      for Linux.  That can easily be reconfigured, of course.
 
      CONFIG_HOST_LINUX=y                     : Builds under Linux
-     CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : ARM GNU for Linux
+     CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : ARM GNU for Linux
 
   3. The serial console may be configured to use either USART3 (which would
      correspond to the Virtual COM port) or with the console device
@@ -602,4 +602,4 @@ f7xx-evalos:
     for Linux.  That can easily be reconfigured, of course.
 
     CONFIG_HOST_LINUX=y                     : Builds under Linux
-    CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : ARM GNU for Linux
+    CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : ARM GNU for Linux
diff --git a/boards/arm/stm32f7/stm32f746g-disco/README.txt b/boards/arm/stm32f7/stm32f746g-disco/README.txt
index caf31dc99f..91fcc2693b 100644
--- a/boards/arm/stm32f7/stm32f746g-disco/README.txt
+++ b/boards/arm/stm32f7/stm32f746g-disco/README.txt
@@ -494,7 +494,7 @@ Configurations
          CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
        System Type -> Toolchain:
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
        NOTE: As of this writing, there are issues with using this tool at
        the -Os level of optimization.  This has not been proven to be a
diff --git a/boards/arm/stm32l4/b-l475e-iot01a/README.txt b/boards/arm/stm32l4/b-l475e-iot01a/README.txt
index 082791102d..f9ebace845 100644
--- a/boards/arm/stm32l4/b-l475e-iot01a/README.txt
+++ b/boards/arm/stm32l4/b-l475e-iot01a/README.txt
@@ -259,7 +259,7 @@ Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
 Configuration sub-directories
 -----------------------------
diff --git a/boards/arm/stm32l4/nucleo-l432kc/README.txt b/boards/arm/stm32l4/nucleo-l432kc/README.txt
index 740a17e9c9..fb40a9fc08 100644
--- a/boards/arm/stm32l4/nucleo-l432kc/README.txt
+++ b/boards/arm/stm32l4/nucleo-l432kc/README.txt
@@ -442,7 +442,7 @@ Configurations
        for Linux.  That can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                     : Builds under Linux
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
 
     3. Although the default console is USART2 (which would correspond to
        the Virtual COM port) I have done all testing with the console
diff --git a/boards/arm/stm32l4/nucleo-l452re/README.txt b/boards/arm/stm32l4/nucleo-l452re/README.txt
index 412d789c12..f7519b6e28 100644
--- a/boards/arm/stm32l4/nucleo-l452re/README.txt
+++ b/boards/arm/stm32l4/nucleo-l452re/README.txt
@@ -257,7 +257,7 @@ Configurations
        CONFIG_HOST_LINUX=y                 : Linux environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   Configuration sub-directories
   -----------------------------
diff --git a/boards/arm/stm32l4/nucleo-l476rg/README.txt b/boards/arm/stm32l4/nucleo-l476rg/README.txt
index 846b91b32b..c8b799d852 100644
--- a/boards/arm/stm32l4/nucleo-l476rg/README.txt
+++ b/boards/arm/stm32l4/nucleo-l476rg/README.txt
@@ -565,7 +565,7 @@ Configurations
        for Linux.  That can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                     : Builds under Linux
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
 
     3. Although the default console is USART2 (which would correspond to
        the Virtual COM port) I have done all testing with the console
diff --git a/boards/arm/stm32l4/nucleo-l496zg/README.txt b/boards/arm/stm32l4/nucleo-l496zg/README.txt
index f97a2b0ecd..f354f2fdf6 100644
--- a/boards/arm/stm32l4/nucleo-l496zg/README.txt
+++ b/boards/arm/stm32l4/nucleo-l496zg/README.txt
@@ -291,7 +291,7 @@ nsh:
      for Linux.  That can easily be reconfigured, of course.
 
      CONFIG_HOST_LINUX=y                     : Builds under Linux
-     CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : ARM GNU for Linux
+     CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : ARM GNU for Linux
 
   3. Although the default console is LPUART1 (which would correspond to
      the Virtual COM port) I have done all testing with the console
diff --git a/boards/arm/stm32l4/stm32l476vg-disco/README.txt b/boards/arm/stm32l4/stm32l476vg-disco/README.txt
index 550fddcd2a..4dbb122381 100644
--- a/boards/arm/stm32l4/stm32l476vg-disco/README.txt
+++ b/boards/arm/stm32l4/stm32l476vg-disco/README.txt
@@ -443,7 +443,7 @@ Configurations
        for Linux.  That can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                 : Builds under Linux
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : Generic EABI toolchain for Linux
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : Generic EABI toolchain for Linux
 
     3. Although the default console is USART2 (which would correspond to
        the Virtual COM port) I have done all testing with the console
diff --git a/boards/arm/stm32l4/stm32l4r9ai-disco/README.txt b/boards/arm/stm32l4/stm32l4r9ai-disco/README.txt
index e62c6727b9..51363c6218 100644
--- a/boards/arm/stm32l4/stm32l4r9ai-disco/README.txt
+++ b/boards/arm/stm32l4/stm32l4r9ai-disco/README.txt
@@ -340,7 +340,7 @@ Configurations
        for Linux.  That can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                 : Builds under Linux
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : Generic EABI toolchain for Linux
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : Generic EABI toolchain for Linux
 
     3. The default console is UART4
 
diff --git a/boards/arm/stm32l5/nucleo-l552ze/README.txt b/boards/arm/stm32l5/nucleo-l552ze/README.txt
index b2df324f81..1f953fe699 100644
--- a/boards/arm/stm32l5/nucleo-l552ze/README.txt
+++ b/boards/arm/stm32l5/nucleo-l552ze/README.txt
@@ -202,7 +202,7 @@ Configurations
        CONFIG_HOST_LINUX=y                 : Linux environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV8M_TOOLCHAIN_GNU_EABI=y : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU ARM EABI toolchain
 
   Configuration sub-directories
   -----------------------------
diff --git a/boards/arm/stm32l5/stm32l562e-dk/README.txt b/boards/arm/stm32l5/stm32l562e-dk/README.txt
index 2b0065f0e0..eefa923380 100644
--- a/boards/arm/stm32l5/stm32l562e-dk/README.txt
+++ b/boards/arm/stm32l5/stm32l562e-dk/README.txt
@@ -235,7 +235,7 @@ Configurations
        CONFIG_HOST_LINUX=y                 : Linux environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV8M_TOOLCHAIN_GNU_EABI=y : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU ARM EABI toolchain
 
   Configuration sub-directories
   -----------------------------
diff --git a/boards/arm/stm32u5/b-u585i-iot02a/README.txt b/boards/arm/stm32u5/b-u585i-iot02a/README.txt
index d6d220e8c2..ced2d59d34 100644
--- a/boards/arm/stm32u5/b-u585i-iot02a/README.txt
+++ b/boards/arm/stm32u5/b-u585i-iot02a/README.txt
@@ -130,7 +130,7 @@ Configurations
        CONFIG_HOST_LINUX=y                 : Linux environment
 
      System Type -> Toolchain:
-       CONFIG_ARMV8M_TOOLCHAIN_GNU_EABI=y : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU ARM EABI toolchain
 
   Configuration sub-directories
   -----------------------------
diff --git a/boards/arm/tiva/dk-tm4c129x/README.txt b/boards/arm/tiva/dk-tm4c129x/README.txt
index 34b4a926a9..01ed75c9a2 100644
--- a/boards/arm/tiva/dk-tm4c129x/README.txt
+++ b/boards/arm/tiva/dk-tm4c129x/README.txt
@@ -673,7 +673,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_WINDOWS=y                   : Windows
        :CONFIG_WINDOWS_CYGWIN=y                : Cygwin under Windows
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Windows
        CONFIG_RAW_BINARY=y                     : Output formats: ELF and raw binary
 
     3. Default stack sizes are large and should really be tuned to reduce
diff --git a/boards/arm/tiva/eagle100/README.txt b/boards/arm/tiva/eagle100/README.txt
index afd5c767a4..a4da832829 100644
--- a/boards/arm/tiva/eagle100/README.txt
+++ b/boards/arm/tiva/eagle100/README.txt
@@ -215,7 +215,7 @@ Configuration Sub-Directories
 
          CONFIG_HOST_WINDOWS=y
          CONFIG_WINDOWS_CYGWIN=y
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
   httpd:
     This builds the uIP web server example using the examples/webserver application
@@ -228,7 +228,7 @@ Configuration Sub-Directories
 
          CONFIG_HOST_WINDOWS=y
          CONFIG_WINDOWS_CYGWIN=y
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
 
        This example can only be built using the buildroot toolchain
        with NXFLAT support
@@ -273,7 +273,7 @@ Configuration Sub-Directories
        That, however, is easily reconfigurable:
 
          CONFIG_HOST_LINUX=y
-         CONFIG_ARM7M_TOOLCHAIN_BUILDROOT=y
+         CONFIG_ARM7M_ARM_TOOLCHAIN_BUILDROOT=y
 
        This example can only be built using the buildroot toolchain
        with NXFLAT support
diff --git a/boards/arm/tiva/eagle100/configs/thttpd/defconfig b/boards/arm/tiva/eagle100/configs/thttpd/defconfig
index bf30053987..b724af6798 100644
--- a/boards/arm/tiva/eagle100/configs/thttpd/defconfig
+++ b/boards/arm/tiva/eagle100/configs/thttpd/defconfig
@@ -13,7 +13,7 @@ CONFIG_ARCH_CHIP_LM3S6918=y
 CONFIG_ARCH_CHIP_LM3S=y
 CONFIG_ARCH_CHIP_LM=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
 CONFIG_CONSOLE_SYSLOG=y
 CONFIG_DISABLE_MQUEUE=y
diff --git a/boards/arm/tiva/ekk-lm3s9b96/configs/nsh/defconfig b/boards/arm/tiva/ekk-lm3s9b96/configs/nsh/defconfig
index ca3e3fc2e8..6bbc40dff3 100644
--- a/boards/arm/tiva/ekk-lm3s9b96/configs/nsh/defconfig
+++ b/boards/arm/tiva/ekk-lm3s9b96/configs/nsh/defconfig
@@ -16,8 +16,7 @@ CONFIG_ARCH_CHIP_LM3S9B96=y
 CONFIG_ARCH_CHIP_LM3S=y
 CONFIG_ARCH_CHIP_LM=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
 CONFIG_FS_FAT=y
 CONFIG_INIT_ENTRYPOINT="nsh_main"
diff --git a/boards/arm/tiva/lm3s6965-ek/README.txt b/boards/arm/tiva/lm3s6965-ek/README.txt
index b16b42e959..666ab216ee 100644
--- a/boards/arm/tiva/lm3s6965-ek/README.txt
+++ b/boards/arm/tiva/lm3s6965-ek/README.txt
@@ -354,8 +354,8 @@ Where <subdir> is one of the following:
     2. Default platform/toolchain:
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : The older OABI version
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : The older OABI version
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
 
     3. As it is configured now, you MUST have a network connected.
@@ -380,8 +380,8 @@ Where <subdir> is one of the following:
     2. Default platform/toolchain:
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
-       CONFIG_ARMV7M_OABI_TOOLCHAIN=y      : The older OABI version
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y      : The older OABI version
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
 
     3. As it is configured now, you MUST have a network connected.
@@ -411,7 +411,7 @@ Where <subdir> is one of the following:
     2. Default platform/toolchain:
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
 
   qemu-flat:
@@ -468,7 +468,7 @@ Where <subdir> is one of the following:
     2. Default platform/toolchain:
 
        CONFIG_HOST_LINUX=y                     : Linux
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y      : GNU EABI toolchain for Linux
        CONFIG_RAW_BINARY=y                     : Output formats: ELF and raw binary
 
     3. As it is configured now, you MUST have a network connected.
diff --git a/boards/arm/tiva/lm3s6965-ek/configs/nsh/defconfig b/boards/arm/tiva/lm3s6965-ek/configs/nsh/defconfig
index 1f3b0f26bf..8c5c2d95fa 100644
--- a/boards/arm/tiva/lm3s6965-ek/configs/nsh/defconfig
+++ b/boards/arm/tiva/lm3s6965-ek/configs/nsh/defconfig
@@ -15,8 +15,7 @@ CONFIG_ARCH_CHIP_LM3S6965=y
 CONFIG_ARCH_CHIP_LM3S=y
 CONFIG_ARCH_CHIP_LM=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
 CONFIG_FS_FAT=y
 CONFIG_INIT_ENTRYPOINT="nsh_main"
diff --git a/boards/arm/tiva/lm3s6965-ek/configs/nx/defconfig b/boards/arm/tiva/lm3s6965-ek/configs/nx/defconfig
index ae57e30f08..5b25b7123a 100644
--- a/boards/arm/tiva/lm3s6965-ek/configs/nx/defconfig
+++ b/boards/arm/tiva/lm3s6965-ek/configs/nx/defconfig
@@ -16,8 +16,7 @@ CONFIG_ARCH_CHIP_LM3S6965=y
 CONFIG_ARCH_CHIP_LM3S=y
 CONFIG_ARCH_CHIP_LM=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
 CONFIG_DISABLE_ENVIRON=y
 CONFIG_DISABLE_MOUNTPOINT=y
diff --git a/boards/arm/tiva/lm3s6965-ek/configs/qemu-nxflat/defconfig b/boards/arm/tiva/lm3s6965-ek/configs/qemu-nxflat/defconfig
index 833023a36a..31a7085dc2 100644
--- a/boards/arm/tiva/lm3s6965-ek/configs/qemu-nxflat/defconfig
+++ b/boards/arm/tiva/lm3s6965-ek/configs/qemu-nxflat/defconfig
@@ -13,7 +13,7 @@ CONFIG_ARCH_CHIP_LM3S6965=y
 CONFIG_ARCH_CHIP_LM3S=y
 CONFIG_ARCH_CHIP_LM=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARDCTL=y
 CONFIG_BOARDCTL_ROMDISK=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
diff --git a/boards/arm/tiva/lm3s8962-ek/README.txt b/boards/arm/tiva/lm3s8962-ek/README.txt
index a0a29d040f..05325231bd 100644
--- a/boards/arm/tiva/lm3s8962-ek/README.txt
+++ b/boards/arm/tiva/lm3s8962-ek/README.txt
@@ -276,7 +276,7 @@ Where <subdir> is one of the following:
 
          CONFIG_HOST_WINDOWS=y
          CONFIG_WINDOWS_CYGWIN=y
-         CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+         CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 
     3. The configuration enables both the serial and telnetd NSH interfaces.
 
@@ -306,4 +306,4 @@ Where <subdir> is one of the following:
 
          CONFIG_HOST_WINDOWS=y
          CONFIG_WINDOWS_CYGWIN=y
-         CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+         CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
diff --git a/boards/arm/tiva/lm3s8962-ek/configs/nsh/defconfig b/boards/arm/tiva/lm3s8962-ek/configs/nsh/defconfig
index e2c511eff8..2aac1d7bae 100644
--- a/boards/arm/tiva/lm3s8962-ek/configs/nsh/defconfig
+++ b/boards/arm/tiva/lm3s8962-ek/configs/nsh/defconfig
@@ -15,7 +15,7 @@ CONFIG_ARCH_CHIP_LM3S8962=y
 CONFIG_ARCH_CHIP_LM3S=y
 CONFIG_ARCH_CHIP_LM=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
 CONFIG_FS_FAT=y
 CONFIG_HOST_WINDOWS=y
diff --git a/boards/arm/tiva/lm3s8962-ek/configs/nx/defconfig b/boards/arm/tiva/lm3s8962-ek/configs/nx/defconfig
index 8c185b245a..b361ce368c 100644
--- a/boards/arm/tiva/lm3s8962-ek/configs/nx/defconfig
+++ b/boards/arm/tiva/lm3s8962-ek/configs/nx/defconfig
@@ -16,7 +16,7 @@ CONFIG_ARCH_CHIP_LM3S8962=y
 CONFIG_ARCH_CHIP_LM3S=y
 CONFIG_ARCH_CHIP_LM=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
 CONFIG_DISABLE_ENVIRON=y
 CONFIG_DISABLE_MOUNTPOINT=y
diff --git a/boards/arm/tiva/lm4f120-launchpad/README.txt b/boards/arm/tiva/lm4f120-launchpad/README.txt
index 86c8a43769..5c655ab4e6 100644
--- a/boards/arm/tiva/lm4f120-launchpad/README.txt
+++ b/boards/arm/tiva/lm4f120-launchpad/README.txt
@@ -491,5 +491,5 @@ Where <subdir> is one of the following:
        can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
diff --git a/boards/arm/tiva/lm4f120-launchpad/configs/nsh/defconfig b/boards/arm/tiva/lm4f120-launchpad/configs/nsh/defconfig
index 24c2192c4e..011ec493a4 100644
--- a/boards/arm/tiva/lm4f120-launchpad/configs/nsh/defconfig
+++ b/boards/arm/tiva/lm4f120-launchpad/configs/nsh/defconfig
@@ -16,8 +16,7 @@ CONFIG_ARCH_CHIP_LM4F120=y
 CONFIG_ARCH_CHIP_LM4F=y
 CONFIG_ARCH_CHIP_LM=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
 CONFIG_BUILTIN=y
 CONFIG_INIT_ENTRYPOINT="nsh_main"
diff --git a/boards/arm/tiva/tm4c123g-launchpad/README.txt b/boards/arm/tiva/tm4c123g-launchpad/README.txt
index ffd550e813..624342a61e 100644
--- a/boards/arm/tiva/tm4c123g-launchpad/README.txt
+++ b/boards/arm/tiva/tm4c123g-launchpad/README.txt
@@ -617,5 +617,5 @@ Where <subdir> is one of the following:
        can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
diff --git a/boards/arm/tiva/tm4c123g-launchpad/configs/nsh/defconfig b/boards/arm/tiva/tm4c123g-launchpad/configs/nsh/defconfig
index d8fa997225..7e203a237d 100644
--- a/boards/arm/tiva/tm4c123g-launchpad/configs/nsh/defconfig
+++ b/boards/arm/tiva/tm4c123g-launchpad/configs/nsh/defconfig
@@ -17,8 +17,7 @@ CONFIG_ARCH_CHIP_TM4C123=y
 CONFIG_ARCH_CHIP_TM4C123GH6PM=y
 CONFIG_ARCH_CHIP_TM4C=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI=y
 CONFIG_BOARD_LOOPSPERMSEC=4531
 CONFIG_BUILTIN=y
 CONFIG_INIT_ENTRYPOINT="nsh_main"
diff --git a/boards/arm/tiva/tm4c1294-launchpad/README.txt b/boards/arm/tiva/tm4c1294-launchpad/README.txt
index a3df5fc399..c44190ec95 100644
--- a/boards/arm/tiva/tm4c1294-launchpad/README.txt
+++ b/boards/arm/tiva/tm4c1294-launchpad/README.txt
@@ -52,7 +52,7 @@ Where <subdir> is one of the following:
        can easily be reconfigured, of course.
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
-       CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
+       CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : Buildroot (arm-nuttx-elf-gcc)
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
 
     3. Default stack sizes are large and should really be tuned to reduce
diff --git a/boards/arm/tiva/tm4c129e-launchpad/README.txt b/boards/arm/tiva/tm4c129e-launchpad/README.txt
index dfd5747db5..dec1e129d6 100644
--- a/boards/arm/tiva/tm4c129e-launchpad/README.txt
+++ b/boards/arm/tiva/tm4c129e-launchpad/README.txt
@@ -99,7 +99,7 @@ Where <subdir> is one of the following:
 
        CONFIG_HOST_LINUX=y                 : Linux (Cygwin under Windows okay too).
        CONFIG_ARCH_TOOLCHAIN_GNU=y         : GNU toolchain (arm-none-eabi-gcc)
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y
+       CONFIG_ARM_TOOLCHAIN_GNU_EABIL=y
        CONFIG_RAW_BINARY=y                 : Output formats: ELF and raw binary
 
     3. Default stack sizes are large and should really be tuned to reduce the
diff --git a/boards/arm/tms570/launchxl-tms57004/README.txt b/boards/arm/tms570/launchxl-tms57004/README.txt
index 179f8f1382..befa0560fc 100644
--- a/boards/arm/tms570/launchxl-tms57004/README.txt
+++ b/boards/arm/tms570/launchxl-tms57004/README.txt
@@ -83,7 +83,7 @@ Toolchain
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
 LEDs and Buttons
 ================
@@ -211,7 +211,7 @@ Configurations
        CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
      System Type -> Toolchain:
-       CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+       CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
 Configuration sub-directories
 -----------------------------
diff --git a/boards/arm/tms570/launchxl-tms57004/configs/nsh/defconfig b/boards/arm/tms570/launchxl-tms57004/configs/nsh/defconfig
index fd6a94b7ce..0d79153253 100644
--- a/boards/arm/tms570/launchxl-tms57004/configs/nsh/defconfig
+++ b/boards/arm/tms570/launchxl-tms57004/configs/nsh/defconfig
@@ -17,7 +17,7 @@ CONFIG_ARCH_INTERRUPTSTACK=2048
 CONFIG_ARCH_IRQBUTTONS=y
 CONFIG_ARCH_LOWVECTORS=y
 CONFIG_ARCH_STACKDUMP=y
-CONFIG_ARMV7R_TOOLCHAIN_BUILDROOT=y
+CONFIG_ARM_TOOLCHAIN_BUILDROOT=y
 CONFIG_BUILTIN=y
 CONFIG_FAT_LCNAMES=y
 CONFIG_FAT_LFN=y
diff --git a/boards/arm/xmc4/xmc4500-relax/README.txt b/boards/arm/xmc4/xmc4500-relax/README.txt
index f1c15a583a..691b6fa7bb 100644
--- a/boards/arm/xmc4/xmc4500-relax/README.txt
+++ b/boards/arm/xmc4/xmc4500-relax/README.txt
@@ -141,7 +141,7 @@ Configurations
          CONFIG_WINDOWS_CYGWIN=y             : Cywin under Windows
 
        System Type -> Toolchain:
-         CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
+         CONFIG_ARM_TOOLCHAIN_GNU_EABI=y  : GNU ARM EABI toolchain
 
   Configuration sub-directories
   -----------------------------
diff --git a/tools/ci/testlist/arm-01.dat b/tools/ci/testlist/arm-01.dat
index 421f36ee5c..eb2af1206a 100644
--- a/tools/ci/testlist/arm-01.dat
+++ b/tools/ci/testlist/arm-01.dat
@@ -1,3 +1,3 @@
-/arm/[a]*,CONFIG_ARMV7A_TOOLCHAIN_GNU_EABI
+/arm/[a]*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/[b-h]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/[b-h]*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-02.dat b/tools/ci/testlist/arm-02.dat
index aa50983639..40f72bb0d3 100644
--- a/tools/ci/testlist/arm-02.dat
+++ b/tools/ci/testlist/arm-02.dat
@@ -1 +1 @@
-/arm/[i-k]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/[i-k]*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-03.dat b/tools/ci/testlist/arm-03.dat
index 8740271641..579a4d17a9 100644
--- a/tools/ci/testlist/arm-03.dat
+++ b/tools/ci/testlist/arm-03.dat
@@ -1,4 +1,4 @@
-/arm/lpc17xx_40xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/lpc17xx_40xx,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 -lpcxpresso-lpc1768:thttpd
 -olimex-lpc1766stk:slip-httpd
 -olimex-lpc1766stk:thttpd-nxflat
diff --git a/tools/ci/testlist/arm-04.dat b/tools/ci/testlist/arm-04.dat
index 93d7f209f1..19486850df 100644
--- a/tools/ci/testlist/arm-04.dat
+++ b/tools/ci/testlist/arm-04.dat
@@ -1,11 +1,11 @@
-/arm/lc823450,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/lc823450,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/lpc214x,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/lpc214x,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/lpc2378,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/lpc2378,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/lpc31xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/lpc31xx,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/lpc43xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/lpc43xx,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/lpc54xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/lpc54xx,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-05.dat b/tools/ci/testlist/arm-05.dat
index c2c4ce5a93..d12fd998e6 100644
--- a/tools/ci/testlist/arm-05.dat
+++ b/tools/ci/testlist/arm-05.dat
@@ -1,6 +1,6 @@
-/arm/[m-r]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/[m-r]*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 -moxa:nsh
 
-/arm/s32k1xx,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/s32k1xx,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/sam34,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/sam34,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-06.dat b/tools/ci/testlist/arm-06.dat
index cf6ce280b8..9e8020e1ee 100644
--- a/tools/ci/testlist/arm-06.dat
+++ b/tools/ci/testlist/arm-06.dat
@@ -1,7 +1,7 @@
-/arm/sama5,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/sama5,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/samd2l2,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/samd2l2,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/samd5e5,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/samd5e5,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/samv7,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/samv7,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-07.dat b/tools/ci/testlist/arm-07.dat
index df8db1fea6..665087f7bf 100644
--- a/tools/ci/testlist/arm-07.dat
+++ b/tools/ci/testlist/arm-07.dat
@@ -1,7 +1,7 @@
-/arm/stm32/[a-m]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/[a-m]*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/nucleo-f1*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/nucleo-f1*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/nucleo-f2*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/nucleo-f2*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/nucleo-f30*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/nucleo-f30*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-08.dat b/tools/ci/testlist/arm-08.dat
index 35afd3d75b..97c78917a9 100644
--- a/tools/ci/testlist/arm-08.dat
+++ b/tools/ci/testlist/arm-08.dat
@@ -1,9 +1,9 @@
-/arm/stm32/nucleo-f33*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/nucleo-f33*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/nucleo-f4*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/nucleo-f4*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/nucleo-g*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/nucleo-g*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/nucleo-l*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/nucleo-l*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/olimex-*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/olimex-*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-09.dat b/tools/ci/testlist/arm-09.dat
index 68918f2e76..9328d43121 100644
--- a/tools/ci/testlist/arm-09.dat
+++ b/tools/ci/testlist/arm-09.dat
@@ -1,14 +1,14 @@
-/arm/stm32/olimexino-stm32,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/olimexino-stm32,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/omnibusf4,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/omnibusf4,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/photon,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/photon,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/shenzhou,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/shenzhou,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 -shenzhou:thttpd
 
-/arm/stm32/stm3210e-eval,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm3210e-eval,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm3220g-eval,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm3220g-eval,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm3240g-eval,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm3240g-eval,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-10.dat b/tools/ci/testlist/arm-10.dat
index 1b9f2db311..0a64036a18 100644
--- a/tools/ci/testlist/arm-10.dat
+++ b/tools/ci/testlist/arm-10.dat
@@ -1,15 +1,15 @@
-/arm/stm32/stm32_tiny,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32_tiny,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm32butterfly2,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32butterfly2,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm32f103-minimum,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32f103-minimum,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm32f334-disco,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32f334-disco,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm32f3discovery,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32f3discovery,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm32f411-minimum,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32f411-minimum,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm32f411e-disco,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32f411e-disco,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm32f429i-disco,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32f429i-disco,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-11.dat b/tools/ci/testlist/arm-11.dat
index 65105e87c1..1f611b2bbd 100644
--- a/tools/ci/testlist/arm-11.dat
+++ b/tools/ci/testlist/arm-11.dat
@@ -1,8 +1,8 @@
-/arm/stm32/stm32f4discovery,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32f4discovery,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 -stm32f4discovery:winbuild
 
-/arm/stm32/stm32ldiscovery,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32ldiscovery,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/stm32vldiscovery,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32vldiscovery,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32/viewtool-stm32f107,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/viewtool-stm32f107,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-12.dat b/tools/ci/testlist/arm-12.dat
index 406df4231d..0db79c5af7 100644
--- a/tools/ci/testlist/arm-12.dat
+++ b/tools/ci/testlist/arm-12.dat
@@ -1,3 +1,3 @@
-/arm/stm32f*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32f*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/stm32h*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32h*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
diff --git a/tools/ci/testlist/arm-13.dat b/tools/ci/testlist/arm-13.dat
index ef54642797..82672d1d0e 100644
--- a/tools/ci/testlist/arm-13.dat
+++ b/tools/ci/testlist/arm-13.dat
@@ -1,8 +1,8 @@
-/arm/stm32l*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32l*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/str71x,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/str71x,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
-/arm/[t-z]*,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/[t-z]*,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 -eagle100:nxflat
 -eagle100:thttpd
 -launchxl-cc1310:nsh
diff --git a/tools/ci/testlist/macos.dat b/tools/ci/testlist/macos.dat
index b829d0438a..dd654e45d7 100644
--- a/tools/ci/testlist/macos.dat
+++ b/tools/ci/testlist/macos.dat
@@ -23,7 +23,7 @@
 
 # ARM
 
-/arm/stm32/stm32f4discovery/configs/nsh,CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI
+/arm/stm32/stm32f4discovery/configs/nsh,CONFIG_ARM_TOOLCHAIN_GNU_EABI
 
 # XTENSA
 


[incubator-nuttx] 03/03: arch/arm: add support for armclang compiler(AC6)

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 7dbaa4f4c4c8fee064df9308d7239f199f05d94f
Author: chao an <an...@xiaomi.com>
AuthorDate: Thu Sep 15 22:16:36 2022 +0800

    arch/arm: add support for armclang compiler(AC6)
    
    Reference:
    https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Embedded
    
    Signed-off-by: chao an <an...@xiaomi.com>
    Signed-off-by: sheyunhu <sh...@xiaomi.com>
---
 arch/arm/Kconfig                    |  4 ++++
 arch/arm/src/Makefile               | 38 +++++++++++++++++------------
 arch/arm/src/armv6-m/Toolchain.defs |  2 ++
 arch/arm/src/armv7-a/Toolchain.defs | 22 +++++++++++++++++
 arch/arm/src/armv7-m/Toolchain.defs | 22 +++++++++++++++++
 arch/arm/src/armv7-r/Toolchain.defs | 20 ++++++++++++++++
 arch/arm/src/armv8-m/Toolchain.defs | 32 +++++++++++++++++++++++++
 arch/arm/src/common/Toolchain.defs  | 48 +++++++++++++++++++++++++++++++++----
 8 files changed, 168 insertions(+), 20 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c54e25f61b..19721ae34a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -42,6 +42,10 @@ config ARM_TOOLCHAIN_CLANG
 	bool "Generic Clang toolchain"
 	select ARCH_TOOLCHAIN_CLANG
 
+config ARM_TOOLCHAIN_ARMCLANG
+	bool "ARM Compiler Clang toolchain"
+	select ARCH_TOOLCHAIN_CLANG
+
 endchoice
 
 choice
diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile
index b84db3f744..a3e401c85a 100644
--- a/arch/arm/src/Makefile
+++ b/arch/arm/src/Makefile
@@ -85,37 +85,45 @@ UOBJS = $(UAOBJS) $(UCOBJS)
 KBIN = libkarch$(LIBEXT)
 BIN  = libarch$(LIBEXT)
 
-LDFLAGS += $(addprefix -T,$(call CONVERT_PATH,$(ARCHSCRIPT))) $(EXTRALINKCMDS)
-
 # Override in Make.defs if linker is not 'ld'
 
-ifeq ($(LD),$(CC))
-  LDSTARTGROUP ?= -Wl,--start-group
-  LDENDGROUP   ?= -Wl,--end-group
-  LDFLAGS      := $(addprefix -Xlinker ,$(LDFLAGS))
-  LDFLAGS      += $(CFLAGS)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),)
+  ifeq ($(LD),$(CC))
+    LDSTARTGROUP ?= -Wl,--start-group
+    LDENDGROUP   ?= -Wl,--end-group
+    LDFLAGS      := $(addprefix -Xlinker ,$(LDFLAGS))
+    LDFLAGS      += $(CFLAGS)
+  else
+    LDSTARTGROUP ?= --start-group
+    LDENDGROUP   ?= --end-group
+  endif
+
+  LIBPATH_OPT = -L
+  SCRIPT_OPT  = -T
 else
-  LDSTARTGROUP ?= --start-group
-  LDENDGROUP   ?= --end-group
+  LIBPATH_OPT = --userlibpath
+  EXTRA_LIBS += arm_vectors.o
+  SCRIPT_OPT  = --scatter=
 endif
 
-BOARDMAKE = $(if $(wildcard board$(DELIM)Makefile),y,)
+LDFLAGS += $(addprefix $(SCRIPT_OPT),$(call CONVERT_PATH,$(ARCHSCRIPT))) $(EXTRALINKCMDS)
+LIBPATHS += $(LIBPATH_OPT) $(call CONVERT_PATH,$(TOPDIR)$(DELIM)staging)
 
-LIBPATHS += -L $(call CONVERT_PATH,$(TOPDIR)$(DELIM)staging)
+BOARDMAKE = $(if $(wildcard board$(DELIM)Makefile),y,)
 ifeq ($(BOARDMAKE),y)
-  LIBPATHS += -L $(call CONVERT_PATH,$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board)
+  LIBPATHS += $(LIBPATH_OPT) $(call CONVERT_PATH,$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board)
 endif
 
-LDLIBS = $(patsubst %.a,%,$(patsubst lib%,-l%,$(LINKLIBS)))
+LDLIBS = $(patsubst %.a,%,$(patsubst lib%,--library=%,$(LINKLIBS)))
 ifeq ($(BOARDMAKE),y)
-  LDLIBS += -lboard
+  LDLIBS += --library=board
 endif
 
 VPATH += chip
 VPATH += common
 VPATH += $(ARCH_SUBDIR)
 
-ifeq ($(CONFIG_ARCH_TOOLCHAIN_IAR),y)
+ifeq ($(CONFIG_ARM_TOOLCHAIN_IAR),y)
   VPATH += common$(DELIM)iar
 else # ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
   VPATH += common$(DELIM)gnu
diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs
index e3bcd7daef..c18787a736 100644
--- a/arch/arm/src/armv6-m/Toolchain.defs
+++ b/arch/arm/src/armv6-m/Toolchain.defs
@@ -27,6 +27,8 @@ TOOLCHAIN_MFLOAT := -mfloat-abi=soft
 
 ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
   TOOLCHAIN_MARCH := --config armv6m_soft_nofp_nosys
+else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
+  LDFLAGS += --cpu=Cortex-M0
 endif
 
 include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs
index 1d44918a10..0968fa1727 100644
--- a/arch/arm/src/armv7-a/Toolchain.defs
+++ b/arch/arm/src/armv7-a/Toolchain.defs
@@ -61,4 +61,26 @@ else
   ARCHCPUFLAGS += -mfloat-abi=soft
 endif
 
+ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
+
+  ifeq ($(CONFIG_ARCH_CORTEXA5),y)
+    LDCPUFLAGS = Cortex-A5
+  else ifeq ($(CONFIG_ARCH_CORTEXA7),y)
+    LDCPUFLAGS = Cortex-A7
+  else ifeq ($(CONFIG_ARCH_CORTEXA8),y)
+    LDCPUFLAGS = Cortex-A8
+  else ifeq ($(CONFIG_ARCH_CORTEXA9),y)
+    LDCPUFLAGS = Cortex-A9
+  endif
+
+  ifeq ($(CONFIG_ARCH_FPU),)
+    LDFLAGS += --cpu=$(LDCPUFLAGS).no_neon.no_vfp
+  else ifeq ($(CONFIG_ARM_NEON),)
+    LDFLAGS += --cpu=$(LDCPUFLAGS).no_neon
+  else
+    LDFLAGS += --cpu=$(LDCPUFLAGS)
+  endif
+
+endif
+
 include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs
index 07f939ec38..07c942c38b 100644
--- a/arch/arm/src/armv7-m/Toolchain.defs
+++ b/arch/arm/src/armv7-m/Toolchain.defs
@@ -75,6 +75,28 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
       TOOLCHAIN_MARCH += --config armv7m_soft_nofp_nosys
   endif
 
+else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
+
+  ifeq ($(CONFIG_ARCH_CORTEXM4),y)
+    ifeq ($(CONFIG_ARCH_FPU),y)
+      LDFLAGS += --cpu=Cortex-M4
+    else
+      LDFLAGS += --cpu=Cortex-M4.no_fp
+    endif
+  else ifeq ($(CONFIG_ARCH_CORTEXM7),y)
+    ifeq ($(CONFIG_ARCH_FPU),y)
+      ifeq ($(CONFIG_ARCH_DPFPU),y)
+        LDFLAGS += --cpu=Cortex-M7
+      else
+        LDFLAGS += --cpu=Cortex-M7.fp.sp
+      endif
+    else
+      LDFLAGS += --cpu=Cortex-M7.no_fp
+    endif
+  else # ifeq ($(CONFIG_ARCH_CORTEXM3),y)
+    LDFLAGS += --cpu=Cortex-M3
+  endif
+
 endif
 
 ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs
index 6ee10178f3..ba3ff79eca 100644
--- a/arch/arm/src/armv7-r/Toolchain.defs
+++ b/arch/arm/src/armv7-r/Toolchain.defs
@@ -37,4 +37,24 @@ else
   ARCHCPUFLAGS += -mfloat-abi=soft
 endif
 
+ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
+
+  ifeq ($(CONFIG_ARCH_CORTEXR4),y)
+    LDFLAGS += --cpu=Cortex-R4
+  else ifeq ($(CONFIG_ARCH_CORTEXR5),y)
+    ifeq ($(CONFIG_ARCH_FPU),y)
+      LDFLAGS += --cpu=Cortex-R5
+    else
+      LDFLAGS += --cpu=Cortex-R5.no_vfp
+    endif
+  else ifeq ($(CONFIG_ARCH_CORTEXR7),y)
+    ifeq ($(CONFIG_ARCH_FPU),y)
+      LDFLAGS += --cpu=Cortex-R7
+    else
+      LDFLAGS += --cpu=Cortex-R7.no_vfp
+    endif
+  endif
+
+endif
+
 include $(TOPDIR)/arch/arm/src/common/Toolchain.defs
diff --git a/arch/arm/src/armv8-m/Toolchain.defs b/arch/arm/src/armv8-m/Toolchain.defs
index 8ad07e0def..8407e7cd8c 100644
--- a/arch/arm/src/armv8-m/Toolchain.defs
+++ b/arch/arm/src/armv8-m/Toolchain.defs
@@ -84,6 +84,38 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
     endif
   endif
 
+else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
+
+  ifeq ($(CONFIG_ARCH_CORTEXM23),y)
+    LDFLAGS += --cpu=Cortex-M23
+  else ifeq ($(CONFIG_ARCH_CORTEXM33),y)
+    ifeq ($(CONFIG_ARCH_FPU),y)
+      LDFLAGS += --cpu=Cortex-M33
+    else
+      LDFLAGS += --cpu=Cortex-M33.no_fp
+    endif
+  else ifeq ($(CONFIG_ARCH_CORTEXM35P),y)
+    ifeq ($(CONFIG_ARCH_FPU),y)
+      LDFLAGS += --cpu=Cortex-M35P
+    else
+      LDFLAGS += --cpu=Cortex-M35P.no_fp
+    endif
+  else ifeq ($(CONFIG_ARCH_CORTEXM55),y)
+    ifeq ($(CONFIG_ARM_HAVE_MVE),y)
+      ifeq ($(CONFIG_ARCH_FPU),y)
+        LDFLAGS += --cpu=Cortex-M55
+      else
+        LDFLAGS += --cpu=Cortex-M55.no_fp
+      endif
+    else
+      ifeq ($(CONFIG_ARCH_FPU),y)
+        LDFLAGS += --cpu=Cortex-M55.no_mve
+      else
+        LDFLAGS += --cpu=Cortex-M55.no_mve.no_fp
+      endif
+    endif
+  endif
+
 endif
 
 ifeq ($(CONFIG_ARMV8M_STACKCHECK),y)
diff --git a/arch/arm/src/common/Toolchain.defs b/arch/arm/src/common/Toolchain.defs
index 29ad342faa..fb2b45ecf1 100644
--- a/arch/arm/src/common/Toolchain.defs
+++ b/arch/arm/src/common/Toolchain.defs
@@ -131,6 +131,32 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
 
   ARCHOPTIMIZATION += -fno-builtin
 
+# ARM Compiler Clang toolchain
+
+else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
+
+  CC      = armclang
+  CXX     = armclang
+  CPP     = armclang -E -P -x c
+  LD      = armlink
+  STRIP   = llvm-strip --strip-unneeded
+  AR      = armar -rcs
+  NM      = llvm-nm
+  OBJCOPY = llvm-objcopy
+  OBJDUMP = llvm-objdump
+
+  # Since the no_builtin attribute is not fully supported on Clang
+  # disable the built-in functions, refer:
+  # https://github.com/apache/incubator-nuttx/pull/5971
+
+  ARCHOPTIMIZATION += -fno-builtin
+  ARCHOPTIMIZATION += --target=arm-arm-none-eabi
+
+  # Suppress license warning
+
+  ARCHCPUFLAGS += -Wno-license-management
+  LDFLAGS      += --diag_suppress=9931
+
 # Default toolchain
 
 else
@@ -174,23 +200,35 @@ endif
 ARCHOPTIMIZATION += -fno-common -Wall -Wshadow -Wundef
 ARCHOPTIMIZATION += -nostdlib
 
-LDFLAGS += -nostdlib
+ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),)
+  LDFLAGS += -nostdlib
+endif
 
 # Optimization of unused sections
 
-ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
-  LDFLAGS          += --gc-sections
-  ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
+ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),)
+  ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)
+    LDFLAGS          += --gc-sections
+    ARCHOPTIMIZATION += -ffunction-sections -fdata-sections
+  endif
 endif
 
 # Debug link map
 
 ifeq ($(CONFIG_DEBUG_LINK_MAP),y)
-  LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
+  ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),)
+    LDFLAGS += --cref -Map=$(call CONVERT_PATH,$(TOPDIR)$(DELIM)nuttx.map)
+  else
+    LDFLAGS += --strict --map --xref --symbols --info=unused --info=veneers
+    LDFLAGS += --info=summarysizes --info=summarystack
+  endif
 endif
 
 ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
   ARCHOPTIMIZATION += -g
+  ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
+    LDFLAGS += --debug
+  endif
 endif
 
 # Add the builtin library