All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe][RFC 0/6] ARMv8 Tune reorg
@ 2020-09-09 22:45 Jon Mason
  2020-09-09 22:45 ` [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64 Jon Mason
                   ` (5 more replies)
  0 siblings, 6 replies; 16+ messages in thread
From: Jon Mason @ 2020-09-09 22:45 UTC (permalink / raw)
  To: openembedded-core

There is a large number of Arm Tune files located in
meta/conf/machine/include/, and to support the current and upcoming Arm
cores, more are needed.  Adding more files is simply going to make it
harder to find the relevant ones for an OE/YP developer/user.  Also,
there are problems with stale and erroneous configs (see my previous
series), which will only be exacerbated by having more files.

I am proposing a reorganization of the existing tune files by including
them in the generic family include file.  For example, the
tune-cortexa55.inc would be moved into arch-armv8-2a.inc, and
tune-cortexa57.inc would be moved into arch-armv8a.inc.  This reduces
the number of files from 12 to 2 for ARMv8a, and that is excluding the
13 I am adding in this series that would otherwise be unique files.

To use, simply add
...
DEFAULTTUNE ?= "neoversen1"
require conf/machine/include/arm/arch-armv8-2a.inc
...

Which is arguably what should be done anyway (instead of taking the
default of the tune include file).
See the qemuarm64 patch in the series for a working example.

Of course, by removing the existing tune files, current users are going
to break.  A simple script can be written to use sed (or similar) to
replace the relevant parts for those users that would be affected (at
least for those that are in the layer index and update regularly).

If it is agreed that this is a good idea, I could do something similar
for ARMv7 (its just a bit more painful due to all the permutations).


As far as testing, I have built and run testimage on qemuarm64.  I've
built every QEMU machine in meta, as well as every machine in
meta-arm-bsp (modified to use the new code).  There are no observed
issues.

Thanks,
Jon

---

Jon Mason (6):
  arm64: set BASE_LIB to lib64
  arch-armv8-2a.inc: Add Cortex-A55 tunings
  arch-armv8a.inc: Add existing tunings
  qemuarm64: change tuning
  arch-armv8a.inc: Add tunes for supported ARMv8a cores
  arch-armv8-2a.inc: Add tunes for supported ARMv8.2a cores

 meta/conf/machine/include/arm/arch-arm64.inc  |   3 +-
 .../machine/include/arm/arch-armv8-2a.inc     | 160 ++++++++++++++-
 meta/conf/machine/include/arm/arch-armv8a.inc | 189 +++++++++++++++++-
 meta/conf/machine/include/tune-cortexa32.inc  |  18 --
 meta/conf/machine/include/tune-cortexa35.inc  |  17 --
 meta/conf/machine/include/tune-cortexa53.inc  |  18 --
 meta/conf/machine/include/tune-cortexa55.inc  |  13 --
 .../include/tune-cortexa57-cortexa53.inc      |  15 --
 meta/conf/machine/include/tune-cortexa57.inc  |  17 --
 .../include/tune-cortexa72-cortexa53.inc      |  20 --
 meta/conf/machine/include/tune-cortexa72.inc  |  13 --
 .../include/tune-cortexa73-cortexa53.inc      |  20 --
 meta/conf/machine/include/tune-thunderx.inc   |  19 --
 meta/conf/machine/qemuarm64.conf              |   3 +-
 14 files changed, 336 insertions(+), 189 deletions(-)
 delete mode 100644 meta/conf/machine/include/tune-cortexa32.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa35.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa53.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa55.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa57-cortexa53.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa57.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa72-cortexa53.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa72.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa73-cortexa53.inc
 delete mode 100644 meta/conf/machine/include/tune-thunderx.inc

-- 
2.20.1


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

* [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64
  2020-09-09 22:45 [meta-oe][RFC 0/6] ARMv8 Tune reorg Jon Mason
@ 2020-09-09 22:45 ` Jon Mason
  2020-09-09 22:55   ` [OE-core] " Mark Hatle
  2020-09-09 22:45 ` [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings Jon Mason
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 16+ messages in thread
From: Jon Mason @ 2020-09-09 22:45 UTC (permalink / raw)
  To: openembedded-core

Set BASE_LIB for all arm64 systems to be lib64 by default.  This can be
overridden for those that want something else (see tune-cortexa32.inc).

Signed-off-by: Jon Mason <jon.mason@arm.com>
---
 meta/conf/machine/include/arm/arch-arm64.inc           | 3 +--
 meta/conf/machine/include/arm/arch-armv8-2a.inc        | 2 --
 meta/conf/machine/include/arm/arch-armv8a.inc          | 4 ----
 meta/conf/machine/include/tune-cortexa32.inc           | 1 +
 meta/conf/machine/include/tune-cortexa35.inc           | 2 --
 meta/conf/machine/include/tune-cortexa53.inc           | 2 --
 meta/conf/machine/include/tune-cortexa55.inc           | 1 -
 meta/conf/machine/include/tune-cortexa57-cortexa53.inc | 1 -
 meta/conf/machine/include/tune-cortexa57.inc           | 2 --
 meta/conf/machine/include/tune-cortexa72-cortexa53.inc | 2 --
 meta/conf/machine/include/tune-cortexa72.inc           | 1 -
 meta/conf/machine/include/tune-cortexa73-cortexa53.inc | 2 --
 12 files changed, 2 insertions(+), 21 deletions(-)

diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
index 6d5b22fff081..8c3764186ec4 100644
--- a/meta/conf/machine/include/arm/arch-arm64.inc
+++ b/meta/conf/machine/include/arm/arch-arm64.inc
@@ -1,4 +1,5 @@
 DEFAULTTUNE ?= "aarch64"
+BASE_LIB ?= "lib64"
 
 require conf/machine/include/arm/arch-armv7ve.inc
 
@@ -14,8 +15,6 @@ TUNE_FEATURES_tune-aarch64 = "aarch64"
 TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian"
 TUNE_PKGARCH_64_tune-aarch64 = "aarch64"
 TUNE_PKGARCH_64_tune-aarch64_be = "aarch64_be"
-BASE_LIB_tune-aarch64 = "lib64"
-BASE_LIB_tune-aarch64_be = "lib64"
 
 PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64"
 PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be"
diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
index 1c095256d185..b40ebf176e43 100644
--- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
@@ -15,5 +15,3 @@ TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
 TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
 PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
 PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
-BASE_LIB_tune-armv8-2a                       = "lib64"
-BASE_LIB_tune-armv8-2a-crypto                = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
index f810a1e8fc98..5584005f7009 100644
--- a/meta/conf/machine/include/arm/arch-armv8a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -24,7 +24,3 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crypto"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-crypto armv8a-crc-crypto"
-BASE_LIB_tune-armv8a                       = "lib64"
-BASE_LIB_tune-armv8a-crc                   = "lib64"
-BASE_LIB_tune-armv8a-crypto                = "lib64"
-BASE_LIB_tune-armv8a-crc-crypto            = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
index 0ffb3e068855..78dab8bed6e1 100644
--- a/meta/conf/machine/include/tune-cortexa32.inc
+++ b/meta/conf/machine/include/tune-cortexa32.inc
@@ -14,5 +14,6 @@ TUNE_FEATURES_tune-cortexa32          = "armv8a cortexa32 crc"
 TUNE_FEATURES_tune-cortexa32-crypto   = "${TUNE_FEATURES_tune-cortexa32} crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa32             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
 PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
+# Cortex-A32 is 32bit only
 BASE_LIB_tune-cortexa32               = "lib"
 BASE_LIB_tune-cortexa32-crypto        = "lib"
diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
index 61696da540cc..80825972b612 100644
--- a/meta/conf/machine/include/tune-cortexa35.inc
+++ b/meta/conf/machine/include/tune-cortexa35.inc
@@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa35          = "aarch64 cortexa35 crc"
 TUNE_FEATURES_tune-cortexa35-crypto   = "${TUNE_FEATURES_tune-cortexa35} crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa35             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
 PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
-BASE_LIB_tune-cortexa35               = "lib64"
-BASE_LIB_tune-cortexa35-crypto        = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
index 79ce7c4b1c21..385c2d225777 100644
--- a/meta/conf/machine/include/tune-cortexa53.inc
+++ b/meta/conf/machine/include/tune-cortexa53.inc
@@ -14,5 +14,3 @@ TUNE_FEATURES_tune-cortexa53-crypto   = "${TUNE_FEATURES_tune-cortexa53} crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa53             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
 
-BASE_LIB_tune-cortexa53               = "lib64"
-BASE_LIB_tune-cortexa53-crypto        = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
index 66a5d0c437ee..099b6d72851a 100644
--- a/meta/conf/machine/include/tune-cortexa55.inc
+++ b/meta/conf/machine/include/tune-cortexa55.inc
@@ -10,4 +10,3 @@ AVAILTUNES += "cortexa55"
 ARMPKGARCH_tune-cortexa55             = "cortexa55"
 TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
-BASE_LIB_tune-cortexa55               = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
index 5880bf203231..02691d0deee2 100644
--- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
+++ b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
@@ -12,4 +12,3 @@ AVAILTUNES += "cortexa57-cortexa53"
 ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
 TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
-BASE_LIB_tune-cortexa57-cortexa53 = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa57.inc b/meta/conf/machine/include/tune-cortexa57.inc
index 3206ce75a6b6..868939ca10c7 100644
--- a/meta/conf/machine/include/tune-cortexa57.inc
+++ b/meta/conf/machine/include/tune-cortexa57.inc
@@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa57          = "aarch64 cortexa57 crc"
 TUNE_FEATURES_tune-cortexa57-crypto   = "${TUNE_FEATURES_tune-cortexa57} crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa57             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
 PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
-BASE_LIB_tune-cortexa57               = "lib64"
-BASE_LIB_tune-cortexa57-crypto        = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
index feb1df5c178d..34aaa6cc72a7 100644
--- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
+++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
@@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa72-cortexa53               = "aarch64 crc cortexa72-co
 TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa72-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
-BASE_LIB_tune-cortexa72-cortexa53                    = "lib64"
-BASE_LIB_tune-cortexa72-cortexa53-crypto             = "lib64"
 
diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
index 00f7745a22fd..f0f76cad14db 100644
--- a/meta/conf/machine/include/tune-cortexa72.inc
+++ b/meta/conf/machine/include/tune-cortexa72.inc
@@ -10,4 +10,3 @@ AVAILTUNES += "cortexa72"
 ARMPKGARCH_tune-cortexa72             = "cortexa72"
 TUNE_FEATURES_tune-cortexa72          = "aarch64 cortexa72 crc crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
-BASE_LIB_tune-cortexa72               = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
index 1c221999f408..6da93ffac0b7 100644
--- a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
+++ b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
@@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa73-cortexa53               = "aarch64 crc cortexa73-co
 TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa73-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
-BASE_LIB_tune-cortexa73-cortexa53                    = "lib64"
-BASE_LIB_tune-cortexa73-cortexa53-crypto             = "lib64"
 
-- 
2.20.1


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

* [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings
  2020-09-09 22:45 [meta-oe][RFC 0/6] ARMv8 Tune reorg Jon Mason
  2020-09-09 22:45 ` [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64 Jon Mason
@ 2020-09-09 22:45 ` Jon Mason
  2020-09-09 22:59   ` [OE-core] " Mark Hatle
  2020-09-09 22:45 ` [meta-oe][RFC 3/6] arch-armv8a.inc: Add existing tunings Jon Mason
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 16+ messages in thread
From: Jon Mason @ 2020-09-09 22:45 UTC (permalink / raw)
  To: openembedded-core

Migrate the settings in tune-cortexa55.inc to arch-armv8-2a.inc.  This
will allow for a single file to include all of the tunings of a family
of processors.  This will reduce the proliferation of unique files per
processor currently occuring in conf/machine/include/

Signed-off-by: Jon Mason <jon.mason@arm.com>
---
 .../machine/include/arm/arch-armv8-2a.inc     | 31 ++++++++++++++-----
 meta/conf/machine/include/tune-cortexa55.inc  | 12 -------
 2 files changed, 23 insertions(+), 20 deletions(-)
 delete mode 100644 meta/conf/machine/include/tune-cortexa55.inc

diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
index b40ebf176e43..38564a17d98b 100644
--- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
@@ -1,4 +1,19 @@
-DEFAULTTUNE ?= "armv8-2a"
+#
+# Tune Settings for Cortex-A55
+#
+TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "cortexa55"
+ARMPKGARCH_tune-cortexa55                           = "cortexa55"
+TUNE_FEATURES_tune-cortexa55                        = "aarch64 cortexa55 crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa55                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
+
+#
+# Defaults for ARMv8-a
+#
+DEFAULTTUNE                                        ?= "armv8-2a"
 
 TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a"
 TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}"
@@ -8,10 +23,10 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a
 require conf/machine/include/arm/arch-armv8a.inc
 
 # Little Endian base configs
-AVAILTUNES += "armv8-2a armv8-2a-crypto"
-ARMPKGARCH_tune-armv8-2a                    ?= "armv8-2a"
-ARMPKGARCH_tune-armv8-2a-crypto             ?= "armv8-2a"
-TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
-TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
-PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
-PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
+AVAILTUNES                                         += "armv8-2a armv8-2a-crypto"
+ARMPKGARCH_tune-armv8-2a                           ?= "armv8-2a"
+ARMPKGARCH_tune-armv8-2a-crypto                    ?= "armv8-2a"
+TUNE_FEATURES_tune-armv8-2a                         = "aarch64 armv8-2a"
+TUNE_FEATURES_tune-armv8-2a-crypto                  = "${TUNE_FEATURES_tune-armv8-2a} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8-2a                   = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
+PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto            = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
deleted file mode 100644
index 099b6d72851a..000000000000
--- a/meta/conf/machine/include/tune-cortexa55.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFAULTTUNE ?= "cortexa55"
-
-TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
-TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
-
-require conf/machine/include/arm/arch-armv8-2a.inc
-
-# Little Endian base configs
-AVAILTUNES += "cortexa55"
-ARMPKGARCH_tune-cortexa55             = "cortexa55"
-TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
-- 
2.20.1


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

* [meta-oe][RFC 3/6] arch-armv8a.inc: Add existing tunings
  2020-09-09 22:45 [meta-oe][RFC 0/6] ARMv8 Tune reorg Jon Mason
  2020-09-09 22:45 ` [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64 Jon Mason
  2020-09-09 22:45 ` [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings Jon Mason
@ 2020-09-09 22:45 ` Jon Mason
  2020-09-09 22:45 ` [meta-oe][RFC 4/6] qemuarm64: change tuning Jon Mason
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 16+ messages in thread
From: Jon Mason @ 2020-09-09 22:45 UTC (permalink / raw)
  To: openembedded-core

Migrate the exting tune settings to arch-armv8a.inc.  This will allow
for a single file to include all of the tunings of a family of
processors.  This will reduce the proliferation of unique files per
processor currently occuring in conf/machine/include/

Signed-off-by: Jon Mason <jon.mason@arm.com>
---
 meta/conf/machine/include/arm/arch-armv8a.inc | 142 +++++++++++++++++-
 meta/conf/machine/include/tune-cortexa32.inc  |  19 ---
 meta/conf/machine/include/tune-cortexa35.inc  |  15 --
 meta/conf/machine/include/tune-cortexa53.inc  |  16 --
 .../include/tune-cortexa57-cortexa53.inc      |  14 --
 meta/conf/machine/include/tune-cortexa57.inc  |  15 --
 .../include/tune-cortexa72-cortexa53.inc      |  18 ---
 meta/conf/machine/include/tune-cortexa72.inc  |  12 --
 .../include/tune-cortexa73-cortexa53.inc      |  18 ---
 meta/conf/machine/include/tune-thunderx.inc   |  19 ---
 10 files changed, 140 insertions(+), 148 deletions(-)
 delete mode 100644 meta/conf/machine/include/tune-cortexa32.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa35.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa53.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa57-cortexa53.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa57.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa72-cortexa53.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa72.inc
 delete mode 100644 meta/conf/machine/include/tune-cortexa73-cortexa53.inc
 delete mode 100644 meta/conf/machine/include/tune-thunderx.inc

diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
index 5584005f7009..0d01a8f49f88 100644
--- a/meta/conf/machine/include/arm/arch-armv8a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -1,4 +1,140 @@
-DEFAULTTUNE ?= "armv8a-crc"
+#
+# Tune Settings for Cortex-A32 (32bit only)
+#
+TUNEVALID[cortexa32] = "Enable Cortex-A32 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa32', ' -mcpu=cortex-a32', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                += "cortexa32 cortexa32-crypto"
+ARMPKGARCH_tune-cortexa32                  = "cortexa32"
+ARMPKGARCH_tune-cortexa32-crypto           = "cortexa32"
+TUNE_FEATURES_tune-cortexa32               = "armv8a cortexa32 crc"
+TUNE_FEATURES_tune-cortexa32-crypto        = "${TUNE_FEATURES_tune-cortexa32} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa32         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
+PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
+BASE_LIB_tune-cortexa32                    = "lib"
+BASE_LIB_tune-cortexa32-crypto             = "lib"
+
+#
+# Tune Settings for Cortex-A35
+#
+TUNEVALID[cortexa35] = "Enable Cortex-A35 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa35', ' -mcpu=cortex-a35', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                += "cortexa35 cortexa35-crypto"
+ARMPKGARCH_tune-cortexa35                  = "cortexa35"
+ARMPKGARCH_tune-cortexa35-crypto           = "cortexa35"
+TUNE_FEATURES_tune-cortexa35               = "aarch64 cortexa35 crc"
+TUNE_FEATURES_tune-cortexa35-crypto        = "${TUNE_FEATURES_tune-cortexa35} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa35         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
+PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
+
+#
+# Tune Settings for Cortex-A53
+#
+TUNEVALID[cortexa53] = "Enable Cortex-A53 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa53', ' -mcpu=cortex-a53', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                += "cortexa53 cortexa53-crypto"
+ARMPKGARCH_tune-cortexa53                  = "cortexa53"
+ARMPKGARCH_tune-cortexa53-crypto           = "cortexa53-crypto"
+TUNE_FEATURES_tune-cortexa53               = "aarch64 cortexa53 crc"
+TUNE_FEATURES_tune-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa53} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
+
+#
+# Tune Settings for Cortex-A57
+#
+TUNEVALID[cortexa57] = "Enable Cortex-A57 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa57', ' -mcpu=cortex-a57', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                += "cortexa57 cortexa57-crypto"
+ARMPKGARCH_tune-cortexa57                  = "cortexa57"
+ARMPKGARCH_tune-cortexa57-crypto           = "cortexa57-crypto"
+TUNE_FEATURES_tune-cortexa57               = "aarch64 cortexa57 crc"
+TUNE_FEATURES_tune-cortexa57-crypto        = "${TUNE_FEATURES_tune-cortexa57} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa57         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
+PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
+
+#
+# Tune Settings for Cortex-A72
+#
+TUNEVALID[cortexa72] = "Enable Cortex-A72 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa72', ' -mcpu=cortex-a72', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                += "cortexa72"
+ARMPKGARCH_tune-cortexa72                  = "cortexa72"
+TUNE_FEATURES_tune-cortexa72               = "aarch64 cortexa72 crc crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa72         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
+
+#
+# Tune Settings for ThunderX
+#
+TUNEVALID[thunderx] = "Enable instructions for Cavium ThunderX"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thunderx', ' -mcpu=thunderx', '',d)}"
+
+AVAILTUNES                                += "thunderx thunderx_be"
+ARMPKGARCH_tune-thunderx                  ?= "thunderx"
+ARMPKGARCH_tune-thunderx_be               ?= "thunderx_be"
+TUNE_FEATURES_tune-thunderx                = "${TUNE_FEATURES_tune-aarch64} thunderx"
+TUNE_FEATURES_tune-thunderx_be             = "${TUNE_FEATURES_tune-thunderx} bigendian"
+PACKAGE_EXTRA_ARCHS_tune-thunderx          = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} thunderx"
+PACKAGE_EXTRA_ARCHS_tune-thunderx_be       = "aarch64_be thunderx_be"
+
+#
+# Tune Settings for big.LITTLE Cortex-A57 - Cortex-A53
+#
+TUNEVALID[cortexa57-cortexa53] = "Enable big.LITTLE Cortex-A57.Cortex-A53 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", " -mcpu=cortex-a57.cortex-a53", "", d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", "cortexa57-cortexa53:", "" ,d)}"
+
+# Little Endian base configs
+AVAILTUNES                                += "cortexa57-cortexa53"
+ARMPKGARCH_tune-cortexa57-cortexa53        = "cortexa57-cortexa53"
+TUNE_FEATURES_tune-cortexa57-cortexa53     = "aarch64 crc cortexa57-cortexa53"
+PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
+
+#
+# Tune Settings for big.LITTLE Cortex-A72 - Cortex-A53
+#
+TUNEVALID[cortexa72-cortexa53] = "Enable big.LITTLE Cortex-A72.Cortex-A53 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", " -mcpu=cortex-a72.cortex-a53", "", d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", "cortexa72-cortexa53:", "" ,d)}"
+
+# cortexa72.cortexa53 implies crc support
+AVAILTUNES                                += "cortexa72-cortexa53 cortexa72-cortexa53-crypto"
+ARMPKGARCH_tune-cortexa72-cortexa53        = "cortexa72-cortexa53"
+ARMPKGARCH_tune-cortexa72-cortexa53-crypto = "cortexa72-cortexa53-crypto"
+TUNE_FEATURES_tune-cortexa72-cortexa53     = "aarch64 crc cortexa72-cortexa53"
+TUNE_FEATURES_tune-cortexa72-cortexa53-crypto = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa72-cortexa53"
+PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
+
+#
+# Tune Settings for big.LITTLE Cortex-A73 - Cortex-A53
+#
+TUNEVALID[cortexa73-cortexa53] = "Enable big.LITTLE Cortex-A73.Cortex-A53 specific processor optimizations"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", "cortexa73-cortexa53:", "" ,d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", " -mcpu=cortex-a73.cortex-a53", "", d)}"
+
+# cortexa73.cortexa53 implies crc support
+AVAILTUNES                                += "cortexa73-cortexa53 cortexa73-cortexa53-crypto"
+ARMPKGARCH_tune-cortexa73-cortexa53        = "cortexa73-cortexa53"
+ARMPKGARCH_tune-cortexa73-cortexa53-crypto = "cortexa73-cortexa53-crypto"
+TUNE_FEATURES_tune-cortexa73-cortexa53     = "aarch64 crc cortexa73-cortexa53"
+TUNE_FEATURES_tune-cortexa73-cortexa53-crypto = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa73-cortexa53"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
+
+#
+# Defaults for ARMv8-a
+#
+DEFAULTTUNE                               ?= "armv8a-crc"
 
 TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
 TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"
@@ -8,10 +144,12 @@ TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic"
 TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"
 MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '' ,d)}"
 
+TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
+
 require conf/machine/include/arm/arch-arm64.inc
 
 # Little Endian base configs
-AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
+AVAILTUNES                                += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
 ARMPKGARCH_tune-armv8a                    ?= "armv8a"
 ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"
 ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"
diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
deleted file mode 100644
index 78dab8bed6e1..000000000000
--- a/meta/conf/machine/include/tune-cortexa32.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-DEFAULTTUNE ?= "cortexa32"
-
-
-TUNEVALID[cortexa32] = "Enable Cortex-A32 specific processor optimizations"
-TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa32', ' -mcpu=cortex-a32', '', d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-# Little Endian base configs
-AVAILTUNES += "cortexa32 cortexa32-crypto"
-ARMPKGARCH_tune-cortexa32             = "cortexa32"
-ARMPKGARCH_tune-cortexa32-crypto      = "cortexa32"
-TUNE_FEATURES_tune-cortexa32          = "armv8a cortexa32 crc"
-TUNE_FEATURES_tune-cortexa32-crypto   = "${TUNE_FEATURES_tune-cortexa32} crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa32             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
-PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
-# Cortex-A32 is 32bit only
-BASE_LIB_tune-cortexa32               = "lib"
-BASE_LIB_tune-cortexa32-crypto        = "lib"
diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
deleted file mode 100644
index 80825972b612..000000000000
--- a/meta/conf/machine/include/tune-cortexa35.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DEFAULTTUNE ?= "cortexa35"
-
-TUNEVALID[cortexa35] = "Enable Cortex-A35 specific processor optimizations"
-TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa35', ' -mcpu=cortex-a35', '', d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-# Little Endian base configs
-AVAILTUNES += "cortexa35 cortexa35-crypto"
-ARMPKGARCH_tune-cortexa35             = "cortexa35"
-ARMPKGARCH_tune-cortexa35-crypto      = "cortexa35"
-TUNE_FEATURES_tune-cortexa35          = "aarch64 cortexa35 crc"
-TUNE_FEATURES_tune-cortexa35-crypto   = "${TUNE_FEATURES_tune-cortexa35} crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa35             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
-PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
deleted file mode 100644
index 385c2d225777..000000000000
--- a/meta/conf/machine/include/tune-cortexa53.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-DEFAULTTUNE ?= "cortexa53"
-
-TUNEVALID[cortexa53] = "Enable Cortex-A53 specific processor optimizations"
-TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa53', ' -mcpu=cortex-a53', '', d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-# Little Endian base configs
-AVAILTUNES += "cortexa53 cortexa53-crypto"
-ARMPKGARCH_tune-cortexa53             = "cortexa53"
-ARMPKGARCH_tune-cortexa53-crypto      = "cortexa53-crypto"
-TUNE_FEATURES_tune-cortexa53          = "aarch64 cortexa53 crc"
-TUNE_FEATURES_tune-cortexa53-crypto   = "${TUNE_FEATURES_tune-cortexa53} crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa53             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
-PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
-
diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
deleted file mode 100644
index 02691d0deee2..000000000000
--- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFAULTTUNE ?= "cortexa57-cortexa53"
-
-TUNEVALID[cortexa57-cortexa53] = "Enable big.LITTLE Cortex-A57.Cortex-A53 specific processor optimizations"
-TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", " -mcpu=cortex-a57.cortex-a53", "", d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", "cortexa57-cortexa53:", "" ,d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-# Little Endian base configs
-AVAILTUNES += "cortexa57-cortexa53"
-ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
-TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53"
-PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
diff --git a/meta/conf/machine/include/tune-cortexa57.inc b/meta/conf/machine/include/tune-cortexa57.inc
deleted file mode 100644
index 868939ca10c7..000000000000
--- a/meta/conf/machine/include/tune-cortexa57.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DEFAULTTUNE ?= "cortexa57"
-
-TUNEVALID[cortexa57] = "Enable Cortex-A57 specific processor optimizations"
-TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa57', ' -mcpu=cortex-a57', '', d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-# Little Endian base configs
-AVAILTUNES += "cortexa57 cortexa57-crypto"
-ARMPKGARCH_tune-cortexa57             = "cortexa57"
-ARMPKGARCH_tune-cortexa57-crypto      = "cortexa57-crypto"
-TUNE_FEATURES_tune-cortexa57          = "aarch64 cortexa57 crc"
-TUNE_FEATURES_tune-cortexa57-crypto   = "${TUNE_FEATURES_tune-cortexa57} crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa57             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
-PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
deleted file mode 100644
index 34aaa6cc72a7..000000000000
--- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-DEFAULTTUNE ?= "cortexa72-cortexa53"
-
-TUNEVALID[cortexa72-cortexa53] = "Enable big.LITTLE Cortex-A72.Cortex-A53 specific processor optimizations"
-TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", " -mcpu=cortex-a72.cortex-a53", "", d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", "cortexa72-cortexa53:", "" ,d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-# cortexa72.cortexa53 implies crc support
-AVAILTUNES += "cortexa72-cortexa53 cortexa72-cortexa53-crypto"
-ARMPKGARCH_tune-cortexa72-cortexa53                  = "cortexa72-cortexa53"
-ARMPKGARCH_tune-cortexa72-cortexa53-crypto           = "cortexa72-cortexa53-crypto"
-TUNE_FEATURES_tune-cortexa72-cortexa53               = "aarch64 crc cortexa72-cortexa53"
-TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa72-cortexa53"
-PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
-
diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
deleted file mode 100644
index f0f76cad14db..000000000000
--- a/meta/conf/machine/include/tune-cortexa72.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFAULTTUNE ?= "cortexa72"
-
-TUNEVALID[cortexa72] = "Enable Cortex-A72 specific processor optimizations"
-TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa72', ' -mcpu=cortex-a72', '', d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-# Little Endian base configs
-AVAILTUNES += "cortexa72"
-ARMPKGARCH_tune-cortexa72             = "cortexa72"
-TUNE_FEATURES_tune-cortexa72          = "aarch64 cortexa72 crc crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
deleted file mode 100644
index 6da93ffac0b7..000000000000
--- a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-DEFAULTTUNE ?= "cortexa73-cortexa53"
-
-TUNEVALID[cortexa73-cortexa53] = "Enable big.LITTLE Cortex-A73.Cortex-A53 specific processor optimizations"
-TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", "cortexa73-cortexa53:", "" ,d)}"
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", " -mcpu=cortex-a73.cortex-a53", "", d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-# cortexa73.cortexa53 implies crc support
-AVAILTUNES += "cortexa73-cortexa53 cortexa73-cortexa53-crypto"
-ARMPKGARCH_tune-cortexa73-cortexa53                  = "cortexa73-cortexa53"
-ARMPKGARCH_tune-cortexa73-cortexa53-crypto           = "cortexa73-cortexa53-crypto"
-TUNE_FEATURES_tune-cortexa73-cortexa53               = "aarch64 crc cortexa73-cortexa53"
-TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa73-cortexa53"
-PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
-
diff --git a/meta/conf/machine/include/tune-thunderx.inc b/meta/conf/machine/include/tune-thunderx.inc
deleted file mode 100644
index aa4d0501d400..000000000000
--- a/meta/conf/machine/include/tune-thunderx.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-DEFAULTTUNE ?= "thunderx"
-AVAILTUNES += "thunderx thunderx_be"
-
-TUNEVALID[thunderx] = "Enable instructions for Cavium ThunderX"
-
-TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thunderx', ' -mcpu=thunderx', '',d)}"
-
-require conf/machine/include/arm/arch-armv8a.inc
-
-ARMPKGARCH_tune-thunderx ?= "thunderx"
-ARMPKGARCH_tune-thunderx_be ?= "thunderx_be"
-
-TUNE_FEATURES_tune-thunderx = "${TUNE_FEATURES_tune-aarch64} thunderx"
-TUNE_FEATURES_tune-thunderx_be = "${TUNE_FEATURES_tune-thunderx} bigendian"
-BASE_LIB_tune-thunderx = "lib64"
-BASE_LIB_tune-thunderx_be = "lib64"
-
-PACKAGE_EXTRA_ARCHS_tune-thunderx = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} thunderx"
-PACKAGE_EXTRA_ARCHS_tune-thunderx_be = "aarch64_be thunderx_be"
-- 
2.20.1


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

* [meta-oe][RFC 4/6] qemuarm64: change tuning
  2020-09-09 22:45 [meta-oe][RFC 0/6] ARMv8 Tune reorg Jon Mason
                   ` (2 preceding siblings ...)
  2020-09-09 22:45 ` [meta-oe][RFC 3/6] arch-armv8a.inc: Add existing tunings Jon Mason
@ 2020-09-09 22:45 ` Jon Mason
  2020-09-09 22:45 ` [meta-oe][RFC 5/6] arch-armv8a.inc: Add tunes for supported ARMv8a cores Jon Mason
  2020-09-09 22:45 ` [meta-oe][RFC 6/6] arch-armv8-2a.inc: Add tunes for supported ARMv8.2a cores Jon Mason
  5 siblings, 0 replies; 16+ messages in thread
From: Jon Mason @ 2020-09-09 22:45 UTC (permalink / raw)
  To: openembedded-core

The previous patch caused the tuning file referenced here to be removed.
Use the new one with the new DEFAULTTUNE.

Signed-off-by: Jon Mason <jon.mason@arm.com>
---
 meta/conf/machine/qemuarm64.conf | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
index fdd464d708be..9367f6ccb8d0 100644
--- a/meta/conf/machine/qemuarm64.conf
+++ b/meta/conf/machine/qemuarm64.conf
@@ -2,7 +2,8 @@
 #@NAME: QEMU ARMv8 machine
 #@DESCRIPTION: Machine configuration for running an ARMv8 system on QEMU
 
-require conf/machine/include/tune-cortexa57.inc
+DEFAULTTUNE ?= "cortexa57"
+require conf/machine/include/arm/arch-armv8a.inc
 require conf/machine/include/qemu.inc
 
 KERNEL_IMAGETYPE = "Image"
-- 
2.20.1


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

* [meta-oe][RFC 5/6] arch-armv8a.inc: Add tunes for supported ARMv8a cores
  2020-09-09 22:45 [meta-oe][RFC 0/6] ARMv8 Tune reorg Jon Mason
                   ` (3 preceding siblings ...)
  2020-09-09 22:45 ` [meta-oe][RFC 4/6] qemuarm64: change tuning Jon Mason
@ 2020-09-09 22:45 ` Jon Mason
  2020-09-09 22:45 ` [meta-oe][RFC 6/6] arch-armv8-2a.inc: Add tunes for supported ARMv8.2a cores Jon Mason
  5 siblings, 0 replies; 16+ messages in thread
From: Jon Mason @ 2020-09-09 22:45 UTC (permalink / raw)
  To: openembedded-core

Add tunes for all the ARMv8a cores currently supported in GCC.  This
is: Cortex-A34, Cortex-A73, and Cortex-A73-Cortex-A35.

Signed-off-by: Jon Mason <jon.mason@arm.com>
---
 meta/conf/machine/include/arm/arch-armv8a.inc | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
index 0d01a8f49f88..db22d5ac69f9 100644
--- a/meta/conf/machine/include/arm/arch-armv8a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -15,6 +15,21 @@ PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-
 BASE_LIB_tune-cortexa32                    = "lib"
 BASE_LIB_tune-cortexa32-crypto             = "lib"
 
+#
+# Tune Settings for Cortex-A34
+#
+TUNEVALID[cortexa34] = "Enable Cortex-A34 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa34', ' -mcpu=cortex-a34', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                += "cortexa34 cortexa34-crypto"
+ARMPKGARCH_tune-cortexa34                  = "cortexa34"
+ARMPKGARCH_tune-cortexa34-crypto           = "cortexa34"
+TUNE_FEATURES_tune-cortexa34               = "aarch64 cortexa34 crc"
+TUNE_FEATURES_tune-cortexa34-crypto        = "${TUNE_FEATURES_tune-cortexa34} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa34         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa34"
+PACKAGE_EXTRA_ARCHS_tune-cortexa34-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa34 cortexa34-crypto"
+
 #
 # Tune Settings for Cortex-A35
 #
@@ -72,6 +87,18 @@ ARMPKGARCH_tune-cortexa72                  = "cortexa72"
 TUNE_FEATURES_tune-cortexa72               = "aarch64 cortexa72 crc crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa72         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
 
+#
+# Tune Settings for Cortex-A73
+#
+TUNEVALID[cortexa73] = "Enable Cortex-A73 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa73', ' -mcpu=cortex-a73', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                += "cortexa73"
+ARMPKGARCH_tune-cortexa73                  = "cortexa73"
+TUNE_FEATURES_tune-cortexa73               = "aarch64 cortexa73 crc crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73"
+
 #
 # Tune Settings for ThunderX
 #
@@ -115,6 +142,22 @@ TUNE_FEATURES_tune-cortexa72-cortexa53-crypto = "${TUNE_FEATURES_tune-cortexa72-
 PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa72-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
 
+#
+# Tune Settings for big.LITTLE Cortex-A73 - Cortex-A35
+#
+TUNEVALID[cortexa73-cortexa35] = "Enable big.LITTLE Cortex-A73.Cortex-A35 specific processor optimizations"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa35", "cortexa73-cortexa35:", "" ,d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa35", " -mcpu=cortex-a73.cortex-a35", "", d)}"
+
+# cortexa73.cortexa35 implies crc support
+AVAILTUNES                                += "cortexa73-cortexa35 cortexa73-cortexa35-crypto"
+ARMPKGARCH_tune-cortexa73-cortexa35        = "cortexa73-cortexa35"
+ARMPKGARCH_tune-cortexa73-cortexa35-crypto = "cortexa73-cortexa35-crypto"
+TUNE_FEATURES_tune-cortexa73-cortexa35     = "aarch64 crc cortexa73-cortexa35"
+TUNE_FEATURES_tune-cortexa73-cortexa35-crypto = "${TUNE_FEATURES_tune-cortexa73-cortexa35} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa35  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa73-cortexa35"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa35-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa35 cortexa73-cortexa35-crypto"
+
 #
 # Tune Settings for big.LITTLE Cortex-A73 - Cortex-A53
 #
-- 
2.20.1


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

* [meta-oe][RFC 6/6] arch-armv8-2a.inc: Add tunes for supported ARMv8.2a cores
  2020-09-09 22:45 [meta-oe][RFC 0/6] ARMv8 Tune reorg Jon Mason
                   ` (4 preceding siblings ...)
  2020-09-09 22:45 ` [meta-oe][RFC 5/6] arch-armv8a.inc: Add tunes for supported ARMv8a cores Jon Mason
@ 2020-09-09 22:45 ` Jon Mason
  5 siblings, 0 replies; 16+ messages in thread
From: Jon Mason @ 2020-09-09 22:45 UTC (permalink / raw)
  To: openembedded-core

Add tunes for all the ARMv8.2a cores currently supported in GCC.  This
is: Cortex-A65, Cortex-A65AE, Cortex-A75, Cortex-A76, Cortex-A76AE,
Cortex-A77, Neoverse-E1, Neoverse-N1, Cortex-A75-Cortex-A55, and
Cortex-A76-Cortex-A55.

Signed-off-by: Jon Mason <jon.mason@arm.com>
---
 .../machine/include/arm/arch-armv8-2a.inc     | 127 ++++++++++++++++++
 1 file changed, 127 insertions(+)

diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
index 38564a17d98b..6e46b9104813 100644
--- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
@@ -10,6 +10,133 @@ ARMPKGARCH_tune-cortexa55                           = "cortexa55"
 TUNE_FEATURES_tune-cortexa55                        = "aarch64 cortexa55 crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa55                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
 
+#
+# Tune Settings for Cortex-A65
+#
+TUNEVALID[cortexa65] = "Enable Cortex-A65 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa65', ' -mcpu=cortex-a65', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "cortexa65"
+ARMPKGARCH_tune-cortexa65                           = "cortexa65"
+TUNE_FEATURES_tune-cortexa65                        = "aarch64 cortexa65 crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa65                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa65"
+
+#
+# Tune Settings for Cortex-A65AE
+#
+TUNEVALID[cortexa65ae] = "Enable Cortex-A65AE specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa65ae', ' -mcpu=cortex-a65ae', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "cortexa65ae"
+ARMPKGARCH_tune-cortexa65ae                         = "cortexa65ae"
+TUNE_FEATURES_tune-cortexa65ae                      = "aarch64 cortexa65ae crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa65ae                = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa65ae"
+
+#
+# Tune Settings for Cortex-A75
+#
+TUNEVALID[cortexa75] = "Enable Cortex-A75 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa75', ' -mcpu=cortex-a75', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "cortexa75"
+ARMPKGARCH_tune-cortexa75                           = "cortexa75"
+TUNE_FEATURES_tune-cortexa75                        = "aarch64 cortexa75 crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa75                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa75"
+
+#
+# Tune Settings for Cortex-A76
+#
+TUNEVALID[cortexa76] = "Enable Cortex-A76 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa76', ' -mcpu=cortex-a76', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "cortexa76"
+ARMPKGARCH_tune-cortexa76                           = "cortexa76"
+TUNE_FEATURES_tune-cortexa76                        = "aarch64 cortexa76 crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa76                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa76"
+
+#
+# Tune Settings for Cortex-A76AE
+#
+TUNEVALID[cortexa76ae] = "Enable Cortex-A76AE specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa76ae', ' -mcpu=cortex-a76ae', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "cortexa76ae"
+ARMPKGARCH_tune-cortexa76ae                         = "cortexa76ae"
+TUNE_FEATURES_tune-cortexa76ae                      = "aarch64 cortexa76ae crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa76ae                = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa76ae"
+
+#
+# Tune Settings for Cortex-A77
+#
+TUNEVALID[cortexa77] = "Enable Cortex-A77 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa77', ' -mcpu=cortex-a77', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "cortexa77"
+ARMPKGARCH_tune-cortexa77                           = "cortexa77"
+TUNE_FEATURES_tune-cortexa77                        = "aarch64 cortexa77 crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa77                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa77"
+
+#
+# Tune Settings for Neoverse-E1
+#
+TUNEVALID[neoversee1] = "Enable Neoverse-E1 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversee1', ' -mcpu=neoverse-e1', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "neoversee1"
+ARMPKGARCH_tune-neoversee1                          = "neoversee1"
+TUNE_FEATURES_tune-neoversee1                       = "aarch64 neoversee1 crypto"
+PACKAGE_EXTRA_ARCHS_tune-neoversee1                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} neoversee1"
+
+#
+# Tune Settings for Neoverse-N1
+#
+TUNEVALID[neoversen1] = "Enable Neoverse-N1 specific processor optimizations"
+# Note: Neoverse was called Ares, and GCC will accept "ares" in place of "neoverse-n1"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversen1', ' -mcpu=neoverse-n1', '', d)}"
+
+# Little Endian base configs
+AVAILTUNES                                         += "neoversen1"
+ARMPKGARCH_tune-neoversen1                          = "neoversen1"
+TUNE_FEATURES_tune-neoversen1                       = "aarch64 neoversen1 crypto"
+PACKAGE_EXTRA_ARCHS_tune-neoversen1                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} neoversen1"
+
+#
+# Tune Settings for big.LITTLE Cortex-A75 - Cortex-A55
+#
+TUNEVALID[cortexa75-cortexa55] = "Enable big.LITTLE Cortex-A75.Cortex-A55 specific processor optimizations"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa75-cortexa55", "cortexa75-cortexa55:", "" ,d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa75-cortexa55", " -mcpu=cortex-a75.cortex-a55", "", d)}"
+
+AVAILTUNES                                         += "cortexa75-cortexa55 cortexa75-cortexa55-crypto"
+ARMPKGARCH_tune-cortexa75-cortexa55                 = "cortexa75-cortexa55"
+ARMPKGARCH_tune-cortexa75-cortexa55-crypto          = "cortexa75-cortexa55-crypto"
+TUNE_FEATURES_tune-cortexa75-cortexa55              = "aarch64 cortexa75-cortexa55"
+TUNE_FEATURES_tune-cortexa75-cortexa55-crypto       = "${TUNE_FEATURES_tune-cortexa75-cortexa55} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa75-cortexa55        = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} cortexa75-cortexa55"
+PACKAGE_EXTRA_ARCHS_tune-cortexa75-cortexa55-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa75-cortexa55 cortexa75-cortexa55-crypto"
+
+#
+# Tune Settings for big.LITTLE Cortex-A76 - Cortex-A55
+#
+TUNEVALID[cortexa76-cortexa55] = "Enable big.LITTLE Cortex-A76.Cortex-A55 specific processor optimizations"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa76-cortexa55", "cortexa76-cortexa55:", "" ,d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa76-cortexa55", " -mcpu=cortex-a76.cortex-a55", "", d)}"
+
+AVAILTUNES                                         += "cortexa76-cortexa55 cortexa76-cortexa55-crypto"
+ARMPKGARCH_tune-cortexa76-cortexa55                 = "cortexa76-cortexa55"
+ARMPKGARCH_tune-cortexa76-cortexa55-crypto          = "cortexa76-cortexa55-crypto"
+TUNE_FEATURES_tune-cortexa76-cortexa55              = "aarch64 cortexa76-cortexa55"
+TUNE_FEATURES_tune-cortexa76-cortexa55-crypto       = "${TUNE_FEATURES_tune-cortexa76-cortexa55} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa76-cortexa55        = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} cortexa76-cortexa55"
+PACKAGE_EXTRA_ARCHS_tune-cortexa76-cortexa55-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa76-cortexa55 cortexa76-cortexa55-crypto"
+
 #
 # Defaults for ARMv8-a
 #
-- 
2.20.1


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

* Re: [OE-core] [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64
  2020-09-09 22:45 ` [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64 Jon Mason
@ 2020-09-09 22:55   ` Mark Hatle
  2020-09-09 23:29     ` Jon Mason
  0 siblings, 1 reply; 16+ messages in thread
From: Mark Hatle @ 2020-09-09 22:55 UTC (permalink / raw)
  To: Jon Mason, openembedded-core



On 9/9/20 5:45 PM, Jon Mason wrote:
> Set BASE_LIB for all arm64 systems to be lib64 by default.  This can be
> overridden for those that want something else (see tune-cortexa32.inc).
> 
> Signed-off-by: Jon Mason <jon.mason@arm.com>
> ---
>  meta/conf/machine/include/arm/arch-arm64.inc           | 3 +--
>  meta/conf/machine/include/arm/arch-armv8-2a.inc        | 2 --
>  meta/conf/machine/include/arm/arch-armv8a.inc          | 4 ----
>  meta/conf/machine/include/tune-cortexa32.inc           | 1 +
>  meta/conf/machine/include/tune-cortexa35.inc           | 2 --
>  meta/conf/machine/include/tune-cortexa53.inc           | 2 --
>  meta/conf/machine/include/tune-cortexa55.inc           | 1 -
>  meta/conf/machine/include/tune-cortexa57-cortexa53.inc | 1 -
>  meta/conf/machine/include/tune-cortexa57.inc           | 2 --
>  meta/conf/machine/include/tune-cortexa72-cortexa53.inc | 2 --
>  meta/conf/machine/include/tune-cortexa72.inc           | 1 -
>  meta/conf/machine/include/tune-cortexa73-cortexa53.inc | 2 --
>  12 files changed, 2 insertions(+), 21 deletions(-)
> 
> diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
> index 6d5b22fff081..8c3764186ec4 100644
> --- a/meta/conf/machine/include/arm/arch-arm64.inc
> +++ b/meta/conf/machine/include/arm/arch-arm64.inc
> @@ -1,4 +1,5 @@
>  DEFAULTTUNE ?= "aarch64"
> +BASE_LIB ?= "lib64"

Does this work?  The default multilib behavior is:

multilib.conf:baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE')
or 'INVALID')) or d.getVar('BASELIB')}"

bitbake.conf:baselib = "${BASELIB}"
bitbake.conf:BASELIB = "lib"
bitbake.conf:BASELIB_powerpc64 = "lib64"
bitbake.conf:BASELIB_powerpc64le = "lib64"

is what has been defined in the bitbake.conf file.

Idea being in the 'normal' (not-multilib) case, 'baselib' (which what is used)
gets set to 'BASELIB'.  Only PowerPC 64 has a hard coded 'lib64'.  Every other
architecture is considered to be variable, unless defined in the tune.  (The two
PowerPC settings really should be in a PPC tune file.)

So IF the multilib.conf is enabled, it's going to look for BASE_LIB_tune-....
and then BASELIB, but it won't look at 'BASE_LIB'.

>  require conf/machine/include/arm/arch-armv7ve.inc
>  
> @@ -14,8 +15,6 @@ TUNE_FEATURES_tune-aarch64 = "aarch64"
>  TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian"
>  TUNE_PKGARCH_64_tune-aarch64 = "aarch64"
>  TUNE_PKGARCH_64_tune-aarch64_be = "aarch64_be"
> -BASE_LIB_tune-aarch64 = "lib64"
> -BASE_LIB_tune-aarch64_be = "lib64"

This was originally done like this to enable multilib, as BASE_LIB needs to be
configured per multilib.  (I don't know if it's really necessary any longer.)

Note the other 32/64 bit architecture are still implemented like this.

There was also talk at the time of different lib dirs for little and big endian,
but I never saw that actually happen.

We also wanted a way to build optimized libraries, like some distributions, that
are optimized for specific tunings and place those into non-conflicting
directories.  But again, AFAIK nobody actually did it and I' not sure it
actually works.

And for the record BASE_LIB is documented in the tune README as:

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.

>  PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64"
>  PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be"
> diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> index 1c095256d185..b40ebf176e43 100644
> --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
> +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> @@ -15,5 +15,3 @@ TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
>  TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
>  PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
>  PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
> -BASE_LIB_tune-armv8-2a                       = "lib64"
> -BASE_LIB_tune-armv8-2a-crypto                = "lib64"
> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> index f810a1e8fc98..5584005f7009 100644
> --- a/meta/conf/machine/include/arm/arch-armv8a.inc
> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> @@ -24,7 +24,3 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a"
>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc"
>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crypto"
>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-crypto armv8a-crc-crypto"
> -BASE_LIB_tune-armv8a                       = "lib64"
> -BASE_LIB_tune-armv8a-crc                   = "lib64"
> -BASE_LIB_tune-armv8a-crypto                = "lib64"
> -BASE_LIB_tune-armv8a-crc-crypto            = "lib64"
> diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
> index 0ffb3e068855..78dab8bed6e1 100644
> --- a/meta/conf/machine/include/tune-cortexa32.inc
> +++ b/meta/conf/machine/include/tune-cortexa32.inc
> @@ -14,5 +14,6 @@ TUNE_FEATURES_tune-cortexa32          = "armv8a cortexa32 crc"
>  TUNE_FEATURES_tune-cortexa32-crypto   = "${TUNE_FEATURES_tune-cortexa32} crypto"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa32             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
> +# Cortex-A32 is 32bit only
>  BASE_LIB_tune-cortexa32               = "lib"
>  BASE_LIB_tune-cortexa32-crypto        = "lib"
> diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
> index 61696da540cc..80825972b612 100644
> --- a/meta/conf/machine/include/tune-cortexa35.inc
> +++ b/meta/conf/machine/include/tune-cortexa35.inc
> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa35          = "aarch64 cortexa35 crc"
>  TUNE_FEATURES_tune-cortexa35-crypto   = "${TUNE_FEATURES_tune-cortexa35} crypto"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa35             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
> -BASE_LIB_tune-cortexa35               = "lib64"
> -BASE_LIB_tune-cortexa35-crypto        = "lib64"
> diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
> index 79ce7c4b1c21..385c2d225777 100644
> --- a/meta/conf/machine/include/tune-cortexa53.inc
> +++ b/meta/conf/machine/include/tune-cortexa53.inc
> @@ -14,5 +14,3 @@ TUNE_FEATURES_tune-cortexa53-crypto   = "${TUNE_FEATURES_tune-cortexa53} crypto"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa53             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
>  
> -BASE_LIB_tune-cortexa53               = "lib64"
> -BASE_LIB_tune-cortexa53-crypto        = "lib64"
> diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
> index 66a5d0c437ee..099b6d72851a 100644
> --- a/meta/conf/machine/include/tune-cortexa55.inc
> +++ b/meta/conf/machine/include/tune-cortexa55.inc
> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa55"
>  ARMPKGARCH_tune-cortexa55             = "cortexa55"
>  TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
> -BASE_LIB_tune-cortexa55               = "lib64"
> diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> index 5880bf203231..02691d0deee2 100644
> --- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> +++ b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> @@ -12,4 +12,3 @@ AVAILTUNES += "cortexa57-cortexa53"
>  ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
>  TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
> -BASE_LIB_tune-cortexa57-cortexa53 = "lib64"
> diff --git a/meta/conf/machine/include/tune-cortexa57.inc b/meta/conf/machine/include/tune-cortexa57.inc
> index 3206ce75a6b6..868939ca10c7 100644
> --- a/meta/conf/machine/include/tune-cortexa57.inc
> +++ b/meta/conf/machine/include/tune-cortexa57.inc
> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa57          = "aarch64 cortexa57 crc"
>  TUNE_FEATURES_tune-cortexa57-crypto   = "${TUNE_FEATURES_tune-cortexa57} crypto"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa57             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
> -BASE_LIB_tune-cortexa57               = "lib64"
> -BASE_LIB_tune-cortexa57-crypto        = "lib64"
> diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> index feb1df5c178d..34aaa6cc72a7 100644
> --- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> +++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa72-cortexa53               = "aarch64 crc cortexa72-co
>  TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa72-cortexa53"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
> -BASE_LIB_tune-cortexa72-cortexa53                    = "lib64"
> -BASE_LIB_tune-cortexa72-cortexa53-crypto             = "lib64"
>  
> diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
> index 00f7745a22fd..f0f76cad14db 100644
> --- a/meta/conf/machine/include/tune-cortexa72.inc
> +++ b/meta/conf/machine/include/tune-cortexa72.inc
> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa72"
>  ARMPKGARCH_tune-cortexa72             = "cortexa72"
>  TUNE_FEATURES_tune-cortexa72          = "aarch64 cortexa72 crc crypto"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
> -BASE_LIB_tune-cortexa72               = "lib64"
> diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> index 1c221999f408..6da93ffac0b7 100644
> --- a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> +++ b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa73-cortexa53               = "aarch64 crc cortexa73-co
>  TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa73-cortexa53"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
> -BASE_LIB_tune-cortexa73-cortexa53                    = "lib64"
> -BASE_LIB_tune-cortexa73-cortexa53-crypto             = "lib64"
>  
> 
> 
> 
> 

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

* Re: [OE-core] [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings
  2020-09-09 22:45 ` [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings Jon Mason
@ 2020-09-09 22:59   ` Mark Hatle
  2020-09-09 23:21     ` Jon Mason
  0 siblings, 1 reply; 16+ messages in thread
From: Mark Hatle @ 2020-09-09 22:59 UTC (permalink / raw)
  To: Jon Mason, openembedded-core

I like the direction of this work, but one comment.. (down below)

On 9/9/20 5:45 PM, Jon Mason wrote:
> Migrate the settings in tune-cortexa55.inc to arch-armv8-2a.inc.  This
> will allow for a single file to include all of the tunings of a family
> of processors.  This will reduce the proliferation of unique files per
> processor currently occuring in conf/machine/include/
> 
> Signed-off-by: Jon Mason <jon.mason@arm.com>
> ---
>  .../machine/include/arm/arch-armv8-2a.inc     | 31 ++++++++++++++-----
>  meta/conf/machine/include/tune-cortexa55.inc  | 12 -------
>  2 files changed, 23 insertions(+), 20 deletions(-)
>  delete mode 100644 meta/conf/machine/include/tune-cortexa55.inc
> 
> diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> index b40ebf176e43..38564a17d98b 100644
> --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
> +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> @@ -1,4 +1,19 @@
> -DEFAULTTUNE ?= "armv8-2a"
> +#
> +# Tune Settings for Cortex-A55
> +#
> +TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
> +
> +# Little Endian base configs
> +AVAILTUNES                                         += "cortexa55"
> +ARMPKGARCH_tune-cortexa55                           = "cortexa55"
> +TUNE_FEATURES_tune-cortexa55                        = "aarch64 cortexa55 crypto"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa55                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
> +
> +#
> +# Defaults for ARMv8-a
> +#
> +DEFAULTTUNE                                        ?= "armv8-2a"
>  
>  TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a"
>  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}"
> @@ -8,10 +23,10 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a
>  require conf/machine/include/arm/arch-armv8a.inc
>  
>  # Little Endian base configs
> -AVAILTUNES += "armv8-2a armv8-2a-crypto"
> -ARMPKGARCH_tune-armv8-2a                    ?= "armv8-2a"
> -ARMPKGARCH_tune-armv8-2a-crypto             ?= "armv8-2a"
> -TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
> -TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
> -PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
> -PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
> +AVAILTUNES                                         += "armv8-2a armv8-2a-crypto"
> +ARMPKGARCH_tune-armv8-2a                           ?= "armv8-2a"
> +ARMPKGARCH_tune-armv8-2a-crypto                    ?= "armv8-2a"
> +TUNE_FEATURES_tune-armv8-2a                         = "aarch64 armv8-2a"
> +TUNE_FEATURES_tune-armv8-2a-crypto                  = "${TUNE_FEATURES_tune-armv8-2a} crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-2a                   = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto            = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"

It may make sense, instead of deleting it, to have just the 'require
conf/machine/include/arm/arch-armv8-2a.inc' file for transition.  (If a
transition period is NOT required or desired, then this isn't necessary!)

Tricky part is how to notify someone they're in the midst of the transition
period, and using the deprecated behavior.

(In past work, I've had a class that looked for a variable to exist, if it did
it printed the contents as warning messages to the console after parsing.  I'd
love to see something like this as standard behavior for future cases like this.)

> diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
> deleted file mode 100644
> index 099b6d72851a..000000000000
> --- a/meta/conf/machine/include/tune-cortexa55.inc
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -DEFAULTTUNE ?= "cortexa55"
> -
> -TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
> -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
> -
> -require conf/machine/include/arm/arch-armv8-2a.inc
> -
> -# Little Endian base configs
> -AVAILTUNES += "cortexa55"
> -ARMPKGARCH_tune-cortexa55             = "cortexa55"
> -TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
> -PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
> 
> 
> 
> 

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

* Re: [OE-core] [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings
  2020-09-09 22:59   ` [OE-core] " Mark Hatle
@ 2020-09-09 23:21     ` Jon Mason
  2020-09-10  4:48       ` Mark Hatle
  2020-09-10  9:38       ` Richard Purdie
  0 siblings, 2 replies; 16+ messages in thread
From: Jon Mason @ 2020-09-09 23:21 UTC (permalink / raw)
  To: Mark Hatle; +Cc: Patches and discussions about the oe-core layer

On Wed, Sep 9, 2020 at 6:59 PM Mark Hatle
<mark.hatle@kernel.crashing.org> wrote:
>
> I like the direction of this work, but one comment.. (down below)
>
> On 9/9/20 5:45 PM, Jon Mason wrote:
> > Migrate the settings in tune-cortexa55.inc to arch-armv8-2a.inc.  This
> > will allow for a single file to include all of the tunings of a family
> > of processors.  This will reduce the proliferation of unique files per
> > processor currently occuring in conf/machine/include/
> >
> > Signed-off-by: Jon Mason <jon.mason@arm.com>
> > ---
> >  .../machine/include/arm/arch-armv8-2a.inc     | 31 ++++++++++++++-----
> >  meta/conf/machine/include/tune-cortexa55.inc  | 12 -------
> >  2 files changed, 23 insertions(+), 20 deletions(-)
> >  delete mode 100644 meta/conf/machine/include/tune-cortexa55.inc
> >
> > diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > index b40ebf176e43..38564a17d98b 100644
> > --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > @@ -1,4 +1,19 @@
> > -DEFAULTTUNE ?= "armv8-2a"
> > +#
> > +# Tune Settings for Cortex-A55
> > +#
> > +TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
> > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
> > +
> > +# Little Endian base configs
> > +AVAILTUNES                                         += "cortexa55"
> > +ARMPKGARCH_tune-cortexa55                           = "cortexa55"
> > +TUNE_FEATURES_tune-cortexa55                        = "aarch64 cortexa55 crypto"
> > +PACKAGE_EXTRA_ARCHS_tune-cortexa55                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
> > +
> > +#
> > +# Defaults for ARMv8-a
> > +#
> > +DEFAULTTUNE                                        ?= "armv8-2a"
> >
> >  TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a"
> >  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}"
> > @@ -8,10 +23,10 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a
> >  require conf/machine/include/arm/arch-armv8a.inc
> >
> >  # Little Endian base configs
> > -AVAILTUNES += "armv8-2a armv8-2a-crypto"
> > -ARMPKGARCH_tune-armv8-2a                    ?= "armv8-2a"
> > -ARMPKGARCH_tune-armv8-2a-crypto             ?= "armv8-2a"
> > -TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
> > -TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
> > -PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
> > -PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
> > +AVAILTUNES                                         += "armv8-2a armv8-2a-crypto"
> > +ARMPKGARCH_tune-armv8-2a                           ?= "armv8-2a"
> > +ARMPKGARCH_tune-armv8-2a-crypto                    ?= "armv8-2a"
> > +TUNE_FEATURES_tune-armv8-2a                         = "aarch64 armv8-2a"
> > +TUNE_FEATURES_tune-armv8-2a-crypto                  = "${TUNE_FEATURES_tune-armv8-2a} crypto"
> > +PACKAGE_EXTRA_ARCHS_tune-armv8-2a                   = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
> > +PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto            = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
>
> It may make sense, instead of deleting it, to have just the 'require
> conf/machine/include/arm/arch-armv8-2a.inc' file for transition.  (If a
> transition period is NOT required or desired, then this isn't necessary!)
>
> Tricky part is how to notify someone they're in the midst of the transition
> period, and using the deprecated behavior.
>
> (In past work, I've had a class that looked for a variable to exist, if it did
> it printed the contents as warning messages to the console after parsing.  I'd
> love to see something like this as standard behavior for future cases like this.)

Fantastic idea.  I hate the idea of breaking backward compat.  Any
newly added tunes would not need this, so no extra files for my new
13.

Question 1.  How can we do this warning?  Is there something I can
steal from as a basis?
Question 2.  How long do we keep this compat around?

Thanks,
Jon

>
> > diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
> > deleted file mode 100644
> > index 099b6d72851a..000000000000
> > --- a/meta/conf/machine/include/tune-cortexa55.inc
> > +++ /dev/null
> > @@ -1,12 +0,0 @@
> > -DEFAULTTUNE ?= "cortexa55"
> > -
> > -TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
> > -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
> > -
> > -require conf/machine/include/arm/arch-armv8-2a.inc
> > -
> > -# Little Endian base configs
> > -AVAILTUNES += "cortexa55"
> > -ARMPKGARCH_tune-cortexa55             = "cortexa55"
> > -TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
> > -PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
> >
> >
> > 
> >

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

* Re: [OE-core] [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64
  2020-09-09 22:55   ` [OE-core] " Mark Hatle
@ 2020-09-09 23:29     ` Jon Mason
  2020-09-10  4:57       ` Mark Hatle
  0 siblings, 1 reply; 16+ messages in thread
From: Jon Mason @ 2020-09-09 23:29 UTC (permalink / raw)
  To: Mark Hatle; +Cc: Patches and discussions about the oe-core layer

On Wed, Sep 9, 2020 at 6:55 PM Mark Hatle
<mark.hatle@kernel.crashing.org> wrote:
>
>
>
> On 9/9/20 5:45 PM, Jon Mason wrote:
> > Set BASE_LIB for all arm64 systems to be lib64 by default.  This can be
> > overridden for those that want something else (see tune-cortexa32.inc).
> >
> > Signed-off-by: Jon Mason <jon.mason@arm.com>
> > ---
> >  meta/conf/machine/include/arm/arch-arm64.inc           | 3 +--
> >  meta/conf/machine/include/arm/arch-armv8-2a.inc        | 2 --
> >  meta/conf/machine/include/arm/arch-armv8a.inc          | 4 ----
> >  meta/conf/machine/include/tune-cortexa32.inc           | 1 +
> >  meta/conf/machine/include/tune-cortexa35.inc           | 2 --
> >  meta/conf/machine/include/tune-cortexa53.inc           | 2 --
> >  meta/conf/machine/include/tune-cortexa55.inc           | 1 -
> >  meta/conf/machine/include/tune-cortexa57-cortexa53.inc | 1 -
> >  meta/conf/machine/include/tune-cortexa57.inc           | 2 --
> >  meta/conf/machine/include/tune-cortexa72-cortexa53.inc | 2 --
> >  meta/conf/machine/include/tune-cortexa72.inc           | 1 -
> >  meta/conf/machine/include/tune-cortexa73-cortexa53.inc | 2 --
> >  12 files changed, 2 insertions(+), 21 deletions(-)
> >
> > diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
> > index 6d5b22fff081..8c3764186ec4 100644
> > --- a/meta/conf/machine/include/arm/arch-arm64.inc
> > +++ b/meta/conf/machine/include/arm/arch-arm64.inc
> > @@ -1,4 +1,5 @@
> >  DEFAULTTUNE ?= "aarch64"
> > +BASE_LIB ?= "lib64"
>
> Does this work?  The default multilib behavior is:
>
> multilib.conf:baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE')
> or 'INVALID')) or d.getVar('BASELIB')}"
>
> bitbake.conf:baselib = "${BASELIB}"
> bitbake.conf:BASELIB = "lib"
> bitbake.conf:BASELIB_powerpc64 = "lib64"
> bitbake.conf:BASELIB_powerpc64le = "lib64"
>
> is what has been defined in the bitbake.conf file.
>
> Idea being in the 'normal' (not-multilib) case, 'baselib' (which what is used)
> gets set to 'BASELIB'.  Only PowerPC 64 has a hard coded 'lib64'.  Every other
> architecture is considered to be variable, unless defined in the tune.  (The two
> PowerPC settings really should be in a PPC tune file.)
>
> So IF the multilib.conf is enabled, it's going to look for BASE_LIB_tune-....
> and then BASELIB, but it won't look at 'BASE_LIB'.

It depends on what "work" is defined as :)
I did build, boot, and run testimage on it (with issue).  But I'm
probably not hitting the multilib issue you are describing.  Honestly,
I don't understand it and needed to spend more time than I did (based
on your comments).  I like the removal of lines to simplify it, but I
need to do some more reading on it.  I'll drop this patch and come
back to the underlying problem at some point in the future.

Thanks,
Jon

> >  require conf/machine/include/arm/arch-armv7ve.inc
> >
> > @@ -14,8 +15,6 @@ TUNE_FEATURES_tune-aarch64 = "aarch64"
> >  TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian"
> >  TUNE_PKGARCH_64_tune-aarch64 = "aarch64"
> >  TUNE_PKGARCH_64_tune-aarch64_be = "aarch64_be"
> > -BASE_LIB_tune-aarch64 = "lib64"
> > -BASE_LIB_tune-aarch64_be = "lib64"
>
> This was originally done like this to enable multilib, as BASE_LIB needs to be
> configured per multilib.  (I don't know if it's really necessary any longer.)
>
> Note the other 32/64 bit architecture are still implemented like this.
>
> There was also talk at the time of different lib dirs for little and big endian,
> but I never saw that actually happen.
>
> We also wanted a way to build optimized libraries, like some distributions, that
> are optimized for specific tunings and place those into non-conflicting
> directories.  But again, AFAIK nobody actually did it and I' not sure it
> actually works.
>
> And for the record BASE_LIB is documented in the tune README as:
>
> 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.
>
> >  PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64"
> >  PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be"
> > diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > index 1c095256d185..b40ebf176e43 100644
> > --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > @@ -15,5 +15,3 @@ TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
> >  TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
> >  PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
> > -BASE_LIB_tune-armv8-2a                       = "lib64"
> > -BASE_LIB_tune-armv8-2a-crypto                = "lib64"
> > diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> > index f810a1e8fc98..5584005f7009 100644
> > --- a/meta/conf/machine/include/arm/arch-armv8a.inc
> > +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> > @@ -24,7 +24,3 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a"
> >  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc"
> >  PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-crypto armv8a-crc-crypto"
> > -BASE_LIB_tune-armv8a                       = "lib64"
> > -BASE_LIB_tune-armv8a-crc                   = "lib64"
> > -BASE_LIB_tune-armv8a-crypto                = "lib64"
> > -BASE_LIB_tune-armv8a-crc-crypto            = "lib64"
> > diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
> > index 0ffb3e068855..78dab8bed6e1 100644
> > --- a/meta/conf/machine/include/tune-cortexa32.inc
> > +++ b/meta/conf/machine/include/tune-cortexa32.inc
> > @@ -14,5 +14,6 @@ TUNE_FEATURES_tune-cortexa32          = "armv8a cortexa32 crc"
> >  TUNE_FEATURES_tune-cortexa32-crypto   = "${TUNE_FEATURES_tune-cortexa32} crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa32             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
> > +# Cortex-A32 is 32bit only
> >  BASE_LIB_tune-cortexa32               = "lib"
> >  BASE_LIB_tune-cortexa32-crypto        = "lib"
> > diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
> > index 61696da540cc..80825972b612 100644
> > --- a/meta/conf/machine/include/tune-cortexa35.inc
> > +++ b/meta/conf/machine/include/tune-cortexa35.inc
> > @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa35          = "aarch64 cortexa35 crc"
> >  TUNE_FEATURES_tune-cortexa35-crypto   = "${TUNE_FEATURES_tune-cortexa35} crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa35             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
> > -BASE_LIB_tune-cortexa35               = "lib64"
> > -BASE_LIB_tune-cortexa35-crypto        = "lib64"
> > diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
> > index 79ce7c4b1c21..385c2d225777 100644
> > --- a/meta/conf/machine/include/tune-cortexa53.inc
> > +++ b/meta/conf/machine/include/tune-cortexa53.inc
> > @@ -14,5 +14,3 @@ TUNE_FEATURES_tune-cortexa53-crypto   = "${TUNE_FEATURES_tune-cortexa53} crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa53             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
> >
> > -BASE_LIB_tune-cortexa53               = "lib64"
> > -BASE_LIB_tune-cortexa53-crypto        = "lib64"
> > diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
> > index 66a5d0c437ee..099b6d72851a 100644
> > --- a/meta/conf/machine/include/tune-cortexa55.inc
> > +++ b/meta/conf/machine/include/tune-cortexa55.inc
> > @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa55"
> >  ARMPKGARCH_tune-cortexa55             = "cortexa55"
> >  TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
> > -BASE_LIB_tune-cortexa55               = "lib64"
> > diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> > index 5880bf203231..02691d0deee2 100644
> > --- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> > +++ b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> > @@ -12,4 +12,3 @@ AVAILTUNES += "cortexa57-cortexa53"
> >  ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
> >  TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
> > -BASE_LIB_tune-cortexa57-cortexa53 = "lib64"
> > diff --git a/meta/conf/machine/include/tune-cortexa57.inc b/meta/conf/machine/include/tune-cortexa57.inc
> > index 3206ce75a6b6..868939ca10c7 100644
> > --- a/meta/conf/machine/include/tune-cortexa57.inc
> > +++ b/meta/conf/machine/include/tune-cortexa57.inc
> > @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa57          = "aarch64 cortexa57 crc"
> >  TUNE_FEATURES_tune-cortexa57-crypto   = "${TUNE_FEATURES_tune-cortexa57} crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa57             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
> > -BASE_LIB_tune-cortexa57               = "lib64"
> > -BASE_LIB_tune-cortexa57-crypto        = "lib64"
> > diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> > index feb1df5c178d..34aaa6cc72a7 100644
> > --- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> > +++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> > @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa72-cortexa53               = "aarch64 crc cortexa72-co
> >  TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa72-cortexa53"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
> > -BASE_LIB_tune-cortexa72-cortexa53                    = "lib64"
> > -BASE_LIB_tune-cortexa72-cortexa53-crypto             = "lib64"
> >
> > diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
> > index 00f7745a22fd..f0f76cad14db 100644
> > --- a/meta/conf/machine/include/tune-cortexa72.inc
> > +++ b/meta/conf/machine/include/tune-cortexa72.inc
> > @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa72"
> >  ARMPKGARCH_tune-cortexa72             = "cortexa72"
> >  TUNE_FEATURES_tune-cortexa72          = "aarch64 cortexa72 crc crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
> > -BASE_LIB_tune-cortexa72               = "lib64"
> > diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> > index 1c221999f408..6da93ffac0b7 100644
> > --- a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> > +++ b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> > @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa73-cortexa53               = "aarch64 crc cortexa73-co
> >  TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa73-cortexa53"
> >  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
> > -BASE_LIB_tune-cortexa73-cortexa53                    = "lib64"
> > -BASE_LIB_tune-cortexa73-cortexa53-crypto             = "lib64"
> >
> >
> >
> > 
> >

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

* Re: [OE-core] [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings
  2020-09-09 23:21     ` Jon Mason
@ 2020-09-10  4:48       ` Mark Hatle
  2020-09-10  9:38       ` Richard Purdie
  1 sibling, 0 replies; 16+ messages in thread
From: Mark Hatle @ 2020-09-10  4:48 UTC (permalink / raw)
  To: Jon Mason; +Cc: Patches and discussions about the oe-core layer



On 9/9/20 6:21 PM, Jon Mason wrote:
> On Wed, Sep 9, 2020 at 6:59 PM Mark Hatle
> <mark.hatle@kernel.crashing.org> wrote:
>>
>> I like the direction of this work, but one comment.. (down below)
>>
>> On 9/9/20 5:45 PM, Jon Mason wrote:
>>> Migrate the settings in tune-cortexa55.inc to arch-armv8-2a.inc.  This
>>> will allow for a single file to include all of the tunings of a family
>>> of processors.  This will reduce the proliferation of unique files per
>>> processor currently occuring in conf/machine/include/
>>>
>>> Signed-off-by: Jon Mason <jon.mason@arm.com>
>>> ---
>>>  .../machine/include/arm/arch-armv8-2a.inc     | 31 ++++++++++++++-----
>>>  meta/conf/machine/include/tune-cortexa55.inc  | 12 -------
>>>  2 files changed, 23 insertions(+), 20 deletions(-)
>>>  delete mode 100644 meta/conf/machine/include/tune-cortexa55.inc
>>>
>>> diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>> index b40ebf176e43..38564a17d98b 100644
>>> --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>> +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>> @@ -1,4 +1,19 @@
>>> -DEFAULTTUNE ?= "armv8-2a"
>>> +#
>>> +# Tune Settings for Cortex-A55
>>> +#
>>> +TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
>>> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
>>> +
>>> +# Little Endian base configs
>>> +AVAILTUNES                                         += "cortexa55"
>>> +ARMPKGARCH_tune-cortexa55                           = "cortexa55"
>>> +TUNE_FEATURES_tune-cortexa55                        = "aarch64 cortexa55 crypto"
>>> +PACKAGE_EXTRA_ARCHS_tune-cortexa55                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
>>> +
>>> +#
>>> +# Defaults for ARMv8-a
>>> +#
>>> +DEFAULTTUNE                                        ?= "armv8-2a"
>>>
>>>  TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a"
>>>  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}"
>>> @@ -8,10 +23,10 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a
>>>  require conf/machine/include/arm/arch-armv8a.inc
>>>
>>>  # Little Endian base configs
>>> -AVAILTUNES += "armv8-2a armv8-2a-crypto"
>>> -ARMPKGARCH_tune-armv8-2a                    ?= "armv8-2a"
>>> -ARMPKGARCH_tune-armv8-2a-crypto             ?= "armv8-2a"
>>> -TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
>>> -TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
>>> -PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
>>> -PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
>>> +AVAILTUNES                                         += "armv8-2a armv8-2a-crypto"
>>> +ARMPKGARCH_tune-armv8-2a                           ?= "armv8-2a"
>>> +ARMPKGARCH_tune-armv8-2a-crypto                    ?= "armv8-2a"
>>> +TUNE_FEATURES_tune-armv8-2a                         = "aarch64 armv8-2a"
>>> +TUNE_FEATURES_tune-armv8-2a-crypto                  = "${TUNE_FEATURES_tune-armv8-2a} crypto"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8-2a                   = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto            = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
>>
>> It may make sense, instead of deleting it, to have just the 'require
>> conf/machine/include/arm/arch-armv8-2a.inc' file for transition.  (If a
>> transition period is NOT required or desired, then this isn't necessary!)
>>
>> Tricky part is how to notify someone they're in the midst of the transition
>> period, and using the deprecated behavior.
>>
>> (In past work, I've had a class that looked for a variable to exist, if it did
>> it printed the contents as warning messages to the console after parsing.  I'd
>> love to see something like this as standard behavior for future cases like this.)
> 
> Fantastic idea.  I hate the idea of breaking backward compat.  Any
> newly added tunes would not need this, so no extra files for my new
> 13.
> 
> Question 1.  How can we do this warning?  Is there something I can
> steal from as a basis?

https://github.com/WindRiver-Labs/wr-template/blob/WRLINUX_10_19_BASE/classes/wrlbanner.bbclass

I would love to see this type of thing become standard for OE.

The way it works, an event is added after ParseStarted and BuildStarted.

Three special variables are consulted: CONFIG_BANNER, FATAL_CONFIG_BANNER and
BANNER.  The system will iterate over the 'flags', ignoring doc, vardeps and
vardepsexp.

Remember ParseStarted only runs if a parse is required!  So these items won't be
displayed after the initial parse.  BuildStarted runs each time.

(Note this class does a few other things which would not be necessary in the
general case.  Really it's just a way to collect configuration or other
information to display early, and allow config files to 'halt' the build when
the config is obviously broken in some way.)

But the idea is that any config file, layer, etc could add a CONFIG_BANNER[name]
or BANNER[name]

So you could do:

CONFIG_BANNER[tune-cortexa55] = "The machine is including the tune-cortexa55.inc
file, this file has been deprecated and should be replaced by arch-armv8-2a.inc"

> Question 2.  How long do we keep this compat around?

1 to 2 releases, I'd say no more then that.  (A LOT of people only upgrade every
other release -- thus the 2 releases might be a better guide.)

--Mark

> Thanks,
> Jon
> 
>>
>>> diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
>>> deleted file mode 100644
>>> index 099b6d72851a..000000000000
>>> --- a/meta/conf/machine/include/tune-cortexa55.inc
>>> +++ /dev/null
>>> @@ -1,12 +0,0 @@
>>> -DEFAULTTUNE ?= "cortexa55"
>>> -
>>> -TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
>>> -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
>>> -
>>> -require conf/machine/include/arm/arch-armv8-2a.inc
>>> -
>>> -# Little Endian base configs
>>> -AVAILTUNES += "cortexa55"
>>> -ARMPKGARCH_tune-cortexa55             = "cortexa55"
>>> -TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
>>> -PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
>>>
>>>
>>> 
>>>

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

* Re: [OE-core] [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64
  2020-09-09 23:29     ` Jon Mason
@ 2020-09-10  4:57       ` Mark Hatle
  2020-09-10 15:11         ` Jon Mason
  0 siblings, 1 reply; 16+ messages in thread
From: Mark Hatle @ 2020-09-10  4:57 UTC (permalink / raw)
  To: Jon Mason; +Cc: Patches and discussions about the oe-core layer



On 9/9/20 6:29 PM, Jon Mason wrote:
> On Wed, Sep 9, 2020 at 6:55 PM Mark Hatle
> <mark.hatle@kernel.crashing.org> wrote:
>>
>>
>>
>> On 9/9/20 5:45 PM, Jon Mason wrote:
>>> Set BASE_LIB for all arm64 systems to be lib64 by default.  This can be
>>> overridden for those that want something else (see tune-cortexa32.inc).
>>>
>>> Signed-off-by: Jon Mason <jon.mason@arm.com>
>>> ---
>>>  meta/conf/machine/include/arm/arch-arm64.inc           | 3 +--
>>>  meta/conf/machine/include/arm/arch-armv8-2a.inc        | 2 --
>>>  meta/conf/machine/include/arm/arch-armv8a.inc          | 4 ----
>>>  meta/conf/machine/include/tune-cortexa32.inc           | 1 +
>>>  meta/conf/machine/include/tune-cortexa35.inc           | 2 --
>>>  meta/conf/machine/include/tune-cortexa53.inc           | 2 --
>>>  meta/conf/machine/include/tune-cortexa55.inc           | 1 -
>>>  meta/conf/machine/include/tune-cortexa57-cortexa53.inc | 1 -
>>>  meta/conf/machine/include/tune-cortexa57.inc           | 2 --
>>>  meta/conf/machine/include/tune-cortexa72-cortexa53.inc | 2 --
>>>  meta/conf/machine/include/tune-cortexa72.inc           | 1 -
>>>  meta/conf/machine/include/tune-cortexa73-cortexa53.inc | 2 --
>>>  12 files changed, 2 insertions(+), 21 deletions(-)
>>>
>>> diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
>>> index 6d5b22fff081..8c3764186ec4 100644
>>> --- a/meta/conf/machine/include/arm/arch-arm64.inc
>>> +++ b/meta/conf/machine/include/arm/arch-arm64.inc
>>> @@ -1,4 +1,5 @@
>>>  DEFAULTTUNE ?= "aarch64"
>>> +BASE_LIB ?= "lib64"
>>
>> Does this work?  The default multilib behavior is:
>>
>> multilib.conf:baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE')
>> or 'INVALID')) or d.getVar('BASELIB')}"
>>
>> bitbake.conf:baselib = "${BASELIB}"
>> bitbake.conf:BASELIB = "lib"
>> bitbake.conf:BASELIB_powerpc64 = "lib64"
>> bitbake.conf:BASELIB_powerpc64le = "lib64"
>>
>> is what has been defined in the bitbake.conf file.
>>
>> Idea being in the 'normal' (not-multilib) case, 'baselib' (which what is used)
>> gets set to 'BASELIB'.  Only PowerPC 64 has a hard coded 'lib64'.  Every other
>> architecture is considered to be variable, unless defined in the tune.  (The two
>> PowerPC settings really should be in a PPC tune file.)
>>
>> So IF the multilib.conf is enabled, it's going to look for BASE_LIB_tune-....
>> and then BASELIB, but it won't look at 'BASE_LIB'.
> 
> It depends on what "work" is defined as :)
> I did build, boot, and run testimage on it (with issue).  But I'm
> probably not hitting the multilib issue you are describing.  Honestly,
> I don't understand it and needed to spend more time than I did (based
> on your comments).  I like the removal of lines to simplify it, but I
> need to do some more reading on it.  I'll drop this patch and come
> back to the underlying problem at some point in the future.

(This is from memory, so it may not be right)

In your local.conf:

MULTILIBS = "multilib:lib32"
require conf/multilib.conf

DEFAULTTUNE_virtclass-multilib-lib32 = "armv7vethf"
MACHINE = "qemuarm64"

Then add something like "lib32-glibc" as a dependency to your image.

--Mark

> Thanks,
> Jon
> 
>>>  require conf/machine/include/arm/arch-armv7ve.inc
>>>
>>> @@ -14,8 +15,6 @@ TUNE_FEATURES_tune-aarch64 = "aarch64"
>>>  TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian"
>>>  TUNE_PKGARCH_64_tune-aarch64 = "aarch64"
>>>  TUNE_PKGARCH_64_tune-aarch64_be = "aarch64_be"
>>> -BASE_LIB_tune-aarch64 = "lib64"
>>> -BASE_LIB_tune-aarch64_be = "lib64"
>>
>> This was originally done like this to enable multilib, as BASE_LIB needs to be
>> configured per multilib.  (I don't know if it's really necessary any longer.)
>>
>> Note the other 32/64 bit architecture are still implemented like this.
>>
>> There was also talk at the time of different lib dirs for little and big endian,
>> but I never saw that actually happen.
>>
>> We also wanted a way to build optimized libraries, like some distributions, that
>> are optimized for specific tunings and place those into non-conflicting
>> directories.  But again, AFAIK nobody actually did it and I' not sure it
>> actually works.
>>
>> And for the record BASE_LIB is documented in the tune README as:
>>
>> 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.
>>
>>>  PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64"
>>>  PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be"
>>> diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>> index 1c095256d185..b40ebf176e43 100644
>>> --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>> +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>> @@ -15,5 +15,3 @@ TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
>>>  TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
>>>  PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
>>> -BASE_LIB_tune-armv8-2a                       = "lib64"
>>> -BASE_LIB_tune-armv8-2a-crypto                = "lib64"
>>> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
>>> index f810a1e8fc98..5584005f7009 100644
>>> --- a/meta/conf/machine/include/arm/arch-armv8a.inc
>>> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
>>> @@ -24,7 +24,3 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a"
>>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc"
>>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-crypto armv8a-crc-crypto"
>>> -BASE_LIB_tune-armv8a                       = "lib64"
>>> -BASE_LIB_tune-armv8a-crc                   = "lib64"
>>> -BASE_LIB_tune-armv8a-crypto                = "lib64"
>>> -BASE_LIB_tune-armv8a-crc-crypto            = "lib64"
>>> diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
>>> index 0ffb3e068855..78dab8bed6e1 100644
>>> --- a/meta/conf/machine/include/tune-cortexa32.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa32.inc
>>> @@ -14,5 +14,6 @@ TUNE_FEATURES_tune-cortexa32          = "armv8a cortexa32 crc"
>>>  TUNE_FEATURES_tune-cortexa32-crypto   = "${TUNE_FEATURES_tune-cortexa32} crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa32             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
>>> +# Cortex-A32 is 32bit only
>>>  BASE_LIB_tune-cortexa32               = "lib"
>>>  BASE_LIB_tune-cortexa32-crypto        = "lib"
>>> diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
>>> index 61696da540cc..80825972b612 100644
>>> --- a/meta/conf/machine/include/tune-cortexa35.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa35.inc
>>> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa35          = "aarch64 cortexa35 crc"
>>>  TUNE_FEATURES_tune-cortexa35-crypto   = "${TUNE_FEATURES_tune-cortexa35} crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa35             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
>>> -BASE_LIB_tune-cortexa35               = "lib64"
>>> -BASE_LIB_tune-cortexa35-crypto        = "lib64"
>>> diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
>>> index 79ce7c4b1c21..385c2d225777 100644
>>> --- a/meta/conf/machine/include/tune-cortexa53.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa53.inc
>>> @@ -14,5 +14,3 @@ TUNE_FEATURES_tune-cortexa53-crypto   = "${TUNE_FEATURES_tune-cortexa53} crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa53             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
>>>
>>> -BASE_LIB_tune-cortexa53               = "lib64"
>>> -BASE_LIB_tune-cortexa53-crypto        = "lib64"
>>> diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
>>> index 66a5d0c437ee..099b6d72851a 100644
>>> --- a/meta/conf/machine/include/tune-cortexa55.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa55.inc
>>> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa55"
>>>  ARMPKGARCH_tune-cortexa55             = "cortexa55"
>>>  TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
>>> -BASE_LIB_tune-cortexa55               = "lib64"
>>> diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
>>> index 5880bf203231..02691d0deee2 100644
>>> --- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
>>> @@ -12,4 +12,3 @@ AVAILTUNES += "cortexa57-cortexa53"
>>>  ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
>>>  TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
>>> -BASE_LIB_tune-cortexa57-cortexa53 = "lib64"
>>> diff --git a/meta/conf/machine/include/tune-cortexa57.inc b/meta/conf/machine/include/tune-cortexa57.inc
>>> index 3206ce75a6b6..868939ca10c7 100644
>>> --- a/meta/conf/machine/include/tune-cortexa57.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa57.inc
>>> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa57          = "aarch64 cortexa57 crc"
>>>  TUNE_FEATURES_tune-cortexa57-crypto   = "${TUNE_FEATURES_tune-cortexa57} crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
>>> -BASE_LIB_tune-cortexa57               = "lib64"
>>> -BASE_LIB_tune-cortexa57-crypto        = "lib64"
>>> diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
>>> index feb1df5c178d..34aaa6cc72a7 100644
>>> --- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
>>> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa72-cortexa53               = "aarch64 crc cortexa72-co
>>>  TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa72-cortexa53"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
>>> -BASE_LIB_tune-cortexa72-cortexa53                    = "lib64"
>>> -BASE_LIB_tune-cortexa72-cortexa53-crypto             = "lib64"
>>>
>>> diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
>>> index 00f7745a22fd..f0f76cad14db 100644
>>> --- a/meta/conf/machine/include/tune-cortexa72.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa72.inc
>>> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa72"
>>>  ARMPKGARCH_tune-cortexa72             = "cortexa72"
>>>  TUNE_FEATURES_tune-cortexa72          = "aarch64 cortexa72 crc crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
>>> -BASE_LIB_tune-cortexa72               = "lib64"
>>> diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
>>> index 1c221999f408..6da93ffac0b7 100644
>>> --- a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
>>> +++ b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
>>> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa73-cortexa53               = "aarch64 crc cortexa73-co
>>>  TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa73-cortexa53"
>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
>>> -BASE_LIB_tune-cortexa73-cortexa53                    = "lib64"
>>> -BASE_LIB_tune-cortexa73-cortexa53-crypto             = "lib64"
>>>
>>>
>>>
>>> 
>>>

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

* Re: [OE-core] [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings
  2020-09-09 23:21     ` Jon Mason
  2020-09-10  4:48       ` Mark Hatle
@ 2020-09-10  9:38       ` Richard Purdie
  1 sibling, 0 replies; 16+ messages in thread
From: Richard Purdie @ 2020-09-10  9:38 UTC (permalink / raw)
  To: Jon Mason, Mark Hatle; +Cc: Patches and discussions about the oe-core layer

On Wed, 2020-09-09 at 19:21 -0400, Jon Mason wrote:
> On Wed, Sep 9, 2020 at 6:59 PM Mark Hatle
> <mark.hatle@kernel.crashing.org> wrote:
> > I like the direction of this work, but one comment.. (down below)
> > 
> > On 9/9/20 5:45 PM, Jon Mason wrote:
> > > Migrate the settings in tune-cortexa55.inc to arch-armv8-
> > > 2a.inc.  This
> > > will allow for a single file to include all of the tunings of a
> > > family
> > > of processors.  This will reduce the proliferation of unique
> > > files per
> > > processor currently occuring in conf/machine/include/
> > > 
> > > Signed-off-by: Jon Mason <jon.mason@arm.com>
> > > ---
> > >  .../machine/include/arm/arch-armv8-2a.inc     | 31
> > > ++++++++++++++-----
> > >  meta/conf/machine/include/tune-cortexa55.inc  | 12 -------
> > >  2 files changed, 23 insertions(+), 20 deletions(-)
> > >  delete mode 100644 meta/conf/machine/include/tune-cortexa55.inc
> > > 
> > > diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > > b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > > index b40ebf176e43..38564a17d98b 100644
> > > --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > > +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> > > @@ -1,4 +1,19 @@
> > > -DEFAULTTUNE ?= "armv8-2a"
> > > +#
> > > +# Tune Settings for Cortex-A55
> > > +#
> > > +TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor
> > > optimizations"
> > > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES',
> > > 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
> > > +
> > > +# Little Endian base configs
> > > +AVAILTUNES                                         +=
> > > "cortexa55"
> > > +ARMPKGARCH_tune-cortexa55                           =
> > > "cortexa55"
> > > +TUNE_FEATURES_tune-cortexa55                        = "aarch64
> > > cortexa55 crypto"
> > > +PACKAGE_EXTRA_ARCHS_tune-cortexa55                  =
> > > "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
> > > +
> > > +#
> > > +# Defaults for ARMv8-a
> > > +#
> > > +DEFAULTTUNE                                        ?= "armv8-2a"
> > > 
> > >  TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a"
> > >  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-
> > > 2a', ' -march=armv8.2-a', '', d)}"
> > > @@ -8,10 +23,10 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUN
> > > E_FEATURES', 'armv8-2a', 'armv8-2a
> > >  require conf/machine/include/arm/arch-armv8a.inc
> > > 
> > >  # Little Endian base configs
> > > -AVAILTUNES += "armv8-2a armv8-2a-crypto"
> > > -ARMPKGARCH_tune-armv8-2a                    ?= "armv8-2a"
> > > -ARMPKGARCH_tune-armv8-2a-crypto             ?= "armv8-2a"
> > > -TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-
> > > 2a"
> > > -TUNE_FEATURES_tune-armv8-2a-crypto           =
> > > "${TUNE_FEATURES_tune-armv8-2a} crypto"
> > > -PACKAGE_EXTRA_ARCHS_tune-armv8-2a            =
> > > "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
> > > -PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     =
> > > "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
> > > +AVAILTUNES                                         += "armv8-2a
> > > armv8-2a-crypto"
> > > +ARMPKGARCH_tune-armv8-2a                           ?= "armv8-2a"
> > > +ARMPKGARCH_tune-armv8-2a-crypto                    ?= "armv8-2a"
> > > +TUNE_FEATURES_tune-armv8-2a                         = "aarch64
> > > armv8-2a"
> > > +TUNE_FEATURES_tune-armv8-2a-crypto                  =
> > > "${TUNE_FEATURES_tune-armv8-2a} crypto"
> > > +PACKAGE_EXTRA_ARCHS_tune-armv8-2a                   =
> > > "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
> > > +PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto            =
> > > "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
> > 
> > It may make sense, instead of deleting it, to have just the
> > 'require
> > conf/machine/include/arm/arch-armv8-2a.inc' file for
> > transition.  (If a
> > transition period is NOT required or desired, then this isn't
> > necessary!)
> > 
> > Tricky part is how to notify someone they're in the midst of the
> > transition
> > period, and using the deprecated behavior.
> > 
> > (In past work, I've had a class that looked for a variable to
> > exist, if it did
> > it printed the contents as warning messages to the console after
> > parsing.  I'd
> > love to see something like this as standard behavior for future
> > cases like this.)
> 
> Fantastic idea.  I hate the idea of breaking backward compat.  Any
> newly added tunes would not need this, so no extra files for my new
> 13.
> 
> Question 1.  How can we do this warning?  Is there something I can
> steal from as a basis?
> Question 2.  How long do we keep this compat around?

I actually lean the other way. By removing the file you make it clear
to the user they have to do something. Adding in the compat in this
case doesn't even show a warning, so we just kick the can down the
road.

More recently I have lent towards "hard" fails which force the user
into adapting to the new situation as otherwise I think we're kind of
giving false promises...

Cheers,

Richard



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

* Re: [OE-core] [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64
  2020-09-10  4:57       ` Mark Hatle
@ 2020-09-10 15:11         ` Jon Mason
  2020-09-10 19:34           ` Mark Hatle
  0 siblings, 1 reply; 16+ messages in thread
From: Jon Mason @ 2020-09-10 15:11 UTC (permalink / raw)
  To: Mark Hatle; +Cc: Patches and discussions about the oe-core layer

On Thu, Sep 10, 2020 at 12:57 AM Mark Hatle
<mark.hatle@kernel.crashing.org> wrote:
>
>
>
> On 9/9/20 6:29 PM, Jon Mason wrote:
> > On Wed, Sep 9, 2020 at 6:55 PM Mark Hatle
> > <mark.hatle@kernel.crashing.org> wrote:
> >>
> >>
> >>
> >> On 9/9/20 5:45 PM, Jon Mason wrote:
> >>> Set BASE_LIB for all arm64 systems to be lib64 by default.  This can be
> >>> overridden for those that want something else (see tune-cortexa32.inc).
> >>>
> >>> Signed-off-by: Jon Mason <jon.mason@arm.com>
> >>> ---
> >>>  meta/conf/machine/include/arm/arch-arm64.inc           | 3 +--
> >>>  meta/conf/machine/include/arm/arch-armv8-2a.inc        | 2 --
> >>>  meta/conf/machine/include/arm/arch-armv8a.inc          | 4 ----
> >>>  meta/conf/machine/include/tune-cortexa32.inc           | 1 +
> >>>  meta/conf/machine/include/tune-cortexa35.inc           | 2 --
> >>>  meta/conf/machine/include/tune-cortexa53.inc           | 2 --
> >>>  meta/conf/machine/include/tune-cortexa55.inc           | 1 -
> >>>  meta/conf/machine/include/tune-cortexa57-cortexa53.inc | 1 -
> >>>  meta/conf/machine/include/tune-cortexa57.inc           | 2 --
> >>>  meta/conf/machine/include/tune-cortexa72-cortexa53.inc | 2 --
> >>>  meta/conf/machine/include/tune-cortexa72.inc           | 1 -
> >>>  meta/conf/machine/include/tune-cortexa73-cortexa53.inc | 2 --
> >>>  12 files changed, 2 insertions(+), 21 deletions(-)
> >>>
> >>> diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
> >>> index 6d5b22fff081..8c3764186ec4 100644
> >>> --- a/meta/conf/machine/include/arm/arch-arm64.inc
> >>> +++ b/meta/conf/machine/include/arm/arch-arm64.inc
> >>> @@ -1,4 +1,5 @@
> >>>  DEFAULTTUNE ?= "aarch64"
> >>> +BASE_LIB ?= "lib64"
> >>
> >> Does this work?  The default multilib behavior is:
> >>
> >> multilib.conf:baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE')
> >> or 'INVALID')) or d.getVar('BASELIB')}"
> >>
> >> bitbake.conf:baselib = "${BASELIB}"
> >> bitbake.conf:BASELIB = "lib"
> >> bitbake.conf:BASELIB_powerpc64 = "lib64"
> >> bitbake.conf:BASELIB_powerpc64le = "lib64"
> >>
> >> is what has been defined in the bitbake.conf file.
> >>
> >> Idea being in the 'normal' (not-multilib) case, 'baselib' (which what is used)
> >> gets set to 'BASELIB'.  Only PowerPC 64 has a hard coded 'lib64'.  Every other
> >> architecture is considered to be variable, unless defined in the tune.  (The two
> >> PowerPC settings really should be in a PPC tune file.)
> >>
> >> So IF the multilib.conf is enabled, it's going to look for BASE_LIB_tune-....
> >> and then BASELIB, but it won't look at 'BASE_LIB'.
> >
> > It depends on what "work" is defined as :)
> > I did build, boot, and run testimage on it (with issue).  But I'm
> > probably not hitting the multilib issue you are describing.  Honestly,
> > I don't understand it and needed to spend more time than I did (based
> > on your comments).  I like the removal of lines to simplify it, but I
> > need to do some more reading on it.  I'll drop this patch and come
> > back to the underlying problem at some point in the future.
>
> (This is from memory, so it may not be right)
>
> In your local.conf:
>
> MULTILIBS = "multilib:lib32"
> require conf/multilib.conf
>
> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7vethf"
> MACHINE = "qemuarm64"
>
> Then add something like "lib32-glibc" as a dependency to your image.

This is building, booting, and passing testimage for me.  It's
possible I screwed something up (weird that a screwup would make
things work though).

Thanks,
Jon

> --Mark
>
> > Thanks,
> > Jon
> >
> >>>  require conf/machine/include/arm/arch-armv7ve.inc
> >>>
> >>> @@ -14,8 +15,6 @@ TUNE_FEATURES_tune-aarch64 = "aarch64"
> >>>  TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian"
> >>>  TUNE_PKGARCH_64_tune-aarch64 = "aarch64"
> >>>  TUNE_PKGARCH_64_tune-aarch64_be = "aarch64_be"
> >>> -BASE_LIB_tune-aarch64 = "lib64"
> >>> -BASE_LIB_tune-aarch64_be = "lib64"
> >>
> >> This was originally done like this to enable multilib, as BASE_LIB needs to be
> >> configured per multilib.  (I don't know if it's really necessary any longer.)
> >>
> >> Note the other 32/64 bit architecture are still implemented like this.
> >>
> >> There was also talk at the time of different lib dirs for little and big endian,
> >> but I never saw that actually happen.
> >>
> >> We also wanted a way to build optimized libraries, like some distributions, that
> >> are optimized for specific tunings and place those into non-conflicting
> >> directories.  But again, AFAIK nobody actually did it and I' not sure it
> >> actually works.
> >>
> >> And for the record BASE_LIB is documented in the tune README as:
> >>
> >> 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.
> >>
> >>>  PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64"
> >>>  PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be"
> >>> diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> >>> index 1c095256d185..b40ebf176e43 100644
> >>> --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
> >>> +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
> >>> @@ -15,5 +15,3 @@ TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
> >>>  TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
> >>>  PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
> >>> -BASE_LIB_tune-armv8-2a                       = "lib64"
> >>> -BASE_LIB_tune-armv8-2a-crypto                = "lib64"
> >>> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> >>> index f810a1e8fc98..5584005f7009 100644
> >>> --- a/meta/conf/machine/include/arm/arch-armv8a.inc
> >>> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> >>> @@ -24,7 +24,3 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a"
> >>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc"
> >>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-crypto armv8a-crc-crypto"
> >>> -BASE_LIB_tune-armv8a                       = "lib64"
> >>> -BASE_LIB_tune-armv8a-crc                   = "lib64"
> >>> -BASE_LIB_tune-armv8a-crypto                = "lib64"
> >>> -BASE_LIB_tune-armv8a-crc-crypto            = "lib64"
> >>> diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
> >>> index 0ffb3e068855..78dab8bed6e1 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa32.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa32.inc
> >>> @@ -14,5 +14,6 @@ TUNE_FEATURES_tune-cortexa32          = "armv8a cortexa32 crc"
> >>>  TUNE_FEATURES_tune-cortexa32-crypto   = "${TUNE_FEATURES_tune-cortexa32} crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa32             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
> >>> +# Cortex-A32 is 32bit only
> >>>  BASE_LIB_tune-cortexa32               = "lib"
> >>>  BASE_LIB_tune-cortexa32-crypto        = "lib"
> >>> diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
> >>> index 61696da540cc..80825972b612 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa35.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa35.inc
> >>> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa35          = "aarch64 cortexa35 crc"
> >>>  TUNE_FEATURES_tune-cortexa35-crypto   = "${TUNE_FEATURES_tune-cortexa35} crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa35             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
> >>> -BASE_LIB_tune-cortexa35               = "lib64"
> >>> -BASE_LIB_tune-cortexa35-crypto        = "lib64"
> >>> diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
> >>> index 79ce7c4b1c21..385c2d225777 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa53.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa53.inc
> >>> @@ -14,5 +14,3 @@ TUNE_FEATURES_tune-cortexa53-crypto   = "${TUNE_FEATURES_tune-cortexa53} crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa53             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
> >>>
> >>> -BASE_LIB_tune-cortexa53               = "lib64"
> >>> -BASE_LIB_tune-cortexa53-crypto        = "lib64"
> >>> diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
> >>> index 66a5d0c437ee..099b6d72851a 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa55.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa55.inc
> >>> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa55"
> >>>  ARMPKGARCH_tune-cortexa55             = "cortexa55"
> >>>  TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
> >>> -BASE_LIB_tune-cortexa55               = "lib64"
> >>> diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> >>> index 5880bf203231..02691d0deee2 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
> >>> @@ -12,4 +12,3 @@ AVAILTUNES += "cortexa57-cortexa53"
> >>>  ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
> >>>  TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
> >>> -BASE_LIB_tune-cortexa57-cortexa53 = "lib64"
> >>> diff --git a/meta/conf/machine/include/tune-cortexa57.inc b/meta/conf/machine/include/tune-cortexa57.inc
> >>> index 3206ce75a6b6..868939ca10c7 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa57.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa57.inc
> >>> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa57          = "aarch64 cortexa57 crc"
> >>>  TUNE_FEATURES_tune-cortexa57-crypto   = "${TUNE_FEATURES_tune-cortexa57} crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
> >>> -BASE_LIB_tune-cortexa57               = "lib64"
> >>> -BASE_LIB_tune-cortexa57-crypto        = "lib64"
> >>> diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> >>> index feb1df5c178d..34aaa6cc72a7 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
> >>> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa72-cortexa53               = "aarch64 crc cortexa72-co
> >>>  TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa72-cortexa53"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
> >>> -BASE_LIB_tune-cortexa72-cortexa53                    = "lib64"
> >>> -BASE_LIB_tune-cortexa72-cortexa53-crypto             = "lib64"
> >>>
> >>> diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
> >>> index 00f7745a22fd..f0f76cad14db 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa72.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa72.inc
> >>> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa72"
> >>>  ARMPKGARCH_tune-cortexa72             = "cortexa72"
> >>>  TUNE_FEATURES_tune-cortexa72          = "aarch64 cortexa72 crc crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
> >>> -BASE_LIB_tune-cortexa72               = "lib64"
> >>> diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> >>> index 1c221999f408..6da93ffac0b7 100644
> >>> --- a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> >>> +++ b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
> >>> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa73-cortexa53               = "aarch64 crc cortexa73-co
> >>>  TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa73-cortexa53"
> >>>  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
> >>> -BASE_LIB_tune-cortexa73-cortexa53                    = "lib64"
> >>> -BASE_LIB_tune-cortexa73-cortexa53-crypto             = "lib64"
> >>>
> >>>
> >>>
> >>> 
> >>>

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

* Re: [OE-core] [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64
  2020-09-10 15:11         ` Jon Mason
@ 2020-09-10 19:34           ` Mark Hatle
  0 siblings, 0 replies; 16+ messages in thread
From: Mark Hatle @ 2020-09-10 19:34 UTC (permalink / raw)
  To: Jon Mason; +Cc: Patches and discussions about the oe-core layer



On 9/10/20 10:11 AM, Jon Mason wrote:
> On Thu, Sep 10, 2020 at 12:57 AM Mark Hatle
> <mark.hatle@kernel.crashing.org> wrote:
>>
>>
>>
>> On 9/9/20 6:29 PM, Jon Mason wrote:
>>> On Wed, Sep 9, 2020 at 6:55 PM Mark Hatle
>>> <mark.hatle@kernel.crashing.org> wrote:
>>>>
>>>>
>>>>
>>>> On 9/9/20 5:45 PM, Jon Mason wrote:
>>>>> Set BASE_LIB for all arm64 systems to be lib64 by default.  This can be
>>>>> overridden for those that want something else (see tune-cortexa32.inc).
>>>>>
>>>>> Signed-off-by: Jon Mason <jon.mason@arm.com>
>>>>> ---
>>>>>  meta/conf/machine/include/arm/arch-arm64.inc           | 3 +--
>>>>>  meta/conf/machine/include/arm/arch-armv8-2a.inc        | 2 --
>>>>>  meta/conf/machine/include/arm/arch-armv8a.inc          | 4 ----
>>>>>  meta/conf/machine/include/tune-cortexa32.inc           | 1 +
>>>>>  meta/conf/machine/include/tune-cortexa35.inc           | 2 --
>>>>>  meta/conf/machine/include/tune-cortexa53.inc           | 2 --
>>>>>  meta/conf/machine/include/tune-cortexa55.inc           | 1 -
>>>>>  meta/conf/machine/include/tune-cortexa57-cortexa53.inc | 1 -
>>>>>  meta/conf/machine/include/tune-cortexa57.inc           | 2 --
>>>>>  meta/conf/machine/include/tune-cortexa72-cortexa53.inc | 2 --
>>>>>  meta/conf/machine/include/tune-cortexa72.inc           | 1 -
>>>>>  meta/conf/machine/include/tune-cortexa73-cortexa53.inc | 2 --
>>>>>  12 files changed, 2 insertions(+), 21 deletions(-)
>>>>>
>>>>> diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
>>>>> index 6d5b22fff081..8c3764186ec4 100644
>>>>> --- a/meta/conf/machine/include/arm/arch-arm64.inc
>>>>> +++ b/meta/conf/machine/include/arm/arch-arm64.inc
>>>>> @@ -1,4 +1,5 @@
>>>>>  DEFAULTTUNE ?= "aarch64"
>>>>> +BASE_LIB ?= "lib64"
>>>>
>>>> Does this work?  The default multilib behavior is:
>>>>
>>>> multilib.conf:baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE')
>>>> or 'INVALID')) or d.getVar('BASELIB')}"
>>>>
>>>> bitbake.conf:baselib = "${BASELIB}"
>>>> bitbake.conf:BASELIB = "lib"
>>>> bitbake.conf:BASELIB_powerpc64 = "lib64"
>>>> bitbake.conf:BASELIB_powerpc64le = "lib64"
>>>>
>>>> is what has been defined in the bitbake.conf file.
>>>>
>>>> Idea being in the 'normal' (not-multilib) case, 'baselib' (which what is used)
>>>> gets set to 'BASELIB'.  Only PowerPC 64 has a hard coded 'lib64'.  Every other
>>>> architecture is considered to be variable, unless defined in the tune.  (The two
>>>> PowerPC settings really should be in a PPC tune file.)
>>>>
>>>> So IF the multilib.conf is enabled, it's going to look for BASE_LIB_tune-....
>>>> and then BASELIB, but it won't look at 'BASE_LIB'.
>>>
>>> It depends on what "work" is defined as :)
>>> I did build, boot, and run testimage on it (with issue).  But I'm
>>> probably not hitting the multilib issue you are describing.  Honestly,
>>> I don't understand it and needed to spend more time than I did (based
>>> on your comments).  I like the removal of lines to simplify it, but I
>>> need to do some more reading on it.  I'll drop this patch and come
>>> back to the underlying problem at some point in the future.
>>
>> (This is from memory, so it may not be right)
>>
>> In your local.conf:
>>
>> MULTILIBS = "multilib:lib32"
>> require conf/multilib.conf
>>
>> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7vethf"
>> MACHINE = "qemuarm64"
>>
>> Then add something like "lib32-glibc" as a dependency to your image.
> 
> This is building, booting, and passing testimage for me.  It's
> possible I screwed something up (weird that a screwup would make
> things work though).

Boot the image and verify that both /lib and /lib32 are there and populated by
the libc.  If they are then it likely works.

--Mark

> Thanks,
> Jon
> 
>> --Mark
>>
>>> Thanks,
>>> Jon
>>>
>>>>>  require conf/machine/include/arm/arch-armv7ve.inc
>>>>>
>>>>> @@ -14,8 +15,6 @@ TUNE_FEATURES_tune-aarch64 = "aarch64"
>>>>>  TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian"
>>>>>  TUNE_PKGARCH_64_tune-aarch64 = "aarch64"
>>>>>  TUNE_PKGARCH_64_tune-aarch64_be = "aarch64_be"
>>>>> -BASE_LIB_tune-aarch64 = "lib64"
>>>>> -BASE_LIB_tune-aarch64_be = "lib64"
>>>>
>>>> This was originally done like this to enable multilib, as BASE_LIB needs to be
>>>> configured per multilib.  (I don't know if it's really necessary any longer.)
>>>>
>>>> Note the other 32/64 bit architecture are still implemented like this.
>>>>
>>>> There was also talk at the time of different lib dirs for little and big endian,
>>>> but I never saw that actually happen.
>>>>
>>>> We also wanted a way to build optimized libraries, like some distributions, that
>>>> are optimized for specific tunings and place those into non-conflicting
>>>> directories.  But again, AFAIK nobody actually did it and I' not sure it
>>>> actually works.
>>>>
>>>> And for the record BASE_LIB is documented in the tune README as:
>>>>
>>>> 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.
>>>>
>>>>>  PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be"
>>>>> diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>>>> index 1c095256d185..b40ebf176e43 100644
>>>>> --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>>>> +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
>>>>> @@ -15,5 +15,3 @@ TUNE_FEATURES_tune-armv8-2a                  = "aarch64 armv8-2a"
>>>>>  TUNE_FEATURES_tune-armv8-2a-crypto           = "${TUNE_FEATURES_tune-armv8-2a} crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-armv8-2a            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
>>>>> -BASE_LIB_tune-armv8-2a                       = "lib64"
>>>>> -BASE_LIB_tune-armv8-2a-crypto                = "lib64"
>>>>> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
>>>>> index f810a1e8fc98..5584005f7009 100644
>>>>> --- a/meta/conf/machine/include/arm/arch-armv8a.inc
>>>>> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
>>>>> @@ -24,7 +24,3 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-crypto armv8a-crc-crypto"
>>>>> -BASE_LIB_tune-armv8a                       = "lib64"
>>>>> -BASE_LIB_tune-armv8a-crc                   = "lib64"
>>>>> -BASE_LIB_tune-armv8a-crypto                = "lib64"
>>>>> -BASE_LIB_tune-armv8a-crc-crypto            = "lib64"
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
>>>>> index 0ffb3e068855..78dab8bed6e1 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa32.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa32.inc
>>>>> @@ -14,5 +14,6 @@ TUNE_FEATURES_tune-cortexa32          = "armv8a cortexa32 crc"
>>>>>  TUNE_FEATURES_tune-cortexa32-crypto   = "${TUNE_FEATURES_tune-cortexa32} crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa32             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
>>>>> +# Cortex-A32 is 32bit only
>>>>>  BASE_LIB_tune-cortexa32               = "lib"
>>>>>  BASE_LIB_tune-cortexa32-crypto        = "lib"
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
>>>>> index 61696da540cc..80825972b612 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa35.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa35.inc
>>>>> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa35          = "aarch64 cortexa35 crc"
>>>>>  TUNE_FEATURES_tune-cortexa35-crypto   = "${TUNE_FEATURES_tune-cortexa35} crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa35             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
>>>>> -BASE_LIB_tune-cortexa35               = "lib64"
>>>>> -BASE_LIB_tune-cortexa35-crypto        = "lib64"
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
>>>>> index 79ce7c4b1c21..385c2d225777 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa53.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa53.inc
>>>>> @@ -14,5 +14,3 @@ TUNE_FEATURES_tune-cortexa53-crypto   = "${TUNE_FEATURES_tune-cortexa53} crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa53             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
>>>>>
>>>>> -BASE_LIB_tune-cortexa53               = "lib64"
>>>>> -BASE_LIB_tune-cortexa53-crypto        = "lib64"
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
>>>>> index 66a5d0c437ee..099b6d72851a 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa55.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa55.inc
>>>>> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa55"
>>>>>  ARMPKGARCH_tune-cortexa55             = "cortexa55"
>>>>>  TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
>>>>> -BASE_LIB_tune-cortexa55               = "lib64"
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
>>>>> index 5880bf203231..02691d0deee2 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
>>>>> @@ -12,4 +12,3 @@ AVAILTUNES += "cortexa57-cortexa53"
>>>>>  ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
>>>>>  TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
>>>>> -BASE_LIB_tune-cortexa57-cortexa53 = "lib64"
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa57.inc b/meta/conf/machine/include/tune-cortexa57.inc
>>>>> index 3206ce75a6b6..868939ca10c7 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa57.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa57.inc
>>>>> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa57          = "aarch64 cortexa57 crc"
>>>>>  TUNE_FEATURES_tune-cortexa57-crypto   = "${TUNE_FEATURES_tune-cortexa57} crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
>>>>> -BASE_LIB_tune-cortexa57               = "lib64"
>>>>> -BASE_LIB_tune-cortexa57-crypto        = "lib64"
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
>>>>> index feb1df5c178d..34aaa6cc72a7 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
>>>>> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa72-cortexa53               = "aarch64 crc cortexa72-co
>>>>>  TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa72-cortexa53"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
>>>>> -BASE_LIB_tune-cortexa72-cortexa53                    = "lib64"
>>>>> -BASE_LIB_tune-cortexa72-cortexa53-crypto             = "lib64"
>>>>>
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
>>>>> index 00f7745a22fd..f0f76cad14db 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa72.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa72.inc
>>>>> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa72"
>>>>>  ARMPKGARCH_tune-cortexa72             = "cortexa72"
>>>>>  TUNE_FEATURES_tune-cortexa72          = "aarch64 cortexa72 crc crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
>>>>> -BASE_LIB_tune-cortexa72               = "lib64"
>>>>> diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
>>>>> index 1c221999f408..6da93ffac0b7 100644
>>>>> --- a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
>>>>> +++ b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
>>>>> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa73-cortexa53               = "aarch64 crc cortexa73-co
>>>>>  TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa73-cortexa53"
>>>>>  PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
>>>>> -BASE_LIB_tune-cortexa73-cortexa53                    = "lib64"
>>>>> -BASE_LIB_tune-cortexa73-cortexa53-crypto             = "lib64"
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 

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

end of thread, other threads:[~2020-09-10 19:34 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-09 22:45 [meta-oe][RFC 0/6] ARMv8 Tune reorg Jon Mason
2020-09-09 22:45 ` [meta-oe][RFC 1/6] arm64: set BASE_LIB to lib64 Jon Mason
2020-09-09 22:55   ` [OE-core] " Mark Hatle
2020-09-09 23:29     ` Jon Mason
2020-09-10  4:57       ` Mark Hatle
2020-09-10 15:11         ` Jon Mason
2020-09-10 19:34           ` Mark Hatle
2020-09-09 22:45 ` [meta-oe][RFC 2/6] arch-armv8-2a.inc: Add Cortex-A55 tunings Jon Mason
2020-09-09 22:59   ` [OE-core] " Mark Hatle
2020-09-09 23:21     ` Jon Mason
2020-09-10  4:48       ` Mark Hatle
2020-09-10  9:38       ` Richard Purdie
2020-09-09 22:45 ` [meta-oe][RFC 3/6] arch-armv8a.inc: Add existing tunings Jon Mason
2020-09-09 22:45 ` [meta-oe][RFC 4/6] qemuarm64: change tuning Jon Mason
2020-09-09 22:45 ` [meta-oe][RFC 5/6] arch-armv8a.inc: Add tunes for supported ARMv8a cores Jon Mason
2020-09-09 22:45 ` [meta-oe][RFC 6/6] arch-armv8-2a.inc: Add tunes for supported ARMv8.2a cores Jon Mason

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.