From: Jon Mason Date: Wed, 1 Oct 2025 17:58:14 +0000 (-0400) Subject: tunes/arm: add support for newer arm64 cores X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=61f559142f1325f3c883d8a098700047ef3f014f;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git tunes/arm: add support for newer arm64 cores Add tunes for cores that have been present since GCC 14.1.0. These have been present in meta-arm since mid-July, and have all been verified with fvp-base and testimage. Of those present in meta-arm, arch-armv8-9a.inc, arch-armv9-4a.inc, and arch-armv9-5a.inc have been excluded from this commit, as there are currently issues compiling some packages (but still present in meta-arm for those that want to use them despite those issues). Signed-off-by: Jon Mason Signed-off-by: Mathieu Dubois-Briand --- diff --git a/meta/conf/machine/include/arm/arch-armv8-7a.inc b/meta/conf/machine/include/arm/arch-armv8-7a.inc new file mode 100644 index 0000000000..6039baca35 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8-7a.inc @@ -0,0 +1,14 @@ +DEFAULTTUNE ?= "armv8-7a" + +TUNEVALID[armv8-7a] = "Enable instructions for ARMv8.7-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-7a', ' -march=armv8.7-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-7a', 'armv8-7a:', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +# Little Endian base configs +AVAILTUNES += "armv8-7a" +ARMPKGARCH:tune-armv8-7a ?= "armv8-7a" +TUNE_FEATURES:tune-armv8-7a = "aarch64 armv8-7a" +PACKAGE_EXTRA_ARCHS:tune-armv8-7a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-7a" +BASE_LIB:tune-armv8-7a = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv8-8a.inc b/meta/conf/machine/include/arm/arch-armv8-8a.inc new file mode 100644 index 0000000000..5694330a1d --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8-8a.inc @@ -0,0 +1,14 @@ +DEFAULTTUNE ?= "armv8-8a" + +TUNEVALID[armv8-8a] = "Enable instructions for ARMv8.8-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-8a', ' -march=armv8.8-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-8a', 'armv8-8a:', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +# Little Endian base configs +AVAILTUNES += "armv8-8a" +ARMPKGARCH:tune-armv8-8a ?= "armv8-8a" +TUNE_FEATURES:tune-armv8-8a = "aarch64 armv8-8a" +PACKAGE_EXTRA_ARCHS:tune-armv8-8a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-8a" +BASE_LIB:tune-armv8-8a = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv9-1a.inc b/meta/conf/machine/include/arm/arch-armv9-1a.inc new file mode 100644 index 0000000000..f9e6dce77c --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv9-1a.inc @@ -0,0 +1,13 @@ +DEFAULTTUNE ?= "armv9-1a" + +TUNEVALID[armv9-1a] = "Enable instructions for ARMv9.1-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9-1a', ' -march=armv9.1-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9-1a', 'armv9-1a:', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "armv9-1a" +ARMPKGARCH:tune-armv9-1a ?= "armv9-1a" +TUNE_FEATURES:tune-armv9-1a = "aarch64 armv9-1a" +PACKAGE_EXTRA_ARCHS:tune-armv9-1a = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9-1a" +BASE_LIB:tune-armv9-1a = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv9-2a.inc b/meta/conf/machine/include/arm/arch-armv9-2a.inc new file mode 100644 index 0000000000..4b5cf3ed15 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv9-2a.inc @@ -0,0 +1,13 @@ +DEFAULTTUNE ?= "armv9-2a" + +TUNEVALID[armv9-2a] = "Enable instructions for ARMv9.2-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9-2a', ' -march=armv9.2-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9-2a', 'armv9-2a:', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "armv9-2a" +ARMPKGARCH:tune-armv9-2a ?= "armv9-2a" +TUNE_FEATURES:tune-armv9-2a = "aarch64 armv9-2a" +PACKAGE_EXTRA_ARCHS:tune-armv9-2a = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9-2a" +BASE_LIB:tune-armv9-2a = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv9-3a.inc b/meta/conf/machine/include/arm/arch-armv9-3a.inc new file mode 100644 index 0000000000..c345f1532c --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv9-3a.inc @@ -0,0 +1,13 @@ +DEFAULTTUNE ?= "armv9-3a" + +TUNEVALID[armv9-3a] = "Enable instructions for ARMv9.3-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9-3a', ' -march=armv9.3-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9-3a', 'armv9-3a:', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "armv9-3a" +ARMPKGARCH:tune-armv9-3a ?= "armv9-3a" +TUNE_FEATURES:tune-armv9-3a = "aarch64 armv9-3a" +PACKAGE_EXTRA_ARCHS:tune-armv9-3a = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9-3a" +BASE_LIB:tune-armv9-3a = "lib64"