All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] arch-armv8a.inc: add tune include for armv8
@ 2019-02-05  2:57 Khem Raj
  2019-02-05  2:57 ` [PATCH 2/6] ThunderX: update the armv8a rules Khem Raj
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-05  2:57 UTC (permalink / raw)
  To: openembedded-core

From: ayaka <ayaka@soulik.info>

There are some addtional instructions apart from bare armv8,
also there is armv8.1, armv8.2.

Most the processor would support crc, except X-gene 1.

Signed-off-by: Randy Li <ayaka@soulik.info>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
 meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)
 delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
 create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
deleted file mode 100644
index 5e832fae6d..0000000000
--- a/meta/conf/machine/include/arm/arch-armv8.inc
+++ /dev/null
@@ -1 +0,0 @@
-require conf/machine/include/arm/arch-arm64.inc
diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
new file mode 100644
index 0000000000..323d0d7f0f
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -0,0 +1,28 @@
+DEFAULTTUNE ?= "armv8a-crc"
+
+TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"
+TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"
+TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"
+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)}"
+
+require conf/machine/include/arm/arch-arm64.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
+ARMPKGARCH_tune-armv8a                    ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"
+TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"
+TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"
+TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"
+TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
-- 
2.20.1



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

* [PATCH 2/6] ThunderX: update the armv8a rules
  2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
@ 2019-02-05  2:57 ` Khem Raj
  2019-02-05  2:57 ` [PATCH 3/6] tune-cortexa32: add tunes for ARM Cortex-A32 Khem Raj
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-05  2:57 UTC (permalink / raw)
  To: openembedded-core

From: ayaka <ayaka@soulik.info>

I am not familiar with the big endian, so I don't update it.
I don't have much information about the Cavium ThunderX,
it looks like it supports all the ARM instructions.

Signed-off-by: Randy Li <ayaka@soulik.info>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/tune-thunderx.inc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/meta/conf/machine/include/tune-thunderx.inc b/meta/conf/machine/include/tune-thunderx.inc
index 3d43b0f7e5..92adf2df1f 100644
--- a/meta/conf/machine/include/tune-thunderx.inc
+++ b/meta/conf/machine/include/tune-thunderx.inc
@@ -1,11 +1,11 @@
-require conf/machine/include/arm/arch-armv8.inc
-
 DEFAULTTUNE ?= "thunderx"
 AVAILTUNES += "thunderx thunderx_be"
 
 TUNEVALID[thunderx] = "Enable instructions for Cavium ThunderX"
 
-TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thunderx', ' -mcpu=thunderx ', '',d)}"
+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"
@@ -15,5 +15,5 @@ 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 = "aarch64 thunderx"
+PACKAGE_EXTRA_ARCHS_tune-thunderx = "armv8a-crc-crypto thunderx"
 PACKAGE_EXTRA_ARCHS_tune-thunderx_be = "aarch64_be thunderx_be"
-- 
2.20.1



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

* [PATCH 3/6] tune-cortexa32: add tunes for ARM Cortex-A32
  2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
  2019-02-05  2:57 ` [PATCH 2/6] ThunderX: update the armv8a rules Khem Raj
@ 2019-02-05  2:57 ` Khem Raj
  2019-02-05  2:57 ` [PATCH 4/6] tune-cortexa35: add tunes for ARM Cortex-A35 Khem Raj
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-05  2:57 UTC (permalink / raw)
  To: openembedded-core

From: ayaka <ayaka@soulik.info>

https://developer.arm.com/products/processors/cortex-a/cortex-a32

Signed-off-by: Randy Li <ayaka@soulik.info>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/tune-cortexa32.inc | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 meta/conf/machine/include/tune-cortexa32.inc

diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
new file mode 100644
index 0000000000..b66ff55e9a
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa32.inc
@@ -0,0 +1,16 @@
+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          = "aarch64 cortexa32 simd crc"
+TUNE_FEATURES_tune-cortexa32-crypto   = "aarch64 cortexa32 simd crc 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"
-- 
2.20.1



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

* [PATCH 4/6] tune-cortexa35: add tunes for ARM Cortex-A35
  2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
  2019-02-05  2:57 ` [PATCH 2/6] ThunderX: update the armv8a rules Khem Raj
  2019-02-05  2:57 ` [PATCH 3/6] tune-cortexa32: add tunes for ARM Cortex-A32 Khem Raj
@ 2019-02-05  2:57 ` Khem Raj
  2019-02-05  2:57 ` [PATCH 5/6] tune-cortexa53: add tunes for ARM Cortex-A53 Khem Raj
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-05  2:57 UTC (permalink / raw)
  To: openembedded-core

From: ayaka <ayaka@soulik.info>

https://developer.arm.com/products/processors/cortex-a/cortex-a35

Signed-off-by: Randy Li <ayaka@soulik.info>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/tune-cortexa35.inc | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 meta/conf/machine/include/tune-cortexa35.inc

diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
new file mode 100644
index 0000000000..4cf00844e8
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa35.inc
@@ -0,0 +1,15 @@
+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 cortexa53 simd crc"
+TUNE_FEATURES_tune-cortexa35-crypto   = "aarch64 cortexa35 simd crc 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"
-- 
2.20.1



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

* [PATCH 5/6] tune-cortexa53: add tunes for ARM Cortex-A53
  2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
                   ` (2 preceding siblings ...)
  2019-02-05  2:57 ` [PATCH 4/6] tune-cortexa35: add tunes for ARM Cortex-A35 Khem Raj
@ 2019-02-05  2:57 ` Khem Raj
  2019-02-05  2:57 ` [PATCH 6/6] tune-cortexa72: add tunes for ARM Cortex-A72 Khem Raj
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-05  2:57 UTC (permalink / raw)
  To: openembedded-core

From: ayaka <ayaka@soulik.info>

It looks that the Cryptography engine is mandatory in this
platform.

https://developer.arm.com/products/processors/cortex-a/cortex-a53

Signed-off-by: Randy Li <ayaka@soulik.info>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/tune-cortexa53.inc | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 meta/conf/machine/include/tune-cortexa53.inc

diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
new file mode 100644
index 0000000000..a9d9cdd1f5
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa53.inc
@@ -0,0 +1,15 @@
+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"
+TUNE_FEATURES_tune-cortexa53          = "aarch64 cortexa53 simd crc"
+TUNE_FEATURES_tune-cortexa53-crypto   = "aarch64 cortexa53 simd crc 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"
-- 
2.20.1



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

* [PATCH 6/6] tune-cortexa72: add tunes for ARM Cortex-A72
  2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
                   ` (3 preceding siblings ...)
  2019-02-05  2:57 ` [PATCH 5/6] tune-cortexa53: add tunes for ARM Cortex-A53 Khem Raj
@ 2019-02-05  2:57 ` Khem Raj
  2019-02-05 15:12 ` [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Richard Purdie
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-05  2:57 UTC (permalink / raw)
  To: openembedded-core

From: ayaka <ayaka@soulik.info>

It looks that the Cryptography engine is mandatory in this
platform.

https://developer.arm.com/products/processors/cortex-a/cortex-a72

Signed-off-by: Randy Li <ayaka@soulik.info>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/tune-cortexa72.inc | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 meta/conf/machine/include/tune-cortexa72.inc

diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
new file mode 100644
index 0000000000..f5a524fa04
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa72.inc
@@ -0,0 +1,12 @@
+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 simd crc crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
-- 
2.20.1



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

* Re: [PATCH 1/6] arch-armv8a.inc: add tune include for armv8
  2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
                   ` (4 preceding siblings ...)
  2019-02-05  2:57 ` [PATCH 6/6] tune-cortexa72: add tunes for ARM Cortex-A72 Khem Raj
@ 2019-02-05 15:12 ` Richard Purdie
  2019-02-05 15:57   ` Khem Raj
  2019-02-05 15:57 ` akuster808
  2019-02-23 19:37 ` Mike Crowe
  7 siblings, 1 reply; 12+ messages in thread
From: Richard Purdie @ 2019-02-05 15:12 UTC (permalink / raw)
  To: Khem Raj, openembedded-core

On Mon, 2019-02-04 at 18:57 -0800, Khem Raj wrote:
> From: ayaka <ayaka@soulik.info>
> 
> There are some addtional instructions apart from bare armv8,
> also there is armv8.1, armv8.2.
> 
> Most the processor would support crc, except X-gene 1.
> 
> Signed-off-by: Randy Li <ayaka@soulik.info>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
>  meta/conf/machine/include/arm/arch-armv8a.inc | 28
> +++++++++++++++++++
>  2 files changed, 28 insertions(+), 1 deletion(-)
>  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

Renaming the file when other things use it causes failures:

https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/256/steps/7/logs/step1c

Cheers,

Richard



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

* Re: [PATCH 1/6] arch-armv8a.inc: add tune include for armv8
  2019-02-05 15:12 ` [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Richard Purdie
@ 2019-02-05 15:57   ` Khem Raj
  0 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-05 15:57 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Patches and discussions about the oe-core layer

On Tue, Feb 5, 2019 at 7:12 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Mon, 2019-02-04 at 18:57 -0800, Khem Raj wrote:
> > From: ayaka <ayaka@soulik.info>
> >
> > There are some addtional instructions apart from bare armv8,
> > also there is armv8.1, armv8.2.
> >
> > Most the processor would support crc, except X-gene 1.
> >
> > Signed-off-by: Randy Li <ayaka@soulik.info>
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> >  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
> >  meta/conf/machine/include/arm/arch-armv8a.inc | 28
> > +++++++++++++++++++
> >  2 files changed, 28 insertions(+), 1 deletion(-)
> >  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
> >  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>
> Renaming the file when other things use it causes failures:
>

my bad. I have been testing this with rpi3_64 and missed the qemuarm64
part, I sent a patch to use armv8a instead for qemuarm64, since thats
more used configuration when it comes to armv8

> https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/256/steps/7/logs/step1c
>
> Cheers,
>
> Richard
>


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

* Re: [PATCH 1/6] arch-armv8a.inc: add tune include for armv8
  2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
                   ` (5 preceding siblings ...)
  2019-02-05 15:12 ` [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Richard Purdie
@ 2019-02-05 15:57 ` akuster808
  2019-02-05 17:37   ` Khem Raj
  2019-02-23 19:37 ` Mike Crowe
  7 siblings, 1 reply; 12+ messages in thread
From: akuster808 @ 2019-02-05 15:57 UTC (permalink / raw)
  To: Khem Raj, openembedded-core

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



On 2/4/19 6:57 PM, Khem Raj wrote:
> From: ayaka <ayaka@soulik.info>
>
> There are some addtional instructions apart from bare armv8,
> also there is armv8.1, armv8.2.
>
> Most the processor would support crc, except X-gene 1.

We have had these tune files sent by other folks in the past. Does this
settle all the questions from back then ?

It was sent couple months ago, you can find the discussion in various
threads, e.g.:
http://lists.openembedded.org/pipermail/openembedded-core/2015-October/111318.html
http://lists.openembedded.org/pipermail/openembedded-core/2015-November/112907.html

http://lists.openembedded.org/pipermail/openembedded-core/2016-March/118579.html

and more.

- armin

>
> Signed-off-by: Randy Li <ayaka@soulik.info>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
>  meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++
>  2 files changed, 28 insertions(+), 1 deletion(-)
>  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>
> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
> deleted file mode 100644
> index 5e832fae6d..0000000000
> --- a/meta/conf/machine/include/arm/arch-armv8.inc
> +++ /dev/null
> @@ -1 +0,0 @@
> -require conf/machine/include/arm/arch-arm64.inc
> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> new file mode 100644
> index 0000000000..323d0d7f0f
> --- /dev/null
> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> @@ -0,0 +1,28 @@
> +DEFAULTTUNE ?= "armv8a-crc"
> +
> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"
> +TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"
> +TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"
> +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)}"
> +
> +require conf/machine/include/arm/arch-arm64.inc
> +
> +# Little Endian base configs
> +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
> +ARMPKGARCH_tune-armv8a                    ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"
> +TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"
> +TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"
> +TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"


[-- Attachment #2: Type: text/html, Size: 5185 bytes --]

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

* Re: [PATCH 1/6] arch-armv8a.inc: add tune include for armv8
  2019-02-05 15:57 ` akuster808
@ 2019-02-05 17:37   ` Khem Raj
  0 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-05 17:37 UTC (permalink / raw)
  To: akuster808; +Cc: Patches and discussions about the oe-core layer

On Tue, Feb 5, 2019 at 7:57 AM akuster808 <akuster808@gmail.com> wrote:
>
>
>
> On 2/4/19 6:57 PM, Khem Raj wrote:
>
> From: ayaka <ayaka@soulik.info>
>
> There are some addtional instructions apart from bare armv8,
> also there is armv8.1, armv8.2.
>
> Most the processor would support crc, except X-gene 1.
>
>
> We have had these tune files sent by other folks in the past. Does this settle all the questions from back then ?
>
> It was sent couple months ago, you can find the discussion in various
> threads, e.g.:
> http://lists.openembedded.org/pipermail/openembedded-core/2015-October/111318.html
> http://lists.openembedded.org/pipermail/openembedded-core/2015-November/112907.html
>

these are not relevant here.

> http://lists.openembedded.org/pipermail/openembedded-core/2016-March/118579.html
>

This I have looked at. Eventually, I plan to add aarch32 bit tunes as well
for now, I just want to make aarch64 piece look good with option to
have aarch32 in mind, if there are specific questions I would be
interested to here

> and more.
>
> - armin
>
> Signed-off-by: Randy Li <ayaka@soulik.info>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
>  meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++
>  2 files changed, 28 insertions(+), 1 deletion(-)
>  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>
> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
> deleted file mode 100644
> index 5e832fae6d..0000000000
> --- a/meta/conf/machine/include/arm/arch-armv8.inc
> +++ /dev/null
> @@ -1 +0,0 @@
> -require conf/machine/include/arm/arch-arm64.inc
> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> new file mode 100644
> index 0000000000..323d0d7f0f
> --- /dev/null
> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> @@ -0,0 +1,28 @@
> +DEFAULTTUNE ?= "armv8a-crc"
> +
> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"
> +TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"
> +TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"
> +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)}"
> +
> +require conf/machine/include/arm/arch-arm64.inc
> +
> +# Little Endian base configs
> +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
> +ARMPKGARCH_tune-armv8a                    ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"
> +TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"
> +TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"
> +TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
>
>


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

* Re: [PATCH 1/6] arch-armv8a.inc: add tune include for armv8
  2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
                   ` (6 preceding siblings ...)
  2019-02-05 15:57 ` akuster808
@ 2019-02-23 19:37 ` Mike Crowe
  2019-02-23 20:04   ` Khem Raj
  7 siblings, 1 reply; 12+ messages in thread
From: Mike Crowe @ 2019-02-23 19:37 UTC (permalink / raw)
  To: Khem Raj, Randy Li; +Cc: openembedded-core

On Monday 04 February 2019 at 18:57:22 -0800, Khem Raj wrote:
> From: ayaka <ayaka@soulik.info>
> 
> There are some addtional instructions apart from bare armv8,
> also there is armv8.1, armv8.2.
> 
> Most the processor would support crc, except X-gene 1.
> 
> Signed-off-by: Randy Li <ayaka@soulik.info>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
>  meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++
>  2 files changed, 28 insertions(+), 1 deletion(-)
>  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
> 
> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
> deleted file mode 100644
> index 5e832fae6d..0000000000
> --- a/meta/conf/machine/include/arm/arch-armv8.inc
> +++ /dev/null
> @@ -1 +0,0 @@
> -require conf/machine/include/arm/arch-arm64.inc
> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> new file mode 100644
> index 0000000000..323d0d7f0f
> --- /dev/null
> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> @@ -0,0 +1,28 @@
> +DEFAULTTUNE ?= "armv8a-crc"
> +
> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"
> +TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"
> +TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"
> +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)}"
> +
> +require conf/machine/include/arm/arch-arm64.inc
> +
> +# Little Endian base configs
> +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
> +ARMPKGARCH_tune-armv8a                    ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"
> +TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"
> +TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"
> +TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
> -- 
> 2.20.1

I believe that this change, along with
6719de403620dded075dc74f2976669d95bffd7a, may have broken multilib for
AArch64. :(

When I enable multilib in local.conf with:

 require conf/multilib.conf
 MULTILIBS = "multilib:lib32"
 DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"

then both the primary target and lib32- packages end up installing stuff
into /usr/lib (and would presumably conflict, if I got as far as installing
them.)

If I revert 6719de403620dded075dc74f2976669d95bffd7a and
d1db78b0e284e1a1f370e71183ded0cbdc1475db then the primary target packages
end up installing stuff in /usr/lib64 as would be expected.

This appears to be because baselib = "lib" rather than "lib64". That in
turn may be because BASE_LIB_tune-armv8a-crc does not exist.

If I apply this patch:

diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
index 323d0d7f0f..649deca61b 100644
--- a/meta/conf/machine/include/arm/arch-armv8a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -26,3 +26,4 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
+BASE_LIB_tune-armv8a-crc = "lib64"

then multilib behaves as it did before. Is this the correct fix?

Thanks.

Mike.


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

* Re: [PATCH 1/6] arch-armv8a.inc: add tune include for armv8
  2019-02-23 19:37 ` Mike Crowe
@ 2019-02-23 20:04   ` Khem Raj
  0 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2019-02-23 20:04 UTC (permalink / raw)
  To: Mike Crowe; +Cc: Patches and discussions about the oe-core layer

On Sat, Feb 23, 2019 at 11:37 AM Mike Crowe <mac@mcrowe.com> wrote:
>
> On Monday 04 February 2019 at 18:57:22 -0800, Khem Raj wrote:
> > From: ayaka <ayaka@soulik.info>
> >
> > There are some addtional instructions apart from bare armv8,
> > also there is armv8.1, armv8.2.
> >
> > Most the processor would support crc, except X-gene 1.
> >
> > Signed-off-by: Randy Li <ayaka@soulik.info>
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> >  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
> >  meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++
> >  2 files changed, 28 insertions(+), 1 deletion(-)
> >  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
> >  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
> >
> > diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
> > deleted file mode 100644
> > index 5e832fae6d..0000000000
> > --- a/meta/conf/machine/include/arm/arch-armv8.inc
> > +++ /dev/null
> > @@ -1 +0,0 @@
> > -require conf/machine/include/arm/arch-arm64.inc
> > diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> > new file mode 100644
> > index 0000000000..323d0d7f0f
> > --- /dev/null
> > +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> > @@ -0,0 +1,28 @@
> > +DEFAULTTUNE ?= "armv8a-crc"
> > +
> > +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
> > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"
> > +TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"
> > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"
> > +TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"
> > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"
> > +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)}"
> > +
> > +require conf/machine/include/arm/arch-arm64.inc
> > +
> > +# Little Endian base configs
> > +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
> > +ARMPKGARCH_tune-armv8a                    ?= "armv8a"
> > +ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"
> > +ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"
> > +ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"
> > +TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"
> > +TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"
> > +TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"
> > +TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"
> > +PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
> > +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
> > +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
> > +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
> > --
> > 2.20.1
>
> I believe that this change, along with
> 6719de403620dded075dc74f2976669d95bffd7a, may have broken multilib for
> AArch64. :(
>
> When I enable multilib in local.conf with:
>
>  require conf/multilib.conf
>  MULTILIBS = "multilib:lib32"
>  DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"
>
> then both the primary target and lib32- packages end up installing stuff
> into /usr/lib (and would presumably conflict, if I got as far as installing
> them.)
>
> If I revert 6719de403620dded075dc74f2976669d95bffd7a and
> d1db78b0e284e1a1f370e71183ded0cbdc1475db then the primary target packages
> end up installing stuff in /usr/lib64 as would be expected.
>
> This appears to be because baselib = "lib" rather than "lib64". That in
> turn may be because BASE_LIB_tune-armv8a-crc does not exist.
>
> If I apply this patch:
>
> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> index 323d0d7f0f..649deca61b 100644
> --- a/meta/conf/machine/include/arm/arch-armv8a.inc
> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> @@ -26,3 +26,4 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
> +BASE_LIB_tune-armv8a-crc = "lib64"
>
> then multilib behaves as it did before. Is this the correct fix?

it is in right direction, while you are at it also add it for other armv8 tunes

BASE_LIB_tune-armv8a                    = "lib64"
BASE_LIB_tune-armv8a-crc                = "lib64"
BASE_LIB_tune-armv8a-crypto             = "lib64"
BASE_LIB_tune-armv8a-crc-crypto         = "lib64"

>
> Thanks.
>
> Mike.


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

end of thread, other threads:[~2019-02-23 20:05 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-05  2:57 [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Khem Raj
2019-02-05  2:57 ` [PATCH 2/6] ThunderX: update the armv8a rules Khem Raj
2019-02-05  2:57 ` [PATCH 3/6] tune-cortexa32: add tunes for ARM Cortex-A32 Khem Raj
2019-02-05  2:57 ` [PATCH 4/6] tune-cortexa35: add tunes for ARM Cortex-A35 Khem Raj
2019-02-05  2:57 ` [PATCH 5/6] tune-cortexa53: add tunes for ARM Cortex-A53 Khem Raj
2019-02-05  2:57 ` [PATCH 6/6] tune-cortexa72: add tunes for ARM Cortex-A72 Khem Raj
2019-02-05 15:12 ` [PATCH 1/6] arch-armv8a.inc: add tune include for armv8 Richard Purdie
2019-02-05 15:57   ` Khem Raj
2019-02-05 15:57 ` akuster808
2019-02-05 17:37   ` Khem Raj
2019-02-23 19:37 ` Mike Crowe
2019-02-23 20:04   ` Khem Raj

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.