summaryrefslogtreecommitdiffstats
path: root/meta-agl-distro/conf/distro
diff options
context:
space:
mode:
authorJan-Simon Möller <jsmoeller@linuxfoundation.org>2017-04-26 14:13:08 +0200
committerJan-Simon Möller <jsmoeller@linuxfoundation.org>2017-04-29 01:38:06 +0200
commit039cec7ba48f8340c159d10b7da91d1f35e6449a (patch)
tree6b80010cd1d01deee59acb439fe3826527b672d4 /meta-agl-distro/conf/distro
parentd9a02b96ebbf689395521d95f712107bf2631867 (diff)
Enforce unified tunings across all target boards of AGLsandbox/jsmoeller/defaulttune
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) - ARM 32bit medium: armv7athf-neon (enablevia DISTRO_FEATURE) - AARCH64: aarch64 - x86-64: corei7-64 Change-Id: Icfafc83bf947170cfe440a4b3d842ec21d3bdaf8 Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-distro/conf/distro')
-rw-r--r--meta-agl-distro/conf/distro/include/aarch64-tune.inc9
-rw-r--r--meta-agl-distro/conf/distro/include/arm-default-tune.inc18
-rw-r--r--meta-agl-distro/conf/distro/include/arm-tune.inc11
-rw-r--r--meta-agl-distro/conf/distro/include/x86_64-tune.inc41
-rw-r--r--meta-agl-distro/conf/distro/poky-agl.conf16
5 files changed, 75 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 0000000..16d47b7
--- /dev/null
+++ b/meta-agl-distro/conf/distro/include/aarch64-tune.inc
@@ -0,0 +1,9 @@
+# We should not need any includes as the board should include the right set already. This 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 5a6f44f..0000000
--- 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 0000000..58fff1b
--- /dev/null
+++ b/meta-agl-distro/conf/distro/include/arm-tune.inc
@@ -0,0 +1,11 @@
+# We should not need any includes as the board should include the right set already. This is just for reference.
+# high profile boards need to
+# 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 0000000..122eb8e
--- /dev/null
+++ b/meta-agl-distro/conf/distro/include/x86_64-tune.inc
@@ -0,0 +1,41 @@
+# We should not need any includes as the board should include the right set already. This 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 = " -machine q35 -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 = " -machine q35 -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 = " -machine q35 -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)}" \ No newline at end of file
diff --git a/meta-agl-distro/conf/distro/poky-agl.conf b/meta-agl-distro/conf/distro/poky-agl.conf
index fae35c6..93e89af 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"
+