From a9b75c7e2082ca3efc4379f639476666cb66b33c Mon Sep 17 00:00:00 2001 From: Jon Mason Date: Mon, 14 Jul 2025 09:57:40 -0400 Subject: [PATCH] arm/arch-armv*: Add basic tunes for newly added ARM ISAs Add some basic tunes for the newly added Arm architectures in GCC. These will need to be further fleshed out before submitting this to OE Core, but should be sufficient to use for machines that need them in the interim. Signed-off-by: Jon Mason --- .../conf/machine/include/arm/arch-armv8-7a.inc | 14 ++++++++++++++ .../conf/machine/include/arm/arch-armv8-8a.inc | 14 ++++++++++++++ .../conf/machine/include/arm/arch-armv8-9a.inc | 14 ++++++++++++++ .../conf/machine/include/arm/arch-armv9-1a.inc | 13 +++++++++++++ .../conf/machine/include/arm/arch-armv9-2a.inc | 13 +++++++++++++ .../conf/machine/include/arm/arch-armv9-3a.inc | 13 +++++++++++++ .../conf/machine/include/arm/arch-armv9-4a.inc | 13 +++++++++++++ .../conf/machine/include/arm/arch-armv9-5a.inc | 13 +++++++++++++ 8 files changed, 107 insertions(+) create mode 100644 meta-arm/conf/machine/include/arm/arch-armv8-7a.inc create mode 100644 meta-arm/conf/machine/include/arm/arch-armv8-8a.inc create mode 100644 meta-arm/conf/machine/include/arm/arch-armv8-9a.inc create mode 100644 meta-arm/conf/machine/include/arm/arch-armv9-1a.inc create mode 100644 meta-arm/conf/machine/include/arm/arch-armv9-2a.inc create mode 100644 meta-arm/conf/machine/include/arm/arch-armv9-3a.inc create mode 100644 meta-arm/conf/machine/include/arm/arch-armv9-4a.inc create mode 100644 meta-arm/conf/machine/include/arm/arch-armv9-5a.inc diff --git a/meta-arm/conf/machine/include/arm/arch-armv8-7a.inc b/meta-arm/conf/machine/include/arm/arch-armv8-7a.inc new file mode 100644 index 00000000..6039baca --- /dev/null +++ b/meta-arm/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-arm/conf/machine/include/arm/arch-armv8-8a.inc b/meta-arm/conf/machine/include/arm/arch-armv8-8a.inc new file mode 100644 index 00000000..5694330a --- /dev/null +++ b/meta-arm/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-arm/conf/machine/include/arm/arch-armv8-9a.inc b/meta-arm/conf/machine/include/arm/arch-armv8-9a.inc new file mode 100644 index 00000000..9c79658d --- /dev/null +++ b/meta-arm/conf/machine/include/arm/arch-armv8-9a.inc @@ -0,0 +1,14 @@ +DEFAULTTUNE ?= "armv8-9a" + +TUNEVALID[armv8-9a] = "Enable instructions for ARMv8.9-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-9a', ' -march=armv8.9-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-9a', 'armv8-9a:', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +# Little Endian base configs +AVAILTUNES += "armv8-9a" +ARMPKGARCH:tune-armv8-9a ?= "armv8-9a" +TUNE_FEATURES:tune-armv8-9a = "aarch64 armv8-9a" +PACKAGE_EXTRA_ARCHS:tune-armv8-9a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-9a" +BASE_LIB:tune-armv8-9a = "lib64" diff --git a/meta-arm/conf/machine/include/arm/arch-armv9-1a.inc b/meta-arm/conf/machine/include/arm/arch-armv9-1a.inc new file mode 100644 index 00000000..c42b5c00 --- /dev/null +++ b/meta-arm/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-armv8a} armv9-1a" +BASE_LIB:tune-armv9-1a = "lib64" diff --git a/meta-arm/conf/machine/include/arm/arch-armv9-2a.inc b/meta-arm/conf/machine/include/arm/arch-armv9-2a.inc new file mode 100644 index 00000000..211dac52 --- /dev/null +++ b/meta-arm/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-armv8a} armv9-2a" +BASE_LIB:tune-armv9-2a = "lib64" diff --git a/meta-arm/conf/machine/include/arm/arch-armv9-3a.inc b/meta-arm/conf/machine/include/arm/arch-armv9-3a.inc new file mode 100644 index 00000000..bdd8bb95 --- /dev/null +++ b/meta-arm/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-armv8a} armv9-3a" +BASE_LIB:tune-armv9-3a = "lib64" diff --git a/meta-arm/conf/machine/include/arm/arch-armv9-4a.inc b/meta-arm/conf/machine/include/arm/arch-armv9-4a.inc new file mode 100644 index 00000000..88c907c8 --- /dev/null +++ b/meta-arm/conf/machine/include/arm/arch-armv9-4a.inc @@ -0,0 +1,13 @@ +DEFAULTTUNE ?= "armv9-4a" + +TUNEVALID[armv9-4a] = "Enable instructions for ARMv9.4-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9-4a', ' -march=armv9.4-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9-4a', 'armv9-4a:', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "armv9-4a" +ARMPKGARCH:tune-armv9-4a ?= "armv9-4a" +TUNE_FEATURES:tune-armv9-4a = "aarch64 armv9-4a" +PACKAGE_EXTRA_ARCHS:tune-armv9-4a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv9-4a" +BASE_LIB:tune-armv9-4a = "lib64" diff --git a/meta-arm/conf/machine/include/arm/arch-armv9-5a.inc b/meta-arm/conf/machine/include/arm/arch-armv9-5a.inc new file mode 100644 index 00000000..7202418b --- /dev/null +++ b/meta-arm/conf/machine/include/arm/arch-armv9-5a.inc @@ -0,0 +1,13 @@ +DEFAULTTUNE ?= "armv9-5a" + +TUNEVALID[armv9-5a] = "Enable instructions for ARMv9.5-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9-5a', ' -march=armv9.5-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9-5a', 'armv9-5a:', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "armv9-5a" +ARMPKGARCH:tune-armv9-5a ?= "armv9-5a" +TUNE_FEATURES:tune-armv9-5a = "aarch64 armv9-5a" +PACKAGE_EXTRA_ARCHS:tune-armv9-5a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv9-5a" +BASE_LIB:tune-armv9-5a = "lib64"