arm: Add support for both floating point ABIs

Add a Kconfig option to select between the Hard and Soft Float ABIs.  We
also default to the Hard Float ABI as this is what older SDK versions
supported.

JIRA: ZEP-555
Change-Id: I2180c98cd7556ab49f5ca9b46b31add2c11bd07b
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Kumar Gala 2016-06-29 14:42:09 -05:00 committed by Inaky Perez-Gonzalez
commit 79606bccf0
2 changed files with 27 additions and 0 deletions

View file

@ -16,8 +16,13 @@ cflags-cortex-m4 = $(call cc-option,-mabi=aapcs -mthumb -mcpu=cortex-m4) \
$(call cc-option,-mthumb -march=armv7e-m) $(call cc-option,-mthumb -march=armv7e-m)
ifeq ($(CONFIG_FLOAT), y) ifeq ($(CONFIG_FLOAT), y)
ifeq ($(CONFIG_FP_SOFTABI), y)
cflags-cortex-m4 += $(call cc-option,-mfloat-abi=softfp -mfpu=fpv4-sp-d16) cflags-cortex-m4 += $(call cc-option,-mfloat-abi=softfp -mfpu=fpv4-sp-d16)
endif endif
ifeq ($(CONFIG_FP_HARDABI), y)
cflags-cortex-m4 += $(call cc-option,-mfloat-abi=hard -mfpu=fpv4-sp-d16)
endif
endif
cflags-cortex-m7 = $(call cc-option,-mabi=aapcs -mthumb -mcpu=cortex-m7) \ cflags-cortex-m7 = $(call cc-option,-mabi=aapcs -mthumb -mcpu=cortex-m7) \
$(call cc-option,-mthumb -march=armv7e-m) $(call cc-option,-mthumb -march=armv7e-m)

View file

@ -62,6 +62,28 @@ config FP_SHARING
This option allows multiple tasks and fibers to use the floating point This option allows multiple tasks and fibers to use the floating point
registers. registers.
choice
prompt "Floating point ABI"
default FP_HARDABI
depends on FLOAT
config FP_HARDABI
bool "Floating point Hard ABI"
depends on FLOAT
help
This option selects the Floating point ABI in which hardware floating
point instructions are generated and uses FPU-specific calling
conventions
config FP_SOFTABI
bool "Floating point Soft ABI"
depends on FLOAT
help
This option selects the Floating point ABI in which hardware floating
point instructions are generated but soft-float calling conventions.
endchoice
endmenu endmenu
if CPU_CORTEX_M if CPU_CORTEX_M