2014-10-17 10:55:46 -07:00
|
|
|
ifndef ARCH_arm_TOOLCHAIN_INCLUDED
|
|
|
|
|
ARCH_arm_TOOLCHAIN_INCLUDED := 1
|
|
|
|
|
|
|
|
|
|
# try to find the toolchain
|
|
|
|
|
ifndef ARCH_arm_TOOLCHAIN_PREFIX
|
2015-06-16 18:36:20 -07:00
|
|
|
|
|
|
|
|
# if TOOLCHAIN_PREFIX is not empty, try to use it first
|
|
|
|
|
ifneq ($(TOOLCHAIN_PREFIX),)
|
|
|
|
|
ARCH_arm_TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREFIX)
|
|
|
|
|
FOUNDTOOL=$(shell which $(ARCH_arm_TOOLCHAIN_PREFIX)gcc)
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# try a series of common arm toolchain prefixes in the path
|
|
|
|
|
ifeq ($(FOUNDTOOL),)
|
2014-10-17 10:55:46 -07:00
|
|
|
ARCH_arm_TOOLCHAIN_PREFIX := arm-eabi-
|
|
|
|
|
FOUNDTOOL=$(shell which $(ARCH_arm_TOOLCHAIN_PREFIX)gcc)
|
2015-06-16 18:36:20 -07:00
|
|
|
endif
|
2014-10-17 10:55:46 -07:00
|
|
|
ifeq ($(FOUNDTOOL),)
|
|
|
|
|
ARCH_arm_TOOLCHAIN_PREFIX := arm-elf-
|
|
|
|
|
FOUNDTOOL=$(shell which $(ARCH_arm_TOOLCHAIN_PREFIX)gcc)
|
2015-06-16 18:36:20 -07:00
|
|
|
endif
|
2014-10-17 10:55:46 -07:00
|
|
|
ifeq ($(FOUNDTOOL),)
|
|
|
|
|
ARCH_arm_TOOLCHAIN_PREFIX := arm-none-eabi-
|
|
|
|
|
FOUNDTOOL=$(shell which $(ARCH_arm_TOOLCHAIN_PREFIX)gcc)
|
2015-06-16 18:36:20 -07:00
|
|
|
endif
|
2014-10-17 10:55:46 -07:00
|
|
|
ifeq ($(FOUNDTOOL),)
|
|
|
|
|
ARCH_arm_TOOLCHAIN_PREFIX := arm-linux-gnueabi-
|
|
|
|
|
FOUNDTOOL=$(shell which $(ARCH_arm_TOOLCHAIN_PREFIX)gcc)
|
|
|
|
|
|
|
|
|
|
# Set no stack protection if we found our gnueabi toolchain. We don't
|
|
|
|
|
# need it.
|
|
|
|
|
#
|
|
|
|
|
# Stack protection is default in this toolchain and we get such errors
|
|
|
|
|
# final linking stage:
|
|
|
|
|
#
|
|
|
|
|
# undefined reference to `__stack_chk_guard'
|
|
|
|
|
# undefined reference to `__stack_chk_fail'
|
|
|
|
|
# undefined reference to `__stack_chk_guard'
|
|
|
|
|
#
|
|
|
|
|
ifneq (,$(findstring arm-linux-gnueabi-,$(FOUNDTOOL)))
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -fno-stack-protector
|
|
|
|
|
endif
|
2015-06-16 18:36:20 -07:00
|
|
|
endif # arm-linux-gnueabi-
|
|
|
|
|
|
2015-09-01 12:31:49 -07:00
|
|
|
else
|
|
|
|
|
FOUNDTOOL=$(shell which $(ARCH_arm_TOOLCHAIN_PREFIX)gcc)
|
2015-06-16 18:36:20 -07:00
|
|
|
endif # ARCH_arm_TOOLCHAIN_PREFIX
|
2014-10-17 10:55:46 -07:00
|
|
|
|
|
|
|
|
ifeq ($(FOUNDTOOL),)
|
|
|
|
|
$(error cannot find toolchain, please set ARCH_arm_TOOLCHAIN_PREFIX or add it to your path)
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ifeq ($(ARM_CPU),cortex-m3)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU)
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(ARM_CPU),cortex-m4)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU)
|
|
|
|
|
endif
|
2015-07-08 02:24:15 -07:00
|
|
|
ifeq ($(ARM_CPU),cortex-m7)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=cortex-m4
|
|
|
|
|
endif
|
2014-10-17 10:55:46 -07:00
|
|
|
ifeq ($(ARM_CPU),cortex-m4f)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=cortex-m4 -mfloat-abi=softfp
|
|
|
|
|
endif
|
2015-04-18 14:25:26 -07:00
|
|
|
ifeq ($(ARM_CPU),cortex-a7)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mfpu=vfpv3 -mfloat-abi=softfp
|
|
|
|
|
endif
|
2014-10-17 10:55:46 -07:00
|
|
|
ifeq ($(ARM_CPU),cortex-a8)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mfpu=neon -mfloat-abi=softfp
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(ARM_CPU),cortex-a9)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU)
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(ARM_CPU),cortex-a9-neon)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=cortex-a9
|
|
|
|
|
# XXX cannot enable neon right now because compiler generates
|
|
|
|
|
# neon code for 64bit integer ops
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mfpu=vfpv3 -mfloat-abi=softfp
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(ARM_CPU),cortex-a15)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU)
|
2014-10-07 15:52:53 -07:00
|
|
|
ifneq ($(ARM_WITHOUT_VFP_NEON),true)
|
2014-10-17 10:55:46 -07:00
|
|
|
ARCH_arm_COMPILEFLAGS += -mfpu=vfpv3 -mfloat-abi=softfp
|
|
|
|
|
endif
|
2014-10-07 15:52:53 -07:00
|
|
|
endif
|
2014-10-17 10:55:46 -07:00
|
|
|
ifeq ($(ARM_CPU),arm1136j-s)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU)
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(ARM_CPU),arm1176jzf-s)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -mcpu=$(ARM_CPU)
|
|
|
|
|
endif
|
2015-08-28 16:34:08 -07:00
|
|
|
ifeq ($(ARM_CPU),armemu)
|
|
|
|
|
ARCH_arm_COMPILEFLAGS += -march=armv7-a
|
|
|
|
|
endif
|
2014-10-17 10:55:46 -07:00
|
|
|
|
|
|
|
|
endif
|