diff options
Diffstat (limited to 'meta/conf/machine/include')
69 files changed, 539 insertions, 55 deletions
diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc index 0e2efb5a40..832d0000ac 100644 --- a/meta/conf/machine/include/arm/arch-arm64.inc +++ b/meta/conf/machine/include/arm/arch-arm64.inc @@ -37,3 +37,8 @@ TUNE_ARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_ARCH_64}', TUNE_PKGARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_PKGARCH_64}', '${TUNE_PKGARCH_32}', d)}" ABIEXTENSION = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${ABIEXTENSION_64}', '${ABIEXTENSION_32}', d)}" TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TARGET_FPU_64}', '${TARGET_FPU_32}', d)}" + +# Emit branch protection (PAC/BTI) instructions. On hardware that doesn't +# support these they're meaningless NOP instructions, so there's very little +# reason not to. +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', ' -mbranch-protection=standard', '', d)}" diff --git a/meta/conf/machine/include/arm/arch-armv8-1a.inc b/meta/conf/machine/include/arm/arch-armv8-1a.inc new file mode 100644 index 0000000000..be8e814a39 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8-1a.inc @@ -0,0 +1,18 @@ +DEFAULTTUNE ?= "armv8-1a" + +TUNEVALID[armv8-1a] = "Enable instructions for ARMv8.1-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1a', ' -march=armv8.1-a', '', d)}" +# TUNE crypto will be handled by arch-armv8a.inc below +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1a', 'armv8-1a:', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +AVAILTUNES += "armv8-1a armv8-1a-crypto" +ARMPKGARCH:tune-armv8-1a ?= "armv8-1a" +ARMPKGARCH:tune-armv8-1a-crypto ?= "armv8-1a" +TUNE_FEATURES:tune-armv8-1a = "aarch64 armv8-1a" +TUNE_FEATURES:tune-armv8-1a-crypto = "${TUNE_FEATURES:tune-armv8-1a} crypto" +PACKAGE_EXTRA_ARCHS:tune-armv8-1a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-1a" +PACKAGE_EXTRA_ARCHS:tune-armv8-1a-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-1a} armv8-1a-crypto" +BASE_LIB:tune-armv8-1a = "lib64" +BASE_LIB:tune-armv8-1a-crypto = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc index 95368b0af7..2b5fae1406 100644 --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc @@ -6,6 +6,7 @@ TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a:', '', d)}" require conf/machine/include/arm/arch-armv8a.inc +require conf/machine/include/arm/feature-arm-sve.inc # Little Endian base configs AVAILTUNES += "armv8-2a armv8-2a-crypto" diff --git a/meta/conf/machine/include/arm/arch-armv8-3a.inc b/meta/conf/machine/include/arm/arch-armv8-3a.inc new file mode 100644 index 0000000000..49493fb3b5 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8-3a.inc @@ -0,0 +1,22 @@ +DEFAULTTUNE ?= "armv8-3a" + +TUNEVALID[armv8-3a] = "Enable instructions for ARMv8.3-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-3a', ' -march=armv8.3-a', '', d)}" +# TUNE crypto will be handled by arch-armv8a.inc below +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-3a', 'armv8-3a:', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +AVAILTUNES += "armv8-3a armv8-3a-crypto armv8-3a-crypto-sve" +ARMPKGARCH:tune-armv8-3a ?= "armv8-3a" +ARMPKGARCH:tune-armv8-3a-crypto ?= "armv8-3a" +ARMPKGARCH:tune-armv8-3a-crypto-sve ?= "armv8-3a" +TUNE_FEATURES:tune-armv8-3a = "aarch64 armv8-3a" +TUNE_FEATURES:tune-armv8-3a-crypto = "${TUNE_FEATURES:tune-armv8-3a} crypto" +TUNE_FEATURES:tune-armv8-3a-crypto-sve = "${TUNE_FEATURES:tune-armv8-3a-crypto} sve" +PACKAGE_EXTRA_ARCHS:tune-armv8-3a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-3a" +PACKAGE_EXTRA_ARCHS:tune-armv8-3a-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-3a} armv8-3a-crypto" +PACKAGE_EXTRA_ARCHS:tune-armv8-3a-crypto-sve = "${PACKAGE_EXTRA_ARCHS:tune-armv8-3a-crypto} armv8-3a-crypto-sve" +BASE_LIB:tune-armv8-3a = "lib64" +BASE_LIB:tune-armv8-3a-crypto = "lib64" +BASE_LIB:tune-armv8-3a-crypto-sve = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv8-4a.inc b/meta/conf/machine/include/arm/arch-armv8-4a.inc index 29feddb64c..b61d50daa5 100644 --- a/meta/conf/machine/include/arm/arch-armv8-4a.inc +++ b/meta/conf/machine/include/arm/arch-armv8-4a.inc @@ -6,14 +6,19 @@ TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-4a', ' -march MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-4a', 'armv8-4a:', '', d)}" require conf/machine/include/arm/arch-armv8a.inc +require conf/machine/include/arm/feature-arm-sve.inc # Little Endian base configs -AVAILTUNES += "armv8-4a armv8-4a-crypto" +AVAILTUNES += "armv8-4a armv8-4a-crypto armv8-4a-crypto-sve" ARMPKGARCH:tune-armv8-4a ?= "armv8-4a" ARMPKGARCH:tune-armv8-4a-crypto ?= "armv8-4a" +ARMPKGARCH:tune-armv8-4a-crypto-sve ?= "armv8-4a" TUNE_FEATURES:tune-armv8-4a = "aarch64 armv8-4a" TUNE_FEATURES:tune-armv8-4a-crypto = "${TUNE_FEATURES:tune-armv8-4a} crypto" +TUNE_FEATURES:tune-armv8-4a-crypto-sve = "${TUNE_FEATURES:tune-armv8-4a-crypto} sve" PACKAGE_EXTRA_ARCHS:tune-armv8-4a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-4a" PACKAGE_EXTRA_ARCHS:tune-armv8-4a-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-4a} armv8-4a-crypto" +PACKAGE_EXTRA_ARCHS:tune-armv8-4a-crypto-sve = "${PACKAGE_EXTRA_ARCHS:tune-armv8-4a-crypto} armv8-4a-crypto-sve" BASE_LIB:tune-armv8-4a = "lib64" BASE_LIB:tune-armv8-4a-crypto = "lib64" +BASE_LIB:tune-armv8-4a-crypto-sve = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv8-5a.inc b/meta/conf/machine/include/arm/arch-armv8-5a.inc index a1bcb7fb9a..176bc9033c 100644 --- a/meta/conf/machine/include/arm/arch-armv8-5a.inc +++ b/meta/conf/machine/include/arm/arch-armv8-5a.inc @@ -6,14 +6,19 @@ TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-5a', ' -march MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-5a', 'armv8-5a:', '', d)}" require conf/machine/include/arm/arch-armv8a.inc +require conf/machine/include/arm/feature-arm-sve.inc # Little Endian base configs -AVAILTUNES += "armv8-5a armv8-5a-crypto" +AVAILTUNES += "armv8-5a armv8-5a-crypto armv8-5a-crypto-sve" ARMPKGARCH:tune-armv8-5a ?= "armv8-5a" ARMPKGARCH:tune-armv8-5a-crypto ?= "armv8-5a" +ARMPKGARCH:tune-armv8-5a-crypto-sve ?= "armv8-5a" TUNE_FEATURES:tune-armv8-5a = "aarch64 armv8-5a" TUNE_FEATURES:tune-armv8-5a-crypto = "${TUNE_FEATURES:tune-armv8-5a} crypto" +TUNE_FEATURES:tune-armv8-5a-crypto-sve = "${TUNE_FEATURES:tune-armv8-5a-crypto} sve" PACKAGE_EXTRA_ARCHS:tune-armv8-5a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-5a" PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a} armv8-5a-crypto" +PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto-sve = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto} armv8-5a-crypto-sve" BASE_LIB:tune-armv8-5a = "lib64" BASE_LIB:tune-armv8-5a-crypto = "lib64" +BASE_LIB:tune-armv8-5a-crypto-sve = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv8-6a.inc b/meta/conf/machine/include/arm/arch-armv8-6a.inc new file mode 100644 index 0000000000..27f85325ca --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8-6a.inc @@ -0,0 +1,22 @@ +DEFAULTTUNE ?= "armv8-6a" + +TUNEVALID[armv8-6a] = "Enable instructions for ARMv8.6-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-6a', ' -march=armv8.6-a', '', d)}" +# TUNE crypto will be handled by arch-armv8a.inc below +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-6a', 'armv8-6a:', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +AVAILTUNES += "armv8-6a armv8-6a-crypto armv8-6a-crypto-sve" +ARMPKGARCH:tune-armv8-6a ?= "armv8-6a" +ARMPKGARCH:tune-armv8-6a-crypto ?= "armv8-6a" +ARMPKGARCH:tune-armv8-6a-crypto-sve ?= "armv8-6a" +TUNE_FEATURES:tune-armv8-6a = "aarch64 armv8-6a" +TUNE_FEATURES:tune-armv8-6a-crypto = "${TUNE_FEATURES:tune-armv8-6a} crypto" +TUNE_FEATURES:tune-armv8-6a-crypto-sve = "${TUNE_FEATURES:tune-armv8-6a-crypto} sve" +PACKAGE_EXTRA_ARCHS:tune-armv8-6a = "${PACKAGE_EXTRA_ARCHS:tune-armv8a} armv8-6a" +PACKAGE_EXTRA_ARCHS:tune-armv8-6a-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-6a} armv8-6a-crypto" +PACKAGE_EXTRA_ARCHS:tune-armv8-6a-crypto-sve = "${PACKAGE_EXTRA_ARCHS:tune-armv8-6a-crypto} armv8-6a-crypto-sve" +BASE_LIB:tune-armv8-6a = "lib64" +BASE_LIB:tune-armv8-6a-crypto = "lib64" +BASE_LIB:tune-armv8-6a-crypto-sve = "lib64" diff --git a/meta/conf/machine/include/arm/arch-armv8r.inc b/meta/conf/machine/include/arm/arch-armv8r.inc index 0dcfd34c1a..2fea8d2517 100644 --- a/meta/conf/machine/include/arm/arch-armv8r.inc +++ b/meta/conf/machine/include/arm/arch-armv8r.inc @@ -10,6 +10,7 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8r', 'armv8r:', require conf/machine/include/arm/arch-arm64.inc require conf/machine/include/arm/feature-arm-crc.inc require conf/machine/include/arm/feature-arm-crypto.inc +require conf/machine/include/arm/feature-arm-sve.inc # All ARMv8 has floating point hardware built in. Null it here to avoid any confusion for 32bit. TARGET_FPU_32 = "" 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..e8d7c08a63 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv9a.inc @@ -0,0 +1,19 @@ +DEFAULTTUNE ?= "armv9a" + +TUNEVALID[armv9a] = "Enable instructions for ARMv9-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9a', ' -march=armv9-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9a', 'armv9a:', '', d)}" + +require conf/machine/include/arm/arch-arm64.inc +require conf/machine/include/arm/feature-arm-crypto.inc + +# Little Endian base configs +AVAILTUNES += "armv9a armv9a-crypto" +ARMPKGARCH:tune-armv9a ?= "armv9a" +ARMPKGARCH:tune-armv9a-crypto ?= "armv9a" +TUNE_FEATURES:tune-armv9a = "aarch64 armv9a" +TUNE_FEATURES:tune-armv9a-crypto = "${TUNE_FEATURES:tune-armv9a} crypto" +PACKAGE_EXTRA_ARCHS:tune-armv9a = "aarch64 armv9a" +PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9a-crypto" +BASE_LIB:tune-armv9a = "lib64" +BASE_LIB:tune-armv9a-crypto = "lib64" diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc index ecaaa0d846..4c8985292b 100644 --- a/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc +++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc @@ -12,3 +12,8 @@ AVAILTUNES += "cortexr5" ARMPKGARCH:tune-cortexr5 = "cortexr5" TUNE_FEATURES:tune-cortexr5 = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr5 idiv" PACKAGE_EXTRA_ARCHS:tune-cortexr5 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr5-vfpv3d16" + +AVAILTUNES += "cortexr5hf" +ARMPKGARCH:tune-cortexr5hf = "cortexr5" +TUNE_FEATURES:tune-cortexr5hf = "${TUNE_FEATURES:tune-cortexr5} callconvention-hard" +PACKAGE_EXTRA_ARCHS:tune-cortexr5hf = "cortexr5hf-vfpv3d16" diff --git a/meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc b/meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc index 493ad67b21..0a115be8a4 100644 --- a/meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc +++ b/meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc @@ -10,5 +10,6 @@ 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" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexm55 = "cortexm55" PACKAGE_EXTRA_ARCHS:tune-cortexm55 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-1m-main} cortexm55" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa55.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa55.inc index d130b4b90a..5e63b45ae0 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa55.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa55.inc @@ -8,6 +8,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "cortexa55" ARMPKGARCH:tune-cortexa55 = "cortexa55" -TUNE_FEATURES:tune-cortexa55 = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa55" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa55 = "aarch64 crypto cortexa55" PACKAGE_EXTRA_ARCHS:tune-cortexa55 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa55" BASE_LIB:tune-cortexa55 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65.inc index c7e86887b5..ba96d0452e 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65.inc @@ -11,6 +11,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "cortexa65" ARMPKGARCH:tune-cortexa65 = "cortexa65" -TUNE_FEATURES:tune-cortexa65 = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa65" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa65 = "aarch64 crypto cortexa65" PACKAGE_EXTRA_ARCHS:tune-cortexa65 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa65" BASE_LIB:tune-cortexa65 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65ae.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65ae.inc index dad6d1b174..cc92147441 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65ae.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65ae.inc @@ -11,6 +11,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "cortexa65ae" ARMPKGARCH:tune-cortexa65ae = "cortexa65ae" -TUNE_FEATURES:tune-cortexa65ae = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa65ae" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa65ae = "aarch64 crypto cortexa65ae" PACKAGE_EXTRA_ARCHS:tune-cortexa65ae = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa65ae" BASE_LIB:tune-cortexa65ae = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75-cortexa55.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75-cortexa55.inc index 3a47e8278d..e18b2cb6e0 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75-cortexa55.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75-cortexa55.inc @@ -12,7 +12,8 @@ require conf/machine/include/arm/arch-armv8-2a.inc AVAILTUNES += "cortexa75-cortexa55 cortexa75-cortexa55-crypto" ARMPKGARCH:tune-cortexa75-cortexa55 = "cortexa75-cortexa55" ARMPKGARCH:tune-cortexa75-cortexa55-crypto = "cortexa75-cortexa55-crypto" -TUNE_FEATURES:tune-cortexa75-cortexa55 = "${TUNE_FEATURES:tune-armv8-2a} cortexa75-cortexa55" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa75-cortexa55 = "aarch64 cortexa75-cortexa55" TUNE_FEATURES:tune-cortexa75-cortexa55-crypto = "${TUNE_FEATURES:tune-cortexa75-cortexa55} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa75-cortexa55 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a} cortexa75-cortexa55" PACKAGE_EXTRA_ARCHS:tune-cortexa75-cortexa55-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa75-cortexa55 cortexa75-cortexa55-crypto" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75.inc index 2d9a1159f1..453be2e6fd 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75.inc @@ -11,6 +11,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "cortexa75" ARMPKGARCH:tune-cortexa75 = "cortexa75" -TUNE_FEATURES:tune-cortexa75 = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa75" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa75 = "aarch64 crypto cortexa75" PACKAGE_EXTRA_ARCHS:tune-cortexa75 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa75" BASE_LIB:tune-cortexa75 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc index f4c99ad6bb..7daf9d91a8 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc @@ -12,7 +12,8 @@ require conf/machine/include/arm/arch-armv8-2a.inc AVAILTUNES += "cortexa76-cortexa55 cortexa76-cortexa55-crypto" ARMPKGARCH:tune-cortexa76-cortexa55 = "cortexa76-cortexa55" ARMPKGARCH:tune-cortexa76-cortexa55-crypto = "cortexa76-cortexa55-crypto" -TUNE_FEATURES:tune-cortexa76-cortexa55 = "${TUNE_FEATURES:tune-armv8-2a} cortexa76-cortexa55" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa76-cortexa55 = "aarch64 cortexa76-cortexa55" TUNE_FEATURES:tune-cortexa76-cortexa55-crypto = "${TUNE_FEATURES:tune-cortexa76-cortexa55} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa76-cortexa55 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a} cortexa76-cortexa55" PACKAGE_EXTRA_ARCHS:tune-cortexa76-cortexa55-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa76-cortexa55 cortexa76-cortexa55-crypto" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76.inc index 0dfdb8c5e4..14ed81214d 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76.inc @@ -11,6 +11,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "cortexa76" ARMPKGARCH:tune-cortexa76 = "cortexa76" -TUNE_FEATURES:tune-cortexa76 = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa76" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa76 = "aarch64 crypto cortexa76" PACKAGE_EXTRA_ARCHS:tune-cortexa76 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa76" BASE_LIB:tune-cortexa76 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76ae.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76ae.inc index b2863dca68..191863bac8 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76ae.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76ae.inc @@ -11,6 +11,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "cortexa76ae" ARMPKGARCH:tune-cortexa76ae = "cortexa76ae" -TUNE_FEATURES:tune-cortexa76ae = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa76ae" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa76ae = "aarch64 crypto cortexa76ae" PACKAGE_EXTRA_ARCHS:tune-cortexa76ae = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa76ae" BASE_LIB:tune-cortexa76ae = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa77.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa77.inc index 654b1f6323..1522fd6abd 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa77.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa77.inc @@ -11,6 +11,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "cortexa77" ARMPKGARCH:tune-cortexa77 = "cortexa77" -TUNE_FEATURES:tune-cortexa77 = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa77" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa77 = "aarch64 crypto cortexa77" PACKAGE_EXTRA_ARCHS:tune-cortexa77 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa77" BASE_LIB:tune-cortexa77 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc new file mode 100644 index 0000000000..198b94c679 --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc @@ -0,0 +1,17 @@ +# +# Tune Settings for Cortex-A78 +# +DEFAULTTUNE ?= "cortexa78" + +TUNEVALID[cortexa78] = "Enable Cortex-A78 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa78', ' -mcpu=cortex-a78', '', d)}" + +require conf/machine/include/arm/arch-armv8-2a.inc + +# Little Endian base configs +AVAILTUNES += "cortexa78" +ARMPKGARCH:tune-cortexa78 = "cortexa78" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa78 = "aarch64 crypto cortexa78" +PACKAGE_EXTRA_ARCHS:tune-cortexa78 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa78" +BASE_LIB:tune-cortexa78 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78ae.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78ae.inc new file mode 100644 index 0000000000..fe68bda9a0 --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78ae.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-a78ae +# +DEFAULTTUNE ?= "cortexa78ae" + +TUNEVALID[cortexa78ae] = "Enable cortex-a78ae specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa78ae', ' -mcpu=cortex-a78ae', '', d)}" + +require conf/machine/include/arm/arch-armv8-2a.inc + +AVAILTUNES += "cortexa78ae" +ARMPKGARCH:tune-cortexa78ae = "cortexa78ae" +TUNE_FEATURES:tune-cortexa78ae = "aarch64 crypto cortexa78ae" +PACKAGE_EXTRA_ARCHS:tune-cortexa78ae = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa78ae" +BASE_LIB:tune-cortexa78ae = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78c.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78c.inc new file mode 100644 index 0000000000..cb1fe91dfc --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78c.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-a78c +# +DEFAULTTUNE ?= "cortexa78c" + +TUNEVALID[cortexa78c] = "Enable cortex-a78c specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa78c', ' -mcpu=cortex-a78c', '', d)}" + +require conf/machine/include/arm/arch-armv8-2a.inc + +AVAILTUNES += "cortexa78c" +ARMPKGARCH:tune-cortexa78c = "cortexa78c" +TUNE_FEATURES:tune-cortexa78c = "aarch64 crypto cortexa78c" +PACKAGE_EXTRA_ARCHS:tune-cortexa78c = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa78c" +BASE_LIB:tune-cortexa78c = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexx1.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexx1.inc new file mode 100644 index 0000000000..0a99156e62 --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexx1.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-x1 +# +DEFAULTTUNE ?= "cortexx1" + +TUNEVALID[cortexx1] = "Enable cortex-x1 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexx1', ' -mcpu=cortex-x1', '', d)}" + +require conf/machine/include/arm/arch-armv8-2a.inc + +AVAILTUNES += "cortexx1" +ARMPKGARCH:tune-cortexx1 = "cortexx1" +TUNE_FEATURES:tune-cortexx1 = "aarch64 crypto cortexx1" +PACKAGE_EXTRA_ARCHS:tune-cortexx1 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexx1" +BASE_LIB:tune-cortexx1 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexx1c.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexx1c.inc new file mode 100644 index 0000000000..2a16d1695d --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexx1c.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-x1c +# +DEFAULTTUNE ?= "cortexx1c" + +TUNEVALID[cortexx1c] = "Enable cortex-x1c specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexx1c', ' -mcpu=cortex-x1c', '', d)}" + +require conf/machine/include/arm/arch-armv8-2a.inc + +AVAILTUNES += "cortexx1c" +ARMPKGARCH:tune-cortexx1c = "cortexx1c" +TUNE_FEATURES:tune-cortexx1c = "aarch64 crypto cortexx1c" +PACKAGE_EXTRA_ARCHS:tune-cortexx1c = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexx1c" +BASE_LIB:tune-cortexx1c = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-neoversee1.inc b/meta/conf/machine/include/arm/armv8-2a/tune-neoversee1.inc index 15ed595bde..e906cf965c 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-neoversee1.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-neoversee1.inc @@ -11,6 +11,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "neoversee1" ARMPKGARCH:tune-neoversee1 = "neoversee1" -TUNE_FEATURES:tune-neoversee1 = "${TUNE_FEATURES:tune-armv8-2a-crypto} neoversee1" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-neoversee1 = "aarch64 crypto neoversee1" PACKAGE_EXTRA_ARCHS:tune-neoversee1 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} neoversee1" BASE_LIB:tune-neoversee1 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-neoversen1.inc b/meta/conf/machine/include/arm/armv8-2a/tune-neoversen1.inc index 9d181ef4d5..55f054713f 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-neoversen1.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-neoversen1.inc @@ -12,6 +12,6 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "neoversen1" ARMPKGARCH:tune-neoversen1 = "neoversen1" -TUNE_FEATURES:tune-neoversen1 = "${TUNE_FEATURES:tune-armv8-2a-crypto} neoversen1" +TUNE_FEATURES:tune-neoversen1 = "aarch64 crypto neoversen1" PACKAGE_EXTRA_ARCHS:tune-neoversen1 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} neoversen1" BASE_LIB:tune-neoversen1 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-octeontx2.inc b/meta/conf/machine/include/arm/armv8-2a/tune-octeontx2.inc index 2cac70ea52..e9d7a59c51 100644 --- a/meta/conf/machine/include/arm/armv8-2a/tune-octeontx2.inc +++ b/meta/conf/machine/include/arm/armv8-2a/tune-octeontx2.inc @@ -8,6 +8,7 @@ require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "octeontx2" ARMPKGARCH:tune-octeontx2 = "octeontx2" -TUNE_FEATURES:tune-octeontx2 = "${TUNE_FEATURES:tune-armv8-2a-crypto} octeontx2" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-octeontx2 = "aarch64 crypto octeontx2" PACKAGE_EXTRA_ARCHS:tune-octeontx2 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} octeontx2" BASE_LIB:tune-octeontx2 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-4a/tune-neoverse512tvb.inc b/meta/conf/machine/include/arm/armv8-4a/tune-neoverse512tvb.inc new file mode 100644 index 0000000000..450bf74896 --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-4a/tune-neoverse512tvb.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for neoverse-512tvb +# +DEFAULTTUNE ?= "neoverse512tvb" + +TUNEVALID[neoverse512tvb] = "Enable neoverse-512tvb specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoverse512tvb', ' -mcpu=neoverse-512tvb', '', d)}" + +require conf/machine/include/arm/arch-armv8-4a.inc + +AVAILTUNES += "neoverse512tvb" +ARMPKGARCH:tune-neoverse512tvb = "neoverse512tvb" +TUNE_FEATURES:tune-neoverse512tvb = "aarch64 crypto neoverse512tvb" +PACKAGE_EXTRA_ARCHS:tune-neoverse512tvb = "${PACKAGE_EXTRA_ARCHS:tune-armv8-4a-crypto} neoverse512tvb" +BASE_LIB:tune-neoverse512tvb = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-4a/tune-neoversev1.inc b/meta/conf/machine/include/arm/armv8-4a/tune-neoversev1.inc new file mode 100644 index 0000000000..2b4da7db3c --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-4a/tune-neoversev1.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for neoverse-v1 +# +DEFAULTTUNE ?= "neoversev1" + +TUNEVALID[neoversev1] = "Enable neoverse-v1 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversev1', ' -mcpu=neoverse-v1', '', d)}" + +require conf/machine/include/arm/arch-armv8-4a.inc + +AVAILTUNES += "neoversev1" +ARMPKGARCH:tune-neoversev1 = "neoversev1" +TUNE_FEATURES:tune-neoversev1 = "aarch64 crypto neoversev1" +PACKAGE_EXTRA_ARCHS:tune-neoversev1 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-4a-crypto} neoversev1" +BASE_LIB:tune-neoversev1 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc b/meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc index 25780bc080..e83e0ba68a 100644 --- a/meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc +++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc @@ -10,5 +10,6 @@ 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" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexm23 = "cortexm23" PACKAGE_EXTRA_ARCHS:tune-cortexm23 = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-base} cortexm23" diff --git a/meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc b/meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc index 04d1fe2bde..606900d7a2 100644 --- a/meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc +++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc @@ -13,5 +13,6 @@ require conf/machine/include/arm/arch-armv8m-main.inc # be fixed in GCC AVAILTUNES += "cortexm33" ARMPKGARCH:tune-cortexm33 = "cortexm33" -TUNE_FEATURES:tune-cortexm33 = "${TUNE_FEATURES:tune-armv8m-maine-vfpv5spd16} cortexm33" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexm33 = "vfpv5spd16 dsp cortexm33" PACKAGE_EXTRA_ARCHS:tune-cortexm33 = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-maine-vfpv5spd16} cortexm33e-fpv5-spd16" diff --git a/meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc b/meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc index 60e978facd..4394adab0b 100644 --- a/meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc +++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc @@ -13,5 +13,6 @@ require conf/machine/include/arm/arch-armv8m-main.inc # be fixed in GCC AVAILTUNES += "cortexm35p" ARMPKGARCH:tune-cortexm35p = "cortexm35p" -TUNE_FEATURES:tune-cortexm35p = "${TUNE_FEATURES:tune-armv8m-maine-vfpv5spd16} cortexm35p" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexm35p = "vfpv5spd16 dsp cortexm35p" PACKAGE_EXTRA_ARCHS:tune-cortexm35p = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-maine-vfpv5spd16} cortexm35pe-fpv5-spd16" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa32.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa32.inc index c7b01a2906..25bdf12b18 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa32.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa32.inc @@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa32 cortexa32-crypto" ARMPKGARCH:tune-cortexa32 = "cortexa32" ARMPKGARCH:tune-cortexa32-crypto = "cortexa32" -TUNE_FEATURES:tune-cortexa32 = "armv8a cortexa32 crc callconvention-hard neon" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa32 = "aarch64 cortexa32 crc callconvention-hard neon" TUNE_FEATURES:tune-cortexa32-crypto = "${TUNE_FEATURES:tune-cortexa32} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa32 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa32 cortexa32hf-neon" PACKAGE_EXTRA_ARCHS:tune-cortexa32-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa32 cortexa32hf-neon cortexa32hf-neon-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa34.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa34.inc index 55dd845b00..c195d73378 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa34.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa34.inc @@ -12,7 +12,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa34 cortexa34-crypto" ARMPKGARCH:tune-cortexa34 = "cortexa34" ARMPKGARCH:tune-cortexa34-crypto = "cortexa34" -TUNE_FEATURES:tune-cortexa34 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa34" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa34 = "aarch64 crc cortexa34" TUNE_FEATURES:tune-cortexa34-crypto = "${TUNE_FEATURES:tune-cortexa34} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa34 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa34" PACKAGE_EXTRA_ARCHS:tune-cortexa34-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa34 cortexa34-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa35.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa35.inc index 33afb19386..d811c84455 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa35.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa35.inc @@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa35 cortexa35-crypto" ARMPKGARCH:tune-cortexa35 = "cortexa35" ARMPKGARCH:tune-cortexa35-crypto = "cortexa35" -TUNE_FEATURES:tune-cortexa35 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa35" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa35 = "aarch64 crc cortexa35" TUNE_FEATURES:tune-cortexa35-crypto = "${TUNE_FEATURES:tune-cortexa35} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa35 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa35" PACKAGE_EXTRA_ARCHS:tune-cortexa35-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa53.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa53.inc index a534ad358d..a88575eb15 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa53.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa53.inc @@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa53 cortexa53-crypto" ARMPKGARCH:tune-cortexa53 = "cortexa53" ARMPKGARCH:tune-cortexa53-crypto = "cortexa53-crypto" -TUNE_FEATURES:tune-cortexa53 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa53" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa53 = "aarch64 crc cortexa53" TUNE_FEATURES:tune-cortexa53-crypto = "${TUNE_FEATURES:tune-cortexa53} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa53 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa53" PACKAGE_EXTRA_ARCHS:tune-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa57-cortexa53.inc index 7de671a2e5..052d1173c9 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa57-cortexa53.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa57-cortexa53.inc @@ -9,6 +9,7 @@ require conf/machine/include/arm/arch-armv8a.inc # Little Endian base configs AVAILTUNES += "cortexa57-cortexa53" ARMPKGARCH:tune-cortexa57-cortexa53 = "cortexa57-cortexa53" -TUNE_FEATURES:tune-cortexa57-cortexa53 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa57-cortexa53" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53" PACKAGE_EXTRA_ARCHS:tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa57-cortexa53" BASE_LIB:tune-cortexa57-cortexa53 = "lib64" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa57.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa57.inc index 37650d8798..b0de20f836 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa57.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa57.inc @@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa57 cortexa57-crypto" ARMPKGARCH:tune-cortexa57 = "cortexa57" ARMPKGARCH:tune-cortexa57-crypto = "cortexa57-crypto" -TUNE_FEATURES:tune-cortexa57 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa57" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa57 = "aarch64 crc cortexa57" TUNE_FEATURES:tune-cortexa57-crypto = "${TUNE_FEATURES:tune-cortexa57} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa57 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa57" PACKAGE_EXTRA_ARCHS:tune-cortexa57-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc index a77ef59d62..ff188aec5f 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc @@ -10,7 +10,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa72-cortexa53 cortexa72-cortexa53-crypto" ARMPKGARCH:tune-cortexa72-cortexa53 = "cortexa72-cortexa53" ARMPKGARCH:tune-cortexa72-cortexa53-crypto = "cortexa72-cortexa53-crypto" -TUNE_FEATURES:tune-cortexa72-cortexa53 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa72-cortexa53" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa72-cortexa53 = "aarch64 crc cortexa72-cortexa53" TUNE_FEATURES:tune-cortexa72-cortexa53-crypto = "${TUNE_FEATURES:tune-cortexa72-cortexa53} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa72-cortexa53 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa72-cortexa53" PACKAGE_EXTRA_ARCHS:tune-cortexa72-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc index b0a017e444..cbb6418c06 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc @@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa72 cortexa72-crypto" ARMPKGARCH:tune-cortexa72 = "cortexa72" ARMPKGARCH:tune-cortexa72-crypto = "cortexa72" -TUNE_FEATURES:tune-cortexa72 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa72" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa72 = "aarch64 crc cortexa72" TUNE_FEATURES:tune-cortexa72-crypto = "${TUNE_FEATURES:tune-cortexa72} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa72 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa72" PACKAGE_EXTRA_ARCHS:tune-cortexa72-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa72 cortexa72-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa35.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa35.inc index 869670bf0c..4f4f25f511 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa35.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa35.inc @@ -13,7 +13,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa73-cortexa35 cortexa73-cortexa35-crypto" ARMPKGARCH:tune-cortexa73-cortexa35 = "cortexa73-cortexa35" ARMPKGARCH:tune-cortexa73-cortexa35-crypto = "cortexa73-cortexa35-crypto" -TUNE_FEATURES:tune-cortexa73-cortexa35 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa73-cortexa35" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa73-cortexa35 = "aarch64 crc cortexa73-cortexa35" TUNE_FEATURES:tune-cortexa73-cortexa35-crypto = "${TUNE_FEATURES:tune-cortexa73-cortexa35} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa73-cortexa35 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa73-cortexa35" PACKAGE_EXTRA_ARCHS:tune-cortexa73-cortexa35-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73-cortexa35 cortexa73-cortexa35-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa53.inc index 9cebffd54d..1d152ed83b 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa53.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa53.inc @@ -10,7 +10,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa73-cortexa53 cortexa73-cortexa53-crypto" ARMPKGARCH:tune-cortexa73-cortexa53 = "cortexa73-cortexa53" ARMPKGARCH:tune-cortexa73-cortexa53-crypto = "cortexa73-cortexa53-crypto" -TUNE_FEATURES:tune-cortexa73-cortexa53 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa73-cortexa53" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa73-cortexa53 = "aarch64 crc cortexa73-cortexa53" TUNE_FEATURES:tune-cortexa73-cortexa53-crypto = "${TUNE_FEATURES:tune-cortexa73-cortexa53} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa73-cortexa53 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa73-cortexa53" PACKAGE_EXTRA_ARCHS:tune-cortexa73-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto" diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc index 13876e7245..b3b06a4f09 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc @@ -12,7 +12,8 @@ require conf/machine/include/arm/arch-armv8a.inc AVAILTUNES += "cortexa73 cortexa73-crypto" ARMPKGARCH:tune-cortexa73 = "cortexa73" ARMPKGARCH:tune-cortexa73-crypto = "cortexa73" -TUNE_FEATURES:tune-cortexa73 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa73" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexa73 = "aarch64 crc cortexa73" TUNE_FEATURES:tune-cortexa73-crypto = "${TUNE_FEATURES:tune-cortexa73} crypto" PACKAGE_EXTRA_ARCHS:tune-cortexa73 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa73" PACKAGE_EXTRA_ARCHS:tune-cortexa73-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73 cortexa73-crypto" diff --git a/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc b/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc index 3a97cf8ee8..89f0e09450 100644 --- a/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc +++ b/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc @@ -10,5 +10,11 @@ require conf/machine/include/arm/arch-armv8r.inc AVAILTUNES += "cortexr52" ARMPKGARCH:tune-cortexr52 = "cortexr52" -TUNE_FEATURES:tune-cortexr52 = "${TUNE_FEATURES:tune-armv8r-crc-simd} cortexr52" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-cortexr52 = "aarch64 crc simd cortexr52" PACKAGE_EXTRA_ARCHS:tune-cortexr52 = "${PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-simd} cortexr52" + +AVAILTUNES += "cortexr52hf" +ARMPKGARCH:tune-cortexr52hf = "cortexr52" +TUNE_FEATURES:tune-cortexr52hf = "${TUNE_FEATURES:tune-cortexr52} callconvention-hard" +PACKAGE_EXTRA_ARCHS:tune-cortexr52hf = "cortexr52hf" diff --git a/meta/conf/machine/include/arm/armv8r/tune-cortexr82.inc b/meta/conf/machine/include/arm/armv8r/tune-cortexr82.inc new file mode 100644 index 0000000000..84b2471c6b --- /dev/null +++ b/meta/conf/machine/include/arm/armv8r/tune-cortexr82.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-r82 +# +DEFAULTTUNE ?= "cortexr82" + +TUNEVALID[cortexr82] = "Enable cortex-r82 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr82', ' -mcpu=cortex-r82', '', d)}" + +require conf/machine/include/arm/arch-armv8r.inc + +AVAILTUNES += "cortexr82" +ARMPKGARCH:tune-cortexr82 = "cortexr82" +TUNE_FEATURES:tune-cortexr82 = "${TUNE_FEATURES:tune-armv8r-crc-simd} cortexr82" +PACKAGE_EXTRA_ARCHS:tune-cortexr82 = "${PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-simd} cortexr82" +BASE_LIB:tune-cortexr82 = "lib64" diff --git a/meta/conf/machine/include/arm/armv9a/tune-cortexa510.inc b/meta/conf/machine/include/arm/armv9a/tune-cortexa510.inc new file mode 100644 index 0000000000..09219ec7f1 --- /dev/null +++ b/meta/conf/machine/include/arm/armv9a/tune-cortexa510.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-a510 +# +DEFAULTTUNE ?= "cortexa510" + +TUNEVALID[cortexa510] = "Enable cortex-a510 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa510', ' -mcpu=cortex-a510', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "cortexa510" +ARMPKGARCH:tune-cortexa510 = "cortexa510" +TUNE_FEATURES:tune-cortexa510 = "aarch64 crypto cortexa510" +PACKAGE_EXTRA_ARCHS:tune-cortexa510 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} cortexa510" +BASE_LIB:tune-cortexa510 = "lib64" diff --git a/meta/conf/machine/include/arm/armv9a/tune-cortexa710.inc b/meta/conf/machine/include/arm/armv9a/tune-cortexa710.inc new file mode 100644 index 0000000000..19743d67db --- /dev/null +++ b/meta/conf/machine/include/arm/armv9a/tune-cortexa710.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-a710 +# +DEFAULTTUNE ?= "cortexa710" + +TUNEVALID[cortexa710] = "Enable cortex-a710 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa710', ' -mcpu=cortex-a710', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "cortexa710" +ARMPKGARCH:tune-cortexa710 = "cortexa710" +TUNE_FEATURES:tune-cortexa710 = "aarch64 crypto cortexa710" +PACKAGE_EXTRA_ARCHS:tune-cortexa710 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} cortexa710" +BASE_LIB:tune-cortexa710 = "lib64" diff --git a/meta/conf/machine/include/arm/armv9a/tune-cortexa715.inc b/meta/conf/machine/include/arm/armv9a/tune-cortexa715.inc new file mode 100644 index 0000000000..2f6d8c6f8f --- /dev/null +++ b/meta/conf/machine/include/arm/armv9a/tune-cortexa715.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-a715 +# +DEFAULTTUNE ?= "cortexa715" + +TUNEVALID[cortexa715] = "Enable cortex-a715 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa715', ' -mcpu=cortex-a715', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "cortexa715" +ARMPKGARCH:tune-cortexa715 = "cortexa715" +TUNE_FEATURES:tune-cortexa715 = "aarch64 crypto cortexa715" +PACKAGE_EXTRA_ARCHS:tune-cortexa715 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} cortexa715" +BASE_LIB:tune-cortexa715 = "lib64" diff --git a/meta/conf/machine/include/arm/armv9a/tune-cortexx2.inc b/meta/conf/machine/include/arm/armv9a/tune-cortexx2.inc new file mode 100644 index 0000000000..c116e30ff5 --- /dev/null +++ b/meta/conf/machine/include/arm/armv9a/tune-cortexx2.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-x2 +# +DEFAULTTUNE ?= "cortexx2" + +TUNEVALID[cortexx2] = "Enable cortex-x2 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexx2', ' -mcpu=cortex-x2', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "cortexx2" +ARMPKGARCH:tune-cortexx2 = "cortexx2" +TUNE_FEATURES:tune-cortexx2 = "aarch64 crypto cortexx2" +PACKAGE_EXTRA_ARCHS:tune-cortexx2 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} cortexx2" +BASE_LIB:tune-cortexx2 = "lib64" diff --git a/meta/conf/machine/include/arm/armv9a/tune-cortexx3.inc b/meta/conf/machine/include/arm/armv9a/tune-cortexx3.inc new file mode 100644 index 0000000000..7982079ef8 --- /dev/null +++ b/meta/conf/machine/include/arm/armv9a/tune-cortexx3.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for cortex-x3 +# +DEFAULTTUNE ?= "cortexx3" + +TUNEVALID[cortexx3] = "Enable cortex-x3 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexx3', ' -mcpu=cortex-x3', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "cortexx3" +ARMPKGARCH:tune-cortexx3 = "cortexx3" +TUNE_FEATURES:tune-cortexx3 = "aarch64 crypto cortexx3" +PACKAGE_EXTRA_ARCHS:tune-cortexx3 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} cortexx3" +BASE_LIB:tune-cortexx3 = "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..ad60a3c9f3 100644 --- a/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc +++ b/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc @@ -6,17 +6,16 @@ DEFAULTTUNE ?= "neoversen2" TUNEVALID[neoversen2] = "Enable Neoverse-N2 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversen2', ' -mcpu=neoverse-n2', '', d)}" -# Even though the Neoverse N2 core implemnts the Arm v9.0-A architecture, -# but the support of it in GCC is based on the Arm v8.5-A architecture. -require conf/machine/include/arm/arch-armv8-5a.inc +require conf/machine/include/arm/arch-armv9a.inc # Little Endian base configs AVAILTUNES += "neoversen2 neoversen2-crypto" ARMPKGARCH:tune-neoversen2 = "neoversen2" ARMPKGARCH:tune-neoversen2-crypto = "neoversen2-crypto" -TUNE_FEATURES:tune-neoversen2 = "${TUNE_FEATURES:tune-armv8-5a} neoversen2" +# We do not want -march since -mcpu is added above to cover for it +TUNE_FEATURES:tune-neoversen2 = "aarch64 neoversen2" TUNE_FEATURES:tune-neoversen2-crypto = "${TUNE_FEATURES:tune-neoversen2} crypto" -PACKAGE_EXTRA_ARCHS:tune-neoversen2 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a} neoversen2" -PACKAGE_EXTRA_ARCHS:tune-neoversen2-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto} neoversen2 neoversen2-crypto" +PACKAGE_EXTRA_ARCHS:tune-neoversen2 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} neoversen2" +PACKAGE_EXTRA_ARCHS:tune-neoversen2-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} neoversen2 neoversen2-crypto" BASE_LIB:tune-neoversen2 = "lib64" BASE_LIB:tune-neoversen2-crypto = "lib64" diff --git a/meta/conf/machine/include/arm/armv9a/tune-neoversev2.inc b/meta/conf/machine/include/arm/armv9a/tune-neoversev2.inc new file mode 100644 index 0000000000..5d1e108468 --- /dev/null +++ b/meta/conf/machine/include/arm/armv9a/tune-neoversev2.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for neoverse-v2 +# +DEFAULTTUNE ?= "neoversev2" + +TUNEVALID[neoversev2] = "Enable neoverse-v2 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversev2', ' -mcpu=neoverse-v2', '', d)}" + +require conf/machine/include/arm/arch-armv9a.inc + +AVAILTUNES += "neoversev2" +ARMPKGARCH:tune-neoversev2 = "neoversev2" +TUNE_FEATURES:tune-neoversev2 = "aarch64 crypto neoversev2" +PACKAGE_EXTRA_ARCHS:tune-neoversev2 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} neoversev2" +BASE_LIB:tune-neoversev2 = "lib64" diff --git a/meta/conf/machine/include/arm/feature-arm-sve.inc b/meta/conf/machine/include/arm/feature-arm-sve.inc new file mode 100644 index 0000000000..bdae3d8fc3 --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-sve.inc @@ -0,0 +1,8 @@ +# Scalable Vector Extension (SVE) for Armv8-A and R +# Enabled by default for Armv9 + +TUNEVALID[sve] = "Enable SVE instructions for ARMv8" +TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'sve', '+sve', '', d)}" + +TUNEVALID[sve2] = "Enable SVE2 instructions for ARMv8" +TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'sve2', '+sve2', '', d)}" diff --git a/meta/conf/machine/include/arm/feature-arm-vfp.inc b/meta/conf/machine/include/arm/feature-arm-vfp.inc index 678888e638..d020100daa 100644 --- a/meta/conf/machine/include/arm/feature-arm-vfp.inc +++ b/meta/conf/machine/include/arm/feature-arm-vfp.inc @@ -5,11 +5,12 @@ TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit." TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}" +# simd is special, we don't pass this to the -mfpu, it's implied TUNE_CCARGS .= "${@ (' -mfpu=%s' % d.getVar('TUNE_CCARGS_MFPU').split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}" # The following deals with both vfpv3-d16 and vfpv4-d16 ARMPKGSFX_FPU = "${@ ('-%s' % d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('-d16', 'd16')) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}" TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP." -TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '') else '' }" +TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '' or bb.utils.contains('TUNE_FEATURES', 'simd', True, False, d)) else '' }" TUNE_CCARGS .= "${@ ' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}" ARMPKGSFX_EABI = "${@ 'hf' if (d.getVar('TUNE_CCARGS_MFLOAT') == 'hard') else ''}" diff --git a/meta/conf/machine/include/loongarch/arch-loongarch.inc b/meta/conf/machine/include/loongarch/arch-loongarch.inc new file mode 100644 index 0000000000..d0a51b34c7 --- /dev/null +++ b/meta/conf/machine/include/loongarch/arch-loongarch.inc @@ -0,0 +1,7 @@ +# LoongArch Architecture definition + +DEFAULTTUNE ?= "loongarch64" + +TUNE_ARCH = "${TUNE_ARCH:tune-${DEFAULTTUNE}}" +TUNE_PKGARCH = "${TUNE_PKGARCH:tune-${DEFAULTTUNE}}" +TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'loongarch64', ' -march=loongarch64 -mabi=lp64d', ' ', d)}" diff --git a/meta/conf/machine/include/loongarch/qemuloongarch.inc b/meta/conf/machine/include/loongarch/qemuloongarch.inc new file mode 100644 index 0000000000..e1bcfabc43 --- /dev/null +++ b/meta/conf/machine/include/loongarch/qemuloongarch.inc @@ -0,0 +1,35 @@ +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" + +require conf/machine/include/qemu.inc +require conf/machine/include/loongarch/tune-loongarch.inc + +MACHINE_FEATURES = "screen keyboard ext2 ext3 serial" + +KERNEL_IMAGETYPE = "vmlinuz" +KERNEL_IMAGETYPES += "vmlinuz" +KEEPUIMAGE = "no" + +SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0" + +IMAGE_FSTYPES += "ext4 wic.qcow2" + +WKS_FILE ?= "qemuloongarch.wks" + +MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" + +#EXTRA_IMAGEDEPENDS += "opensbi" + +UBOOT_ENTRYPOINT_loongarch32 = "0x80400000" +UBOOT_ENTRYPOINT_loongarch64 = "0x80200000" + +# qemuboot options +QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" +QB_MACHINE = "-machine virt" +QB_DEFAULT_BIOS = "fw_jump.elf" +QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" +QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" +QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" +QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon" +QB_TCPSERIAL_OPT = " -device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon" +# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy +QB_OPT_APPEND = " -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0" diff --git a/meta/conf/machine/include/loongarch/tune-loongarch.inc b/meta/conf/machine/include/loongarch/tune-loongarch.inc new file mode 100644 index 0000000000..f02ddda474 --- /dev/null +++ b/meta/conf/machine/include/loongarch/tune-loongarch.inc @@ -0,0 +1,13 @@ +require conf/machine/include/loongarch/arch-loongarch.inc + +TUNEVALID[loongarch64] = "Enable 64-bit LoongArch optimizations" + +TUNEVALID[littleendian] = "Little endian mode" + +AVAILTUNES += "loongarch64" + +# Default +TUNE_FEATURES:tune-loongarch64 = "loongarch64" +TUNE_ARCH:tune-loongarch64 = "loongarch64" +TUNE_PKGARCH:tune-loongarch64 = "loongarch64" +PACKAGE_EXTRA_ARCHS:tune-loongarch64 = "loongarch64" diff --git a/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc b/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc index 5c37f49abb..658e87b8cd 100644 --- a/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc +++ b/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc @@ -16,7 +16,7 @@ def microblaze_current_version(d, gcc = False): # find the current version, and convert it to major/minor integers version = None for t in (d.getVar("TUNE_FEATURES") or "").split(): - m = re.search("^v(\d+)\.(\d+)", t) + m = re.search(r"^v(\d+)\.(\d+)", t) if m: version = int(m.group(1)), int(m.group(2)) break diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc index e48ddd2d6b..e39cdcab5d 100644 --- a/meta/conf/machine/include/mips/arch-mips.inc +++ b/meta/conf/machine/include/mips/arch-mips.inc @@ -26,6 +26,8 @@ MACHINE_FEATURES_BACKFILL_CONSIDERED:append = " ${@bb.utils.contains('TUNE_FEATU TUNEVALID[n64] = "MIPS64 n64 ABI" TUNECONFLICTS[n64] = "o32 n32" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'n64', ' -mabi=64', '', d)}" +LD64ARG = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '-m elf64btsmip', '-m elf64ltsmip', d)}" +TUNE_LDARGS += "${@bb.utils.contains('TUNE_FEATURES', 'n64', '${LD64ARG}', '', d)}" # Floating point TUNEVALID[fpu-hard] = "Use hardware FPU" diff --git a/meta/conf/machine/include/mips/tune-mips64r2.inc b/meta/conf/machine/include/mips/tune-mips64r2.inc index c644f40918..e9ca4201ff 100644 --- a/meta/conf/machine/include/mips/tune-mips64r2.inc +++ b/meta/conf/machine/include/mips/tune-mips64r2.inc @@ -12,11 +12,13 @@ TUNE_FEATURES:tune-mips64r2 = "${TUNE_FEATURES:tune-mips64} mips64r2" BASE_LIB:tune-mips64r2 = "lib64" MIPSPKGSFX_VARIANT:tune-mips64r2 = "mips64r2" PACKAGE_EXTRA_ARCHS:tune-mips64r2 = "mips64 mips64r2" +QEMU_EXTRAOPTIONS_mips64r2 = " -cpu MIPS64R2-generic" TUNE_FEATURES:tune-mips64r2el = "${TUNE_FEATURES:tune-mips64el} mips64r2" BASE_LIB:tune-mips64r2el = "lib64" MIPSPKGSFX_VARIANT:tune-mips64r2el = "mips64r2el" PACKAGE_EXTRA_ARCHS:tune-mips64r2el = "mips64el mips64r2el" +QEMU_EXTRAOPTIONS_mips64r2el = " -cpu MIPS64R2-generic" # MIPS 64r2 Soft Float AVAILTUNES += "mips64r2-nf mips64r2el-nf" @@ -25,11 +27,13 @@ TUNE_FEATURES:tune-mips64r2-nf = "${TUNE_FEATURES:tune-mips64-nf} mips64r2" BASE_LIB:tune-mips64r2-nf = "lib64" MIPSPKGSFX_VARIANT:tune-mips64r2-nf = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2-nf = "mips64-nf mips64r2-nf" +QEMU_EXTRAOPTIONS_mips64r2-nf = " -cpu MIPS64R2-generic" TUNE_FEATURES:tune-mips64r2el-nf = "${TUNE_FEATURES:tune-mips64el-nf} mips64r2" BASE_LIB:tune-mips64r2el-nf = "lib64" MIPSPKGSFX_VARIANT:tune-mips64r2el-nf = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2el-nf = "mips64el-nf mips64r2el-nf" +QEMU_EXTRAOPTIONS_mips64r2el-nf = " -cpu MIPS64R2-generic" # MIPS 64r2 n32 AVAILTUNES += "mips64r2-n32 mips64r2el-n32" @@ -38,11 +42,13 @@ TUNE_FEATURES:tune-mips64r2-n32 = "${TUNE_FEATURES:tune-mips64-n32} mips64r2" BASE_LIB:tune-mips64r2-n32 = "lib32" MIPSPKGSFX_VARIANT:tune-mips64r2-n32 = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2-n32 = "mips64-n32 mips64r2-n32" +QEMU_EXTRAOPTIONS_mips64r2-n32 = " -cpu MIPS64R2-generic" TUNE_FEATURES:tune-mips64r2el-n32 = "${TUNE_FEATURES:tune-mips64el-n32} mips64r2" BASE_LIB:tune-mips64r2el-n32 = "lib32" MIPSPKGSFX_VARIANT:tune-mips64r2el-n32 = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2el-n32 = "mips64el-n32 mips64r2el-n32" +QEMU_EXTRAOPTIONS_mips64r2el-n32 = " -cpu MIPS64R2-generic" # MIPS 64r2 n32 and Soft Float AVAILTUNES += "mips64r2-nf-n32 mips64r2el-nf-n32" @@ -51,11 +57,13 @@ TUNE_FEATURES:tune-mips64r2-nf-n32 = "${TUNE_FEATURES:tune-mips64-nf-n32} mips64 BASE_LIB:tune-mips64r2-nf-n32 = "lib32" MIPSPKGSFX_VARIANT:tune-mips64r2-nf-n32 = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2-nf-n32 = "mips64-nf-n32 mips64r2-nf-n32" +QEMU_EXTRAOPTIONS_mips64r2-nf-n32 = " -cpu MIPS64R2-generic" TUNE_FEATURES:tune-mips64r2el-nf-n32 = "${TUNE_FEATURES:tune-mips64el-nf-n32} mips64r2" BASE_LIB:tune-mips64r2el-nf-n32 = "lib32" MIPSPKGSFX_VARIANT:tune-mips64r2el-nf-n32 = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2el-nf-n32 = "mips64el-nf-n32 mips64r2el-nf-n32" +QEMU_EXTRAOPTIONS_mips64r2el-nf-32 = " -cpu MIPS64R2-generic" # MIPS 64r2 o32 AVAILTUNES += "mips64r2-o32 mips64r2el-o32" @@ -64,11 +72,13 @@ TUNE_FEATURES:tune-mips64r2-o32 = "${TUNE_FEATURES:tune-mips64-o32} mips64r2" BASE_LIB:tune-mips64r2-o32 = "lib" MIPSPKGSFX_VARIANT:tune-mips64r2-o32 = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2-o32 = "mips mips64-o32 mips64r2-o32" +QEMU_EXTRAOPTIONS_mips64r2-o32 = " -cpu MIPS64R2-generic" TUNE_FEATURES:tune-mips64r2el-o32 = "${TUNE_FEATURES:tune-mips64el-o32} mips64r2" BASE_LIB:tune-mips64r2el-o32 = "lib" MIPSPKGSFX_VARIANT:tune-mips64r2el-o32 = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2el-o32 = "mipsel mips64el-o32 mips64r2el-o32" +QEMU_EXTRAOPTIONS_mips64r2el-o32 = " -cpu MIPS64R2-generic" # MIPS 64r2 o32 and Soft Float AVAILTUNES += "mips64r2-nf-o32 mips64r2el-nf-o32" @@ -77,8 +87,10 @@ TUNE_FEATURES:tune-mips64r2-nf-o32 = "${TUNE_FEATURES:tune-mips64-nf-o32} mips64 BASE_LIB:tune-mips64r2-nf-o32 = "lib" MIPSPKGSFX_VARIANT:tune-mips64r2-nf-o32 = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2-nf-o32 = "mips-nf mips64r2-nf-o32" +QEMU_EXTRAOPTIONS_mips64r2-nf-o32 = " -cpu MIPS64R2-generic" TUNE_FEATURES:tune-mips64r2el-nf-o32 = "${TUNE_FEATURES:tune-mips64el-nf-o32} mips64r2" BASE_LIB:tune-mips64r2el-nf-o32 = "lib" MIPSPKGSFX_VARIANT:tune-mips64r2el-nf-o32 = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS:tune-mips64r2el-nf-o32 = "mipsel-nf mips64r2el-nf-o32" +QEMU_EXTRAOPTIONS_mips64r2el-nf-o32 = " -cpu MIPS64R2-generic" diff --git a/meta/conf/machine/include/powerpc/tune-power8.inc b/meta/conf/machine/include/powerpc/tune-power8.inc new file mode 100644 index 0000000000..ee10f2428f --- /dev/null +++ b/meta/conf/machine/include/powerpc/tune-power8.inc @@ -0,0 +1,31 @@ +DEFAULTTUNE ?= "ppc64p8le" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[power8] = "Enable IBM Power8 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power8', ' -mcpu=power8', '', d)}" + +AVAILTUNES += "ppcp8 ppc64p8 ppcp8le ppc64p8le" + +TUNE_FEATURES:tune-ppcp8 = "m32 fpu-hard power8 altivec bigendian" +BASE_LIB:tune-ppcp8 = "lib" +TUNE_PKGARCH:tune-ppcp8 = "ppcp8" +PACKAGE_EXTRA_ARCHS:tune-ppcp8 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppcp8" + +TUNE_FEATURES:tune-ppc64p8 = "m64 fpu-hard power8 altivec bigendian" +BASE_LIB:tune-ppc64p8 = "lib64" +TUNE_PKGARCH:tune-ppc64p8 = "ppc64p8" +PACKAGE_EXTRA_ARCHS:tune-ppc64p8 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64p8" + +TUNE_FEATURES:tune-ppcp8le = "m32 fpu-hard power8 altivec" +BASE_LIB:tune-ppcp8le = "lib" +TUNE_PKGARCH:tune-ppcp8le = "ppcp8le" +PACKAGE_EXTRA_ARCHS:tune-ppcp8le = "${PACKAGE_EXTRA_ARCHS:tune-powerpcle} ppcp8le" + +TUNE_FEATURES:tune-ppc64p8le = "m64 fpu-hard power8 altivec" +BASE_LIB:tune-ppc64p8le = "lib64" +TUNE_PKGARCH:tune-ppc64p8le = "ppc64p8le" +PACKAGE_EXTRA_ARCHS:tune-ppc64p8le = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64le} ppc64p8le" + +# glibc configure options to get power8 specific library +GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'power8', '--with-cpu=power8', '', d)}" diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc index 0d71bcbbad..bb7aec7675 100644 --- a/meta/conf/machine/include/qemu.inc +++ b/meta/conf/machine/include/qemu.inc @@ -8,6 +8,7 @@ PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa" XSERVER ?= "xserver-xorg \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast xserver-xorg-extension-glx', '', d)} \ xf86-video-fbdev \ + xf86-video-modesetting \ " MACHINE_FEATURES = "alsa bluetooth usbgadget screen vfat" @@ -22,8 +23,6 @@ RDEPENDS:${KERNEL_PACKAGE_NAME}-base = "" # Use a common kernel recipe for all QEMU machines PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto" -EXTRA_IMAGEDEPENDS += "qemu-system-native qemu-helper-native:do_addto_recipe_sysroot" - # Provide the nfs server kernel module for all qemu images KERNEL_FEATURES:append:pn-linux-yocto = " features/nfsd/nfsd-enable.scc" KERNEL_FEATURES:append:pn-linux-yocto-rt = " features/nfsd/nfsd-enable.scc" diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc index 1d32b4a582..d01d988eee 100644 --- a/meta/conf/machine/include/riscv/qemuriscv.inc +++ b/meta/conf/machine/include/riscv/qemuriscv.inc @@ -3,14 +3,13 @@ PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" require conf/machine/include/qemu.inc require conf/machine/include/riscv/tune-riscv.inc -MACHINE_FEATURES = "screen keyboard ext2 ext3 serial" +MACHINE_FEATURES += "keyboard ext2 ext3 serial" KERNEL_IMAGETYPE = "Image" KERNEL_IMAGETYPES += "uImage" KEEPUIMAGE = "no" SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0" -SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" IMAGE_FSTYPES += "ext4 wic.qcow2" @@ -26,7 +25,7 @@ UBOOT_ENTRYPOINT:riscv32 = "0x80400000" UBOOT_ENTRYPOINT:riscv64 = "0x80200000" # qemuboot options -QB_SMP = "-smp 4" +QB_SMP ?= "-smp 4" QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" QB_MACHINE = "-machine virt" QB_DEFAULT_BIOS = "fw_jump.elf" @@ -34,6 +33,7 @@ QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" -QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" +QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon" QB_GRAPHICS = "-device bochs-display" -QB_OPT_APPEND = "-device virtio-tablet-pci -device virtio-keyboard-pci" +QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd" +QB_OPT_APPEND:riscv32 = "-device virtio-tablet-pci -device virtio-keyboard-pci" diff --git a/meta/conf/machine/include/riscv/tune-riscv.inc b/meta/conf/machine/include/riscv/tune-riscv.inc index 659801496c..804712077e 100644 --- a/meta/conf/machine/include/riscv/tune-riscv.inc +++ b/meta/conf/machine/include/riscv/tune-riscv.inc @@ -10,7 +10,7 @@ TUNEVALID[riscv64nc] = "Enable 64-bit RISC-V optimizations without compressed in TUNEVALID[bigendian] = "Big endian mode" -AVAILTUNES += "riscv64 riscv32 riscv64nf riscv32nf" +AVAILTUNES += "riscv64 riscv32 riscv64nc riscv64nf riscv32nf" # Default TUNE_FEATURES:tune-riscv64 = "riscv64" diff --git a/meta/conf/machine/include/x86/qemuboot-x86.inc b/meta/conf/machine/include/x86/qemuboot-x86.inc index 3953679366..6ae03633ae 100644 --- a/meta/conf/machine/include/x86/qemuboot-x86.inc +++ b/meta/conf/machine/include/x86/qemuboot-x86.inc @@ -1,11 +1,11 @@ # For runqemu IMAGE_CLASSES += "qemuboot" -QB_SMP = "-smp 4" -QB_CPU:x86 = "-cpu IvyBridge -machine q35,i8042=off" -QB_CPU_KVM:x86 = "-cpu IvyBridge -machine q35,i8042=off" +QB_SMP ?= "-smp 4" +QB_CPU:x86 ?= "-cpu IvyBridge -machine q35,i8042=off" +QB_CPU_KVM:x86 ?= "-cpu IvyBridge -machine q35,i8042=off" -QB_CPU:x86-64 = "-cpu IvyBridge -machine q35,i8042=off" -QB_CPU_KVM:x86-64 = "-cpu IvyBridge -machine q35,i8042=off" +QB_CPU:x86-64 ?= "-cpu IvyBridge -machine q35,i8042=off" +QB_CPU_KVM:x86-64 ?= "-cpu IvyBridge -machine q35,i8042=off" QB_AUDIO_DRV = "alsa" QB_AUDIO_OPT = "-device AC97" diff --git a/meta/conf/machine/include/x86/tune-core2.inc b/meta/conf/machine/include/x86/tune-core2.inc index 97b7c1b188..082fd4efc3 100644 --- a/meta/conf/machine/include/x86/tune-core2.inc +++ b/meta/conf/machine/include/x86/tune-core2.inc @@ -21,18 +21,18 @@ TUNE_FEATURES:tune-core2-32 = "${TUNE_FEATURES:tune-x86} core2" BASE_LIB:tune-core2-32 = "lib" TUNE_PKGARCH:tune-core2-32 = "core2-32" PACKAGE_EXTRA_ARCHS:tune-core2-32 = "${PACKAGE_EXTRA_ARCHS:tune-i686} core2-32" -QEMU_EXTRAOPTIONS_core2-32 = " -cpu n270" +QEMU_EXTRAOPTIONS_core2-32 = " -cpu Nehalem,check=false" AVAILTUNES += "core2-64" TUNE_FEATURES:tune-core2-64 = "${TUNE_FEATURES:tune-x86-64} core2" BASE_LIB:tune-core2-64 = "lib64" TUNE_PKGARCH:tune-core2-64 = "core2-64" PACKAGE_EXTRA_ARCHS:tune-core2-64 = "${PACKAGE_EXTRA_ARCHS:tune-x86-64} core2-64" -QEMU_EXTRAOPTIONS_core2-64 = " -cpu core2duo" +QEMU_EXTRAOPTIONS_core2-64 = " -cpu Nehalem,check=false" AVAILTUNES += "core2-64-x32" TUNE_FEATURES:tune-core2-64-x32 = "${TUNE_FEATURES:tune-x86-64-x32} core2" BASE_LIB:tune-core2-64-x32 = "libx32" TUNE_PKGARCH:tune-core2-64-x32 = "core2-64-x32" PACKAGE_EXTRA_ARCHS:tune-core2-64-x32 = "${PACKAGE_EXTRA_ARCHS:tune-x86-64-x32} core2-64-x32" -QEMU_EXTRAOPTIONS_core2-64-x32 = " -cpu core2duo" +QEMU_EXTRAOPTIONS_core2-64-x32 = " -cpu Nehalem,check=false" diff --git a/meta/conf/machine/include/x86/tune-x86-64-v3.inc b/meta/conf/machine/include/x86/tune-x86-64-v3.inc new file mode 100644 index 0000000000..254f03c590 --- /dev/null +++ b/meta/conf/machine/include/x86/tune-x86-64-v3.inc @@ -0,0 +1,31 @@ +# Settings for the GCC(1) cpu-type "x86-64-v3": +# +# CPUs with AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE. +# (but not AVX512). +# See https://www.phoronix.com/news/GCC-11-x86-64-Feature-Levels for details. +# +# This tune is recommended for Intel Haswell/AMD Excavator CPUs (and later). +# +DEFAULTTUNE ?= "x86-64-v3" + +# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS +require conf/machine/include/x86/tune-corei7.inc + +# Extra tune features +TUNEVALID[x86-64-v3] = "Enable x86-64-v3 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'x86-64-v3', ' -march=x86-64-v3', '', d)}" + +# Extra tune selections +AVAILTUNES += "x86-64-v3" +TUNE_FEATURES:tune-x86-64-v3 = "${TUNE_FEATURES:tune-x86-64} x86-64-v3" +BASE_LIB:tune-x86-64-v3 = "lib64" +TUNE_PKGARCH:tune-x86-64-v3 = "x86-64-v3" +PACKAGE_EXTRA_ARCHS:tune-x86-64-v3 = "${PACKAGE_EXTRA_ARCHS:tune-corei7-64} x86-64-v3" +QEMU_EXTRAOPTIONS_x86-64-v3 = " -cpu Skylake-Client,check=false" + +AVAILTUNES += "x86-64-v3-x32" +TUNE_FEATURES:tune-x86-64-v3-x32 = "${TUNE_FEATURES:tune-x86-64-x32} x86-64-v3" +BASE_LIB:tune-x86-64-v3-x32 = "libx32" +TUNE_PKGARCH:tune-x86-64-v3-x32 = "x86-64-v3-x32" +PACKAGE_EXTRA_ARCHS:tune-x86-64-v3-x32 = "${PACKAGE_EXTRA_ARCHS:tune-corei7-64-x32} x86-64-v3-x32" +QEMU_EXTRAOPTIONS_x86-64-v3-x32 = " -cpu Skylake-Client,check=false" diff --git a/meta/conf/machine/include/x86/x86-base.inc b/meta/conf/machine/include/x86/x86-base.inc index 4052eacdb5..fc6c39148d 100644 --- a/meta/conf/machine/include/x86/x86-base.inc +++ b/meta/conf/machine/include/x86/x86-base.inc @@ -18,7 +18,6 @@ SERIAL_CONSOLES ?= "115200;ttyS0" # kernel-related variables # PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto" -PREFERRED_VERSION_linux-yocto ??= "5.19%" # # XSERVER subcomponents, used to build the XSERVER variable |