mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-05-07 04:58:57 +00:00
arm-bsp: Fix cortexm tunes
Fix the cortex-m tunes to actually function properly. Tested with meta-zephyr on musca-b1. Change-Id: Ib797cafc4f82f6a525cf6b9c0ce4a302a9ef65c2 Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
@@ -11,7 +11,6 @@ TUNECONFLICTS[armv7em] = "armv4 armv5 armv6 armv7a"
|
||||
|
||||
require conf/machine/include/arm/arch-armv7m.inc
|
||||
|
||||
|
||||
AVAILTUNES += "armv7em"
|
||||
ARMPKGARCH_tune-armv7em = "armv7em"
|
||||
TUNE_FEATURES_tune-armv7em = "armv7em"
|
||||
|
||||
@@ -1,15 +1,3 @@
|
||||
#
|
||||
# Tune Settings for Cortex-M3
|
||||
#
|
||||
TUNEVALID[cortexm3] = "Enable Cortex-M3 specific processor optimizations"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm3', ' -mcpu=cortex-m3', '', d)}"
|
||||
|
||||
|
||||
AVAILTUNES += "cortexm3"
|
||||
ARMPKGARCH_tune-cortexm3 = "cortexm3"
|
||||
TUNE_FEATURES_tune-cortexm3 = "${TUNE_FEATURES_tune-armv7m} cortexm3"
|
||||
PACKAGE_EXTRA_ARCHS_tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7m} cortexm3"
|
||||
|
||||
#
|
||||
# Defaults for ARMv7-m
|
||||
#
|
||||
@@ -23,7 +11,6 @@ TUNECONFLICTS[armv7m] = "armv4 armv5 armv6 armv7a"
|
||||
|
||||
require conf/machine/include/arm/arch-armv6m.inc
|
||||
|
||||
|
||||
AVAILTUNES += "armv7m"
|
||||
ARMPKGARCH_tune-armv7m = "armv7m"
|
||||
TUNE_FEATURES_tune-armv7m = "armv7m"
|
||||
|
||||
@@ -12,7 +12,6 @@ TUNECONFLICTS[armv8-1m-main] = "armv4 armv5 armv6 armv7a"
|
||||
|
||||
require conf/machine/include/arm/arch-armv8m-main.inc
|
||||
|
||||
|
||||
AVAILTUNES += "armv8-1m-main"
|
||||
ARMPKGARCH_tune-armv8-1m-main = "armv8-1m-main"
|
||||
TUNE_FEATURES_tune-armv8-1m-main = "armv8-1m-main"
|
||||
|
||||
@@ -7,7 +7,6 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a
|
||||
|
||||
require conf/machine/include/arm/arch-armv8a.inc
|
||||
|
||||
|
||||
AVAILTUNES += "armv8-2a armv8-2a-crypto"
|
||||
ARMPKGARCH_tune-armv8-2a ?= "armv8-2a"
|
||||
ARMPKGARCH_tune-armv8-2a-crypto ?= "armv8-2a"
|
||||
|
||||
@@ -11,7 +11,6 @@ TUNECONFLICTS[armv8m-base] = "armv4 armv5 armv6 armv7a"
|
||||
|
||||
require conf/machine/include/arm/arch-armv7m.inc
|
||||
|
||||
|
||||
AVAILTUNES += "armv8m-base"
|
||||
ARMPKGARCH_tune-armv8m-base = "armv8m-base"
|
||||
TUNE_FEATURES_tune-armv8m-base = "armv8m-base"
|
||||
|
||||
@@ -1,19 +1,36 @@
|
||||
#
|
||||
#
|
||||
# Defaults for ARMv8-M.main
|
||||
# Defaults for ARMv8-m.main
|
||||
#
|
||||
DEFAULTTUNE ?= "armv8m-main"
|
||||
|
||||
require conf/machine/include/arm/arch-armv8m-base.inc
|
||||
|
||||
TUNEVALID[armv8m-main] = "Enable instructions for ARMv8-m.main"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main', '', d)}"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main${MARCH_DSP}${MARCH_FPU}', '', d)}"
|
||||
MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}"
|
||||
|
||||
TUNECONFLICTS[armv8m-main] = "armv4 armv5 armv6 armv7a"
|
||||
|
||||
require conf/machine/include/arm/arch-armv8m-base.inc
|
||||
# FIXME - below taken from meta/conf/machine/include/arm/arch-armv5-dsp.inc and should be put into something more generic
|
||||
TUNEVALID[dsp] = "ARM DSP functionality"
|
||||
ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], 'e', '', d)}"
|
||||
MARCH_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], '+dsp', '+nodsp', d)}"
|
||||
|
||||
# FIXME - Below belongs in meta/conf/machine/include/arm/feature-arm-neon.inc
|
||||
TUNEVALID[vfpv5spd16] = "Enable Vector Floating Point Version 5, Single Precision. with 16 registers (fpv5-sp-d16) unit."
|
||||
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv5spd16', 'fpv5-sp-d16', '', d)}"
|
||||
MARCH_FPU = "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv5spd16' ], '+fp', '+nofp', d)}"
|
||||
|
||||
AVAILTUNES += "armv8m-main"
|
||||
ARMPKGARCH_tune-armv8m-main = "armv8m-main"
|
||||
TUNE_FEATURES_tune-armv8m-main = "armv8m-main"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv8m-main = "armv8m-main"
|
||||
AVAILTUNES += "armv8m-main armv8m-mainearmv8m-main-vfpv5spd16 armv8m-maine-vfpv5spd16"
|
||||
ARMPKGARCH_tune-armv8m-main = "armv8m-main"
|
||||
ARMPKGARCH_tune-armv8m-maine = "armv8m-main"
|
||||
ARMPKGARCH_tune-armv8m-main-vfpv5spd16 = "armv8m-main"
|
||||
ARMPKGARCH_tune-armv8m-maine-vfpv5spd16 = "armv8m-main"
|
||||
TUNE_FEATURES_tune-armv8m-main = "armv8m-main"
|
||||
TUNE_FEATURES_tune-armv8m-maine = "${TUNE_FEATURES_tune-armv8m-main} dsp"
|
||||
TUNE_FEATURES_tune-armv8m-main-vfpv5spd16 = "${TUNE_FEATURES_tune-armv8m-main} vfpv5spd16"
|
||||
TUNE_FEATURES_tune-armv8m-maine-vfpv5spd16 = "${TUNE_FEATURES_tune-armv8m-main-vfpv5spd16} dsp"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv8m-main = "armv8m-main"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv8m-maine = "${PACKAGE_EXTRA_ARCHS_tune-armv8m-main} armv8m-maine"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv8m-main-vfpv5spd16 = "${PACKAGE_EXTRA_ARCHS_tune-armv8m-main} armv8m-main-fpv5-spd16"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv8m-maine-vfpv5spd16 = "${PACKAGE_EXTRA_ARCHS_tune-armv8m-main} armv8m-maine-fpv5-spd16"
|
||||
|
||||
@@ -8,7 +8,6 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm1', ' -mcpu=cortex
|
||||
|
||||
require conf/machine/include/arm/arch-armv6m.inc
|
||||
|
||||
|
||||
AVAILTUNES += "cortexm1"
|
||||
ARMPKGARCH_tune-cortexm1 = "cortexm1"
|
||||
TUNE_FEATURES_tune-cortexm1 = "${TUNE_FEATURES_tune-armv6m} cortexm1"
|
||||
|
||||
@@ -8,7 +8,6 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm23', ' -mcpu=corte
|
||||
|
||||
require conf/machine/include/arm/arch-armv8m-base.inc
|
||||
|
||||
|
||||
AVAILTUNES += "cortexm23"
|
||||
ARMPKGARCH_tune-cortexm23 = "cortexm23"
|
||||
TUNE_FEATURES_tune-cortexm23 = "${TUNE_FEATURES_tune-armv8m-base} cortexm23"
|
||||
|
||||
@@ -8,7 +8,6 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm3', ' -mcpu=cortex
|
||||
|
||||
require conf/machine/include/arm/arch-armv7m.inc
|
||||
|
||||
|
||||
AVAILTUNES += "cortexm3"
|
||||
ARMPKGARCH_tune-cortexm3 = "cortexm3"
|
||||
TUNE_FEATURES_tune-cortexm3 = "${TUNE_FEATURES_tune-armv7m} cortexm3"
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
#
|
||||
# Tune Settings for Cortex-M33
|
||||
#
|
||||
DEFAULTTUNE ?= "armv8m"
|
||||
DEFAULTTUNE ?= "cortexm33"
|
||||
|
||||
TUNEVALID[armv8m] = "Enable instructions for ARMv8-m"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m', ' -march=armv7-m', '', d)}"
|
||||
TUNEVALID[cortexm33] = "Enable Cortex-M33 specific processor optimizations"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm33', ' -mcpu=cortex-m33', '', d)}"
|
||||
|
||||
require conf/machine/include/arm/arch-armv8m-main.inc
|
||||
|
||||
AVAILTUNES += "armv8m"
|
||||
ARMPKGARCH_tune-armv8m ?= "armv8m"
|
||||
TUNE_FEATURES_tune-armv8m = "armv8m"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv8m = "armv8m"
|
||||
|
||||
# GCC thnks that DSP and VFP are required, but Arm docs say it is
|
||||
# optional. So forcing below so that compiling works, but this should
|
||||
# be fixed in GCC
|
||||
AVAILTUNES += "cortexm33"
|
||||
ARMPKGARCH_tune-cortexm33 = "cortexm33"
|
||||
TUNE_FEATURES_tune-cortexm33 = "${TUNE_FEATURES_tune-armv8m-maine-vfpv5spd16} cortexm33"
|
||||
PACKAGE_EXTRA_ARCHS_tune-cortexm33 = "${PACKAGE_EXTRA_ARCHS_tune-armv8m-maine-vfpv5spd16} cortexm33e-fpv5-spd16"
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
#
|
||||
# Tune Settings for Cortex-M35P
|
||||
#
|
||||
DEFAULTTUNE ?= "cortexm33p"
|
||||
DEFAULTTUNE ?= "cortexm35p"
|
||||
|
||||
TUNEVALID[cortexm35p] = "Enable Cortex-M35p specific processor optimizations"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm35p', ' -mcpu=cortex-m35p', '', d)}"
|
||||
|
||||
require conf/machine/include/arm/arch-armv8m-main.inc
|
||||
|
||||
|
||||
# GCC thnks that DSP and VFP are required, but Arm docs say it is
|
||||
# optional. So forcing below so that compiling works, but this should
|
||||
# be fixed in GCC
|
||||
AVAILTUNES += "cortexm35p"
|
||||
ARMPKGARCH_tune-cortexm35p = "cortexm35p"
|
||||
TUNE_FEATURES_tune-cortexm35p = "${TUNE_FEATURES_tune-armv8m-main} cortexm35p"
|
||||
PACKAGE_EXTRA_ARCHS_tune-cortexm35p = "${PACKAGE_EXTRA_ARCHS_tune-armv8m-main} cortexm35p"
|
||||
TUNE_FEATURES_tune-cortexm35p = "${TUNE_FEATURES_tune-armv8m-maine-vfpv5spd16} cortexm35p"
|
||||
PACKAGE_EXTRA_ARCHS_tune-cortexm35p = "${PACKAGE_EXTRA_ARCHS_tune-armv8m-maine-vfpv5spd16} cortexm35pe-fpv5-spd16"
|
||||
|
||||
@@ -8,7 +8,6 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm4', ' -mcpu=cortex
|
||||
|
||||
require conf/machine/include/arm/arch-armv7em.inc
|
||||
|
||||
|
||||
AVAILTUNES += "cortexm4"
|
||||
ARMPKGARCH_tune-cortexm4 = "cortexm4"
|
||||
TUNE_FEATURES_tune-cortexm4 = "${TUNE_FEATURES_tune-armv7em} cortexm4"
|
||||
|
||||
@@ -8,7 +8,6 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm55', ' -mcpu=corte
|
||||
|
||||
require conf/machine/include/arm/arch-armv8-1m-main.inc
|
||||
|
||||
|
||||
AVAILTUNES += "cortexm55"
|
||||
ARMPKGARCH_tune-cortexm55 = "cortexm55"
|
||||
TUNE_FEATURES_tune-cortexm55 = "${TUNE_FEATURES_tune-armv8-1m-main} cortexm55"
|
||||
|
||||
@@ -8,7 +8,6 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm7', ' -mcpu=cortex
|
||||
|
||||
require conf/machine/include/arm/arch-armv7em.inc
|
||||
|
||||
|
||||
AVAILTUNES += "cortexm7"
|
||||
ARMPKGARCH_tune-cortexm7 = "cortexm7"
|
||||
TUNE_FEATURES_tune-cortexm7 = "${TUNE_FEATURES_tune-armv7em} cortexm7"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
EXTRA_IMAGEDEPENDS += "virtual/trusted-firmware-m"
|
||||
PREFERRED_VERSION_trusted-firmware-m = "1.0"
|
||||
|
||||
DEFAULTTUNE ?= "armv8m-main"
|
||||
require conf/machine/include/tune-cortexm33.inc
|
||||
|
||||
# GLIBC will not work with Cortex-M.
|
||||
|
||||
Reference in New Issue
Block a user