diff options
author | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2017-04-26 14:13:08 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2017-05-06 13:49:42 +0000 |
commit | e8aff1ac9e064f41b8eac2fef05ae1db494ee41b (patch) | |
tree | 2a57e33700b9cfed685b4e3a3a3359b1380e63a8 /meta-agl-distro/conf/distro | |
parent | 1f42bdf12386833666d1f6f7926081926f426bf1 (diff) |
Enforce unified tunings across all target boards of AGL
DEFAULTTUNE is a setting that should be defined in the DISTRO.
So we do it here. Goal is to have just 3-4 SDKs in the end.
We use these levels:
- ARM 32bit high: armv7vethf-neon-vfpv4 (=default for ARM 32bit)
- ARM 32bit medium: armv7athf-neon (enabled via DISTRO_FEATURE_append = " agl-medium-arm-compiler")
- AARCH64: aarch64 (=aarch64, no other tunings)
- x86-64: corei7-64 (=corei7-64 also for qemux86-64)
v2: Fix qemu user-mode emulation on x86-64 and adapt qemux86-64 tune flags.
See: https://goo.gl/DMaBJ9
Bug-AGL: SPEC-491
Change-Id: Iababbe38a531d546c03f695847651f2d83301b9a
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/9299
Reviewed-by: Martin Kelly <mkelly@xevo.com>
ci-image-build: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
Reviewed-by: Stéphane Desneux <stephane.desneux@iot.bzh>
Tested-by: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-boot-test: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
Diffstat (limited to 'meta-agl-distro/conf/distro')
-rw-r--r-- | meta-agl-distro/conf/distro/include/aarch64-tune.inc | 13 | ||||
-rw-r--r-- | meta-agl-distro/conf/distro/include/arm-default-tune.inc | 18 | ||||
-rw-r--r-- | meta-agl-distro/conf/distro/include/arm-tune.inc | 14 | ||||
-rw-r--r-- | meta-agl-distro/conf/distro/include/x86_64-tune.inc | 54 | ||||
-rw-r--r-- | meta-agl-distro/conf/distro/poky-agl.conf | 16 |
5 files changed, 95 insertions, 20 deletions
diff --git a/meta-agl-distro/conf/distro/include/aarch64-tune.inc b/meta-agl-distro/conf/distro/include/aarch64-tune.inc new file mode 100644 index 000000000..a2a308fe0 --- /dev/null +++ b/meta-agl-distro/conf/distro/include/aarch64-tune.inc @@ -0,0 +1,13 @@ +# DEFAULTTUNE overrides for AGL on aarch64 + +# 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/arm/arch-armv8.inc + +DEFAULTTUNE = "aarch64" +# not yet ready +#QB_SYSTEM_NAME ?= "qemu-system-aarch" +#QB_DEFAULT_KERNEL ?= "zImage" +#QB_DEFAULT_FSTYPE ?= "ext4" +#QB_MACHINE ?= "-machine foo" +#QB_CPU ?= "-cpu bar" diff --git a/meta-agl-distro/conf/distro/include/arm-default-tune.inc b/meta-agl-distro/conf/distro/include/arm-default-tune.inc deleted file mode 100644 index 5a6f44fe5..000000000 --- a/meta-agl-distro/conf/distro/include/arm-default-tune.inc +++ /dev/null @@ -1,18 +0,0 @@ -def arm_tune_handler(d): - features = d.getVar('TUNE_FEATURES', True).split() - if 'armv7a' in features or 'armv7ve' in features: - tune = 'armv7athf' - if 'bigendian' in features: - tune += 'b' - if 'vfpv3' in features: - tune += '-vfpv3' - if 'vfpv3d16' in features: - tune += '-vfpv3d16' - if 'neon' in features: - tune += '-neon' - if 'vfpv4' in features: - tune += '-vfpv4' - else: - tune = d.getVar('DEFAULTTUNE', True) - return tune -DEFAULTTUNE_agl := "${@arm_tune_handler(d)}" diff --git a/meta-agl-distro/conf/distro/include/arm-tune.inc b/meta-agl-distro/conf/distro/include/arm-tune.inc new file mode 100644 index 000000000..5aebd53be --- /dev/null +++ b/meta-agl-distro/conf/distro/include/arm-tune.inc @@ -0,0 +1,14 @@ +# DEFAULTTUNE overrides for AGL on ARM 32bit + +# 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/arm/arch-armv7ve.inc +# medium profile boards need to +# include conf/machine/include/arch/arm-armv7-a.inc + +DEFAULTTUNE = "${@bb.utils.contains('DISTRO_FEATURES', 'agl-medium-arm-compiler', 'armv7athf-neon', 'armv7vethf-neon-vfpv4', d)}" +QB_SYSTEM_NAME ?= "qemu-system-arm" +QB_DEFAULT_KERNEL ?= "zImage" +QB_DEFAULT_FSTYPE ?= "ext4" +QB_MACHINE ?= "${@bb.utils.contains('DISTRO_FEATURES', 'agl-medium-arm-compiler', '-machine vexpress-a9', '-machine vexpress-a15', d)}" +QB_CPU ?= "${@bb.utils.contains('DISTRO_FEATURES', 'agl-medium-arm-compiler', '-cpu cortex-a9', '-cpu cortex-a15', d)}" diff --git a/meta-agl-distro/conf/distro/include/x86_64-tune.inc b/meta-agl-distro/conf/distro/include/x86_64-tune.inc new file mode 100644 index 000000000..f1ce97938 --- /dev/null +++ b/meta-agl-distro/conf/distro/include/x86_64-tune.inc @@ -0,0 +1,54 @@ +# DEFAULTTUNE overrides for AGL on x86-64 + +# 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 = "corei7-64" + +# 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 :/ +# we should have at least the core2 tunings by default (=qemux86-64) + +# Extra tune features +TUNEVALID[corei7] = "Enable corei7 specific processor optimizations" +TUNE_CCARGS = "${@bb.utils.contains('TUNE_FEATURES', 'corei7', ' -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2', '', d)}" + +# Extra tune selections +AVAILTUNES += "corei7-32" +TUNE_FEATURES_tune-corei7-32 = "${TUNE_FEATURES_tune-x86} corei7" +BASE_LIB_tune-corei7-32 = "lib" +TUNE_PKGARCH_tune-corei7-32 = "corei7-32" +PACKAGE_EXTRA_ARCHS_tune-corei7-32 = "${PACKAGE_EXTRA_ARCHS_tune-core2-32} corei7-32" +QEMU_EXTRAOPTIONS_corei7-32 = " -cpu Nehalem,check=false" +QB_CPU_corei7-32 = "-cpu Nehalem,check=false" +QB_MACHINE_corei7-32 = "-machine q35" + +AVAILTUNES += "corei7-64" +TUNE_FEATURES_tune-corei7-64 = "${TUNE_FEATURES_tune-x86-64} corei7" +BASE_LIB_tune-corei7-64 = "lib64" +TUNE_PKGARCH_tune-corei7-64 = "corei7-64" +PACKAGE_EXTRA_ARCHS_tune-corei7-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} corei7-64" +QEMU_EXTRAOPTIONS_corei7-64 = " -cpu Nehalem,check=false" +QB_CPU_corei7-64 = " -cpu Nehalem,check=false" +QB_MACHINE_corei7-64 = "-machine q35" + +AVAILTUNES += "corei7-64-x32" +TUNE_FEATURES_tune-corei7-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} corei7" +BASE_LIB_tune-corei7-64-x32 = "libx32" +TUNE_PKGARCH_tune-corei7-64-x32 = "corei7-64-x32" +PACKAGE_EXTRA_ARCHS_tune-corei7-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64-x32} corei7-64-x32" +QEMU_EXTRAOPTIONS_corei7-64-x32 = " -cpu Nehalem,check=false" +QB_CPU_corei7-64-x32 = "-cpu Nehalem,check=false" +QB_MACHINE_corei7-64-x32 = "-machine q35" + +TUNE_ARCH = "${@bb.utils.contains('TUNE_FEATURES', 'm64', '${X86ARCH64}', '' ,d)}" + +# Bump qemux86-64 up to corei7 +AVAILTUNES += "qemux86-64" +TUNE_FEATURES_tune-qemux86-64 = "${TUNE_FEATURES_tune-x86-64} corei7" +BASE_LIB_tune-qemux86-64 = "lib64" +TUNE_PKGARCH_tune-qemux86-64 = "corei7-64" +PACKAGE_EXTRA_ARCHS_tune-qemux86-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} corei7-64" +QEMU_EXTRAOPTIONS_qemux86-64 = " -cpu Nehalem,check=false" +QB_CPU_qemux86-64 = " -cpu Nehalem,check=false" +QB_MACHINE_qemux86-64 = "-machine q35" diff --git a/meta-agl-distro/conf/distro/poky-agl.conf b/meta-agl-distro/conf/distro/poky-agl.conf index fae35c631..93e89afd9 100644 --- a/meta-agl-distro/conf/distro/poky-agl.conf +++ b/meta-agl-distro/conf/distro/poky-agl.conf @@ -88,8 +88,20 @@ SECURITY_CFLAGS_pn-qtwebengine = "${SECURITY_NO_PIE_CFLAGS}" #default: USER_CLASSES ?= "buildstats image-mklibs image-prelink" USER_CLASSES = "buildstats image-mklibs" -# weak 'default value' assignment for a DEFAULTTUNE -DEFAULTTUNE_arm ??= "armv7athf-neon" +# AGL uses 4 optimization levels +# 2 for ARM 32bit +# - a high and a medium setting for the CCARGS +# - the high setting is default (needs >= cortex-a15) +# - the medium setting is enabled with: DISTRO_FEATURES_append = " agl-medium-arm-compiler " +# 1 for ARM 64bit / AARCH64 +# 1 for x86-64 +require conf/distro/include/${TARGET_ARCH}-tune.inc + +# Generic qemu and qemuboot (runqemu) enhancements +# check qemuboot.bbclass +# - use 1G RAM by default +QB_MEM ?= "-m 1024" # temporary fix for meta-updater (to be removed 2017-05-01) IMAGE_INSTALL_remove = "rvi-sota-client" + |