Enhance DEFAULTTUNE mechanism 41/29541/3
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 15 Dec 2023 19:55:06 +0000 (20:55 +0100)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Mon, 18 Dec 2023 13:31:20 +0000 (13:31 +0000)
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

meta-agl-bsp/conf/include/agl_beaglebone-ai64.inc
meta-agl-bsp/conf/include/agl_beagleplay.inc
meta-agl-bsp/conf/include/agl_j721e-evm.inc
meta-agl-core/conf/distro/include/aarch64-tune.inc
meta-agl-core/conf/distro/include/arm-tune.inc
meta-agl-core/conf/distro/include/riscv64-tune.inc
meta-agl-core/conf/distro/include/x86_64-tune.inc
meta-agl-core/conf/distro/poky-agl.conf

index 50ef7f0..1e03b70 100644 (file)
@@ -1,6 +1,6 @@
 # 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"
index 5835c8b..77b669b 100644 (file)
@@ -1,6 +1,6 @@
 # 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"
index c0195f1..963b569 100644 (file)
@@ -1,7 +1,7 @@
 # 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"
index bf71369..4628fca 100644 (file)
@@ -4,7 +4,8 @@
 # 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"
index e88f7f3..b3ad64a 100644 (file)
@@ -7,16 +7,16 @@
 #   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"
index 1318396..981fc42 100644 (file)
@@ -4,4 +4,5 @@
 # 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}"
index bf166e2..541b729 100644 (file)
@@ -3,7 +3,8 @@
 # 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 :/
index bfde782..0f1fe08 100644 (file)
@@ -1,5 +1,8 @@
 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"
@@ -16,7 +19,6 @@ AGLRELEASETYPE := "aglrelease"
 
 OVERRIDES .= ":${AGLRELEASETYPE}"
 
-
 #for development
 DISTRO_VERSION:agldevelopment := "${AGLVERSION}+snapshot-${METADATA_REVISION}"