Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 01/15] x86: Replace ia32 with x86 when referring to the generic architecture
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:55   ` Martin Jansa
  2014-01-21 22:39 ` [PATCH 02/15] i586: Only add the current tune to PACKAGE_EXTRA_ARCHS Darren Hart
                   ` (14 subsequent siblings)
  15 siblings, 1 reply; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

ia32 implies 32bit, while these files provide descriptions for IA32,
X86_64, and X32 architectures. The term "x86" fits this used better
without resorting to using the term "Intel" which isn't quite right as
it excludes things like the tune-c3 file describing a Via CPU.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@intel.com>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/conf/machine/include/tune-c3.inc              |    2 +-
 meta/conf/machine/include/tune-i586.inc            |    2 +-
 meta/conf/machine/include/tune-x86_64.inc          |    2 +-
 .../include/{ia32-base.inc => x86-base.inc}        |   16 ++++++++--------
 meta/conf/machine/include/{ia32 => x86}/README     |    6 +++---
 .../{ia32/arch-ia32.inc => x86/arch-x86.inc}       |    2 +-
 6 files changed, 15 insertions(+), 15 deletions(-)
 rename meta/conf/machine/include/{ia32-base.inc => x86-base.inc} (75%)
 rename meta/conf/machine/include/{ia32 => x86}/README (81%)
 rename meta/conf/machine/include/{ia32/arch-ia32.inc => x86/arch-x86.inc} (97%)

diff --git a/meta/conf/machine/include/tune-c3.inc b/meta/conf/machine/include/tune-c3.inc
index 18865b7..fafc28a 100644
--- a/meta/conf/machine/include/tune-c3.inc
+++ b/meta/conf/machine/include/tune-c3.inc
@@ -1,4 +1,4 @@
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
 TUNEVALID[c3] = "VIA Cyrix III or VIA C3 specific optimizations"
 TUNECONFLICTS[c3] = "m64 mx32"
diff --git a/meta/conf/machine/include/tune-i586.inc b/meta/conf/machine/include/tune-i586.inc
index 4542b9b..a315b35 100644
--- a/meta/conf/machine/include/tune-i586.inc
+++ b/meta/conf/machine/include/tune-i586.inc
@@ -1,6 +1,6 @@
 DEFAULTTUNE ?= "i586"
 
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
 # Extra tune features
 TUNEVALID[i586] = "Enable i586 specific processor optimizations"
diff --git a/meta/conf/machine/include/tune-x86_64.inc b/meta/conf/machine/include/tune-x86_64.inc
index 31e06da..ae48124 100644
--- a/meta/conf/machine/include/tune-x86_64.inc
+++ b/meta/conf/machine/include/tune-x86_64.inc
@@ -1,4 +1,4 @@
 DEFAULTTUNE ?= "x86-64"
 
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
diff --git a/meta/conf/machine/include/ia32-base.inc b/meta/conf/machine/include/x86-base.inc
similarity index 75%
rename from meta/conf/machine/include/ia32-base.inc
rename to meta/conf/machine/include/x86-base.inc
index e15f927..421bdee 100644
--- a/meta/conf/machine/include/ia32-base.inc
+++ b/meta/conf/machine/include/x86-base.inc
@@ -1,5 +1,5 @@
 #
-# base machine settings for ia32-architecture BSPs
+# Base machine settings for Intel architecture BSPs
 #
 
 #
@@ -25,28 +25,28 @@ PREFERRED_VERSION_linux-yocto ??= "3.0%"
 #
 # XSERVER subcomponents, used to build the XSERVER variable
 #
-XSERVER_IA32_BASE = "xserver-xorg \
+XSERVER_INTEL_BASE = "xserver-xorg \
            xf86-input-mouse \
            xf86-input-keyboard \
            xf86-input-evdev \
            xf86-input-synaptics \
            "
 
-XSERVER_IA32_EXT = " \
+XSERVER_INTEL_EXT = " \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'xserver-xorg-extension-glx', '', d)} \
            xserver-xorg-module-libint10 \
            "
 
-XSERVER_IA32_I915 = "xf86-video-intel \
+XSERVER_INTEL_I915 = "xf86-video-intel \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i915', '', d)} \
            "
 
-XSERVER_IA32_I965 = "xf86-video-intel \
+XSERVER_INTEL_I965 = "xf86-video-intel \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i965', '', d)} \
            "
 
-XSERVER_IA32_VESA = "xf86-video-vesa"
+XSERVER_INTEL_VESA = "xf86-video-vesa"
 
-XSERVER_IA32_FBDEV = "xf86-video-fbdev"
+XSERVER_INTEL_FBDEV = "xf86-video-fbdev"
 
-XSERVER_IA32_MODESETTING = "xf86-video-modesetting"
+XSERVER_INTEL_MODESETTING = "xf86-video-modesetting"
diff --git a/meta/conf/machine/include/ia32/README b/meta/conf/machine/include/x86/README
similarity index 81%
rename from meta/conf/machine/include/ia32/README
rename to meta/conf/machine/include/x86/README
index 8f80a5b..d8b6793 100644
--- a/meta/conf/machine/include/ia32/README
+++ b/meta/conf/machine/include/x86/README
@@ -1,12 +1,12 @@
 2012/03/30 - Mark Hatle <mark.hatle@windriver.com>
  - Initial version
 
-Most of the items for the IA architecture are defined in the single 
-arch-ia32 file.
+Most of the items for the Intel architectures are defined in the single 
+arch-x86 file.
 
 Three ABIs are define, m32, mx32 and m64.
 
-The following is the list of ia32 specific variables:
+The following is the list of intel specific variables:
 
 X86ARCH32 - This is the 32-bit architecture GNU canonical arch, TUNE_ARCH.
 
diff --git a/meta/conf/machine/include/ia32/arch-ia32.inc b/meta/conf/machine/include/x86/arch-x86.inc
similarity index 97%
rename from meta/conf/machine/include/ia32/arch-ia32.inc
rename to meta/conf/machine/include/x86/arch-x86.inc
index aa83896..298bddc 100644
--- a/meta/conf/machine/include/ia32/arch-ia32.inc
+++ b/meta/conf/machine/include/x86/arch-x86.inc
@@ -1,5 +1,5 @@
 #
-# IA32 Architecture definition
+# X86 Architecture definition (IA32, X86_64, and X32)
 #
 
 DEFAULTTUNE ?= "x86"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 02/15] i586: Only add the current tune to PACKAGE_EXTRA_ARCHS
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
  2014-01-21 22:39 ` [PATCH 01/15] x86: Replace ia32 with x86 when referring to the generic architecture Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 03/15] tune-core2: Replace -mtune=generic with -mtune=core2 Darren Hart
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

The generic x86 build supports i586 by default, so this specific tune
file technically doesn't add any specific ARCHes to PACKAGE_EXTRA_ARCHS.
For consistency, append the current tune to PACKAGE_EXTRA_ARCHS.

Since we do not have specific tune files for i386 and i486, just drop
them.

These could be added to tune-x86 version if there is a need to
maintain them, but they really do not belong here.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@intel.com>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/conf/machine/include/tune-i586.inc |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/conf/machine/include/tune-i586.inc b/meta/conf/machine/include/tune-i586.inc
index a315b35..5fbb3c7 100644
--- a/meta/conf/machine/include/tune-i586.inc
+++ b/meta/conf/machine/include/tune-i586.inc
@@ -11,4 +11,4 @@ AVAILTUNES += "i586"
 TUNE_FEATURES_tune-i586 = "${TUNE_FEATURES_tune-x86} i586"
 BASE_LIB_tune-i586 = "lib"
 TUNE_PKGARCH_tune-i586 = "i586"
-PACKAGE_EXTRA_ARCHS_tune-i586 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i386 i486 i586"
+PACKAGE_EXTRA_ARCHS_tune-i586 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i586"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 03/15] tune-core2: Replace -mtune=generic with -mtune=core2
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
  2014-01-21 22:39 ` [PATCH 01/15] x86: Replace ia32 with x86 when referring to the generic architecture Darren Hart
  2014-01-21 22:39 ` [PATCH 02/15] i586: Only add the current tune to PACKAGE_EXTRA_ARCHS Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 04/15] tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHS Darren Hart
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

-march specifies which ISA to use. -mtune specifies which cpu-type to
optimize instruction ordering for, but not which ISA to use. There are
times when it may make sense to specify mtune=generic and use a more
specific march, such as core2, but the opposite makes little sense at
all: use cpu-type specific ISA, but order the instructions
generically. While the -mtune is implied by -march, gcc does not verify
it is using -mtune=core2 with:

    gcc -Q -march=core2 --help=target

Explicitly specify -mtune=core2 to be sure.

Add a comment header describing the CPUs targeted by this tune file.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@intel.com>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/conf/machine/include/tune-core2.inc |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/meta/conf/machine/include/tune-core2.inc b/meta/conf/machine/include/tune-core2.inc
index 85b6924..3b25197 100644
--- a/meta/conf/machine/include/tune-core2.inc
+++ b/meta/conf/machine/include/tune-core2.inc
@@ -1,10 +1,18 @@
+# Settings for the GCC(1) cpu-type "core2":
+#
+#      Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3
+#      instruction set support.
+#
+# This tune is recommended for the Intel Core 2 CPU family, including Conroe,
+# Merom and beyond, as well as the first Atom CPUs, Diamondville, and beyond.
+#
 DEFAULTTUNE ?= "core2"
 
 require conf/machine/include/tune-i586.inc
 
 # Extra tune features
 TUNEVALID[core2] = "Enable core2 specific processor optimizations"
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "core2", " -march=core2 -msse3 -mtune=generic -mfpmath=sse", "", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "core2", " -march=core2 -mtune=core2 -msse3 -mfpmath=sse", "", d)}"
 
 # Extra tune selections
 AVAILTUNES += "core2"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 04/15] tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHS
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (2 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 03/15] tune-core2: Replace -mtune=generic with -mtune=core2 Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 05/15] tune: Make 32b or 64b explicit in tune name for core2 Darren Hart
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

Inherit the PACKAGE_EXTRA_ARCHS from i586 and only explicitly add core2
here.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@intel.com>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/conf/machine/include/tune-core2.inc |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/conf/machine/include/tune-core2.inc b/meta/conf/machine/include/tune-core2.inc
index 3b25197..2500a74 100644
--- a/meta/conf/machine/include/tune-core2.inc
+++ b/meta/conf/machine/include/tune-core2.inc
@@ -8,6 +8,7 @@
 #
 DEFAULTTUNE ?= "core2"
 
+# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
 require conf/machine/include/tune-i586.inc
 
 # Extra tune features
@@ -19,7 +20,7 @@ AVAILTUNES += "core2"
 TUNE_FEATURES_tune-core2 = "${TUNE_FEATURES_tune-x86} core2"
 BASE_LIB_tune-core2 = "lib"
 TUNE_PKGARCH_tune-core2 = "core2"
-PACKAGE_EXTRA_ARCHS_tune-core2 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i386 i486 i586 i686 core2"
+PACKAGE_EXTRA_ARCHS_tune-core2 = "${PACKAGE_EXTRA_ARCHS_tune-i586} core2"
 
 AVAILTUNES += "core2-64"
 TUNE_FEATURES_tune-core2-64 = "${TUNE_FEATURES_tune-x86-64} core2"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 05/15] tune: Make 32b or 64b explicit in tune name for core2
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (3 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 04/15] tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHS Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 06/15] tune-corei7: Add support for cpu-type corei7 Darren Hart
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Darren Hart

Core2 has both a 32b and a 64b variant. Currently, core2 implies 32b,
while core2_64 is the 64b version. This implicit 32b mode will become
confusing in later architectures, such as corei7, where it would be
natural for people to assume "corei7" meant 64 bit.

Rather than carrying forward an implicit 32b mode and rather than
changing the naming scheme part way through the architecture hiearchy,
make the 32b and 64b variant explicit in the tune name by changing core2
to core2_32.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
 meta/conf/machine/include/tune-core2.inc |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/meta/conf/machine/include/tune-core2.inc b/meta/conf/machine/include/tune-core2.inc
index 2500a74..11517dc 100644
--- a/meta/conf/machine/include/tune-core2.inc
+++ b/meta/conf/machine/include/tune-core2.inc
@@ -6,7 +6,7 @@
 # This tune is recommended for the Intel Core 2 CPU family, including Conroe,
 # Merom and beyond, as well as the first Atom CPUs, Diamondville, and beyond.
 #
-DEFAULTTUNE ?= "core2"
+DEFAULTTUNE ?= "core2-32"
 
 # Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
 require conf/machine/include/tune-i586.inc
@@ -16,11 +16,11 @@ TUNEVALID[core2] = "Enable core2 specific processor optimizations"
 TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "core2", " -march=core2 -mtune=core2 -msse3 -mfpmath=sse", "", d)}"
 
 # Extra tune selections
-AVAILTUNES += "core2"
-TUNE_FEATURES_tune-core2 = "${TUNE_FEATURES_tune-x86} core2"
-BASE_LIB_tune-core2 = "lib"
-TUNE_PKGARCH_tune-core2 = "core2"
-PACKAGE_EXTRA_ARCHS_tune-core2 = "${PACKAGE_EXTRA_ARCHS_tune-i586} core2"
+AVAILTUNES += "core2-32"
+TUNE_FEATURES_tune-core2-32 = "${TUNE_FEATURES_tune-x86} core2"
+BASE_LIB_tune-core2-32 = "lib"
+TUNE_PKGARCH_tune-core2-32 = "core2_32"
+PACKAGE_EXTRA_ARCHS_tune-core2-32 = "${PACKAGE_EXTRA_ARCHS_tune-i586} core2_32"
 
 AVAILTUNES += "core2-64"
 TUNE_FEATURES_tune-core2-64 = "${TUNE_FEATURES_tune-x86-64} core2"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 06/15] tune-corei7: Add support for cpu-type corei7
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (4 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 05/15] tune: Make 32b or 64b explicit in tune name for core2 Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 07/15] tune: Remove tune-x86_64.inc Darren Hart
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

corei7 offers a significant advancement since the previous core2
cpu-type described in the tune-core2 file.

From the GCC(1):
Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3,
               SSSE3, SSE4.1 and SSE4.2 instruction set support.

This offers optimizations for Nehalem and Silvermont (e.g. Bay Trail)
CPUs (and beyond).

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@intel.com>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/conf/machine/include/tune-corei7.inc |   35 +++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 meta/conf/machine/include/tune-corei7.inc

diff --git a/meta/conf/machine/include/tune-corei7.inc b/meta/conf/machine/include/tune-corei7.inc
new file mode 100644
index 0000000..5464fed
--- /dev/null
+++ b/meta/conf/machine/include/tune-corei7.inc
@@ -0,0 +1,35 @@
+# Settings for the GCC(1) cpu-type "corei7":
+#
+#     Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1
+#     and SSE4.2 instruction set support.
+#
+# This tune is recommended for Intel Nehalem and Silvermont (e.g. Bay Trail) CPUs
+# (and beyond).
+#
+DEFAULTTUNE ?= "corei7-64"
+
+# Pull in the previous tune in to pull in PACKAGE_EXTRA_ARCHS
+require conf/machine/include/tune-core2.inc
+
+# 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} corei7_32"
+
+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"
+
+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"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 07/15] tune: Remove tune-x86_64.inc
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (5 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 06/15] tune-corei7: Add support for cpu-type corei7 Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 08/15] tune: README: Whitespace cleanup Darren Hart
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Darren Hart

The tune-x86_64.inc file is conceptually flawed. x86_64 is more akin to
the x86 and x86-32 ABIs defined in arch-x86.inc than it is a concrete
tune file, such as i586 or core2 - to the extent that everything but the
default tune is defined in the arch-x86.inc file. This becomes very
apparant when attempting to include tune-x86_64.inc in the x86 tune
hierarchy.

Remove the tune-x86_64.inc tune file in favor of it being an ABI
definition in arch-x86.inc and relying on the linear hierarchy of
concrete cpu-types in tune-i586, tune-core2, and tune-corei7.

core2_64 should suffice in lieu of x86_64 for all but a couple esoteric
corner cases involving older pre-core2 CPUs. In these cases, if they
exist at all, the BSP can replace the include tune-x86_64.inc with
arch-x86.inc and set the default tune to x86_64.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
 meta/conf/machine/include/tune-x86_64.inc |    4 ----
 1 file changed, 4 deletions(-)
 delete mode 100644 meta/conf/machine/include/tune-x86_64.inc

diff --git a/meta/conf/machine/include/tune-x86_64.inc b/meta/conf/machine/include/tune-x86_64.inc
deleted file mode 100644
index ae48124..0000000
--- a/meta/conf/machine/include/tune-x86_64.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-DEFAULTTUNE ?= "x86-64"
-
-require conf/machine/include/x86/arch-x86.inc
-
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 08/15] tune: README: Whitespace cleanup
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (6 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 07/15] tune: Remove tune-x86_64.inc Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 09/15] tune: README: Document best practice Darren Hart
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

Before making content changes, cleanup the various whitespace errors in
this file. Mostly end-of-line whitepsace.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@intel.com>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/conf/machine/include/README |   88 +++++++++++++++++++-------------------
 1 file changed, 44 insertions(+), 44 deletions(-)

diff --git a/meta/conf/machine/include/README b/meta/conf/machine/include/README
index e4b59c9..65d0942 100644
--- a/meta/conf/machine/include/README
+++ b/meta/conf/machine/include/README
@@ -1,27 +1,27 @@
 2012/03/30 - Mark Hatle <mark.hatle@windriver.com>
  - Initial Revision
 
-The individual CPU, and ABI tunings are contained in this directory.  A 
-number of local and global variables are used to control the way the 
-tunings are setup and how they work together to specify an optimized 
+The individual CPU, and ABI tunings are contained in this directory.  A
+number of local and global variables are used to control the way the
+tunings are setup and how they work together to specify an optimized
 configuration.
 
-The following is brief summary of the generic components that are used 
+The following is brief summary of the generic components that are used
 in these tunings.
 
-AVAILTUNES - This is a list of all of the tuning definitions currently 
-available in the system.  Not all tunes in this list may be compatible 
-with the machine configuration, or each other in a multilib 
-configuration.  Each tuning file can add to this list using "+=", but 
+AVAILTUNES - This is a list of all of the tuning definitions currently
+available in the system.  Not all tunes in this list may be compatible
+with the machine configuration, or each other in a multilib
+configuration.  Each tuning file can add to this list using "+=", but
 should never replace the list using "=".
 
-DEFAULTTUNE - This specifies the tune to use for a particular build.  
-Each tune should specify a reasonable default, which can be overriden by 
-a machine or multilib configuration.  The specified tune must be listed 
+DEFAULTTUNE - This specifies the tune to use for a particular build.
+Each tune should specify a reasonable default, which can be overriden by
+a machine or multilib configuration.  The specified tune must be listed
 in the AVAILTUNES.
 
-TUNEVALID[feature] - The <feature> is defined with a human readable 
-explanation for what it does.  All architectural, cpu, abi, etc tuning 
+TUNEVALID[feature] - The <feature> is defined with a human readable
+explanation for what it does.  All architectural, cpu, abi, etc tuning
 features must be defined using TUNEVALID.
 
 TUNECONFLICTS[feature] - A list of features which conflict with <feature>.
@@ -31,51 +31,51 @@ tuning ends up with features which conflict with each other.
 TUNE_FEATURES - This is automatically defined as TUNE_FEATURES_tune-<tune>.
 See TUNE_FEATURES_tune-<tune> for more information.
 
-TUNE_FEATURES_tune-<tune> - Specify the features used to describe a 
-specific tune.  This is a list of features that a tune support, each 
-feature must be in the TUNEVALID list.  Note: the tune and a given 
-feature name may be the same, but they have different purposes.  Only 
-features may be used to change behavior, while tunes are used to 
+TUNE_FEATURES_tune-<tune> - Specify the features used to describe a
+specific tune.  This is a list of features that a tune support, each
+feature must be in the TUNEVALID list.  Note: the tune and a given
+feature name may be the same, but they have different purposes.  Only
+features may be used to change behavior, while tunes are used to
 describe an overall set of features.
 
-ABIEXTENSION - An ABI extension may be specified by a specific feature 
-or other tuning setting, such as TARGET_FPU.  Any ABI extensions either 
-need to be defined in the architectures base arch file, i.e.  
-ABIEXTENSION = "eabi" in the arm case, or appended to in specific tune 
+ABIEXTENSION - An ABI extension may be specified by a specific feature
+or other tuning setting, such as TARGET_FPU.  Any ABI extensions either
+need to be defined in the architectures base arch file, i.e.
+ABIEXTENSION = "eabi" in the arm case, or appended to in specific tune
 files with a ".=".  Spaces are not allowed in this variable.
 
-TUNE_CCARGS - Setup the cflags based on the TUNE_FEATURES settings.  
-These should be additive when defined using "+=".  All items in this 
-list should be dynamic! i.e. 
+TUNE_CCARGS - Setup the cflags based on the TUNE_FEATURES settings.
+These should be additive when defined using "+=".  All items in this
+list should be dynamic! i.e.
 ${@bb.utils.contains("TUNE_FEATURES", "feature", "cflag", "!cflag", d)}
 
-TUNE_ARCH - The GNU canonical arch for a specific architecture.  i.e. 
-arm, armeb, mips, mips64, etc.  This value is by bitbake to setup 
-configure. TUNE_ARCH definitions are specific to a given architecture.  
-They may be a single static definitions, or may be dynamically adjusted.  
+TUNE_ARCH - The GNU canonical arch for a specific architecture.  i.e.
+arm, armeb, mips, mips64, etc.  This value is by bitbake to setup
+configure. TUNE_ARCH definitions are specific to a given architecture.
+They may be a single static definitions, or may be dynamically adjusted.
 See each architectures README for details for that CPU family.
 
-TUNE_PKGARCH - The package architecture used by the packaging systems to 
-define the architecture, abi and tuning of a particular package.  
-Similarly to TUNE_ARCH, the definition of TUNE_PKGARCH is specific to 
-each architecture. See each architectures README for details for that 
+TUNE_PKGARCH - The package architecture used by the packaging systems to
+define the architecture, abi and tuning of a particular package.
+Similarly to TUNE_ARCH, the definition of TUNE_PKGARCH is specific to
+each architecture. See each architectures README for details for that
 CPU family.
 
-PACKAGE_EXTRA_ARCHS - Lists all runtime compatible package 
-architectures.  By default this is equal to 
-PACKAGE_EXTRA_ARCHS_tune-<tune>.  If an architecture deviates from the 
+PACKAGE_EXTRA_ARCHS - Lists all runtime compatible package
+architectures.  By default this is equal to
+PACKAGE_EXTRA_ARCHS_tune-<tune>.  If an architecture deviates from the
 default it will be listed in the architecture README.
 
-PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures 
-that are compatible with this specific tune.  The package arch of this 
+PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures
+that are compatible with this specific tune.  The package arch of this
 tune must be in the list.
 
-TARGET_FPU - The FPU setting for a given tune, hard (generate floating 
-point instructions), soft (generate internal gcc calls), "other" 
-architecture specific floating point.  This is synchronized with the 
-compiler and other toolchain items.  This should be dynamically 
+TARGET_FPU - The FPU setting for a given tune, hard (generate floating
+point instructions), soft (generate internal gcc calls), "other"
+architecture specific floating point.  This is synchronized with the
+compiler and other toolchain items.  This should be dynamically
 configured in the same way that TUNE_CCARGS is.
 
-BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI.  This is 
-used in a multilib configuration to place the libraries in the correct, 
+BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI.  This is
+used in a multilib configuration to place the libraries in the correct,
 non-conflicting locations.
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 09/15] tune: README: Document best practice
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (7 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 08/15] tune: README: Whitespace cleanup Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 10/15] tune: README: Typographical corrections Darren Hart
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

Describe the expected usage of base architecture tune files and
arch-specific files, specifically the stacking of generations.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@intel.com>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/conf/machine/include/README |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/meta/conf/machine/include/README b/meta/conf/machine/include/README
index 65d0942..6c390ad 100644
--- a/meta/conf/machine/include/README
+++ b/meta/conf/machine/include/README
@@ -1,6 +1,9 @@
 2012/03/30 - Mark Hatle <mark.hatle@windriver.com>
  - Initial Revision
 
+
+Introduction
+============
 The individual CPU, and ABI tunings are contained in this directory.  A
 number of local and global variables are used to control the way the
 tunings are setup and how they work together to specify an optimized
@@ -79,3 +82,19 @@ configured in the same way that TUNE_CCARGS is.
 BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI.  This is
 used in a multilib configuration to place the libraries in the correct,
 non-conflicting locations.
+
+
+Best Practice
+=============
+The tune infrastructure is designed to be hierarchical. When writing a
+new tune file for a "fast-forward" CPU architecture (one that supports
+everything from a previous generation), it is recommended to require the
+previous generation tune file and specify PACKAGE_EXTRA_ARCHS using the
+previous generation's override and appending the new tune. Note that
+only one previous tune file should be included to avoid mutiple includes
+of the base arch which could lead to a broken configuration due to
+multiple prepend and append assignments.
+
+For example, for x86, there is a common x86/arch-x86.inc which is
+included in the base i586 tune file. The core2 tune builds
+on that, and corei7 builds on core2.
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 10/15] tune: README: Typographical corrections
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (8 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 09/15] tune: README: Document best practice Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 11/15] qemux86_64: Use the core2-64 tune Darren Hart
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

No new content, just correcting a few typographical errors.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@intel.com>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/conf/machine/include/README |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/meta/conf/machine/include/README b/meta/conf/machine/include/README
index 6c390ad..d66130a 100644
--- a/meta/conf/machine/include/README
+++ b/meta/conf/machine/include/README
@@ -53,10 +53,10 @@ list should be dynamic! i.e.
 ${@bb.utils.contains("TUNE_FEATURES", "feature", "cflag", "!cflag", d)}
 
 TUNE_ARCH - The GNU canonical arch for a specific architecture.  i.e.
-arm, armeb, mips, mips64, etc.  This value is by bitbake to setup
+arm, armeb, mips, mips64, etc.  This value is used by bitbake to setup
 configure. TUNE_ARCH definitions are specific to a given architecture.
-They may be a single static definitions, or may be dynamically adjusted.
-See each architectures README for details for that CPU family.
+They may be a single static definition, or may be dynamically adjusted.
+See each architecture's README for details for that CPU family.
 
 TUNE_PKGARCH - The package architecture used by the packaging systems to
 define the architecture, abi and tuning of a particular package.
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 11/15] qemux86_64: Use the core2-64 tune
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (9 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 10/15] tune: README: Typographical corrections Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:39 ` [PATCH 12/15] genericx86: Use the core2 tune file Darren Hart
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Darren Hart

As x86_64 has been "demoted" to an ABI definition rather than a concrete
tune file, replace it with core2-64 for the qemux86-64 machine.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
 meta/conf/machine/qemux86-64.conf |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/conf/machine/qemux86-64.conf b/meta/conf/machine/qemux86-64.conf
index c572225..6533e56 100644
--- a/meta/conf/machine/qemux86-64.conf
+++ b/meta/conf/machine/qemux86-64.conf
@@ -8,7 +8,8 @@ PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
 
 require conf/machine/include/qemu.inc
-require conf/machine/include/tune-x86_64.inc
+DEFAULTTUNE ?= "core2-64"
+require conf/machine/include/tune-core2.inc
 
 KERNEL_IMAGETYPE = "bzImage"
 
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 12/15] genericx86: Use the core2 tune file
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (10 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 11/15] qemux86_64: Use the core2-64 tune Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:58   ` Martin Jansa
  2014-01-21 22:39 ` [PATCH 13/15] genericx86-64: Use the core2-64 tune Darren Hart
                   ` (3 subsequent siblings)
  15 siblings, 1 reply; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Darren Hart

Aside from the movbe and specialized instruction scheduling for the lack
of out-of-order scheduling in the older Atom CPUs, the core2 tune covers
these CPUs adequately. Since the current atom tune just uses core2
anyway, go ahead and make this explicit here.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
 meta-yocto-bsp/conf/machine/genericx86.conf |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
index 9d29f62..549fc8e 100644
--- a/meta-yocto-bsp/conf/machine/genericx86.conf
+++ b/meta-yocto-bsp/conf/machine/genericx86.conf
@@ -3,5 +3,6 @@
 
 #@DESCRIPTION: Machine configuration for generic X86 (32-bit) PCs. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
 
-include conf/machine/include/tune-atom.inc
+DEFAULTTUNE ?= "core2-32"
+include conf/machine/include/tune-core2.inc
 include conf/machine/include/genericx86-common.inc
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 13/15] genericx86-64: Use the core2-64 tune
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (11 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 12/15] genericx86: Use the core2 tune file Darren Hart
@ 2014-01-21 22:39 ` Darren Hart
  2014-01-21 22:40 ` [PATCH 14/15] genericx86: Use new x86 tune files Darren Hart
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:39 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Darren Hart

As x86_64 has been "demoted" to an ABI definition rather than a concrete
tune file, replace it with core2-64 for the genericx86-64 machine.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
 meta-yocto-bsp/conf/machine/genericx86-64.conf |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta-yocto-bsp/conf/machine/genericx86-64.conf b/meta-yocto-bsp/conf/machine/genericx86-64.conf
index 56e9bb6..a6154cd 100644
--- a/meta-yocto-bsp/conf/machine/genericx86-64.conf
+++ b/meta-yocto-bsp/conf/machine/genericx86-64.conf
@@ -3,5 +3,6 @@
 
 #@DESCRIPTION: Machine configuration for generic X86_64 (64-bit) PCs and servers. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
 
-include conf/machine/include/tune-x86_64.inc
+DEFAULTTUNE ?= "core2-64"
+include conf/machine/include/tune-core2.inc
 include conf/machine/include/genericx86-common.inc
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 14/15] genericx86: Use new x86 tune files
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (12 preceding siblings ...)
  2014-01-21 22:39 ` [PATCH 13/15] genericx86-64: Use the core2-64 tune Darren Hart
@ 2014-01-21 22:40 ` Darren Hart
  2014-01-21 22:40 ` [PATCH 15/15] generixx86: Use require instead of include Darren Hart
  2014-01-21 23:55 ` [PATCH 00/15] Update x86 tune files Darren Hart
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:40 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Darren Hart

Use the new names for the x86 tunes files (x86 instead of ia32).

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
 .../conf/machine/include/genericx86-common.inc     |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-yocto-bsp/conf/machine/include/genericx86-common.inc b/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
index c5ef358..8b24c18 100644
--- a/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
+++ b/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
@@ -1,4 +1,4 @@
-include conf/machine/include/ia32-base.inc
+include conf/machine/include/x86-base.inc
 MACHINE_FEATURES += "wifi efi pcbios"
 
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 00/15] Update x86 tune files
@ 2014-01-21 22:40 Darren Hart
  2014-01-21 22:39 ` [PATCH 01/15] x86: Replace ia32 with x86 when referring to the generic architecture Darren Hart
                   ` (15 more replies)
  0 siblings, 16 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:40 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Richard Purdie, Darren Hart, Paul Eggleton

All,

The following lays the groundwork for some rethinking of support for x86
platforms. In particular, the meta-intel layer will undergo some major
refactoring once this is merged. We believe it is of value to keep as much
of the tune files available in oe-core as possible, rather than isolating
them all in meta-intel.

This series renames the x86-related tune files, documents best practices,
updates the core2 tune file, adds a corei7 tune file, and updates the dependent
machine configs. This spans oe-core and poky and I feel is best viewed as a
whole. Please forgive the cross-post.

The new corei7 tune file applies to Nehalem and Silvermont (Bay Trail) CPUs
which support up to SSE4.2. This provides an appropriate demarcation line while
maximizing compatibility as well as including optimal support for the current
generation of the embedded CPUs (Bay Trail) by including it in the new tune. AVX
(Sandy Bridge and beyond) is not included as that would not apply to Bay Trail,
although it can easily be added in a corei7-avx tune file as an additional
patch for users who care more about the last few percent of performance over
compatibility and consolidation.

An important note and likely a point of contention: The core2 update changes the
core2 arch to core2-32, making the 32 bit explicit rather than implied in order
to provide a consistent naming scheme going forward with newer tunes where
64 bit would be logical assumption if not explicitly stated. See patch 5/15 for
details on this bit.

Finally, update the machines dependent on these tune files to use the new names.
As we remove x86_64, the 64b x86 machines now build as core2-64 for maximum
compatibility.

For reference, the corei7-64 tune defines:
    TARGET_CC_ARCH=" -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2"

While the corei2-32 tune defines:
    TARGET_CC_ARCH=" -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse"

The following changes since commit 6e7047434fc1570146ebc94254412b99b1c4cab4:

  poky.ent: Fixed broken OE_LISTS_URL. (2014-01-21 21:58:03 +0000)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib dvhart/intel-tune-ng-v3
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=dvhart/intel-tune-ng-v3

Darren Hart (15):
  x86: Replace ia32 with x86 when referring to the generic architecture
  i586: Only add the current tune to PACKAGE_EXTRA_ARCHS
  tune-core2: Replace -mtune=generic with -mtune=core2
  tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHS
  tune: Make 32b or 64b explicit in tune name for core2
  tune-corei7: Add support for cpu-type corei7
  tune: Remove tune-x86_64.inc
  tune: README: Whitespace cleanup
  tune: README: Document best practice
  tune: README: Typographical corrections
  qemux86_64: Use the core2-64 tune
  genericx86: Use the core2 tune file
  genericx86-64: Use the core2-64 tune
  genericx86: Use new x86 tune files
  generixx86: Use require instead of include

 meta-yocto-bsp/conf/machine/genericx86-64.conf     |    5 +-
 meta-yocto-bsp/conf/machine/genericx86.conf        |    5 +-
 .../conf/machine/include/genericx86-common.inc     |    2 +-
 meta/conf/machine/include/README                   |  109 ++++++++++++--------
 meta/conf/machine/include/tune-c3.inc              |    2 +-
 meta/conf/machine/include/tune-core2.inc           |   23 +++--
 meta/conf/machine/include/tune-corei7.inc          |   35 +++++++
 meta/conf/machine/include/tune-i586.inc            |    4 +-
 meta/conf/machine/include/tune-x86_64.inc          |    4 -
 .../include/{ia32-base.inc => x86-base.inc}        |   16 +--
 meta/conf/machine/include/{ia32 => x86}/README     |    6 +-
 .../{ia32/arch-ia32.inc => x86/arch-x86.inc}       |    2 +-
 meta/conf/machine/qemux86-64.conf                  |    3 +-
 13 files changed, 139 insertions(+), 77 deletions(-)
 create mode 100644 meta/conf/machine/include/tune-corei7.inc
 delete mode 100644 meta/conf/machine/include/tune-x86_64.inc
 rename meta/conf/machine/include/{ia32-base.inc => x86-base.inc} (75%)
 rename meta/conf/machine/include/{ia32 => x86}/README (81%)
 rename meta/conf/machine/include/{ia32/arch-ia32.inc => x86/arch-x86.inc} (97%)

-- 
1.7.9.5



^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 15/15] generixx86: Use require instead of include
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (13 preceding siblings ...)
  2014-01-21 22:40 ` [PATCH 14/15] genericx86: Use new x86 tune files Darren Hart
@ 2014-01-21 22:40 ` Darren Hart
  2014-01-21 23:55 ` [PATCH 00/15] Update x86 tune files Darren Hart
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 22:40 UTC (permalink / raw)
  To: openembedded-core, Poky; +Cc: Darren Hart

Use require instead of include to avoid silent errors when the required
tune files change name or are moved. It's going to fail anyway, it might
as well fail with an error message that is immediately helpful.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
 meta-yocto-bsp/conf/machine/genericx86-64.conf |    4 ++--
 meta-yocto-bsp/conf/machine/genericx86.conf    |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/meta-yocto-bsp/conf/machine/genericx86-64.conf b/meta-yocto-bsp/conf/machine/genericx86-64.conf
index a6154cd..f76e35a 100644
--- a/meta-yocto-bsp/conf/machine/genericx86-64.conf
+++ b/meta-yocto-bsp/conf/machine/genericx86-64.conf
@@ -4,5 +4,5 @@
 #@DESCRIPTION: Machine configuration for generic X86_64 (64-bit) PCs and servers. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
 
 DEFAULTTUNE ?= "core2-64"
-include conf/machine/include/tune-core2.inc
-include conf/machine/include/genericx86-common.inc
+require conf/machine/include/tune-core2.inc
+require conf/machine/include/genericx86-common.inc
diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
index 549fc8e..2642cab 100644
--- a/meta-yocto-bsp/conf/machine/genericx86.conf
+++ b/meta-yocto-bsp/conf/machine/genericx86.conf
@@ -4,5 +4,5 @@
 #@DESCRIPTION: Machine configuration for generic X86 (32-bit) PCs. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
 
 DEFAULTTUNE ?= "core2-32"
-include conf/machine/include/tune-core2.inc
-include conf/machine/include/genericx86-common.inc
+require conf/machine/include/tune-core2.inc
+require conf/machine/include/genericx86-common.inc
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 01/15] x86: Replace ia32 with x86 when referring to the generic architecture
  2014-01-21 22:39 ` [PATCH 01/15] x86: Replace ia32 with x86 when referring to the generic architecture Darren Hart
@ 2014-01-21 22:55   ` Martin Jansa
  2014-01-21 23:19     ` Darren Hart
  0 siblings, 1 reply; 22+ messages in thread
From: Martin Jansa @ 2014-01-21 22:55 UTC (permalink / raw)
  To: Darren Hart; +Cc: Richard Purdie, Poky, Paul Eggleton, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 6344 bytes --]

On Tue, Jan 21, 2014 at 02:39:47PM -0800, Darren Hart wrote:
> ia32 implies 32bit, while these files provide descriptions for IA32,
> X86_64, and X32 architectures. The term "x86" fits this used better
> without resorting to using the term "Intel" which isn't quite right as
> it excludes things like the tune-c3 file describing a Via CPU.
> 
> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> Cc: Richard Purdie <richard.purdie@intel.com>
> Cc: Paul Eggleton <paul.eggleton@intel.com>
> Cc: Tom Zanussi <tom.zanussi@intel.com>
> Cc: Nitin Kamble <nitin.a.kamble@intel.com>
> Cc: Mark Hatle <mark.hatle@windriver.com>
> Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
> ---
>  meta/conf/machine/include/tune-c3.inc              |    2 +-
>  meta/conf/machine/include/tune-i586.inc            |    2 +-
>  meta/conf/machine/include/tune-x86_64.inc          |    2 +-
>  .../include/{ia32-base.inc => x86-base.inc}        |   16 ++++++++--------
>  meta/conf/machine/include/{ia32 => x86}/README     |    6 +++---
>  .../{ia32/arch-ia32.inc => x86/arch-x86.inc}       |    2 +-
>  6 files changed, 15 insertions(+), 15 deletions(-)
>  rename meta/conf/machine/include/{ia32-base.inc => x86-base.inc} (75%)
>  rename meta/conf/machine/include/{ia32 => x86}/README (81%)
>  rename meta/conf/machine/include/{ia32/arch-ia32.inc => x86/arch-x86.inc} (97%)
> 
> diff --git a/meta/conf/machine/include/tune-c3.inc b/meta/conf/machine/include/tune-c3.inc
> index 18865b7..fafc28a 100644
> --- a/meta/conf/machine/include/tune-c3.inc
> +++ b/meta/conf/machine/include/tune-c3.inc
> @@ -1,4 +1,4 @@
> -require conf/machine/include/ia32/arch-ia32.inc
> +require conf/machine/include/x86/arch-x86.inc
>  
>  TUNEVALID[c3] = "VIA Cyrix III or VIA C3 specific optimizations"
>  TUNECONFLICTS[c3] = "m64 mx32"
> diff --git a/meta/conf/machine/include/tune-i586.inc b/meta/conf/machine/include/tune-i586.inc
> index 4542b9b..a315b35 100644
> --- a/meta/conf/machine/include/tune-i586.inc
> +++ b/meta/conf/machine/include/tune-i586.inc
> @@ -1,6 +1,6 @@
>  DEFAULTTUNE ?= "i586"
>  
> -require conf/machine/include/ia32/arch-ia32.inc
> +require conf/machine/include/x86/arch-x86.inc
>  
>  # Extra tune features
>  TUNEVALID[i586] = "Enable i586 specific processor optimizations"
> diff --git a/meta/conf/machine/include/tune-x86_64.inc b/meta/conf/machine/include/tune-x86_64.inc
> index 31e06da..ae48124 100644
> --- a/meta/conf/machine/include/tune-x86_64.inc
> +++ b/meta/conf/machine/include/tune-x86_64.inc
> @@ -1,4 +1,4 @@
>  DEFAULTTUNE ?= "x86-64"
>  
> -require conf/machine/include/ia32/arch-ia32.inc
> +require conf/machine/include/x86/arch-x86.inc
>  
> diff --git a/meta/conf/machine/include/ia32-base.inc b/meta/conf/machine/include/x86-base.inc
> similarity index 75%
> rename from meta/conf/machine/include/ia32-base.inc
> rename to meta/conf/machine/include/x86-base.inc
> index e15f927..421bdee 100644
> --- a/meta/conf/machine/include/ia32-base.inc
> +++ b/meta/conf/machine/include/x86-base.inc
> @@ -1,5 +1,5 @@
>  #
> -# base machine settings for ia32-architecture BSPs
> +# Base machine settings for Intel architecture BSPs

does it apply for AMD, Cyrix as well?

>  #
>  
>  #
> @@ -25,28 +25,28 @@ PREFERRED_VERSION_linux-yocto ??= "3.0%"
>  #
>  # XSERVER subcomponents, used to build the XSERVER variable
>  #
> -XSERVER_IA32_BASE = "xserver-xorg \
> +XSERVER_INTEL_BASE = "xserver-xorg \

the same, why not us XSERVER_X86_BASE?

>             xf86-input-mouse \
>             xf86-input-keyboard \
>             xf86-input-evdev \
>             xf86-input-synaptics \
>             "
>  
> -XSERVER_IA32_EXT = " \
> +XSERVER_INTEL_EXT = " \
>             ${@base_contains('DISTRO_FEATURES', 'opengl', 'xserver-xorg-extension-glx', '', d)} \
>             xserver-xorg-module-libint10 \
>             "
>  
> -XSERVER_IA32_I915 = "xf86-video-intel \
> +XSERVER_INTEL_I915 = "xf86-video-intel \
>             ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i915', '', d)} \
>             "
>  
> -XSERVER_IA32_I965 = "xf86-video-intel \
> +XSERVER_INTEL_I965 = "xf86-video-intel \
>             ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i965', '', d)} \
>             "
>  
> -XSERVER_IA32_VESA = "xf86-video-vesa"
> +XSERVER_INTEL_VESA = "xf86-video-vesa"
>  
> -XSERVER_IA32_FBDEV = "xf86-video-fbdev"
> +XSERVER_INTEL_FBDEV = "xf86-video-fbdev"
>  
> -XSERVER_IA32_MODESETTING = "xf86-video-modesetting"
> +XSERVER_INTEL_MODESETTING = "xf86-video-modesetting"
> diff --git a/meta/conf/machine/include/ia32/README b/meta/conf/machine/include/x86/README
> similarity index 81%
> rename from meta/conf/machine/include/ia32/README
> rename to meta/conf/machine/include/x86/README
> index 8f80a5b..d8b6793 100644
> --- a/meta/conf/machine/include/ia32/README
> +++ b/meta/conf/machine/include/x86/README
> @@ -1,12 +1,12 @@
>  2012/03/30 - Mark Hatle <mark.hatle@windriver.com>
>   - Initial version
>  
> -Most of the items for the IA architecture are defined in the single 
> -arch-ia32 file.
> +Most of the items for the Intel architectures are defined in the single 
> +arch-x86 file.
>  
>  Three ABIs are define, m32, mx32 and m64.
>  
> -The following is the list of ia32 specific variables:
> +The following is the list of intel specific variables:
>  
>  X86ARCH32 - This is the 32-bit architecture GNU canonical arch, TUNE_ARCH.
>  
> diff --git a/meta/conf/machine/include/ia32/arch-ia32.inc b/meta/conf/machine/include/x86/arch-x86.inc
> similarity index 97%
> rename from meta/conf/machine/include/ia32/arch-ia32.inc
> rename to meta/conf/machine/include/x86/arch-x86.inc
> index aa83896..298bddc 100644
> --- a/meta/conf/machine/include/ia32/arch-ia32.inc
> +++ b/meta/conf/machine/include/x86/arch-x86.inc
> @@ -1,5 +1,5 @@
>  #
> -# IA32 Architecture definition
> +# X86 Architecture definition (IA32, X86_64, and X32)
>  #
>  
>  DEFAULTTUNE ?= "x86"
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 12/15] genericx86: Use the core2 tune file
  2014-01-21 22:39 ` [PATCH 12/15] genericx86: Use the core2 tune file Darren Hart
@ 2014-01-21 22:58   ` Martin Jansa
  2014-01-21 23:12     ` Darren Hart
  0 siblings, 1 reply; 22+ messages in thread
From: Martin Jansa @ 2014-01-21 22:58 UTC (permalink / raw)
  To: Darren Hart; +Cc: Poky, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1454 bytes --]

On Tue, Jan 21, 2014 at 02:39:58PM -0800, Darren Hart wrote:
> Aside from the movbe and specialized instruction scheduling for the lack
> of out-of-order scheduling in the older Atom CPUs, the core2 tune covers
> these CPUs adequately. Since the current atom tune just uses core2
> anyway, go ahead and make this explicit here.
> 
> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> ---
>  meta-yocto-bsp/conf/machine/genericx86.conf |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
> index 9d29f62..549fc8e 100644
> --- a/meta-yocto-bsp/conf/machine/genericx86.conf
> +++ b/meta-yocto-bsp/conf/machine/genericx86.conf

This isn't for oe-core, is it?

> @@ -3,5 +3,6 @@
>  
>  #@DESCRIPTION: Machine configuration for generic X86 (32-bit) PCs. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
>  
> -include conf/machine/include/tune-atom.inc
> +DEFAULTTUNE ?= "core2-32"
> +include conf/machine/include/tune-core2.inc
>  include conf/machine/include/genericx86-common.inc
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 12/15] genericx86: Use the core2 tune file
  2014-01-21 22:58   ` Martin Jansa
@ 2014-01-21 23:12     ` Darren Hart
  2014-01-21 23:18       ` Martin Jansa
  0 siblings, 1 reply; 22+ messages in thread
From: Darren Hart @ 2014-01-21 23:12 UTC (permalink / raw)
  To: Martin Jansa; +Cc: Poky, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1979 bytes --]

On Tue, 2014-01-21 at 23:58 +0100, Martin Jansa wrote:
> On Tue, Jan 21, 2014 at 02:39:58PM -0800, Darren Hart wrote:
> > Aside from the movbe and specialized instruction scheduling for the lack
> > of out-of-order scheduling in the older Atom CPUs, the core2 tune covers
> > these CPUs adequately. Since the current atom tune just uses core2
> > anyway, go ahead and make this explicit here.
> > 
> > Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> > ---
> >  meta-yocto-bsp/conf/machine/genericx86.conf |    3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
> > index 9d29f62..549fc8e 100644
> > --- a/meta-yocto-bsp/conf/machine/genericx86.conf
> > +++ b/meta-yocto-bsp/conf/machine/genericx86.conf
> 
> This isn't for oe-core, is it?
> 

Nope. I called this out in the cover letter. It spans oe-core and poky,
but I felt they were best viewed as a whole, rather than splitting them
apart and worrying about the order in which they were applied. I
understand the desire to not cross post and generally agree and avoid it
- on rare occasions such as this, it seems the least awful way to go
about it...

> > @@ -3,5 +3,6 @@
> >  
> >  #@DESCRIPTION: Machine configuration for generic X86 (32-bit) PCs. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
> >  
> > -include conf/machine/include/tune-atom.inc
> > +DEFAULTTUNE ?= "core2-32"
> > +include conf/machine/include/tune-core2.inc
> >  include conf/machine/include/genericx86-common.inc
> > -- 
> > 1.7.9.5
> > 
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 484 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 12/15] genericx86: Use the core2 tune file
  2014-01-21 23:12     ` Darren Hart
@ 2014-01-21 23:18       ` Martin Jansa
  0 siblings, 0 replies; 22+ messages in thread
From: Martin Jansa @ 2014-01-21 23:18 UTC (permalink / raw)
  To: Darren Hart; +Cc: Poky, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1519 bytes --]

On Tue, Jan 21, 2014 at 03:12:15PM -0800, Darren Hart wrote:
> On Tue, 2014-01-21 at 23:58 +0100, Martin Jansa wrote:
> > On Tue, Jan 21, 2014 at 02:39:58PM -0800, Darren Hart wrote:
> > > Aside from the movbe and specialized instruction scheduling for the lack
> > > of out-of-order scheduling in the older Atom CPUs, the core2 tune covers
> > > these CPUs adequately. Since the current atom tune just uses core2
> > > anyway, go ahead and make this explicit here.
> > > 
> > > Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> > > ---
> > >  meta-yocto-bsp/conf/machine/genericx86.conf |    3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
> > > index 9d29f62..549fc8e 100644
> > > --- a/meta-yocto-bsp/conf/machine/genericx86.conf
> > > +++ b/meta-yocto-bsp/conf/machine/genericx86.conf
> > 
> > This isn't for oe-core, is it?
> > 
> 
> Nope. I called this out in the cover letter. It spans oe-core and poky,
> but I felt they were best viewed as a whole, rather than splitting them
> apart and worrying about the order in which they were applied. I
> understand the desire to not cross post and generally agree and avoid it
> - on rare occasions such as this, it seems the least awful way to go
> about it...

OK, sorry I see it now, for some reason cover letter arrived to my
maildir last.

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 01/15] x86: Replace ia32 with x86 when referring to the generic architecture
  2014-01-21 22:55   ` Martin Jansa
@ 2014-01-21 23:19     ` Darren Hart
  0 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 23:19 UTC (permalink / raw)
  To: Martin Jansa; +Cc: Richard Purdie, Poky, Paul Eggleton, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 3892 bytes --]

On Tue, 2014-01-21 at 23:55 +0100, Martin Jansa wrote:
> On Tue, Jan 21, 2014 at 02:39:47PM -0800, Darren Hart wrote:
> > ia32 implies 32bit, while these files provide descriptions for IA32,
> > X86_64, and X32 architectures. The term "x86" fits this used better
> > without resorting to using the term "Intel" which isn't quite right as
> > it excludes things like the tune-c3 file describing a Via CPU.
> > 
> > Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> > Cc: Richard Purdie <richard.purdie@intel.com>
> > Cc: Paul Eggleton <paul.eggleton@intel.com>
> > Cc: Tom Zanussi <tom.zanussi@intel.com>
> > Cc: Nitin Kamble <nitin.a.kamble@intel.com>
> > Cc: Mark Hatle <mark.hatle@windriver.com>
> > Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
> > ---
> >  meta/conf/machine/include/tune-c3.inc              |    2 +-
> >  meta/conf/machine/include/tune-i586.inc            |    2 +-
> >  meta/conf/machine/include/tune-x86_64.inc          |    2 +-
> >  .../include/{ia32-base.inc => x86-base.inc}        |   16 ++++++++--------
> >  meta/conf/machine/include/{ia32 => x86}/README     |    6 +++---
> >  .../{ia32/arch-ia32.inc => x86/arch-x86.inc}       |    2 +-
> >  6 files changed, 15 insertions(+), 15 deletions(-)
> >  rename meta/conf/machine/include/{ia32-base.inc => x86-base.inc} (75%)
> >  rename meta/conf/machine/include/{ia32 => x86}/README (81%)
> >  rename meta/conf/machine/include/{ia32/arch-ia32.inc => x86/arch-x86.inc} (97%)
> > 
> > diff --git a/meta/conf/machine/include/tune-c3.inc b/meta/conf/machine/include/tune-c3.inc
> > index 18865b7..fafc28a 100644
> > --- a/meta/conf/machine/include/tune-c3.inc
> > +++ b/meta/conf/machine/include/tune-c3.inc
> > @@ -1,4 +1,4 @@
> > -require conf/machine/include/ia32/arch-ia32.inc
> > +require conf/machine/include/x86/arch-x86.inc
> >  
> >  TUNEVALID[c3] = "VIA Cyrix III or VIA C3 specific optimizations"
> >  TUNECONFLICTS[c3] = "m64 mx32"
> > diff --git a/meta/conf/machine/include/tune-i586.inc b/meta/conf/machine/include/tune-i586.inc
> > index 4542b9b..a315b35 100644
> > --- a/meta/conf/machine/include/tune-i586.inc
> > +++ b/meta/conf/machine/include/tune-i586.inc
> > @@ -1,6 +1,6 @@
> >  DEFAULTTUNE ?= "i586"
> >  
> > -require conf/machine/include/ia32/arch-ia32.inc
> > +require conf/machine/include/x86/arch-x86.inc
> >  
> >  # Extra tune features
> >  TUNEVALID[i586] = "Enable i586 specific processor optimizations"
> > diff --git a/meta/conf/machine/include/tune-x86_64.inc b/meta/conf/machine/include/tune-x86_64.inc
> > index 31e06da..ae48124 100644
> > --- a/meta/conf/machine/include/tune-x86_64.inc
> > +++ b/meta/conf/machine/include/tune-x86_64.inc
> > @@ -1,4 +1,4 @@
> >  DEFAULTTUNE ?= "x86-64"
> >  
> > -require conf/machine/include/ia32/arch-ia32.inc
> > +require conf/machine/include/x86/arch-x86.inc
> >  
> > diff --git a/meta/conf/machine/include/ia32-base.inc b/meta/conf/machine/include/x86-base.inc
> > similarity index 75%
> > rename from meta/conf/machine/include/ia32-base.inc
> > rename to meta/conf/machine/include/x86-base.inc
> > index e15f927..421bdee 100644
> > --- a/meta/conf/machine/include/ia32-base.inc
> > +++ b/meta/conf/machine/include/x86-base.inc
> > @@ -1,5 +1,5 @@
> >  #
> > -# base machine settings for ia32-architecture BSPs
> > +# Base machine settings for Intel architecture BSPs
> 
> does it apply for AMD, Cyrix as well?

Blarg, yes it does. Apologies. I had originally done some of this in
meta-intel and was persuaded it was better to do this in oe-core. I
missed removing some of the intel-isms. Thanks for catching this.

Replacing INTEL with X86 for everything that isn't a specific recipe
name (xf86-video-intel). Thanks Martin.

Will include in the inevitable v2.

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 484 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 00/15] Update x86 tune files
  2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
                   ` (14 preceding siblings ...)
  2014-01-21 22:40 ` [PATCH 15/15] generixx86: Use require instead of include Darren Hart
@ 2014-01-21 23:55 ` Darren Hart
  15 siblings, 0 replies; 22+ messages in thread
From: Darren Hart @ 2014-01-21 23:55 UTC (permalink / raw)
  To: openembedded-core; +Cc: Richard Purdie, Poky, Paul Eggleton

On Tue, 2014-01-21 at 14:40 -0800, Darren Hart wrote:
> All,
> 
> The following lays the groundwork for some rethinking of support for x86
> platforms. In particular, the meta-intel layer will undergo some major
> refactoring once this is merged. We believe it is of value to keep as much
> of the tune files available in oe-core as possible, rather than isolating
> them all in meta-intel.
> 
> This series renames the x86-related tune files, documents best practices,
> updates the core2 tune file, adds a corei7 tune file, and updates the dependent
> machine configs. This spans oe-core and poky and I feel is best viewed as a
> whole. Please forgive the cross-post.
> 
> The new corei7 tune file applies to Nehalem and Silvermont (Bay Trail) CPUs
> which support up to SSE4.2. This provides an appropriate demarcation line while
> maximizing compatibility as well as including optimal support for the current
> generation of the embedded CPUs (Bay Trail) by including it in the new tune. AVX
> (Sandy Bridge and beyond) is not included as that would not apply to Bay Trail,
> although it can easily be added in a corei7-avx tune file as an additional
> patch for users who care more about the last few percent of performance over
> compatibility and consolidation.
> 
> An important note and likely a point of contention: The core2 update changes the
> core2 arch to core2-32, making the 32 bit explicit rather than implied in order
> to provide a consistent naming scheme going forward with newer tunes where
> 64 bit would be logical assumption if not explicitly stated. See patch 5/15 for
> details on this bit.
> 
> Finally, update the machines dependent on these tune files to use the new names.
> As we remove x86_64, the 64b x86 machines now build as core2-64 for maximum
> compatibility.


I missed a couple things I'm getting to now:

* the yocto-bsp substrates
* the inclusion of XSERVER_IA32_* in the genericx86 BSPs
* the eglibc-ld.inc file .... I need some help here, but am 
  updating the core2 references and adding corei7... do we 
  really have to do this for every tune file!?!?
* profile-manual core2 references

Coming in v2

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel




^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2014-01-21 23:55 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-21 22:40 [PATCH 00/15] Update x86 tune files Darren Hart
2014-01-21 22:39 ` [PATCH 01/15] x86: Replace ia32 with x86 when referring to the generic architecture Darren Hart
2014-01-21 22:55   ` Martin Jansa
2014-01-21 23:19     ` Darren Hart
2014-01-21 22:39 ` [PATCH 02/15] i586: Only add the current tune to PACKAGE_EXTRA_ARCHS Darren Hart
2014-01-21 22:39 ` [PATCH 03/15] tune-core2: Replace -mtune=generic with -mtune=core2 Darren Hart
2014-01-21 22:39 ` [PATCH 04/15] tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHS Darren Hart
2014-01-21 22:39 ` [PATCH 05/15] tune: Make 32b or 64b explicit in tune name for core2 Darren Hart
2014-01-21 22:39 ` [PATCH 06/15] tune-corei7: Add support for cpu-type corei7 Darren Hart
2014-01-21 22:39 ` [PATCH 07/15] tune: Remove tune-x86_64.inc Darren Hart
2014-01-21 22:39 ` [PATCH 08/15] tune: README: Whitespace cleanup Darren Hart
2014-01-21 22:39 ` [PATCH 09/15] tune: README: Document best practice Darren Hart
2014-01-21 22:39 ` [PATCH 10/15] tune: README: Typographical corrections Darren Hart
2014-01-21 22:39 ` [PATCH 11/15] qemux86_64: Use the core2-64 tune Darren Hart
2014-01-21 22:39 ` [PATCH 12/15] genericx86: Use the core2 tune file Darren Hart
2014-01-21 22:58   ` Martin Jansa
2014-01-21 23:12     ` Darren Hart
2014-01-21 23:18       ` Martin Jansa
2014-01-21 22:39 ` [PATCH 13/15] genericx86-64: Use the core2-64 tune Darren Hart
2014-01-21 22:40 ` [PATCH 14/15] genericx86: Use new x86 tune files Darren Hart
2014-01-21 22:40 ` [PATCH 15/15] generixx86: Use require instead of include Darren Hart
2014-01-21 23:55 ` [PATCH 00/15] Update x86 tune files Darren Hart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox