From 14cf68a48a2ef95c214e445e96c25f0dd90f7aac Mon Sep 17 00:00:00 2001 From: Jan-Simon Moeller Date: Fri, 15 Dec 2023 20:55:06 +0100 Subject: Enhance DEFAULTTUNE mechanism 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 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 | 2 +- meta-agl-bsp/conf/include/agl_beagleplay.inc | 2 +- meta-agl-bsp/conf/include/agl_j721e-evm.inc | 2 +- meta-agl-core/conf/distro/include/aarch64-tune.inc | 3 ++- meta-agl-core/conf/distro/include/arm-tune.inc | 10 +++++----- meta-agl-core/conf/distro/include/riscv64-tune.inc | 3 ++- meta-agl-core/conf/distro/include/x86_64-tune.inc | 3 ++- meta-agl-core/conf/distro/poky-agl.conf | 4 +++- 8 files changed, 17 insertions(+), 12 deletions(-) diff --git a/meta-agl-bsp/conf/include/agl_beaglebone-ai64.inc b/meta-agl-bsp/conf/include/agl_beaglebone-ai64.inc index 50ef7f036..1e03b70ff 100644 --- a/meta-agl-bsp/conf/include/agl_beaglebone-ai64.inc +++ b/meta-agl-bsp/conf/include/agl_beaglebone-ai64.inc @@ -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" diff --git a/meta-agl-bsp/conf/include/agl_beagleplay.inc b/meta-agl-bsp/conf/include/agl_beagleplay.inc index 5835c8b4e..77b669bb7 100644 --- a/meta-agl-bsp/conf/include/agl_beagleplay.inc +++ b/meta-agl-bsp/conf/include/agl_beagleplay.inc @@ -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" diff --git a/meta-agl-bsp/conf/include/agl_j721e-evm.inc b/meta-agl-bsp/conf/include/agl_j721e-evm.inc index c0195f183..963b5697d 100644 --- a/meta-agl-bsp/conf/include/agl_j721e-evm.inc +++ b/meta-agl-bsp/conf/include/agl_j721e-evm.inc @@ -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" diff --git a/meta-agl-core/conf/distro/include/aarch64-tune.inc b/meta-agl-core/conf/distro/include/aarch64-tune.inc index bf71369db..4628fcaf2 100644 --- a/meta-agl-core/conf/distro/include/aarch64-tune.inc +++ b/meta-agl-core/conf/distro/include/aarch64-tune.inc @@ -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" diff --git a/meta-agl-core/conf/distro/include/arm-tune.inc b/meta-agl-core/conf/distro/include/arm-tune.inc index e88f7f398..b3ad64ad7 100644 --- a/meta-agl-core/conf/distro/include/arm-tune.inc +++ b/meta-agl-core/conf/distro/include/arm-tune.inc @@ -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" diff --git a/meta-agl-core/conf/distro/include/riscv64-tune.inc b/meta-agl-core/conf/distro/include/riscv64-tune.inc index 1318396fd..981fc4283 100644 --- a/meta-agl-core/conf/distro/include/riscv64-tune.inc +++ b/meta-agl-core/conf/distro/include/riscv64-tune.inc @@ -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}" diff --git a/meta-agl-core/conf/distro/include/x86_64-tune.inc b/meta-agl-core/conf/distro/include/x86_64-tune.inc index bf166e2f8..541b729b6 100644 --- a/meta-agl-core/conf/distro/include/x86_64-tune.inc +++ b/meta-agl-core/conf/distro/include/x86_64-tune.inc @@ -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 :/ diff --git a/meta-agl-core/conf/distro/poky-agl.conf b/meta-agl-core/conf/distro/poky-agl.conf index bfde782be..0f1fe085d 100644 --- a/meta-agl-core/conf/distro/poky-agl.conf +++ b/meta-agl-core/conf/distro/poky-agl.conf @@ -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}" -- cgit 1.2.3-korg