diff options
Diffstat (limited to 'meta/conf/machine')
164 files changed, 1095 insertions, 159 deletions
diff --git a/meta/conf/machine/include/arm/arch-arm.inc b/meta/conf/machine/include/arm/arch-arm.inc index 869089051c..f1e92e19c6 100644 --- a/meta/conf/machine/include/arm/arch-arm.inc +++ b/meta/conf/machine/include/arm/arch-arm.inc @@ -14,3 +14,7 @@ TUNE_PKGARCH = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI} ABIEXTENSION = "eabi" TARGET_FPU = "${@d.getVar('TUNE_CCARGS_MFLOAT') or 'soft'}" + +# Some -march settings need a +X option passed in. Since we cannot guarantee that any specified TUNE_CCARGS option is set in any order, we must hard code the order here to allow for it. +TUNE_CCARGS_MARCH_OPTS ??= "" +TUNE_CCARGS .= "${TUNE_CCARGS_MARCH}${TUNE_CCARGS_MARCH_OPTS}" 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-armv4.inc b/meta/conf/machine/include/arm/arch-armv4.inc index 4f4a63b287..be5761fb20 100644 --- a/meta/conf/machine/include/arm/arch-armv4.inc +++ b/meta/conf/machine/include/arm/arch-armv4.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv4" TUNEVALID[arm] = "Enable ARM instruction set" TUNEVALID[armv4] = "Enable instructions for ARMv4" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}" # enable --fix-v4bx when we have armv4 in TUNE_FEATURES, but then disable it when we have also armv5 or thumb # maybe we should extend bb.utils.contains to support check for any checkvalues in value, now it does # checkvalues.issubset(val) which cannot be used for negative test of foo neither bar in value diff --git a/meta/conf/machine/include/arm/arch-armv5-dsp.inc b/meta/conf/machine/include/arm/arch-armv5-dsp.inc index d296e827cf..f3c749d722 100644 --- a/meta/conf/machine/include/arm/arch-armv5-dsp.inc +++ b/meta/conf/machine/include/arm/arch-armv5-dsp.inc @@ -1,3 +1,4 @@ +# Can't use feature-arm-dsp.inc, since that will add "+dsp", which isn't supported in GCC for ARMv5 ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], 'e', '', d)}" TUNEVALID[dsp] = "ARM DSP functionality" diff --git a/meta/conf/machine/include/arm/arch-armv5.inc b/meta/conf/machine/include/arm/arch-armv5.inc index 5f46992098..6bb465e7b6 100644 --- a/meta/conf/machine/include/arm/arch-armv5.inc +++ b/meta/conf/machine/include/arm/arch-armv5.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv5" TUNEVALID[armv5] = "Enable instructions for ARMv5" TUNECONFLICTS[armv5] = "armv4" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5t${ARMPKGSFX_DSP}', '', d)}" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5t${ARMPKGSFX_DSP}', '', d)}" MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '', d)}" require conf/machine/include/arm/arch-armv4.inc diff --git a/meta/conf/machine/include/arm/arch-armv6.inc b/meta/conf/machine/include/arm/arch-armv6.inc index 9d2e112b71..ef8d288ea7 100644 --- a/meta/conf/machine/include/arm/arch-armv6.inc +++ b/meta/conf/machine/include/arm/arch-armv6.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv6hf" TUNEVALID[armv6] = "Enable instructions for ARMv6" TUNECONFLICTS[armv6] = "armv4 armv5" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6', ' -march=armv6', '', d)}" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6', ' -march=armv6', '', d)}" MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6', 'armv6:', '', d)}" require conf/machine/include/arm/arch-armv5-dsp.inc diff --git a/meta/conf/machine/include/arm/arch-armv6m.inc b/meta/conf/machine/include/arm/arch-armv6m.inc index e7ca665a02..d6d6c7ed2d 100644 --- a/meta/conf/machine/include/arm/arch-armv6m.inc +++ b/meta/conf/machine/include/arm/arch-armv6m.inc @@ -7,7 +7,7 @@ TUNECONFLICTS[armv6m] = "armv4 armv5 armv6 armv7a" # Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture". # SVC is a valid instruction. -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}" MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '', d)}" require conf/machine/include/arm/arch-armv5.inc diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc index 0f83cee37c..74fc8d11ab 100644 --- a/meta/conf/machine/include/arm/arch-armv7a.inc +++ b/meta/conf/machine/include/arm/arch-armv7a.inc @@ -3,11 +3,12 @@ ARM_INSTRUCTION_SET ?= "thumb" TUNEVALID[armv7a] = "Enable instructions for ARMv7-a" TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', ' -march=armv7-a', '', d)}" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', ' -march=armv7-a', '', d)}" MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:', '', d)}" require conf/machine/include/arm/arch-armv6.inc require conf/machine/include/arm/feature-arm-neon.inc +require conf/machine/include/arm/feature-arm-simd.inc # Little Endian base configs AVAILTUNES += "armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-vfpv4d16 armv7at-vfpv4d16 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4" diff --git a/meta/conf/machine/include/arm/arch-armv7em.inc b/meta/conf/machine/include/arm/arch-armv7em.inc new file mode 100644 index 0000000000..f7608ea2ee --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv7em.inc @@ -0,0 +1,17 @@ +# +# Defaults for ARMv7e-m +# +DEFAULTTUNE ?= "armv7em" + +TUNEVALID[armv7em] = "Enable instructions for ARMv7e-m" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7em', ' -march=armv7e-m', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7em', 'armv7em:', '', d)}" + +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" +PACKAGE_EXTRA_ARCHS:tune-armv7em = "armv7em" diff --git a/meta/conf/machine/include/arm/arch-armv7m.inc b/meta/conf/machine/include/arm/arch-armv7m.inc new file mode 100644 index 0000000000..2b69a3dfd1 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv7m.inc @@ -0,0 +1,17 @@ +# +# Defaults for ARMv7-m +# +DEFAULTTUNE ?= "armv7m" + +TUNEVALID[armv7m] = "Enable instructions for ARMv7-m" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', ' -march=armv7-m', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 'armv7m:', '', d)}" + +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" +PACKAGE_EXTRA_ARCHS:tune-armv7m = "armv7m" diff --git a/meta/conf/machine/include/arm/arch-armv7r.inc b/meta/conf/machine/include/arm/arch-armv7r.inc new file mode 100644 index 0000000000..fac26cf4ad --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv7r.inc @@ -0,0 +1,22 @@ +# +# Defaults for ARMv7-r +# +DEFAULTTUNE ?= "armv7r" + +TUNEVALID[armv7r] = "Enable instructions for ARMv7-r" +TUNE_CCARGS_MARCH = "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', ' -march=armv7-r', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', 'armv7r:', '', d)}" + +TUNECONFLICTS[armv7r] = "armv4 armv5 armv6 armv7a" + +require conf/machine/include/arm/arch-armv6.inc +require conf/machine/include/arm/feature-arm-idiv.inc +require conf/machine/include/arm/feature-arm-neon.inc + +AVAILTUNES += "armv7r armv7r-vfpv3d16" +ARMPKGARCH:tune-armv7r = "armv7r" +ARMPKGARCH:tune-armv7r-vfpv3d16 = "armv7r" +TUNE_FEATURES:tune-armv7r = "armv7r" +TUNE_FEATURES:tune-armv7r-vfpv3d16 = "${TUNE_FEATURES:tune-armv7r} vfpv3d16" +PACKAGE_EXTRA_ARCHS:tune-armv7r = "armv7r" +PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r} tune-armv7r-fpv3d16" diff --git a/meta/conf/machine/include/arm/arch-armv7ve.inc b/meta/conf/machine/include/arm/arch-armv7ve.inc index b40c2ca8ad..8102ae6085 100644 --- a/meta/conf/machine/include/arm/arch-armv7ve.inc +++ b/meta/conf/machine/include/arm/arch-armv7ve.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv7vethf" TUNEVALID[armv7ve] = "Enable instructions for ARMv7ve" TUNECONFLICTS[armv7ve] = "armv4 armv5 armv6 armv7 armv7a" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}" MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '', d)}" require conf/machine/include/arm/arch-armv7a.inc 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-1m-main.inc b/meta/conf/machine/include/arm/arch-armv8-1m-main.inc new file mode 100644 index 0000000000..5b1bcb8f46 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8-1m-main.inc @@ -0,0 +1,18 @@ +# +# +# Defaults for ARMv8.1-M.main +# +DEFAULTTUNE ?= "armv8-1m-main" + +TUNEVALID[armv8-1m-main] = "Enable instructions for ARMv8.1-m.main" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1m-main', ' -march=armv8.1-m.main', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1m-main', 'armv8-1m-main:', '', d)}" + +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" +PACKAGE_EXTRA_ARCHS:tune-armv8-1m-main = "armv8-1m-main" diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc index c84b1ecf24..2b5fae1406 100644 --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc @@ -1,11 +1,12 @@ DEFAULTTUNE ?= "armv8-2a" -TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}" +TUNEVALID[armv8-2a] = "Enable instructions for ARMv8.2-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}" # TUNE crypto will be handled by arch-armv8a.inc below 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 new file mode 100644 index 0000000000..b61d50daa5 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8-4a.inc @@ -0,0 +1,24 @@ +DEFAULTTUNE ?= "armv8-4a" + +TUNEVALID[armv8-4a] = "Enable instructions for ARMv8.4-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-4a', ' -march=armv8.4-a', '', d)}" +# TUNE crypto will be handled by arch-armv8a.inc below +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 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 new file mode 100644 index 0000000000..176bc9033c --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8-5a.inc @@ -0,0 +1,24 @@ +DEFAULTTUNE ?= "armv8-5a" + +TUNEVALID[armv8-5a] = "Enable instructions for ARMv8.5-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-5a', ' -march=armv8.5-a', '', d)}" +# TUNE crypto will be handled by arch-armv8a.inc below +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 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-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc index 819dffbeba..97c944dfa5 100644 --- a/meta/conf/machine/include/arm/arch-armv8a.inc +++ b/meta/conf/machine/include/arm/arch-armv8a.inc @@ -1,14 +1,12 @@ DEFAULTTUNE ?= "armv8a-crc" TUNEVALID[armv8a] = "Enable instructions for ARMv8-a" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}" -TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}" -TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}" MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '', d)}" 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 # Little Endian base configs AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto" diff --git a/meta/conf/machine/include/arm/arch-armv8m-base.inc b/meta/conf/machine/include/arm/arch-armv8m-base.inc new file mode 100644 index 0000000000..ffee8cea80 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8m-base.inc @@ -0,0 +1,17 @@ +# +# Defaults for ARMv8-m.base +# +DEFAULTTUNE ?= "armv8m-base" + +TUNEVALID[armv8m-base] = "Enable instructions for ARMv8-m.base" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-base', ' -march=armv8-m.base', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-base', 'armv8m-base:', '', d)}" + +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" +PACKAGE_EXTRA_ARCHS:tune-armv8m-base = "armv8m-base" diff --git a/meta/conf/machine/include/arm/arch-armv8m-main.inc b/meta/conf/machine/include/arm/arch-armv8m-main.inc new file mode 100644 index 0000000000..01bef35428 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8m-main.inc @@ -0,0 +1,28 @@ +# +# Defaults for ARMv8-m.main +# +DEFAULTTUNE ?= "armv8m-main" + +require conf/machine/include/arm/arch-armv8m-base.inc +require conf/machine/include/arm/feature-arm-dsp.inc +require conf/machine/include/arm/feature-arm-neon.inc + +TUNEVALID[armv8m-main] = "Enable instructions for ARMv8-m.main" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}" + +TUNECONFLICTS[armv8m-main] = "armv4 armv5 armv6 armv7a" + +AVAILTUNES += "armv8m-main armv8m-maine armv8m-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" diff --git a/meta/conf/machine/include/arm/arch-armv8r.inc b/meta/conf/machine/include/arm/arch-armv8r.inc new file mode 100644 index 0000000000..2fea8d2517 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8r.inc @@ -0,0 +1,38 @@ +# +# Defaults for ARMv8-r +# +DEFAULTTUNE ?= "armv8r" + +TUNEVALID[armv8r] = "Enable instructions for ARMv8-r" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8r', ' -march=armv8-r', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8r', 'armv8r:', '', d)}" + +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 = "" + +AVAILTUNES += "armv8r armv8r-crc armv8r-crypto armv8r-simd armv8r-crc-crypto armv8r-crc-simd armv8r-crc-crypto-simd" +ARMPKGARCH:tune-armv8r = "armv8r" +ARMPKGARCH:tune-armv8r-crc = "armv8r" +ARMPKGARCH:tune-armv8r-crypto = "armv8r" +ARMPKGARCH:tune-armv8r-simd = "armv8r" +ARMPKGARCH:tune-armv8r-crc-crypto = "armv8r" +ARMPKGARCH:tune-armv8r-crc-simd = "armv8r" +ARMPKGARCH:tune-armv8r-crc-crypto-simd = "armv8r" +TUNE_FEATURES:tune-armv8r = "armv8r" +TUNE_FEATURES:tune-armv8r-crc = "${TUNE_FEATURES:tune-armv8r} crc" +TUNE_FEATURES:tune-armv8r-crypto = "${TUNE_FEATURES:tune-armv8r} crypto" +TUNE_FEATURES:tune-armv8r-simd = "${TUNE_FEATURES:tune-armv8r} simd" +TUNE_FEATURES:tune-armv8r-crc-crypto = "${TUNE_FEATURES:tune-armv8r-crc} crypto" +TUNE_FEATURES:tune-armv8r-crc-simd = "${TUNE_FEATURES:tune-armv8r-crc} simd" +TUNE_FEATURES:tune-armv8r-crc-crypto-simd = "${TUNE_FEATURES:tune-armv8r-crc-crypto} simd" +PACKAGE_EXTRA_ARCHS:tune-armv8r = "armv8r" +PACKAGE_EXTRA_ARCHS:tune-armv8r-crc = "${PACKAGE_EXTRA_ARCHS:tune-armv8r} armv8r-crc" +PACKAGE_EXTRA_ARCHS:tune-armv8r-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8r} armv8r-crypto" +PACKAGE_EXTRA_ARCHS:tune-armv8r-simd = "${PACKAGE_EXTRA_ARCHS:tune-armv8r} armv8r-simd" +PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-simd = "${PACKAGE_EXTRA_ARCHS:tune-armv8r-crc} armv8r-simd armv8r-crc-simd" +PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-crypto-simd = "${PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-simd} armv8r-crc-crypto-simd" 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/tune-arm920t.inc b/meta/conf/machine/include/arm/armv4/tune-arm920t.inc index 8a615792df..1b1cbdb5a7 100644 --- a/meta/conf/machine/include/tune-arm920t.inc +++ b/meta/conf/machine/include/arm/armv4/tune-arm920t.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv4t" +DEFAULTTUNE ?= "arm920t" require conf/machine/include/arm/arch-armv4.inc diff --git a/meta/conf/machine/include/tune-arm9tdmi.inc b/meta/conf/machine/include/arm/armv4/tune-arm9tdmi.inc index 5ab286b576..78b890b43c 100644 --- a/meta/conf/machine/include/tune-arm9tdmi.inc +++ b/meta/conf/machine/include/arm/armv4/tune-arm9tdmi.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv4t" +DEFAULTTUNE ?= "arm9tdmi" require conf/machine/include/arm/arch-armv4.inc diff --git a/meta/conf/machine/include/tune-ep9312.inc b/meta/conf/machine/include/arm/armv4/tune-ep9312.inc index 0d481d3888..0d481d3888 100644 --- a/meta/conf/machine/include/tune-ep9312.inc +++ b/meta/conf/machine/include/arm/armv4/tune-ep9312.inc diff --git a/meta/conf/machine/include/tune-strongarm1100.inc b/meta/conf/machine/include/arm/armv4/tune-strongarm1100.inc index 6f5033bbc1..38ea9b7dd5 100644 --- a/meta/conf/machine/include/tune-strongarm1100.inc +++ b/meta/conf/machine/include/arm/armv4/tune-strongarm1100.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv4" +DEFAULTTUNE ?= "strongarm" require conf/machine/include/arm/arch-armv4.inc diff --git a/meta/conf/machine/include/tune-arm926ejs.inc b/meta/conf/machine/include/arm/armv5/tune-arm926ejs.inc index 84c5084868..84c5084868 100644 --- a/meta/conf/machine/include/tune-arm926ejs.inc +++ b/meta/conf/machine/include/arm/armv5/tune-arm926ejs.inc diff --git a/meta/conf/machine/include/tune-iwmmxt.inc b/meta/conf/machine/include/arm/armv5/tune-iwmmxt.inc index c584b47d18..c584b47d18 100644 --- a/meta/conf/machine/include/tune-iwmmxt.inc +++ b/meta/conf/machine/include/arm/armv5/tune-iwmmxt.inc diff --git a/meta/conf/machine/include/tune-xscale.inc b/meta/conf/machine/include/arm/armv5/tune-xscale.inc index cc67dcd304..cc67dcd304 100644 --- a/meta/conf/machine/include/tune-xscale.inc +++ b/meta/conf/machine/include/arm/armv5/tune-xscale.inc diff --git a/meta/conf/machine/include/tune-arm1136jf-s.inc b/meta/conf/machine/include/arm/armv6/tune-arm1136jf-s.inc index b848580948..b848580948 100644 --- a/meta/conf/machine/include/tune-arm1136jf-s.inc +++ b/meta/conf/machine/include/arm/armv6/tune-arm1136jf-s.inc diff --git a/meta/conf/machine/include/tune-arm1176jz-s.inc b/meta/conf/machine/include/arm/armv6/tune-arm1176jz-s.inc index 21d77f081e..21d77f081e 100644 --- a/meta/conf/machine/include/tune-arm1176jz-s.inc +++ b/meta/conf/machine/include/arm/armv6/tune-arm1176jz-s.inc diff --git a/meta/conf/machine/include/tune-cortex-m0.inc b/meta/conf/machine/include/arm/armv6m/tune-cortexm0.inc index aadc5326ce..aadc5326ce 100644 --- a/meta/conf/machine/include/tune-cortex-m0.inc +++ b/meta/conf/machine/include/arm/armv6m/tune-cortexm0.inc diff --git a/meta/conf/machine/include/tune-cortex-m0plus.inc b/meta/conf/machine/include/arm/armv6m/tune-cortexm0plus.inc index a3cf3f0bd2..a3cf3f0bd2 100644 --- a/meta/conf/machine/include/tune-cortex-m0plus.inc +++ b/meta/conf/machine/include/arm/armv6m/tune-cortexm0plus.inc diff --git a/meta/conf/machine/include/arm/armv6m/tune-cortexm1.inc b/meta/conf/machine/include/arm/armv6m/tune-cortexm1.inc new file mode 100644 index 0000000000..16661f3a26 --- /dev/null +++ b/meta/conf/machine/include/arm/armv6m/tune-cortexm1.inc @@ -0,0 +1,14 @@ +# +# Tune Settings for Cortex-M1 +# +DEFAULTTUNE ?= "cortexm1" + +TUNEVALID[cortexm1] = "Enable Cortex-M1 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm1', ' -mcpu=cortex-m1', '', d)}" + +require conf/machine/include/arm/arch-armv6m.inc + +AVAILTUNES += "cortexm1" +ARMPKGARCH:tune-cortexm1 = "cortexm1" +TUNE_FEATURES:tune-cortexm1 = "${TUNE_FEATURES:tune-armv6m} cortexm1" +PACKAGE_EXTRA_ARCHS:tune-cortexm1 = "${PACKAGE_EXTRA_ARCHS:tune-armv6m} cortexm1" diff --git a/meta/conf/machine/include/tune-cortexa15.inc b/meta/conf/machine/include/arm/armv7a/tune-cortexa15.inc index 66bc124dc0..e827afb2a0 100644 --- a/meta/conf/machine/include/tune-cortexa15.inc +++ b/meta/conf/machine/include/arm/armv7a/tune-cortexa15.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv7vethf-neon" +DEFAULTTUNE ?= "cortexa15thf-neon" require conf/machine/include/arm/arch-armv7ve.inc diff --git a/meta/conf/machine/include/tune-cortexa17.inc b/meta/conf/machine/include/arm/armv7a/tune-cortexa17.inc index 324673d440..3ad00b16d8 100644 --- a/meta/conf/machine/include/tune-cortexa17.inc +++ b/meta/conf/machine/include/arm/armv7a/tune-cortexa17.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv7vethf-neon" +DEFAULTTUNE ?= "cortexa17thf-neon" require conf/machine/include/arm/arch-armv7ve.inc diff --git a/meta/conf/machine/include/tune-cortexa5.inc b/meta/conf/machine/include/arm/armv7a/tune-cortexa5.inc index 817eb166d6..0de5aadaaa 100644 --- a/meta/conf/machine/include/tune-cortexa5.inc +++ b/meta/conf/machine/include/arm/armv7a/tune-cortexa5.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv7athf-neon" +DEFAULTTUNE ?= "cortexa5thf-neon" require conf/machine/include/arm/arch-armv7a.inc diff --git a/meta/conf/machine/include/tune-cortexa7.inc b/meta/conf/machine/include/arm/armv7a/tune-cortexa7.inc index 5384369b59..1ada527d8b 100644 --- a/meta/conf/machine/include/tune-cortexa7.inc +++ b/meta/conf/machine/include/arm/armv7a/tune-cortexa7.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv7vethf-neon" +DEFAULTTUNE ?= "cortexa7thf-neon" require conf/machine/include/arm/arch-armv7ve.inc diff --git a/meta/conf/machine/include/tune-cortexa8.inc b/meta/conf/machine/include/arm/armv7a/tune-cortexa8.inc index e27002a29a..952302afa2 100644 --- a/meta/conf/machine/include/tune-cortexa8.inc +++ b/meta/conf/machine/include/arm/armv7a/tune-cortexa8.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv7athf-neon" +DEFAULTTUNE ?= "cortexa8thf-neon" require conf/machine/include/arm/arch-armv7a.inc diff --git a/meta/conf/machine/include/tune-cortexa9.inc b/meta/conf/machine/include/arm/armv7a/tune-cortexa9.inc index d046a11a51..4b4a52884d 100644 --- a/meta/conf/machine/include/tune-cortexa9.inc +++ b/meta/conf/machine/include/arm/armv7a/tune-cortexa9.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "armv7athf-neon" +DEFAULTTUNE ?= "cortexa9thf-neon" require conf/machine/include/arm/arch-armv7a.inc diff --git a/meta/conf/machine/include/arm/armv7m/tune-cortexm3.inc b/meta/conf/machine/include/arm/armv7m/tune-cortexm3.inc new file mode 100644 index 0000000000..a6cb566387 --- /dev/null +++ b/meta/conf/machine/include/arm/armv7m/tune-cortexm3.inc @@ -0,0 +1,14 @@ +# +# Tune Settings for Cortex-M3 +# +DEFAULTTUNE ?= "cortexm3" + +TUNEVALID[cortexm3] = "Enable Cortex-M3 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm3', ' -mcpu=cortex-m3', '', d)}" + +require conf/machine/include/arm/arch-armv7m.inc + +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" diff --git a/meta/conf/machine/include/arm/armv7m/tune-cortexm4.inc b/meta/conf/machine/include/arm/armv7m/tune-cortexm4.inc new file mode 100644 index 0000000000..e86622ff3d --- /dev/null +++ b/meta/conf/machine/include/arm/armv7m/tune-cortexm4.inc @@ -0,0 +1,14 @@ +# +# Tune Settings for Cortex-M4 +# +DEFAULTTUNE ?= "cortexm4" + +TUNEVALID[cortexm4] = "Enable Cortex-M4 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm4', ' -mcpu=cortex-m4', '', d)}" + +require conf/machine/include/arm/arch-armv7em.inc + +AVAILTUNES += "cortexm4" +ARMPKGARCH:tune-cortexm4 = "cortexm4" +TUNE_FEATURES:tune-cortexm4 = "${TUNE_FEATURES:tune-armv7em} cortexm4" +PACKAGE_EXTRA_ARCHS:tune-cortexm4 = "${PACKAGE_EXTRA_ARCHS:tune-armv7em} cortexm4" diff --git a/meta/conf/machine/include/arm/armv7m/tune-cortexm7.inc b/meta/conf/machine/include/arm/armv7m/tune-cortexm7.inc new file mode 100644 index 0000000000..6434ec6398 --- /dev/null +++ b/meta/conf/machine/include/arm/armv7m/tune-cortexm7.inc @@ -0,0 +1,14 @@ +# +# Tune Settings for Cortex-M7 +# +DEFAULTTUNE ?= "cortexm7" + +TUNEVALID[cortexm7] = "Enable Cortex-M7 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm7', ' -mcpu=cortex-m7', '', d)}" + +require conf/machine/include/arm/arch-armv7em.inc + +AVAILTUNES += "cortexm7" +ARMPKGARCH:tune-cortexm7 = "cortexm7" +TUNE_FEATURES:tune-cortexm7 = "${TUNE_FEATURES:tune-armv7em} cortexm7" +PACKAGE_EXTRA_ARCHS:tune-cortexm7 = "${PACKAGE_EXTRA_ARCHS:tune-armv7em} cortexm7" diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr4.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr4.inc new file mode 100644 index 0000000000..0eed729630 --- /dev/null +++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr4.inc @@ -0,0 +1,14 @@ +# +# Tune Settings for Cortex-R4 +# +DEFAULTTUNE ?= "cortexr4" + +TUNEVALID[cortexr4] = "Enable Cortex-R4 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr4', ' -mcpu=cortex-r4', '', d)}" + +require conf/machine/include/arm/arch-armv7r.inc + +AVAILTUNES += "cortexr4" +ARMPKGARCH:tune-cortexr4 = "cortexr4" +TUNE_FEATURES:tune-cortexr4 = "${TUNE_FEATURES:tune-armv7r} cortexr4" +PACKAGE_EXTRA_ARCHS:tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r} cortexr4" diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr4f.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr4f.inc new file mode 100644 index 0000000000..0712b3ab1b --- /dev/null +++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr4f.inc @@ -0,0 +1,14 @@ +# +# Tune Settings for Cortex-R4F +# +DEFAULTTUNE ?= "cortexr4f" + +TUNEVALID[cortexr4f] = "Enable Cortex-R4F specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr4f', ' -mcpu=cortex-r4f', '', d)}" + +require conf/machine/include/arm/arch-armv7r.inc + +AVAILTUNES += "cortexr4f" +ARMPKGARCH:tune-cortexr4f = "cortexr4f" +TUNE_FEATURES:tune-cortexr4f = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr4f" +PACKAGE_EXTRA_ARCHS:tune-cortexr4f = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr4f-vfpv3d16" diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc new file mode 100644 index 0000000000..4c8985292b --- /dev/null +++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc @@ -0,0 +1,19 @@ +# +# Tune Settings for Cortex-R5 +# +DEFAULTTUNE ?= "cortexr5" + +TUNEVALID[cortexr5] = "Enable Cortex-R5 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr5', ' -mcpu=cortex-r5', '', d)}" + +require conf/machine/include/arm/arch-armv7r.inc + +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/armv7r/tune-cortexr7.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr7.inc new file mode 100644 index 0000000000..bfae1f0075 --- /dev/null +++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr7.inc @@ -0,0 +1,14 @@ +# +# Tune Settings for Cortex-R7 +# +DEFAULTTUNE ?= "cortexr7" + +TUNEVALID[cortexr7] = "Enable Cortex-R7 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr7', ' -mcpu=cortex-r7', '', d)}" + +require conf/machine/include/arm/arch-armv7r.inc + +AVAILTUNES += "cortexr7" +ARMPKGARCH:tune-cortexr7 = "cortexr7" +TUNE_FEATURES:tune-cortexr7 = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr7 idiv" +PACKAGE_EXTRA_ARCHS:tune-cortexr7 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr7-vfpv3d16" diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr8.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr8.inc new file mode 100644 index 0000000000..7fb824f6e9 --- /dev/null +++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr8.inc @@ -0,0 +1,14 @@ +# +# Tune Settings for Cortex-R8 +# +DEFAULTTUNE ?= "cortexr8" + +TUNEVALID[cortexr8] = "Enable Cortex-R8 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr8', ' -mcpu=cortex-r8', '', d)}" + +require conf/machine/include/arm/arch-armv7r.inc + +AVAILTUNES += "cortexr8" +ARMPKGARCH:tune-cortexr8 = "cortexr8" +TUNE_FEATURES:tune-cortexr8 = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr8 idiv" +PACKAGE_EXTRA_ARCHS:tune-cortexr8 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr8-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 new file mode 100644 index 0000000000..0a115be8a4 --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for Cortex-M55 +# +DEFAULTTUNE ?= "cortexm55" + +TUNEVALID[cortexm55] = "Enable Cortex-M55 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm55', ' -mcpu=cortex-m55', '', d)}" + +require conf/machine/include/arm/arch-armv8-1m-main.inc + +AVAILTUNES += "cortexm55" +ARMPKGARCH:tune-cortexm55 = "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/tune-cortexa55.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa55.inc index d130b4b90a..5e63b45ae0 100644 --- a/meta/conf/machine/include/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 new file mode 100644 index 0000000000..e83e0ba68a --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc @@ -0,0 +1,15 @@ +# +# Tune Settings for Cortex-M23 +# +DEFAULTTUNE ?= "cortexm23" + +TUNEVALID[cortexm23] = "Enable Cortex-M23 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm23', ' -mcpu=cortex-m23', '', d)}" + +require conf/machine/include/arm/arch-armv8m-base.inc + +AVAILTUNES += "cortexm23" +ARMPKGARCH:tune-cortexm23 = "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 new file mode 100644 index 0000000000..606900d7a2 --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc @@ -0,0 +1,18 @@ +# +# Tune Settings for Cortex-M33 +# +DEFAULTTUNE ?= "cortexm33" + +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 + +# 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" +# 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 new file mode 100644 index 0000000000..4394adab0b --- /dev/null +++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc @@ -0,0 +1,18 @@ +# +# Tune Settings for Cortex-M35P +# +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" +# 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/tune-cortexa32.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa32.inc index c7b01a2906..25bdf12b18 100644 --- a/meta/conf/machine/include/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/tune-cortexa35.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa35.inc index 33afb19386..d811c84455 100644 --- a/meta/conf/machine/include/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/tune-cortexa53.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa53.inc index a534ad358d..a88575eb15 100644 --- a/meta/conf/machine/include/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/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa57-cortexa53.inc index 7de671a2e5..052d1173c9 100644 --- a/meta/conf/machine/include/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/tune-cortexa57.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa57.inc index 37650d8798..b0de20f836 100644 --- a/meta/conf/machine/include/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/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc index a77ef59d62..ff188aec5f 100644 --- a/meta/conf/machine/include/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 new file mode 100644 index 0000000000..cbb6418c06 --- /dev/null +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc @@ -0,0 +1,18 @@ +DEFAULTTUNE ?= "cortexa72" + +TUNEVALID[cortexa72] = "Enable Cortex-A72 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa72', ' -mcpu=cortex-a72', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +# Little Endian base configs +AVAILTUNES += "cortexa72 cortexa72-crypto" +ARMPKGARCH:tune-cortexa72 = "cortexa72" +ARMPKGARCH:tune-cortexa72-crypto = "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" +BASE_LIB:tune-cortexa72 = "lib64" +BASE_LIB:tune-cortexa72-crypto = "lib64" 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/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa53.inc index 9cebffd54d..1d152ed83b 100644 --- a/meta/conf/machine/include/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 fc91dafb1d..b3b06a4f09 100644 --- a/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc @@ -9,8 +9,13 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa73', ' -mcpu=corte require conf/machine/include/arm/arch-armv8a.inc # Little Endian base configs -AVAILTUNES += "cortexa73" +AVAILTUNES += "cortexa73 cortexa73-crypto" ARMPKGARCH:tune-cortexa73 = "cortexa73" -TUNE_FEATURES:tune-cortexa73 = "${TUNE_FEATURES:tune-armv8a-crc-crypto} cortexa73" -PACKAGE_EXTRA_ARCHS:tune-cortexa73 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73" +ARMPKGARCH:tune-cortexa73-crypto = "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" BASE_LIB:tune-cortexa73 = "lib64" +BASE_LIB:tune-cortexa73-crypto = "lib64" diff --git a/meta/conf/machine/include/tune-thunderx.inc b/meta/conf/machine/include/arm/armv8a/tune-thunderx.inc index 7bc6282be8..7bc6282be8 100644 --- a/meta/conf/machine/include/tune-thunderx.inc +++ b/meta/conf/machine/include/arm/armv8a/tune-thunderx.inc diff --git a/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc b/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc new file mode 100644 index 0000000000..89f0e09450 --- /dev/null +++ b/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc @@ -0,0 +1,20 @@ +# +# Tune Settings for Cortex-R52 +# +DEFAULTTUNE ?= "cortexr52" + +TUNEVALID[cortexr52] = "Enable Cortex-R52 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr52', ' -mcpu=cortex-r52', '', d)}" + +require conf/machine/include/arm/arch-armv8r.inc + +AVAILTUNES += "cortexr52" +ARMPKGARCH:tune-cortexr52 = "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 new file mode 100644 index 0000000000..ad60a3c9f3 --- /dev/null +++ b/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc @@ -0,0 +1,21 @@ +# +# Tune Settings for Neoverse-N2 +# +DEFAULTTUNE ?= "neoversen2" + +TUNEVALID[neoversen2] = "Enable Neoverse-N2 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversen2', ' -mcpu=neoverse-n2', '', d)}" + +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" +# 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-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-crc.inc b/meta/conf/machine/include/arm/feature-arm-crc.inc new file mode 100644 index 0000000000..8a69d2e2fa --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-crc.inc @@ -0,0 +1,4 @@ +# Cyclic Redundancy Check (CRC) instructions for armv8-a and armv8-r + +TUNEVALID[crc] = "Enable instructions for ARMv8 Cyclic Redundancy Check (CRC)" +TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}" diff --git a/meta/conf/machine/include/arm/feature-arm-crypto.inc b/meta/conf/machine/include/arm/feature-arm-crypto.inc new file mode 100644 index 0000000000..aade6ce08d --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-crypto.inc @@ -0,0 +1,5 @@ +# Cryptographic instructions for: +# armv8-a, armv8.1-a, armv8.3-a, armv8.4-a, armv8.5-a, armv8.6-a, and armv8-r + +TUNEVALID[crypto] = "Enable cryptographic instructions for ARMv8" +TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}" diff --git a/meta/conf/machine/include/arm/feature-arm-dsp.inc b/meta/conf/machine/include/arm/feature-arm-dsp.inc new file mode 100644 index 0000000000..7f7ada7461 --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-dsp.inc @@ -0,0 +1,3 @@ +ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], 'e', '', d)}" +TUNEVALID[dsp] = "ARM DSP functionality" +TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], '+dsp', '', d)}" diff --git a/meta/conf/machine/include/arm/feature-arm-idiv.inc b/meta/conf/machine/include/arm/feature-arm-idiv.inc new file mode 100644 index 0000000000..0ea42b1b39 --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-idiv.inc @@ -0,0 +1,2 @@ +TUNEVALID[idiv] = "ARM-state integer division instructions" +TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'idiv', '+idiv', '', d)}" diff --git a/meta/conf/machine/include/arm/feature-arm-neon.inc b/meta/conf/machine/include/arm/feature-arm-neon.inc index eaddd054ce..174b9b9f2a 100644 --- a/meta/conf/machine/include/arm/feature-arm-neon.inc +++ b/meta/conf/machine/include/arm/feature-arm-neon.inc @@ -19,3 +19,8 @@ TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv4', 'neon' ], TUNEVALID[vfpv4d16] = "Enable Vector Floating Point Version 4 with 16 registers (vfpv4-d16) unit." TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv4d16', ' vfpv4-d16', '', d)}" + +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)}" + +TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv3d16', 'vfpv5spd16' ], '+fp', '', d)}" diff --git a/meta/conf/machine/include/arm/feature-arm-simd.inc b/meta/conf/machine/include/arm/feature-arm-simd.inc new file mode 100644 index 0000000000..1afaf8d901 --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-simd.inc @@ -0,0 +1,5 @@ +# Advanced SIMD and floating-point instructions for armv7-a, armv7ve, +# armv8-a, armv8.1-a, armv8.3-a, armv8.4-a, armv8.5-a, armv8.6-a, and armv8-r + +TUNEVALID[simd] = "Enable instructions for Advanced SIMD and floating-point units" +TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}" 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/tune-mcf5441x.inc b/meta/conf/machine/include/m68k/tune-mcf5441x.inc index 7eefce03cb..7eefce03cb 100644 --- a/meta/conf/machine/include/tune-mcf5441x.inc +++ b/meta/conf/machine/include/m68k/tune-mcf5441x.inc 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/tune-microblaze.inc b/meta/conf/machine/include/microblaze/tune-microblaze.inc index 11f7233cf4..11f7233cf4 100644 --- a/meta/conf/machine/include/tune-microblaze.inc +++ b/meta/conf/machine/include/microblaze/tune-microblaze.inc 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/feature-mips-mips16e.inc b/meta/conf/machine/include/mips/feature-mips-mips16e.inc index 101d5331bc..6fd12fb842 100644 --- a/meta/conf/machine/include/mips/feature-mips-mips16e.inc +++ b/meta/conf/machine/include/mips/feature-mips-mips16e.inc @@ -11,7 +11,7 @@ MIPSPKGSFX_MIPS16E .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', '-m16', TUNEVALID[no-interlink-compressed] = "Disable mixing of standard and MIPS16e code" MIPS16_TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-interlink-compressed', ' -mno-interlink-compressed', ' -minterlink-compressed', d)}" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ' ${MIPS16_TUNE_CCARGS}', '', d)}" -OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ':mips16e', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', 'mips16e:', '', d)}" # show status (if compiling in MIPS16e mode) BUILDCFG_VARS += "${@['', 'MIPS_INSTRUCTION_SET'][d.getVar('MIPS_INSTRUCTION_SET') == 'mips16e']}" diff --git a/meta/conf/machine/include/qemuboot-mips.inc b/meta/conf/machine/include/mips/qemuboot-mips.inc index 4954f3068c..4954f3068c 100644 --- a/meta/conf/machine/include/qemuboot-mips.inc +++ b/meta/conf/machine/include/mips/qemuboot-mips.inc diff --git a/meta/conf/machine/include/mips/tune-mips-24k.inc b/meta/conf/machine/include/mips/tune-mips-24k.inc index ed6566587d..106ff62fbb 100644 --- a/meta/conf/machine/include/mips/tune-mips-24k.inc +++ b/meta/conf/machine/include/mips/tune-mips-24k.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "mips32r2-24kc" MIPSPKGSFX_MIPS16E ??= "" -require conf/machine/include/tune-mips32r2.inc +require conf/machine/include/mips/tune-mips32r2.inc require conf/machine/include/mips/feature-mips-mips16e.inc diff --git a/meta/conf/machine/include/mips/tune-mips-74k.inc b/meta/conf/machine/include/mips/tune-mips-74k.inc index 988cfaef6e..e4927a1ce0 100644 --- a/meta/conf/machine/include/mips/tune-mips-74k.inc +++ b/meta/conf/machine/include/mips/tune-mips-74k.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "mips32r2-74kc" MIPSPKGSFX_MIPS16E ??= "" -require conf/machine/include/tune-mips32r2.inc +require conf/machine/include/mips/tune-mips32r2.inc require conf/machine/include/mips/feature-mips-mips16e.inc diff --git a/meta/conf/machine/include/tune-mips32.inc b/meta/conf/machine/include/mips/tune-mips32.inc index 820087f59d..820087f59d 100644 --- a/meta/conf/machine/include/tune-mips32.inc +++ b/meta/conf/machine/include/mips/tune-mips32.inc diff --git a/meta/conf/machine/include/tune-mips32r2.inc b/meta/conf/machine/include/mips/tune-mips32r2.inc index e7f6753d3d..c868e925e9 100644 --- a/meta/conf/machine/include/tune-mips32r2.inc +++ b/meta/conf/machine/include/mips/tune-mips32r2.inc @@ -1,6 +1,6 @@ DEFAULTTUNE ?= "mips32r2" -require conf/machine/include/tune-mips32.inc +require conf/machine/include/mips/tune-mips32.inc TUNEVALID[mips32r2] = "Enable mips32r2 specific processor optimizations" TUNECONFLICTS[mips32r2] = "n64 n32" diff --git a/meta/conf/machine/include/tune-mips32r6.inc b/meta/conf/machine/include/mips/tune-mips32r6.inc index 9904cc0b11..9904cc0b11 100644 --- a/meta/conf/machine/include/tune-mips32r6.inc +++ b/meta/conf/machine/include/mips/tune-mips32r6.inc diff --git a/meta/conf/machine/include/mips/tune-mips64.inc b/meta/conf/machine/include/mips/tune-mips64.inc new file mode 100644 index 0000000000..a9080159fc --- /dev/null +++ b/meta/conf/machine/include/mips/tune-mips64.inc @@ -0,0 +1,3 @@ +DEFAULTTUNE ?= "mips64" + +require conf/machine/include/mips/tune-mips32r2.inc diff --git a/meta/conf/machine/include/tune-mips64r2.inc b/meta/conf/machine/include/mips/tune-mips64r2.inc index 6337abb09f..e9ca4201ff 100644 --- a/meta/conf/machine/include/tune-mips64r2.inc +++ b/meta/conf/machine/include/mips/tune-mips64r2.inc @@ -1,6 +1,6 @@ DEFAULTTUNE ?= "mips64r2" -require conf/machine/include/tune-mips64.inc +require conf/machine/include/mips/tune-mips64.inc TUNEVALID[mips64r2] = "Enable mips64r2 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips64r2', ' -march=mips64r2', '', d)}" @@ -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/tune-mips64r6.inc b/meta/conf/machine/include/mips/tune-mips64r6.inc index b4a7e9ef1b..b4a7e9ef1b 100644 --- a/meta/conf/machine/include/tune-mips64r6.inc +++ b/meta/conf/machine/include/mips/tune-mips64r6.inc diff --git a/meta/conf/machine/include/tune-octeon.inc b/meta/conf/machine/include/mips/tune-octeon.inc index 455c6a2f33..d4670e3259 100644 --- a/meta/conf/machine/include/tune-octeon.inc +++ b/meta/conf/machine/include/mips/tune-octeon.inc @@ -1,6 +1,6 @@ DEFAULTTUNE ?="octeon2" -require conf/machine/include/tune-mips64.inc +require conf/machine/include/mips/tune-mips64.inc AVAILTUNES += "octeon2 octeon2_64 octeon3 octeon3_64" diff --git a/meta/conf/machine/include/tune-power5.inc b/meta/conf/machine/include/powerpc/tune-power5.inc index e70e401217..e70e401217 100644 --- a/meta/conf/machine/include/tune-power5.inc +++ b/meta/conf/machine/include/powerpc/tune-power5.inc diff --git a/meta/conf/machine/include/tune-power6.inc b/meta/conf/machine/include/powerpc/tune-power6.inc index eaf89515ca..eaf89515ca 100644 --- a/meta/conf/machine/include/tune-power6.inc +++ b/meta/conf/machine/include/powerpc/tune-power6.inc diff --git a/meta/conf/machine/include/tune-power7.inc b/meta/conf/machine/include/powerpc/tune-power7.inc index 4531ddd85f..4531ddd85f 100644 --- a/meta/conf/machine/include/tune-power7.inc +++ b/meta/conf/machine/include/powerpc/tune-power7.inc 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/tune-power9.inc b/meta/conf/machine/include/powerpc/tune-power9.inc index 6744731f8e..6744731f8e 100644 --- a/meta/conf/machine/include/tune-power9.inc +++ b/meta/conf/machine/include/powerpc/tune-power9.inc diff --git a/meta/conf/machine/include/tune-ppc476.inc b/meta/conf/machine/include/powerpc/tune-ppc476.inc index 54152cb941..54152cb941 100644 --- a/meta/conf/machine/include/tune-ppc476.inc +++ b/meta/conf/machine/include/powerpc/tune-ppc476.inc diff --git a/meta/conf/machine/include/tune-ppc603e.inc b/meta/conf/machine/include/powerpc/tune-ppc603e.inc index 8beec00f24..28680bdb3c 100644 --- a/meta/conf/machine/include/tune-ppc603e.inc +++ b/meta/conf/machine/include/powerpc/tune-ppc603e.inc @@ -9,6 +9,3 @@ AVAILTUNES += "ppc603e" TUNE_FEATURES:tune-ppc603e = "m32 fpu-hard ppc603e bigendian" TUNE_PKGARCH:tune-ppc603e = "ppc603e" PACKAGE_EXTRA_ARCHS:tune-ppc603e = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppc603e" - -# glibc configure options to get 603e specific library (for sqrt) -GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppc603e', '-with-cpu=603e', '', d)}" diff --git a/meta/conf/machine/include/tune-ppc7400.inc b/meta/conf/machine/include/powerpc/tune-ppc7400.inc index 1e2c9fc2ce..49b94f5ee1 100644 --- a/meta/conf/machine/include/tune-ppc7400.inc +++ b/meta/conf/machine/include/powerpc/tune-ppc7400.inc @@ -9,6 +9,3 @@ AVAILTUNES += "ppc7400" TUNE_FEATURES:tune-ppc7400 = "m32 fpu-hard ppc7400 altivec bigendian" TUNE_PKGARCH:tune-ppc7400 = "ppc7400" PACKAGE_EXTRA_ARCHS:tune-ppc7400 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppc7400" - -# glibc configure options to get 7400 specific library (for sqrt) -#GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppc7400', '--with-cpu=power4', '', d)}" diff --git a/meta/conf/machine/include/tune-ppce300c2.inc b/meta/conf/machine/include/powerpc/tune-ppce300c2.inc index 90171c76d5..90171c76d5 100644 --- a/meta/conf/machine/include/tune-ppce300c2.inc +++ b/meta/conf/machine/include/powerpc/tune-ppce300c2.inc diff --git a/meta/conf/machine/include/tune-ppce300c3.inc b/meta/conf/machine/include/powerpc/tune-ppce300c3.inc index b74b6ad976..31aff51af3 100644 --- a/meta/conf/machine/include/tune-ppce300c3.inc +++ b/meta/conf/machine/include/powerpc/tune-ppce300c3.inc @@ -11,9 +11,6 @@ TUNE_PKGARCH:tune-ppce300c3 = "ppce300c3" PACKAGE_EXTRA_ARCHS:tune-ppce300c3 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppce300c3" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce300c3', ' -mcpu=e300c3', '', d)}" -# glibc config options to make use of e300c3 (603e) specific sqrt/sqrtf routines -GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppce300c3', '--with-cpu=e300c3', '', d)}" - # soft-float TUNEVALID[ppce300c3-nf] = "Enable ppce300c3 specific processor optimizations (no fpu)" TUNE_FEATURES:tune-ppce300c3-nf = "${TUNE_FEATURES:tune-powerpc-nf} ppce300c3-nf" diff --git a/meta/conf/machine/include/tune-ppce500.inc b/meta/conf/machine/include/powerpc/tune-ppce500.inc index aceab321b7..aceab321b7 100644 --- a/meta/conf/machine/include/tune-ppce500.inc +++ b/meta/conf/machine/include/powerpc/tune-ppce500.inc diff --git a/meta/conf/machine/include/tune-ppce500mc.inc b/meta/conf/machine/include/powerpc/tune-ppce500mc.inc index e3524a10ca..036f8b2631 100644 --- a/meta/conf/machine/include/tune-ppce500mc.inc +++ b/meta/conf/machine/include/powerpc/tune-ppce500mc.inc @@ -10,8 +10,5 @@ TUNE_FEATURES:tune-ppce500mc = "m32 fpu-hard ppce500mc bigendian" TUNE_PKGARCH:tune-ppce500mc = "ppce500mc" PACKAGE_EXTRA_ARCHS:tune-ppce500mc = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppce500mc" -# glibc configure options to get e500mc specific library (for sqrt) -GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppce500mc', '-with-cpu=e500mc', '', d)}" - # pass -mcpu=e500mc for ppce500mc kernel cross compile TARGET_CC_KERNEL_ARCH = "-mcpu=e500mc" diff --git a/meta/conf/machine/include/tune-ppce500v2.inc b/meta/conf/machine/include/powerpc/tune-ppce500v2.inc index 461164d818..461164d818 100644 --- a/meta/conf/machine/include/tune-ppce500v2.inc +++ b/meta/conf/machine/include/powerpc/tune-ppce500v2.inc diff --git a/meta/conf/machine/include/tune-ppce5500.inc b/meta/conf/machine/include/powerpc/tune-ppce5500.inc index 2cf7b1737c..4915b81ee4 100644 --- a/meta/conf/machine/include/tune-ppce5500.inc +++ b/meta/conf/machine/include/powerpc/tune-ppce5500.inc @@ -16,8 +16,5 @@ BASE_LIB:tune-ppc64e5500 = "lib64" TUNE_PKGARCH:tune-ppc64e5500 = "ppc64e5500" PACKAGE_EXTRA_ARCHS:tune-ppc64e5500 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64e5500" -# glibc configure options to get e5500 specific library (for sqrt) -GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'e5500', '--with-cpu=e5500', '', d)}" - # QEMU usermode fails with invalid instruction error (YOCTO: #10304) MACHINE_FEATURES_BACKFILL_CONSIDERED:append = "${@bb.utils.contains('TUNE_FEATURES', 'e5500', ' qemu-usermode', '', d)}" diff --git a/meta/conf/machine/include/tune-ppce6500.inc b/meta/conf/machine/include/powerpc/tune-ppce6500.inc index e78de350ad..f6310ab4c4 100644 --- a/meta/conf/machine/include/tune-ppce6500.inc +++ b/meta/conf/machine/include/powerpc/tune-ppce6500.inc @@ -16,9 +16,5 @@ BASE_LIB:tune-ppc64e6500 = "lib64" TUNE_PKGARCH:tune-ppc64e6500 = "ppc64e6500" PACKAGE_EXTRA_ARCHS:tune-ppc64e6500 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64e6500" -# glibc configure options to get e6500 specific library -GLIBC_EXTRA_OECONF:powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'e6500', '--with-cpu=e6500', '', d)}" -GLIBC_EXTRA_OECONF:powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'e6500', '--with-cpu=e6500', '', d)}" - # QEMU usermode fails with invalid instruction error (YOCTO: #10304) MACHINE_FEATURES_BACKFILL_CONSIDERED:append = "${@bb.utils.contains('TUNE_FEATURES', 'e6500', ' qemu-usermode', '', d)}" diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc index c7136da711..bb7aec7675 100644 --- a/meta/conf/machine/include/qemu.inc +++ b/meta/conf/machine/include/qemu.inc @@ -3,10 +3,12 @@ PREFERRED_PROVIDER_virtual/egl ?= "mesa" PREFERRED_PROVIDER_virtual/libgl ?= "mesa" PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" +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" @@ -21,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" - # 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/qemuboot-x86.inc b/meta/conf/machine/include/qemuboot-x86.inc deleted file mode 100644 index d3b91070a8..0000000000 --- a/meta/conf/machine/include/qemuboot-x86.inc +++ /dev/null @@ -1,14 +0,0 @@ -# For runqemu -IMAGE_CLASSES += "qemuboot" -QB_SMP = "-smp 4" -QB_CPU:x86 = "-cpu IvyBridge -machine q35" -QB_CPU_KVM:x86 = "-cpu IvyBridge -machine q35" - -QB_CPU:x86-64 = "-cpu IvyBridge -machine q35" -QB_CPU_KVM:x86-64 = "-cpu IvyBridge -machine q35" - -QB_AUDIO_DRV = "alsa" -QB_AUDIO_OPT = "-soundhw ac97,es1370" -QB_KERNEL_CMDLINE_APPEND = "oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1" -QB_OPT_APPEND = "-usb -device usb-tablet" - diff --git a/meta/conf/machine/include/riscv/arch-riscv.inc b/meta/conf/machine/include/riscv/arch-riscv.inc index e5611a12a6..230a266563 100644 --- a/meta/conf/machine/include/riscv/arch-riscv.inc +++ b/meta/conf/machine/include/riscv/arch-riscv.inc @@ -7,6 +7,8 @@ TUNE_PKGARCH = "${TUNE_PKGARCH:tune-${DEFAULTTUNE}}" TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nf', ' -mabi=lp64', ' ', d)}" TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32nf', ' -mabi=ilp32', ' ', d)}" +TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nc', ' -march=rv64imafd', ' ', d)}" + # Fix: ld: unrecognized option '--hash-style=sysv' LINKER_HASH_STYLE:libc-newlib = "" # Fix: ld: unrecognized option '--hash-style=gnu' diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc index 14eaf5d64a..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-mouse-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 cc2896f277..804712077e 100644 --- a/meta/conf/machine/include/riscv/tune-riscv.inc +++ b/meta/conf/machine/include/riscv/tune-riscv.inc @@ -6,9 +6,11 @@ TUNEVALID[riscv32] = "Enable 32-bit RISC-V optimizations" TUNEVALID[riscv64nf] = "Enable 64-bit RISC-V optimizations no floating point" TUNEVALID[riscv32nf] = "Enable 32-bit RISC-V optimizations no floating point" +TUNEVALID[riscv64nc] = "Enable 64-bit RISC-V optimizations without compressed instructions" + TUNEVALID[bigendian] = "Big endian mode" -AVAILTUNES += "riscv64 riscv32 riscv64nf riscv32nf" +AVAILTUNES += "riscv64 riscv32 riscv64nc riscv64nf riscv32nf" # Default TUNE_FEATURES:tune-riscv64 = "riscv64" @@ -31,3 +33,9 @@ TUNE_FEATURES:tune-riscv32nf = "${TUNE_FEATURES:tune-riscv32} riscv32nf" TUNE_ARCH:tune-riscv32nf = "riscv32" TUNE_PKGARCH:tune-riscv32nf = "riscv32nf" PACKAGE_EXTRA_ARCHS:tune-riscv32nf = "riscv32nf" + +# no compressed +TUNE_FEATURES:tune-riscv64nc = "${TUNE_FEATURES:tune-riscv64} riscv64nc" +TUNE_ARCH:tune-riscv64nc = "riscv64" +TUNE_PKGARCH:tune-riscv64nc = "riscv64nc" +PACKAGE_EXTRA_ARCHS:tune-riscv64nc = "riscv64nc" diff --git a/meta/conf/machine/include/tune-sh3.inc b/meta/conf/machine/include/sh/tune-sh3.inc index 77d0b71fc4..77d0b71fc4 100644 --- a/meta/conf/machine/include/tune-sh3.inc +++ b/meta/conf/machine/include/sh/tune-sh3.inc diff --git a/meta/conf/machine/include/tune-sh4.inc b/meta/conf/machine/include/sh/tune-sh4.inc index e21ede36c4..b4893a4748 100644 --- a/meta/conf/machine/include/tune-sh4.inc +++ b/meta/conf/machine/include/sh/tune-sh4.inc @@ -6,7 +6,7 @@ require conf/machine/include/sh/arch-sh.inc TUNEVALID[sh4] = "Enable SH4 optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'sh4', ' -m4', '', d)}" -# NOTE: If you want to optimize to sh4a, conf/machine/include/tune-sh4a.inc. +# NOTE: If you want to optimize to sh4a, conf/machine/include/sh/tune-sh4a.inc. # But it is not compatible for sh4. # The binary optimized by m4a doesn't operate on sh4. It works on sh4a only. TUNEVALID[sh4a] = "Enable SH4a optimizations" diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc deleted file mode 100644 index 2a510bd45b..0000000000 --- a/meta/conf/machine/include/tune-cortexa72.inc +++ /dev/null @@ -1,13 +0,0 @@ -DEFAULTTUNE ?= "cortexa72" - -TUNEVALID[cortexa72] = "Enable Cortex-A72 specific processor optimizations" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa72', ' -mcpu=cortex-a72', '', d)}" - -require conf/machine/include/arm/arch-armv8a.inc - -# Little Endian base configs -AVAILTUNES += "cortexa72" -ARMPKGARCH:tune-cortexa72 = "cortexa72" -TUNE_FEATURES:tune-cortexa72 = "${TUNE_FEATURES:tune-armv8a-crc-crypto} cortexa72" -PACKAGE_EXTRA_ARCHS:tune-cortexa72 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa72" -BASE_LIB:tune-cortexa72 = "lib64" diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc deleted file mode 100644 index 9be0e0f8d9..0000000000 --- a/meta/conf/machine/include/tune-mips64.inc +++ /dev/null @@ -1,3 +0,0 @@ -DEFAULTTUNE ?= "mips64" - -require conf/machine/include/tune-mips32r2.inc diff --git a/meta/conf/machine/include/x86/qemuboot-x86.inc b/meta/conf/machine/include/x86/qemuboot-x86.inc new file mode 100644 index 0000000000..6ae03633ae --- /dev/null +++ b/meta/conf/machine/include/x86/qemuboot-x86.inc @@ -0,0 +1,13 @@ +# 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_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" +QB_KERNEL_CMDLINE_APPEND = "oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1" +QB_OPT_APPEND = "-usb -device usb-tablet -usb -device usb-kbd" diff --git a/meta/conf/machine/include/tune-atom.inc b/meta/conf/machine/include/x86/tune-atom.inc index 5e1bb74c6c..6b84fffc3f 100644 --- a/meta/conf/machine/include/tune-atom.inc +++ b/meta/conf/machine/include/x86/tune-atom.inc @@ -1,2 +1,2 @@ # Atom tunings are the same as core2 for now... -require conf/machine/include/tune-core2.inc +require conf/machine/include/x86/tune-core2.inc diff --git a/meta/conf/machine/include/tune-c3.inc b/meta/conf/machine/include/x86/tune-c3.inc index afae82541d..afae82541d 100644 --- a/meta/conf/machine/include/tune-c3.inc +++ b/meta/conf/machine/include/x86/tune-c3.inc diff --git a/meta/conf/machine/include/tune-core2.inc b/meta/conf/machine/include/x86/tune-core2.inc index a551cad4d5..082fd4efc3 100644 --- a/meta/conf/machine/include/tune-core2.inc +++ b/meta/conf/machine/include/x86/tune-core2.inc @@ -9,7 +9,7 @@ DEFAULTTUNE ?= "core2-32" # Include the previous tune to pull in PACKAGE_EXTRA_ARCHS -require conf/machine/include/tune-i686.inc +require conf/machine/include/x86/tune-i686.inc # Extra tune features TUNEVALID[core2] = "Enable core2 specific processor optimizations" @@ -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/tune-corei7.inc b/meta/conf/machine/include/x86/tune-corei7.inc index bf1ac7a93b..7798288a74 100644 --- a/meta/conf/machine/include/tune-corei7.inc +++ b/meta/conf/machine/include/x86/tune-corei7.inc @@ -9,7 +9,7 @@ DEFAULTTUNE ?= "corei7-64" # Include the previous tune to pull in PACKAGE_EXTRA_ARCHS -require conf/machine/include/tune-core2.inc +require conf/machine/include/x86/tune-core2.inc # Extra tune features TUNEVALID[corei7] = "Enable corei7 specific processor optimizations" diff --git a/meta/conf/machine/include/tune-i586-nlp.inc b/meta/conf/machine/include/x86/tune-i586-nlp.inc index ecfbf9f1b2..ecfbf9f1b2 100644 --- a/meta/conf/machine/include/tune-i586-nlp.inc +++ b/meta/conf/machine/include/x86/tune-i586-nlp.inc diff --git a/meta/conf/machine/include/tune-i586.inc b/meta/conf/machine/include/x86/tune-i586.inc index b1299e9e91..b1299e9e91 100644 --- a/meta/conf/machine/include/tune-i586.inc +++ b/meta/conf/machine/include/x86/tune-i586.inc diff --git a/meta/conf/machine/include/tune-i686.inc b/meta/conf/machine/include/x86/tune-i686.inc index 3feb4df8ba..293d81e6c5 100644 --- a/meta/conf/machine/include/tune-i686.inc +++ b/meta/conf/machine/include/x86/tune-i686.inc @@ -13,7 +13,7 @@ DEFAULTTUNE ?= "i686" X86ARCH32 ?= "i686" # Include the previous tune to pull in PACKAGE_EXTRA_ARCHS -require conf/machine/include/tune-i586.inc +require conf/machine/include/x86/tune-i586.inc # Extra tune features TUNEVALID[i686] = "Enable i686 specific processor optimizations" 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-base.inc b/meta/conf/machine/include/x86/x86-base.inc index ef6690b0b9..fc6c39148d 100644 --- a/meta/conf/machine/include/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.10%" # # XSERVER subcomponents, used to build the XSERVER variable @@ -36,7 +35,7 @@ XSERVER_X86_I915 = "xf86-video-intel \ " XSERVER_X86_I965 = "xf86-video-intel \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i965', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-crocus', '', d)} \ " XSERVER_X86_VESA = "xf86-video-vesa" diff --git a/meta/conf/machine/qemuarm.conf b/meta/conf/machine/qemuarm.conf index f893f1a76a..943ce7c16a 100644 --- a/meta/conf/machine/qemuarm.conf +++ b/meta/conf/machine/qemuarm.conf @@ -2,25 +2,22 @@ #@NAME: QEMU Arm Cortex-A15 machine #@DESCRIPTION: Machine configuration for running an ARMv7 system on QEMU -require conf/machine/include/tune-cortexa15.inc +require conf/machine/include/arm/armv7a/tune-cortexa15.inc require conf/machine/include/qemu.inc KERNEL_IMAGETYPE = "zImage" -UBOOT_MACHINE ?= "qemu:arm_defconfig" +UBOOT_MACHINE ?= "qemu_arm_defconfig" SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" -SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" # For runqemu QB_SYSTEM_NAME = "qemu-system-arm" QB_MACHINE = "-machine virt,highmem=off" QB_CPU = "-cpu cortex-a15" -QB_SMP = "-smp 4" -# Standard Serial console -QB_KERNEL_CMDLINE_APPEND = "vmalloc=256" +QB_SMP ?= "-smp 4" # For graphics to work we need to define the VGA device as well as the necessary USB devices -QB_GRAPHICS = "-device VGA,edid=on" +QB_GRAPHICS = "-device virtio-gpu-pci" QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd" # Virtio Networking support QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" @@ -29,6 +26,6 @@ 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" # Virtio serial console 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" KMACHINE:qemuarm = "qemuarma15" diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf index 3dcb0d1b1e..a096d964db 100644 --- a/meta/conf/machine/qemuarm64.conf +++ b/meta/conf/machine/qemuarm64.conf @@ -2,30 +2,29 @@ #@NAME: QEMU ARMv8 machine #@DESCRIPTION: Machine configuration for running an ARMv8 system on QEMU -require conf/machine/include/tune-cortexa57.inc +require conf/machine/include/arm/armv8a/tune-cortexa57.inc require conf/machine/include/qemu.inc KERNEL_IMAGETYPE = "Image" -UBOOT_MACHINE ?= "qemu:arm64_defconfig" +UBOOT_MACHINE ?= "qemu_arm64_defconfig" SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" -SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" # For runqemu QB_SYSTEM_NAME = "qemu-system-aarch64" QB_MACHINE = "-machine virt" QB_CPU = "-cpu cortex-a57" -QB_SMP = "-smp 4" +QB_SMP ?= "-smp 4" QB_CPU_KVM = "-cpu host -machine gic-version=3" # For graphics to work we need to define the VGA device as well as the necessary USB devices -QB_GRAPHICS = "-device VGA,edid=on" +QB_GRAPHICS = "-device virtio-gpu-pci" QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd" # Virtio Networking support 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_NETWORK_DEVICE = "-device virtio-net-pci,netdev=net0,mac=@MAC@" # Virtio block device -QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" +QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-pci,drive=disk0" # Virtio serial console -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_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" diff --git a/meta/conf/machine/qemuarmv5.conf b/meta/conf/machine/qemuarmv5.conf index 7650c2f4a2..ecd2873d91 100644 --- a/meta/conf/machine/qemuarmv5.conf +++ b/meta/conf/machine/qemuarmv5.conf @@ -3,7 +3,7 @@ #@DESCRIPTION: Machine configuration for running an ARMv5 system on QEMU require conf/machine/include/qemu.inc -require conf/machine/include/tune-arm926ejs.inc +require conf/machine/include/arm/armv5/tune-arm926ejs.inc KERNEL_IMAGETYPE = "zImage" @@ -12,9 +12,8 @@ SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1" # For runqemu QB_SYSTEM_NAME = "qemu-system-arm" QB_MACHINE = "-machine versatilepb" -QB_KERNEL_CMDLINE_APPEND = "vmalloc=256" -QB_OPT_APPEND = "-usb -device usb-tablet" -PREFERRED_VERSION_linux-yocto ??= "5.10%" -QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}" +QB_GRAPHICS = "-device virtio-gpu-pci" +QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd" +QB_DTB ?= "zImage-versatile-pb.dtb" -KMACHINE:qemuarmv5 = "qemuarm" +KMACHINE:qemuarmv5 = "arm-versatile-926ejs" diff --git a/meta/conf/machine/qemuloongarch64.conf b/meta/conf/machine/qemuloongarch64.conf new file mode 100644 index 0000000000..675d525afd --- /dev/null +++ b/meta/conf/machine/qemuloongarch64.conf @@ -0,0 +1,11 @@ +#@TYPE: Machine +#@NAME: generic loongarch64 machine +#@DESCRIPTION: Machine configuration for running a generic loongarch64 + +require conf/machine/include/loongarch/qemuloongarch.inc + +XVISOR_PLAT = "loongarch/virt64" + +EXTRA_IMAGEDEPENDS += "u-boot" +UBOOT_MACHINE = "qemu-loongarch64_smode_defconfig" +UBOOT_ELF = "u-boot" diff --git a/meta/conf/machine/qemumips.conf b/meta/conf/machine/qemumips.conf index 9b602fcd1f..1cf21b92fe 100644 --- a/meta/conf/machine/qemumips.conf +++ b/meta/conf/machine/qemumips.conf @@ -3,8 +3,8 @@ #@DESCRIPTION: Machine configuration for running a MIPS system on QEMU require conf/machine/include/qemu.inc -require conf/machine/include/tune-mips32r2.inc -require conf/machine/include/qemuboot-mips.inc +require conf/machine/include/mips/tune-mips32r2.inc +require conf/machine/include/mips/qemuboot-mips.inc KERNEL_IMAGETYPE = "vmlinux" KERNEL_ALT_IMAGETYPE = "vmlinux.bin" diff --git a/meta/conf/machine/qemumips64.conf b/meta/conf/machine/qemumips64.conf index b37d78989b..32351f993e 100644 --- a/meta/conf/machine/qemumips64.conf +++ b/meta/conf/machine/qemumips64.conf @@ -3,8 +3,8 @@ #@DESCRIPTION: Machine configuration for running a MIPS64 system on QEMU require conf/machine/include/qemu.inc -require conf/machine/include/tune-mips64r2.inc -require conf/machine/include/qemuboot-mips.inc +require conf/machine/include/mips/tune-mips64r2.inc +require conf/machine/include/mips/qemuboot-mips.inc QB_CPU = "-cpu MIPS64R2-generic" diff --git a/meta/conf/machine/qemuppc.conf b/meta/conf/machine/qemuppc.conf index a84594f335..bab06e292e 100644 --- a/meta/conf/machine/qemuppc.conf +++ b/meta/conf/machine/qemuppc.conf @@ -3,7 +3,7 @@ #@DESCRIPTION: Machine configuration for running a PPC system on QEMU require conf/machine/include/qemu.inc -require conf/machine/include/tune-ppc7400.inc +require conf/machine/include/powerpc/tune-ppc7400.inc TARGET_CC_KERNEL_ARCH = "-mno-spe" diff --git a/meta/conf/machine/qemuppc64.conf b/meta/conf/machine/qemuppc64.conf index 0682e752be..2fbd26a6f9 100644 --- a/meta/conf/machine/qemuppc64.conf +++ b/meta/conf/machine/qemuppc64.conf @@ -3,7 +3,7 @@ #@DESCRIPTION: Machine configuration for running a PPC system on QEMU require conf/machine/include/qemu.inc -require conf/machine/include/tune-power9.inc +require conf/machine/include/powerpc/tune-power9.inc KERNEL_IMAGETYPE = "vmlinux" @@ -13,12 +13,11 @@ SERIAL_CONSOLES ?= "115200;hvc0" QB_SYSTEM_NAME = "qemu-system-ppc64" QB_MACHINE = "-machine pseries" QB_CPU = "-cpu POWER9" -QB_KERNEL_CMDLINE_APPEND = "console=hvc0" +QB_SMP ?= "-smp 2" + +QB_NFSROOTFS_EXTRA_OPT = "wsize=524288,rsize=524288" +QB_KERNEL_CMDLINE_APPEND = "console=hvc0 nohugevmalloc" #QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd" QB_OPT_APPEND = "-usb -device usb-tablet" -#prelink broken on ppc64 -#USER_CLASSES_remove = "image-prelink" -#IMAGE_PREPROCESS_COMMAND_remove = "prelink_image;" - MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" diff --git a/meta/conf/machine/qemux86-64.conf b/meta/conf/machine/qemux86-64.conf index db9004ee32..14873a3b4f 100644 --- a/meta/conf/machine/qemux86-64.conf +++ b/meta/conf/machine/qemux86-64.conf @@ -6,11 +6,12 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/libgl ?= "mesa" PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" +PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa" require conf/machine/include/qemu.inc DEFAULTTUNE ?= "core2-64" -require conf/machine/include/tune-core2.inc -require conf/machine/include/qemuboot-x86.inc +require conf/machine/include/x86/tune-x86-64-v3.inc +require conf/machine/include/x86/qemuboot-x86.inc UBOOT_MACHINE ?= "qemu-x86_64_defconfig" diff --git a/meta/conf/machine/qemux86.conf b/meta/conf/machine/qemux86.conf index 7e6723b880..1e072e1ae2 100644 --- a/meta/conf/machine/qemux86.conf +++ b/meta/conf/machine/qemux86.conf @@ -6,11 +6,12 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/libgl ?= "mesa" PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" +PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa" require conf/machine/include/qemu.inc DEFAULTTUNE ?= "core2-32" -require conf/machine/include/tune-corei7.inc -require conf/machine/include/qemuboot-x86.inc +require conf/machine/include/x86/tune-corei7.inc +require conf/machine/include/x86/qemuboot-x86.inc UBOOT_MACHINE ?= "qemu-x86_defconfig" |