summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPiotr Mienkowski <Piotr.Mienkowski@schmid-telecom.ch>2016-09-27 11:55:39 +0200
committerKumar Gala <kumar.gala@linaro.org>2016-10-26 12:58:40 -0500
commit378fa6598fac1500efad384f2fcb5d0c377ce634 (patch)
tree9764aa37f8dca66146a96d992cb0a056e6629c44 /arch
parent19ffcab434723b3a047eed739c40209af21c1582 (diff)
arch: Add support for Cortex-M7 processor
All M7 features common to M3/M4 are working. New features like Tightly Coupled Memory (TCM) are not yet supported. Change-Id: I5f7b292e70843aec415728f24c973bb003014f4b Jira: ZEP-977 Signed-off-by: Piotr Mienkowski <Piotr.Mienkowski@schmid-telecom.ch>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Makefile9
-rw-r--r--arch/arm/core/cortex_m/Kconfig12
2 files changed, 16 insertions, 5 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index bc187eda1..4c8de9c6d 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -14,19 +14,19 @@ cflags-cortex-m3 = $(call cc-option,-mabi=aapcs -mthumb -mcpu=cortex-m3) \
$(call cc-option,-mthumb -march=armv7-m)
cflags-cortex-m4 = $(call cc-option,-mabi=aapcs -mthumb -mcpu=cortex-m4) \
$(call cc-option,-mthumb -march=armv7e-m)
+cflags-cortex-m7 = $(call cc-option,-mabi=aapcs -mthumb -mcpu=cortex-m7)
ifeq ($(CONFIG_FLOAT), y)
ifeq ($(CONFIG_FP_SOFTABI), y)
cflags-cortex-m4 += $(call cc-option,-mfloat-abi=softfp -mfpu=fpv4-sp-d16)
+cflags-cortex-m7 += $(call cc-option,-mfloat-abi=softfp -mfpu=fpv5-d16)
endif
ifeq ($(CONFIG_FP_HARDABI), y)
cflags-cortex-m4 += $(call cc-option,-mfloat-abi=hard -mfpu=fpv4-sp-d16)
+cflags-cortex-m7 += $(call cc-option,-mfloat-abi=hard -mfpu=fpv5-d16)
endif
endif
-cflags-cortex-m7 = $(call cc-option,-mabi=aapcs -mthumb -mcpu=cortex-m7) \
- $(call cc-option,-mthumb -march=armv7e-m)
-
aflags-$(CONFIG_CPU_CORTEX_M0) += $(cflags-cortex-m0)
cflags-$(CONFIG_CPU_CORTEX_M0) += $(cflags-cortex-m0)
cxxflags-$(CONFIG_CPU_CORTEX_M0) += $(cflags-cortex-m0)
@@ -43,6 +43,9 @@ aflags-$(CONFIG_CPU_CORTEX_M4) += $(cflags-cortex-m4)
cflags-$(CONFIG_CPU_CORTEX_M4) += $(cflags-cortex-m4)
cxxflags-$(CONFIG_CPU_CORTEX_M4) += $(cflags-cortex-m4)
+aflags-$(CONFIG_CPU_CORTEX_M7) += $(cflags-cortex-m7)
+cflags-$(CONFIG_CPU_CORTEX_M7) += $(cflags-cortex-m7)
+cxxflags-$(CONFIG_CPU_CORTEX_M7) += $(cflags-cortex-m7)
KBUILD_AFLAGS += $(aflags-y)
KBUILD_CFLAGS += $(cflags-y)
diff --git a/arch/arm/core/cortex_m/Kconfig b/arch/arm/core/cortex_m/Kconfig
index 098247360..9b81e39b9 100644
--- a/arch/arm/core/cortex_m/Kconfig
+++ b/arch/arm/core/cortex_m/Kconfig
@@ -91,6 +91,14 @@ config CPU_CORTEX_M4
help
This option signifies the use of a Cortex-M4 CPU
+config CPU_CORTEX_M7
+ bool
+ # Omit prompt to signify "hidden" option
+ default n
+ select ISA_THUMB2
+ help
+ This option signifies the use of a Cortex-M7 CPU
+
menu "ARM Cortex-M options"
depends on CPU_CORTEX_M
@@ -181,8 +189,8 @@ config FLASH_BASE_ADDRESS
avoid modifying it via the menu configuration.
endmenu
-menu "ARM Cortex-M0/M0+/M3/M4 options"
- depends on CPU_CORTEX_M0_M0PLUS || CPU_CORTEX_M3_M4
+menu "ARM Cortex-M0/M0+/M3/M4/M7 options"
+ depends on CPU_CORTEX_M0_M0PLUS || CPU_CORTEX_M3_M4 || CPU_CORTEX_M7
config IRQ_OFFLOAD
bool "Enable IRQ offload"