This commit enhances the way we select the DEFAULTTUNE.
DEFAULTTUNE in AGL is meant to be set to either
corei7-64 for x86-64
aarch64 for 64bit ARM
armv7vethf-neon-vfpv4 for 32bit ARM (where applicable)
The reason is that we do want to work towards a binary distro and
also maximize sstate reuse between platforms. Each and every board
having different settings is counter-productive here.
The original setting was done in SPEC-491. See this presentation:
https://docs.google.com/presentation/d/1_VSGfheItufCCP_rbGBDg3-2miCyh02-yZva6m8cyUE
The enhancement is that we introduce a variable 'AGL_DEFAULTTUNE'
that a user could override if he really needs to change the defaults.
Also we introduce OVERRIDES to help support this mechanism
(agldefaulttune, forcedefaulttune).
Bug-AGL: SPEC-491
Bug-AGL: SPEC-5014
Bug-AGL: SPEC-5016
Change-Id: Ia8270b6195116151c27d8da427f0456f38ac95b6
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/29541
Tested-by: Jenkins Job builder account
ci-image-build: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account
# beaglebone-ai64 has a k3r5 BBMULTICONFIG to build its bootloader
# and firmware, need to use an override to set DEFAULTTUNE back to
# what that machine configuration needs.
-DEFAULTTUNE:k3r5 = "armv7athf"
+DEFAULTTUNE:k3r5:forcedefaulttune = "armv7athf"
TI_COMMON_DEPLOY := "${TMPDIR}/deploy"
# beagleplay has a k3r5 BBMULTICONFIG to build its bootloader
# and firmware, need to use an override to set DEFAULTTUNE back to
# what that machine configuration needs.
-DEFAULTTUNE:k3r5 = "armv7athf"
+DEFAULTTUNE:k3r5:forcedefaulttune = "armv7athf"
TI_COMMON_DEPLOY := "${TMPDIR}/deploy"
# j721e-evm has a k3r5 BBMULTICONFIG to build its bootloader
# firmware, need to use an override to set DEFAULTTUNE back to
# what that machine configuration needs.
-DEFAULTTUNE:k3r5 = "armv7athf"
+DEFAULTTUNE:k3r5:forcedefaulttune = "armv7athf"
# Workaround for recipe assumption of poky location
LIC_FILES_CHKSUM:pn-ti-rtos-firmware = "file://${THISDIR}/../../licenses/TI-TFL;md5=a1b59cb7ba626b9dbbcbf00f3fbc438a"
# A double inclusion would produce a warning. This include line is just for reference
# include conf/machine/include/arm/arch-armv8.inc
-DEFAULTTUNE:forcevariable = "aarch64"
+AGL_DEFAULTTUNE ?= "aarch64"
+DEFAULTTUNE:agldefaulttune = "${AGL_DEFAULTTUNE}"
# not yet ready
#QB_SYSTEM_NAME ?= "qemu-system-aarch"
# include conf/machine/include/arch/arm-armv7-a.inc
# Standard target for 32bit ARM (newer than cortex-a15)
-AGLDEFAULTTUNE = "armv7vethf-neon-vfpv4"
+ARM_DEFAULTTUNE = "armv7vethf-neon-vfpv4"
# for cortex-a8, cortex-a9, cortex-a7 (=rpi 2/3)
-AGLDEFAULTTUNE := "${@bb.utils.contains('DISTRO_FEATURES', 'agl-medium-arm-compiler', 'armv7athf-neon', '${AGLDEFAULTTUNE}', d)}"
+ARM_DEFAULTTUNE := "${@bb.utils.contains('DISTRO_FEATURES', 'agl-medium-arm-compiler', 'armv7athf-neon', '${ARM_DEFAULTTUNE}', d)}"
# for armv6 (=rpi0/1)
-AGLDEFAULTTUNE := "${@bb.utils.contains('DISTRO_FEATURES', 'agl-low-arm-compiler', 'arm1176jzfshf', '${AGLDEFAULTTUNE}', d)}"
+ARM_DEFAULTTUNE := "${@bb.utils.contains('DISTRO_FEATURES', 'agl-low-arm-compiler', 'arm1176jzfshf', '${ARM_DEFAULTTUNE}', d)}"
-DEFAULTTUNE := "${AGLDEFAULTTUNE}"
-DEFAULTTUNE:forcevariable = "${AGLDEFAULTTUNE}"
+AGL_DEFAULTTUNE ?= "${ARM_DEFAULTTUNE}"
+DEFAULTTUNE:agldefaulttune := "${AGL_DEFAULTTUNE}"
QB_SYSTEM_NAME ?= "qemu-system-arm"
QB_DEFAULT_KERNEL ?= "zImage"
# A double inclusion would produce a warning. This include line is just for reference
# include conf/machine/include/arm/arch-armv8.inc
-DEFAULTTUNE:forcevariable = "riscv64"
+AGL_DEFAULTTUNE ?= "riscv64"
+DEFAULTTUNE:agldefaulttune = "${AGL_DEFAULTTUNE}"
# We should not need the tuning include below as the BSP should include the right set already.
# A double inclusion would produce a warning. This include line is just for reference
#include conf/machine/include/tune-corei7.inc
-DEFAULTTUNE:forcevariable = "corei7-64"
+AGL_DEFAULTTUNE ?= "corei7-64"
+DEFAULTTUNE:agldefaulttune = "${AGL_DEFAULTTUNE}"
# shortened copy of tune-corei7.inc due to bug in inclusion for tune-core2.inc
# TUNE_ARCH is using .= x86-64 , if done twice, you get x86-64x86-64 as TUNE_ARCH :/
require conf/distro/poky.conf
+# Insert overrides "agldefaulttune" and "forcedefaulttune" before forcevariable
+OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}${LIBCOVERRIDE}:agldefaulttune:forcedefaulttune:forcevariable"
+
# AGL specific derivations
DISTRO = "poky-agl"
DISTRO_NAME = "Automotive Grade Linux"
OVERRIDES .= ":${AGLRELEASETYPE}"
-
#for development
DISTRO_VERSION:agldevelopment := "${AGLVERSION}+snapshot-${METADATA_REVISION}"