summaryrefslogtreecommitdiffstats
path: root/meta/conf/machine
diff options
context:
space:
mode:
authorRuiqiang Hao <Ruiqiang.Hao@windriver.com>2022-09-15 16:56:50 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-09-21 09:20:49 +0100
commitf142d6440ed21da246ff3c784bb9fb128a48667b (patch)
tree98458fc4aedeb36b29ef6483be822d9f163b58b7 /meta/conf/machine
parent31565c258d48a715c547faf22c0a886989b52075 (diff)
downloadpoky-f142d6440ed21da246ff3c784bb9fb128a48667b.tar.gz
tune-neoversen2: support tune-neoversen2 base on armv9a
We supported neoversen2 base on armv8.5a in the past, add tune include for armv9a and support neoversen2 base on armv9a. (From OE-Core rev: 4a2c4cfaaa5a6d7175c81064939e21bcfe3e736a) Signed-off-by: Ruiqiang Hao <Ruiqiang.Hao@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/conf/machine')
-rw-r--r--meta/conf/machine/include/arm/arch-armv9a.inc28
-rw-r--r--meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc10
2 files changed, 32 insertions, 6 deletions
diff --git a/meta/conf/machine/include/arm/arch-armv9a.inc b/meta/conf/machine/include/arm/arch-armv9a.inc
new file mode 100644
index 0000000000..c38d6cfdf6
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv9a.inc
@@ -0,0 +1,28 @@
1DEFAULTTUNE ?= "armv9a-crc"
2
3TUNEVALID[armv9a] = "Enable instructions for ARMv9-a"
4TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9a', ' -march=armv9-a', '', d)}"
5MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9a', 'armv9a:', '', d)}"
6
7require conf/machine/include/arm/arch-arm64.inc
8require conf/machine/include/arm/feature-arm-crc.inc
9require conf/machine/include/arm/feature-arm-crypto.inc
10
11# Little Endian base configs
12AVAILTUNES += "armv9a armv9a-crc armv9a-crc-crypto armv9a-crypto"
13ARMPKGARCH:tune-armv9a ?= "armv9a"
14ARMPKGARCH:tune-armv9a-crc ?= "armv9a"
15ARMPKGARCH:tune-armv9a-crypto ?= "armv9a"
16ARMPKGARCH:tune-armv9a-crc-crypto ?= "armv9a"
17TUNE_FEATURES:tune-armv9a = "aarch64 armv9a"
18TUNE_FEATURES:tune-armv9a-crc = "${TUNE_FEATURES:tune-armv9a} crc"
19TUNE_FEATURES:tune-armv9a-crypto = "${TUNE_FEATURES:tune-armv9a} crypto"
20TUNE_FEATURES:tune-armv9a-crc-crypto = "${TUNE_FEATURES:tune-armv9a-crc} crypto"
21PACKAGE_EXTRA_ARCHS:tune-armv9a = "aarch64 armv9a"
22PACKAGE_EXTRA_ARCHS:tune-armv9a-crc = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9a-crc"
23PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9a-crypto"
24PACKAGE_EXTRA_ARCHS:tune-armv9a-crc-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crc} armv9a-crypto armv9a-crc-crypto"
25BASE_LIB:tune-armv9a = "lib64"
26BASE_LIB:tune-armv9a-crc = "lib64"
27BASE_LIB:tune-armv9a-crypto = "lib64"
28BASE_LIB:tune-armv9a-crc-crypto = "lib64"
diff --git a/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc b/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc
index 36355f7bed..d26ab25e48 100644
--- a/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc
+++ b/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc
@@ -6,17 +6,15 @@ DEFAULTTUNE ?= "neoversen2"
6TUNEVALID[neoversen2] = "Enable Neoverse-N2 specific processor optimizations" 6TUNEVALID[neoversen2] = "Enable Neoverse-N2 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversen2', ' -mcpu=neoverse-n2', '', d)}" 7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversen2', ' -mcpu=neoverse-n2', '', d)}"
8 8
9# Even though the Neoverse N2 core implemnts the Arm v9.0-A architecture, 9require conf/machine/include/arm/arch-armv9a.inc
10# but the support of it in GCC is based on the Arm v8.5-A architecture.
11require conf/machine/include/arm/arch-armv8-5a.inc
12 10
13# Little Endian base configs 11# Little Endian base configs
14AVAILTUNES += "neoversen2 neoversen2-crypto" 12AVAILTUNES += "neoversen2 neoversen2-crypto"
15ARMPKGARCH:tune-neoversen2 = "neoversen2" 13ARMPKGARCH:tune-neoversen2 = "neoversen2"
16ARMPKGARCH:tune-neoversen2-crypto = "neoversen2-crypto" 14ARMPKGARCH:tune-neoversen2-crypto = "neoversen2-crypto"
17TUNE_FEATURES:tune-neoversen2 = "${TUNE_FEATURES:tune-armv8-5a} neoversen2" 15TUNE_FEATURES:tune-neoversen2 = "${TUNE_FEATURES:tune-armv9a} neoversen2"
18TUNE_FEATURES:tune-neoversen2-crypto = "${TUNE_FEATURES:tune-neoversen2} crypto" 16TUNE_FEATURES:tune-neoversen2-crypto = "${TUNE_FEATURES:tune-neoversen2} crypto"
19PACKAGE_EXTRA_ARCHS:tune-neoversen2 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a} neoversen2" 17PACKAGE_EXTRA_ARCHS:tune-neoversen2 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} neoversen2"
20PACKAGE_EXTRA_ARCHS:tune-neoversen2-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto} neoversen2 neoversen2-crypto" 18PACKAGE_EXTRA_ARCHS:tune-neoversen2-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} neoversen2 neoversen2-crypto"
21BASE_LIB:tune-neoversen2 = "lib64" 19BASE_LIB:tune-neoversen2 = "lib64"
22BASE_LIB:tune-neoversen2-crypto = "lib64" 20BASE_LIB:tune-neoversen2-crypto = "lib64"