All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits
@ 2016-11-20 12:10 Herve Jourdain
  2016-11-20 12:10 ` [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a Herve Jourdain
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Herve Jourdain @ 2016-11-20 12:10 UTC (permalink / raw)
  To: openembedded-core

Add a tune file for cortexa53, valid for 32 bits and 64 bits
It requires adding options in arch-armv8.inc to support 32 bits options

Herve Jourdain (3):
  arch-arm64.inc: include arch-armv7ve instead of arch-armv7a
  arch-armv8.inc: add support for 32bits armv8 options
  Add a tune file for cortexa53, valid for 32 bits and 64 bits

 meta/conf/machine/include/arm/arch-arm64.inc |  2 +-
 meta/conf/machine/include/arm/arch-armv8.inc | 60 ++++++++++++++++++++++++++++
 meta/conf/machine/include/tune-cortexa53.inc | 43 ++++++++++++++++++++
 3 files changed, 104 insertions(+), 1 deletion(-)
 create mode 100644 meta/conf/machine/include/tune-cortexa53.inc

-- 
2.7.4



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

* [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a
  2016-11-20 12:10 [PATCH v3 0/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits Herve Jourdain
@ 2016-11-20 12:10 ` Herve Jourdain
  2016-11-20 19:35   ` Khem Raj
  2016-11-20 12:10 ` [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options Herve Jourdain
  2016-11-20 12:10 ` [PATCH v3 3/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits Herve Jourdain
  2 siblings, 1 reply; 12+ messages in thread
From: Herve Jourdain @ 2016-11-20 12:10 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
---
 meta/conf/machine/include/arm/arch-arm64.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
index 9440698..9eeffac 100644
--- a/meta/conf/machine/include/arm/arch-arm64.inc
+++ b/meta/conf/machine/include/arm/arch-arm64.inc
@@ -1,6 +1,6 @@
 DEFAULTTUNE ?= "aarch64"
 
-require conf/machine/include/arm/arch-armv7a.inc
+require conf/machine/include/arm/arch-armv7ve.inc
 
 TUNEVALID[aarch64] = "Enable instructions for aarch64"
 
-- 
2.7.4



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

* [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options
  2016-11-20 12:10 [PATCH v3 0/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits Herve Jourdain
  2016-11-20 12:10 ` [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a Herve Jourdain
@ 2016-11-20 12:10 ` Herve Jourdain
  2016-11-20 19:37   ` Khem Raj
  2016-11-20 12:10 ` [PATCH v3 3/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits Herve Jourdain
  2 siblings, 1 reply; 12+ messages in thread
From: Herve Jourdain @ 2016-11-20 12:10 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
---
 meta/conf/machine/include/arm/arch-armv8.inc | 60 ++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
index 5e832fa..8c96efc 100644
--- a/meta/conf/machine/include/arm/arch-armv8.inc
+++ b/meta/conf/machine/include/arm/arch-armv8.inc
@@ -1 +1,61 @@
 require conf/machine/include/arm/arch-arm64.inc
+
+TUNEVALID[armv8] = "Enable instructions for ARMv8"
+TUNECONFLICTS[armv8] = "armv4 armv5 armv6 armv7 armv7a armv7ve"
+
+TUNE_CCARGS .= \
+"${@' -march=armv8-a+crypto+crc' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8', 'crcv8' ], True, False, d) else\
+' -march=armv8-a+crypto' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8' ], True, False, d) else\
+' -march=armv8-a+crc' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'crcv8' ], True, False, d) else \
+bb.utils.contains('TUNE_FEATURES', 'armv8', ' -march=armv8-a', '', d)}"
+
+TUNE_CCARGS_MFPU .= \
+"${@' crypto-neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon', 'cryptov8' ], True, False, d) else \
+' neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon' ], True, False, d) else \
+bb.utils.contains('TUNE_FEATURES', [ 'armv8' ], ' fp-armv8', '', d)}"
+
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8', 'armv8:', '' ,d)}"
+
+AVAILTUNES += "armv8 armv8-crypto armv8-crc armv8-crypto-crc"
+TUNE_FEATURES_tune-armv8 = "armv8"
+TUNE_FEATURES_tune-armv8-crypto = "${TUNE_FEATURES_tune-armv8} cryptov8"
+TUNE_FEATURES_tune-armv8-crc = "${TUNE_FEATURES_tune-armv8} crcv8"
+TUNE_FEATURES_tune-armv8-crypto-crc = "${TUNE_FEATURES_tune-armv8} cryptov8 crcv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8 = "armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto-crc"
+
+AVAILTUNES += "armv8-neon armv8-neon-crypto armv8-neon-crc armv8-neon-crypto-crc"
+TUNE_FEATURES_tune-armv8-neon = "${TUNE_FEATURES_tune-armv8} neon"
+TUNE_FEATURES_tune-armv8-neon-crypto = "${TUNE_FEATURES_tune-armv8-crypto} neon"
+TUNE_FEATURES_tune-armv8-neon-crc = "${TUNE_FEATURES_tune-armv8-crc} neon"
+TUNE_FEATURES_tune-armv8-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto} armv8-neon-crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crc} armv8-neon-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc} armv8-neon-crypto-crc"
+
+AVAILTUNES += "armv8hf armv8hf-crypto armv8hf-crc armv8hf-crypto-crc"
+TUNE_FEATURES_tune-armv8hf = "${TUNE_FEATURES_tune-armv8} callconvention-hard"
+TUNE_FEATURES_tune-armv8hf-crypto = "${TUNE_FEATURES_tune-armv8-crypto} callconvention-hard"
+TUNE_FEATURES_tune-armv8hf-crc = "${TUNE_FEATURES_tune-armv8-crc} callconvention-hard"
+TUNE_FEATURES_tune-armv8hf-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} callconvention-hard"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf = "armv8hf"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto-crc"
+
+AVAILTUNES += "armv8hf-neon armv8hf-neon-crypto armv8hf-neon-crc armv8hf-neon-crypto-crc"
+TUNE_FEATURES_tune-armv8hf-neon = "${TUNE_FEATURES_tune-armv8hf} neon"
+TUNE_FEATURES_tune-armv8hf-neon-crypto = "${TUNE_FEATURES_tune-armv8hf-crypto} neon"
+TUNE_FEATURES_tune-armv8hf-neon-crc = "${TUNE_FEATURES_tune-armv8hf-crc} neon"
+TUNE_FEATURES_tune-armv8hf-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8hf-crypto-crc} neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto} armv8hf-neon-crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc} armv8hf-neon-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc} armv8hf-neon-crypto-crc"
+
+TUNEVALID[cryptov8] = "Enable armv8 crypto extensions"
+TUNEVALID[crcv8] = "Enable armv8 crc extensions"
+
-- 
2.7.4



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

* [PATCH v3 3/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits
  2016-11-20 12:10 [PATCH v3 0/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits Herve Jourdain
  2016-11-20 12:10 ` [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a Herve Jourdain
  2016-11-20 12:10 ` [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options Herve Jourdain
@ 2016-11-20 12:10 ` Herve Jourdain
  2016-11-20 19:31   ` Khem Raj
  2 siblings, 1 reply; 12+ messages in thread
From: Herve Jourdain @ 2016-11-20 12:10 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
---
 meta/conf/machine/include/tune-cortexa53.inc | 43 ++++++++++++++++++++++++++++
 1 file changed, 43 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 0000000..1d2947f
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa53.inc
@@ -0,0 +1,43 @@
+DEFAULTTUNE ?= "cortexa53-32"
+
+require conf/machine/include/arm/arch-armv8.inc
+
+TUNEVALID[cortexa53] = "Enable Cortex-A53 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa53', ' -mcpu=cortex-a53 ', '',d)}"
+
+# Extra tune selections
+AVAILTUNES += "cortexa53-32"
+ARMPKGARCH_tune-cortexa53-32 ?= "cortexa53"
+TUNE_FEATURES_tune-cortexa53-32 = "${TUNE_FEATURES_tune-armv8-neon-crc} cortexa53"
+BASE_LIB_tune-cortexa53-32 = "lib"
+TUNE_PKGARCH_tune-cortexa53-32 = "cortexa53-32"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crc} cortexa53-32 cortexa53-neon-fp-armv8"
+
+AVAILTUNES += "cortexa53crypto-32"
+ARMPKGARCH_tune-cortexa53crypto-32 ?= "cortexa53"
+TUNE_FEATURES_tune-cortexa53crypto-32 = "${TUNE_FEATURES_tune-armv8-neon-crypto-crc} cortexa53"
+BASE_LIB_tune-cortexa53crypto-32 = "lib"
+TUNE_PKGARCH_tune-cortexa53crypto-32 = "cortexa53crypto-32"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53crypto-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto-crc} cortexa53-32 cortexa53-crypto-neon-fp-armv8"
+
+AVAILTUNES += "cortexa53hf-32"
+ARMPKGARCH_tune-cortexa53hf-32 ?= "cortexa53"
+TUNE_FEATURES_tune-cortexa53hf-32 = "${TUNE_FEATURES_tune-armv8hf-neon-crc} cortexa53"
+BASE_LIB_tune-cortexa53hf-32 = "lib"
+TUNE_PKGARCH_tune-cortexa53hf-32 = "cortexa53hf-32"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53hf-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crc} cortexa53hf-32 cortexa53hf-neon-fp-armv8"
+
+AVAILTUNES += "cortexa53hfcrypto-32"
+ARMPKGARCH_tune-cortexa53hfcrypto-32 ?= "cortexa53"
+TUNE_FEATURES_tune-cortexa53hfcrypto-32 = "${TUNE_FEATURES_tune-armv8hf-neon-crypto-crc} cortexa53"
+BASE_LIB_tune-cortexa53hfcrypto-32 = "lib"
+TUNE_PKGARCH_tune-cortexa53hfcrypto-32 = "cortexa53hfcrypto-32"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53hfcrypto-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto-crc} cortexa53hf-32 cortexa53hf-crypto-neon-fp-armv8"
+
+AVAILTUNES += "cortexa53-64"
+ARMPKGARCH_tune-cortexa53-64 ?= "cortexa53"
+TUNE_FEATURES_tune-cortexa53-64 = "${TUNE_FEATURES_tune-aarch64} cortexa53"
+BASE_LIB_tune-cortexa53-64 = "lib64"
+TUNE_PKGARCH_tune-cortexa53-64 = "cortexa53-64"
+PACKAGE_EXTRA_ARCHS_tune-cortexa53-64 = "${PACKAGE_EXTRA_ARCHS_tune-aarch64} cortexa53-64"
+
-- 
2.7.4



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

* Re: [PATCH v3 3/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits
  2016-11-20 12:10 ` [PATCH v3 3/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits Herve Jourdain
@ 2016-11-20 19:31   ` Khem Raj
  0 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2016-11-20 19:31 UTC (permalink / raw)
  To: Herve Jourdain; +Cc: Patches and discussions about the oe-core layer

Is there any advantage of having all these tunes for armv8 as well ?

On Sun, Nov 20, 2016 at 4:10 AM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
> Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
> ---
>  meta/conf/machine/include/tune-cortexa53.inc | 43 ++++++++++++++++++++++++++++
>  1 file changed, 43 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 0000000..1d2947f
> --- /dev/null
> +++ b/meta/conf/machine/include/tune-cortexa53.inc
> @@ -0,0 +1,43 @@
> +DEFAULTTUNE ?= "cortexa53-32"
> +
> +require conf/machine/include/arm/arch-armv8.inc
> +
> +TUNEVALID[cortexa53] = "Enable Cortex-A53 specific processor optimizations"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa53', ' -mcpu=cortex-a53 ', '',d)}"
> +
> +# Extra tune selections
> +AVAILTUNES += "cortexa53-32"
> +ARMPKGARCH_tune-cortexa53-32 ?= "cortexa53"
> +TUNE_FEATURES_tune-cortexa53-32 = "${TUNE_FEATURES_tune-armv8-neon-crc} cortexa53"
> +BASE_LIB_tune-cortexa53-32 = "lib"
> +TUNE_PKGARCH_tune-cortexa53-32 = "cortexa53-32"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa53-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crc} cortexa53-32 cortexa53-neon-fp-armv8"
> +
> +AVAILTUNES += "cortexa53crypto-32"
> +ARMPKGARCH_tune-cortexa53crypto-32 ?= "cortexa53"
> +TUNE_FEATURES_tune-cortexa53crypto-32 = "${TUNE_FEATURES_tune-armv8-neon-crypto-crc} cortexa53"
> +BASE_LIB_tune-cortexa53crypto-32 = "lib"
> +TUNE_PKGARCH_tune-cortexa53crypto-32 = "cortexa53crypto-32"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa53crypto-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto-crc} cortexa53-32 cortexa53-crypto-neon-fp-armv8"
> +
> +AVAILTUNES += "cortexa53hf-32"
> +ARMPKGARCH_tune-cortexa53hf-32 ?= "cortexa53"
> +TUNE_FEATURES_tune-cortexa53hf-32 = "${TUNE_FEATURES_tune-armv8hf-neon-crc} cortexa53"
> +BASE_LIB_tune-cortexa53hf-32 = "lib"
> +TUNE_PKGARCH_tune-cortexa53hf-32 = "cortexa53hf-32"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa53hf-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crc} cortexa53hf-32 cortexa53hf-neon-fp-armv8"
> +
> +AVAILTUNES += "cortexa53hfcrypto-32"
> +ARMPKGARCH_tune-cortexa53hfcrypto-32 ?= "cortexa53"
> +TUNE_FEATURES_tune-cortexa53hfcrypto-32 = "${TUNE_FEATURES_tune-armv8hf-neon-crypto-crc} cortexa53"
> +BASE_LIB_tune-cortexa53hfcrypto-32 = "lib"
> +TUNE_PKGARCH_tune-cortexa53hfcrypto-32 = "cortexa53hfcrypto-32"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa53hfcrypto-32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto-crc} cortexa53hf-32 cortexa53hf-crypto-neon-fp-armv8"
> +
> +AVAILTUNES += "cortexa53-64"
> +ARMPKGARCH_tune-cortexa53-64 ?= "cortexa53"
> +TUNE_FEATURES_tune-cortexa53-64 = "${TUNE_FEATURES_tune-aarch64} cortexa53"
> +BASE_LIB_tune-cortexa53-64 = "lib64"
> +TUNE_PKGARCH_tune-cortexa53-64 = "cortexa53-64"
> +PACKAGE_EXTRA_ARCHS_tune-cortexa53-64 = "${PACKAGE_EXTRA_ARCHS_tune-aarch64} cortexa53-64"
> +
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a
  2016-11-20 12:10 ` [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a Herve Jourdain
@ 2016-11-20 19:35   ` Khem Raj
  2016-11-21  5:12     ` Herve Jourdain
  0 siblings, 1 reply; 12+ messages in thread
From: Khem Raj @ 2016-11-20 19:35 UTC (permalink / raw)
  To: Herve Jourdain; +Cc: Patches and discussions about the oe-core layer

On Sun, Nov 20, 2016 at 4:10 AM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
> Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
> ---
>  meta/conf/machine/include/arm/arch-arm64.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
> index 9440698..9eeffac 100644
> --- a/meta/conf/machine/include/arm/arch-arm64.inc
> +++ b/meta/conf/machine/include/arm/arch-arm64.inc
> @@ -1,6 +1,6 @@
>  DEFAULTTUNE ?= "aarch64"
>
> -require conf/machine/include/arm/arch-armv7a.inc
> +require conf/machine/include/arm/arch-armv7ve.inc

This is ok. However a better commit message would be justified.
I have similar patch see

https://github.com/kraj/openembedded-core/commit/8ece89ac164062601d3418576d51434c69654e28

>
>  TUNEVALID[aarch64] = "Enable instructions for aarch64"
>
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options
  2016-11-20 12:10 ` [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options Herve Jourdain
@ 2016-11-20 19:37   ` Khem Raj
  2016-11-21  5:02     ` Herve Jourdain
  0 siblings, 1 reply; 12+ messages in thread
From: Khem Raj @ 2016-11-20 19:37 UTC (permalink / raw)
  To: Herve Jourdain; +Cc: Patches and discussions about the oe-core layer

I dont think we need these many variats for v8, axxia has been
carrying such patches locally.
see
https://github.com/axxia/meta-axxia/tree/master/conf/machine/include

On Sun, Nov 20, 2016 at 4:10 AM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
> Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
> ---
>  meta/conf/machine/include/arm/arch-armv8.inc | 60 ++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)
>
> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
> index 5e832fa..8c96efc 100644
> --- a/meta/conf/machine/include/arm/arch-armv8.inc
> +++ b/meta/conf/machine/include/arm/arch-armv8.inc
> @@ -1 +1,61 @@
>  require conf/machine/include/arm/arch-arm64.inc
> +
> +TUNEVALID[armv8] = "Enable instructions for ARMv8"
> +TUNECONFLICTS[armv8] = "armv4 armv5 armv6 armv7 armv7a armv7ve"
> +
> +TUNE_CCARGS .= \
> +"${@' -march=armv8-a+crypto+crc' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8', 'crcv8' ], True, False, d) else\
> +' -march=armv8-a+crypto' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8' ], True, False, d) else\
> +' -march=armv8-a+crc' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'crcv8' ], True, False, d) else \
> +bb.utils.contains('TUNE_FEATURES', 'armv8', ' -march=armv8-a', '', d)}"
> +
> +TUNE_CCARGS_MFPU .= \
> +"${@' crypto-neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon', 'cryptov8' ], True, False, d) else \
> +' neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon' ], True, False, d) else \
> +bb.utils.contains('TUNE_FEATURES', [ 'armv8' ], ' fp-armv8', '', d)}"
> +
> +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8', 'armv8:', '' ,d)}"
> +
> +AVAILTUNES += "armv8 armv8-crypto armv8-crc armv8-crypto-crc"
> +TUNE_FEATURES_tune-armv8 = "armv8"
> +TUNE_FEATURES_tune-armv8-crypto = "${TUNE_FEATURES_tune-armv8} cryptov8"
> +TUNE_FEATURES_tune-armv8-crc = "${TUNE_FEATURES_tune-armv8} crcv8"
> +TUNE_FEATURES_tune-armv8-crypto-crc = "${TUNE_FEATURES_tune-armv8} cryptov8 crcv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8 = "armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto-crc"
> +
> +AVAILTUNES += "armv8-neon armv8-neon-crypto armv8-neon-crc armv8-neon-crypto-crc"
> +TUNE_FEATURES_tune-armv8-neon = "${TUNE_FEATURES_tune-armv8} neon"
> +TUNE_FEATURES_tune-armv8-neon-crypto = "${TUNE_FEATURES_tune-armv8-crypto} neon"
> +TUNE_FEATURES_tune-armv8-neon-crc = "${TUNE_FEATURES_tune-armv8-crc} neon"
> +TUNE_FEATURES_tune-armv8-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto} armv8-neon-crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crc} armv8-neon-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc} armv8-neon-crypto-crc"
> +
> +AVAILTUNES += "armv8hf armv8hf-crypto armv8hf-crc armv8hf-crypto-crc"
> +TUNE_FEATURES_tune-armv8hf = "${TUNE_FEATURES_tune-armv8} callconvention-hard"
> +TUNE_FEATURES_tune-armv8hf-crypto = "${TUNE_FEATURES_tune-armv8-crypto} callconvention-hard"
> +TUNE_FEATURES_tune-armv8hf-crc = "${TUNE_FEATURES_tune-armv8-crc} callconvention-hard"
> +TUNE_FEATURES_tune-armv8hf-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} callconvention-hard"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf = "armv8hf"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto-crc"
> +
> +AVAILTUNES += "armv8hf-neon armv8hf-neon-crypto armv8hf-neon-crc armv8hf-neon-crypto-crc"
> +TUNE_FEATURES_tune-armv8hf-neon = "${TUNE_FEATURES_tune-armv8hf} neon"
> +TUNE_FEATURES_tune-armv8hf-neon-crypto = "${TUNE_FEATURES_tune-armv8hf-crypto} neon"
> +TUNE_FEATURES_tune-armv8hf-neon-crc = "${TUNE_FEATURES_tune-armv8hf-crc} neon"
> +TUNE_FEATURES_tune-armv8hf-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8hf-crypto-crc} neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto} armv8hf-neon-crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc} armv8hf-neon-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc} armv8hf-neon-crypto-crc"
> +
> +TUNEVALID[cryptov8] = "Enable armv8 crypto extensions"
> +TUNEVALID[crcv8] = "Enable armv8 crc extensions"
> +
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options
  2016-11-20 19:37   ` Khem Raj
@ 2016-11-21  5:02     ` Herve Jourdain
  2016-11-21  9:15       ` Fathi Boudra
  0 siblings, 1 reply; 12+ messages in thread
From: Herve Jourdain @ 2016-11-21  5:02 UTC (permalink / raw)
  To: 'Khem Raj'
  Cc: 'Patches and discussions about the oe-core layer'

Hi Khem,

It does cover all the possibilities in armv8 (3 possible FPU and 2 possible options - crc and crypto).
So if we want to be exhaustive, we probably need something similar.
If we just want to support cortex-a53, then we can trim a bit.

I was not aware of the Axxia work, it could also be used in oe-core instead of my patch, actually.
But if you check what they did, they do define nearly as many - with the exception of the softfloat option, in their case aarch32 is always hf. That's a possibility that could be considered, but I initially tried to provide as much "features" for aarch32 as there was for armv7ve - including the option to do softfloat...

Please let me know what you'd like me to do, amend my patch to remove softfloat cases, or just get the axxia patches into oe-core, or something else?

Herve

-----Original Message-----
From: Khem Raj [mailto:raj.khem@gmail.com] 
Sent: dimanche 20 novembre 2016 20:37
To: Herve Jourdain <herve.jourdain@neuf.fr>
Cc: Patches and discussions about the oe-core layer <openembedded-core@lists.openembedded.org>
Subject: Re: [OE-core] [oe-core][PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options

I dont think we need these many variats for v8, axxia has been carrying such patches locally.
see
https://github.com/axxia/meta-axxia/tree/master/conf/machine/include

On Sun, Nov 20, 2016 at 4:10 AM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
> Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
> ---
>  meta/conf/machine/include/arm/arch-armv8.inc | 60 
> ++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)
>
> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc 
> b/meta/conf/machine/include/arm/arch-armv8.inc
> index 5e832fa..8c96efc 100644
> --- a/meta/conf/machine/include/arm/arch-armv8.inc
> +++ b/meta/conf/machine/include/arm/arch-armv8.inc
> @@ -1 +1,61 @@
>  require conf/machine/include/arm/arch-arm64.inc
> +
> +TUNEVALID[armv8] = "Enable instructions for ARMv8"
> +TUNECONFLICTS[armv8] = "armv4 armv5 armv6 armv7 armv7a armv7ve"
> +
> +TUNE_CCARGS .= \
> +"${@' -march=armv8-a+crypto+crc' if 
> +bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8', 'crcv8' ], 
> +True, False, d) else\ ' -march=armv8-a+crypto' if 
> +bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8' ], True, False, d) else\ ' -march=armv8-a+crc' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'crcv8' ], True, False, d) else \ bb.utils.contains('TUNE_FEATURES', 'armv8', ' -march=armv8-a', '', d)}"
> +
> +TUNE_CCARGS_MFPU .= \
> +"${@' crypto-neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 
> +'armv8', 'neon', 'cryptov8' ], True, False, d) else \ ' 
> +neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon' ], True, False, d) else \ bb.utils.contains('TUNE_FEATURES', [ 'armv8' ], ' fp-armv8', '', d)}"
> +
> +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8', 'armv8:', '' ,d)}"
> +
> +AVAILTUNES += "armv8 armv8-crypto armv8-crc armv8-crypto-crc"
> +TUNE_FEATURES_tune-armv8 = "armv8"
> +TUNE_FEATURES_tune-armv8-crypto = "${TUNE_FEATURES_tune-armv8} cryptov8"
> +TUNE_FEATURES_tune-armv8-crc = "${TUNE_FEATURES_tune-armv8} crcv8"
> +TUNE_FEATURES_tune-armv8-crypto-crc = "${TUNE_FEATURES_tune-armv8} cryptov8 crcv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8 = "armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto-crc"
> +
> +AVAILTUNES += "armv8-neon armv8-neon-crypto armv8-neon-crc armv8-neon-crypto-crc"
> +TUNE_FEATURES_tune-armv8-neon = "${TUNE_FEATURES_tune-armv8} neon"
> +TUNE_FEATURES_tune-armv8-neon-crypto = "${TUNE_FEATURES_tune-armv8-crypto} neon"
> +TUNE_FEATURES_tune-armv8-neon-crc = "${TUNE_FEATURES_tune-armv8-crc} neon"
> +TUNE_FEATURES_tune-armv8-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto} armv8-neon-crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crc} armv8-neon-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc} armv8-neon-crypto-crc"
> +
> +AVAILTUNES += "armv8hf armv8hf-crypto armv8hf-crc armv8hf-crypto-crc"
> +TUNE_FEATURES_tune-armv8hf = "${TUNE_FEATURES_tune-armv8} callconvention-hard"
> +TUNE_FEATURES_tune-armv8hf-crypto = "${TUNE_FEATURES_tune-armv8-crypto} callconvention-hard"
> +TUNE_FEATURES_tune-armv8hf-crc = "${TUNE_FEATURES_tune-armv8-crc} callconvention-hard"
> +TUNE_FEATURES_tune-armv8hf-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} callconvention-hard"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf = "armv8hf"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto-crc"
> +
> +AVAILTUNES += "armv8hf-neon armv8hf-neon-crypto armv8hf-neon-crc armv8hf-neon-crypto-crc"
> +TUNE_FEATURES_tune-armv8hf-neon = "${TUNE_FEATURES_tune-armv8hf} neon"
> +TUNE_FEATURES_tune-armv8hf-neon-crypto = "${TUNE_FEATURES_tune-armv8hf-crypto} neon"
> +TUNE_FEATURES_tune-armv8hf-neon-crc = "${TUNE_FEATURES_tune-armv8hf-crc} neon"
> +TUNE_FEATURES_tune-armv8hf-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8hf-crypto-crc} neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto} armv8hf-neon-crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc} armv8hf-neon-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc} armv8hf-neon-crypto-crc"
> +
> +TUNEVALID[cryptov8] = "Enable armv8 crypto extensions"
> +TUNEVALID[crcv8] = "Enable armv8 crc extensions"
> +
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



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

* Re: [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a
  2016-11-20 19:35   ` Khem Raj
@ 2016-11-21  5:12     ` Herve Jourdain
  2016-11-21 16:36       ` Khem Raj
  0 siblings, 1 reply; 12+ messages in thread
From: Herve Jourdain @ 2016-11-21  5:12 UTC (permalink / raw)
  To: 'Khem Raj'
  Cc: 'Patches and discussions about the oe-core layer'

Hi Khem,

Do you want me to resubmit the patch with a better commit message?
Or do you want to submit yours instead?
I'm fine either way.

Herve

-----Original Message-----
From: Khem Raj [mailto:raj.khem@gmail.com] 
Sent: dimanche 20 novembre 2016 20:35
To: Herve Jourdain <herve.jourdain@neuf.fr>
Cc: Patches and discussions about the oe-core layer <openembedded-core@lists.openembedded.org>
Subject: Re: [OE-core] [oe-core][PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a

On Sun, Nov 20, 2016 at 4:10 AM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
> Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
> ---
>  meta/conf/machine/include/arm/arch-arm64.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
> index 9440698..9eeffac 100644
> --- a/meta/conf/machine/include/arm/arch-arm64.inc
> +++ b/meta/conf/machine/include/arm/arch-arm64.inc
> @@ -1,6 +1,6 @@
>  DEFAULTTUNE ?= "aarch64"
>
> -require conf/machine/include/arm/arch-armv7a.inc
> +require conf/machine/include/arm/arch-armv7ve.inc

This is ok. However a better commit message would be justified.
I have similar patch see

https://github.com/kraj/openembedded-core/commit/8ece89ac164062601d3418576d51434c69654e28

>
>  TUNEVALID[aarch64] = "Enable instructions for aarch64"
>
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



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

* Re: [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options
  2016-11-21  5:02     ` Herve Jourdain
@ 2016-11-21  9:15       ` Fathi Boudra
  2016-11-21 11:05         ` Herve Jourdain
  0 siblings, 1 reply; 12+ messages in thread
From: Fathi Boudra @ 2016-11-21  9:15 UTC (permalink / raw)
  To: Herve Jourdain; +Cc: Patches and discussions about the oe-core layer

Hi,

On 21 November 2016 at 07:02, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
> Hi Khem,
>
> It does cover all the possibilities in armv8 (3 possible FPU and 2 possible options - crc and crypto).
> So if we want to be exhaustive, we probably need something similar.
> If we just want to support cortex-a53, then we can trim a bit.
>
> I was not aware of the Axxia work, it could also be used in oe-core instead of my patch, actually.
> But if you check what they did, they do define nearly as many - with the exception of the softfloat option, in their case aarch32 is always hf. That's a possibility that could be considered, but I initially tried to provide as much "features" for aarch32 as there was for armv7ve - including the option to do softfloat...

There is a clear statement that _currently_ there is no soft / softfp
ABI for AArch64.
For armv8-a compliant hardware it must have NEON.
But, still, one _can_ compile for aarch32-mode on armv8-a in soft or
softp float-abi, and it will run.
There is no statement that armv8-a can't use soft or soft-fp ABI from armv7-a.

> Please let me know what you'd like me to do, amend my patch to remove softfloat cases, or just get the axxia patches into oe-core, or something else?
>
> Herve
>
> -----Original Message-----
> From: Khem Raj [mailto:raj.khem@gmail.com]
> Sent: dimanche 20 novembre 2016 20:37
> To: Herve Jourdain <herve.jourdain@neuf.fr>
> Cc: Patches and discussions about the oe-core layer <openembedded-core@lists.openembedded.org>
> Subject: Re: [OE-core] [oe-core][PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options
>
> I dont think we need these many variats for v8, axxia has been carrying such patches locally.
> see
> https://github.com/axxia/meta-axxia/tree/master/conf/machine/include
>
> On Sun, Nov 20, 2016 at 4:10 AM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
>> Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
>> ---
>>  meta/conf/machine/include/arm/arch-armv8.inc | 60
>> ++++++++++++++++++++++++++++
>>  1 file changed, 60 insertions(+)
>>
>> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc
>> b/meta/conf/machine/include/arm/arch-armv8.inc
>> index 5e832fa..8c96efc 100644
>> --- a/meta/conf/machine/include/arm/arch-armv8.inc
>> +++ b/meta/conf/machine/include/arm/arch-armv8.inc
>> @@ -1 +1,61 @@
>>  require conf/machine/include/arm/arch-arm64.inc
>> +
>> +TUNEVALID[armv8] = "Enable instructions for ARMv8"
>> +TUNECONFLICTS[armv8] = "armv4 armv5 armv6 armv7 armv7a armv7ve"
>> +
>> +TUNE_CCARGS .= \
>> +"${@' -march=armv8-a+crypto+crc' if
>> +bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8', 'crcv8' ],
>> +True, False, d) else\ ' -march=armv8-a+crypto' if
>> +bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8' ], True, False, d) else\ ' -march=armv8-a+crc' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'crcv8' ], True, False, d) else \ bb.utils.contains('TUNE_FEATURES', 'armv8', ' -march=armv8-a', '', d)}"
>> +
>> +TUNE_CCARGS_MFPU .= \
>> +"${@' crypto-neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [
>> +'armv8', 'neon', 'cryptov8' ], True, False, d) else \ '
>> +neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon' ], True, False, d) else \ bb.utils.contains('TUNE_FEATURES', [ 'armv8' ], ' fp-armv8', '', d)}"
>> +
>> +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8', 'armv8:', '' ,d)}"
>> +
>> +AVAILTUNES += "armv8 armv8-crypto armv8-crc armv8-crypto-crc"
>> +TUNE_FEATURES_tune-armv8 = "armv8"
>> +TUNE_FEATURES_tune-armv8-crypto = "${TUNE_FEATURES_tune-armv8} cryptov8"
>> +TUNE_FEATURES_tune-armv8-crc = "${TUNE_FEATURES_tune-armv8} crcv8"
>> +TUNE_FEATURES_tune-armv8-crypto-crc = "${TUNE_FEATURES_tune-armv8} cryptov8 crcv8"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8 = "armv8"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto-crc"
>> +
>> +AVAILTUNES += "armv8-neon armv8-neon-crypto armv8-neon-crc armv8-neon-crypto-crc"
>> +TUNE_FEATURES_tune-armv8-neon = "${TUNE_FEATURES_tune-armv8} neon"
>> +TUNE_FEATURES_tune-armv8-neon-crypto = "${TUNE_FEATURES_tune-armv8-crypto} neon"
>> +TUNE_FEATURES_tune-armv8-neon-crc = "${TUNE_FEATURES_tune-armv8-crc} neon"
>> +TUNE_FEATURES_tune-armv8-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto} armv8-neon-crypto"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crc} armv8-neon-crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc} armv8-neon-crypto-crc"
>> +
>> +AVAILTUNES += "armv8hf armv8hf-crypto armv8hf-crc armv8hf-crypto-crc"
>> +TUNE_FEATURES_tune-armv8hf = "${TUNE_FEATURES_tune-armv8} callconvention-hard"
>> +TUNE_FEATURES_tune-armv8hf-crypto = "${TUNE_FEATURES_tune-armv8-crypto} callconvention-hard"
>> +TUNE_FEATURES_tune-armv8hf-crc = "${TUNE_FEATURES_tune-armv8-crc} callconvention-hard"
>> +TUNE_FEATURES_tune-armv8hf-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} callconvention-hard"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf = "armv8hf"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto-crc"
>> +
>> +AVAILTUNES += "armv8hf-neon armv8hf-neon-crypto armv8hf-neon-crc armv8hf-neon-crypto-crc"
>> +TUNE_FEATURES_tune-armv8hf-neon = "${TUNE_FEATURES_tune-armv8hf} neon"
>> +TUNE_FEATURES_tune-armv8hf-neon-crypto = "${TUNE_FEATURES_tune-armv8hf-crypto} neon"
>> +TUNE_FEATURES_tune-armv8hf-neon-crc = "${TUNE_FEATURES_tune-armv8hf-crc} neon"
>> +TUNE_FEATURES_tune-armv8hf-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8hf-crypto-crc} neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto} armv8hf-neon-crypto"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc} armv8hf-neon-crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc} armv8hf-neon-crypto-crc"
>> +
>> +TUNEVALID[cryptov8] = "Enable armv8 crypto extensions"
>> +TUNEVALID[crcv8] = "Enable armv8 crc extensions"
>> +
>> --
>> 2.7.4
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

Cheers,
-- 
Fathi Boudra
Linaro.org | Open source software for ARM SoCs


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

* Re: [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options
  2016-11-21  9:15       ` Fathi Boudra
@ 2016-11-21 11:05         ` Herve Jourdain
  0 siblings, 0 replies; 12+ messages in thread
From: Herve Jourdain @ 2016-11-21 11:05 UTC (permalink / raw)
  To: 'Fathi Boudra'
  Cc: 'Patches and discussions about the oe-core layer'

Hi Fathi,

I do agree with both of your statements, which is why I did it that way.
But if some people want less tunes, that's the only way I can think of - because crc and crypto are not going away in armv8.
I can re-write the file in a nicer way, but the amount of tunes, if we want to give something similar in possibilities for armv8 aarch32 to what we had with armv7ve, can hardly be smaller I believe.
So at the end of the day, it's a choice between completeness and convenience, I guess.

Herve

-----Original Message-----
From: Fathi Boudra [mailto:fathi.boudra@linaro.org] 
Sent: lundi 21 novembre 2016 10:15
To: Herve Jourdain <herve.jourdain@neuf.fr>
Cc: Khem Raj <raj.khem@gmail.com>; Patches and discussions about the oe-core layer <openembedded-core@lists.openembedded.org>
Subject: Re: [OE-core] [oe-core][PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options

Hi,

On 21 November 2016 at 07:02, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
> Hi Khem,
>
> It does cover all the possibilities in armv8 (3 possible FPU and 2 possible options - crc and crypto).
> So if we want to be exhaustive, we probably need something similar.
> If we just want to support cortex-a53, then we can trim a bit.
>
> I was not aware of the Axxia work, it could also be used in oe-core instead of my patch, actually.
> But if you check what they did, they do define nearly as many - with the exception of the softfloat option, in their case aarch32 is always hf. That's a possibility that could be considered, but I initially tried to provide as much "features" for aarch32 as there was for armv7ve - including the option to do softfloat...

There is a clear statement that _currently_ there is no soft / softfp ABI for AArch64.
For armv8-a compliant hardware it must have NEON.
But, still, one _can_ compile for aarch32-mode on armv8-a in soft or softp float-abi, and it will run.
There is no statement that armv8-a can't use soft or soft-fp ABI from armv7-a.

> Please let me know what you'd like me to do, amend my patch to remove softfloat cases, or just get the axxia patches into oe-core, or something else?
>
> Herve
>
> -----Original Message-----
> From: Khem Raj [mailto:raj.khem@gmail.com]
> Sent: dimanche 20 novembre 2016 20:37
> To: Herve Jourdain <herve.jourdain@neuf.fr>
> Cc: Patches and discussions about the oe-core layer 
> <openembedded-core@lists.openembedded.org>
> Subject: Re: [OE-core] [oe-core][PATCH v3 2/3] arch-armv8.inc: add 
> support for 32bits armv8 options
>
> I dont think we need these many variats for v8, axxia has been carrying such patches locally.
> see
> https://github.com/axxia/meta-axxia/tree/master/conf/machine/include
>
> On Sun, Nov 20, 2016 at 4:10 AM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
>> Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
>> ---
>>  meta/conf/machine/include/arm/arch-armv8.inc | 60
>> ++++++++++++++++++++++++++++
>>  1 file changed, 60 insertions(+)
>>
>> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc
>> b/meta/conf/machine/include/arm/arch-armv8.inc
>> index 5e832fa..8c96efc 100644
>> --- a/meta/conf/machine/include/arm/arch-armv8.inc
>> +++ b/meta/conf/machine/include/arm/arch-armv8.inc
>> @@ -1 +1,61 @@
>>  require conf/machine/include/arm/arch-arm64.inc
>> +
>> +TUNEVALID[armv8] = "Enable instructions for ARMv8"
>> +TUNECONFLICTS[armv8] = "armv4 armv5 armv6 armv7 armv7a armv7ve"
>> +
>> +TUNE_CCARGS .= \
>> +"${@' -march=armv8-a+crypto+crc' if
>> +bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8', 'crcv8' ], 
>> +True, False, d) else\ ' -march=armv8-a+crypto' if 
>> +bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'cryptov8' ], True, False, d) else\ ' -march=armv8-a+crc' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'crcv8' ], True, False, d) else \ bb.utils.contains('TUNE_FEATURES', 'armv8', ' -march=armv8-a', '', d)}"
>> +
>> +TUNE_CCARGS_MFPU .= \
>> +"${@' crypto-neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 
>> +'armv8', 'neon', 'cryptov8' ], True, False, d) else \ '
>> +neon-fp-armv8' if bb.utils.contains('TUNE_FEATURES', [ 'armv8', 'neon' ], True, False, d) else \ bb.utils.contains('TUNE_FEATURES', [ 'armv8' ], ' fp-armv8', '', d)}"
>> +
>> +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8', 'armv8:', '' ,d)}"
>> +
>> +AVAILTUNES += "armv8 armv8-crypto armv8-crc armv8-crypto-crc"
>> +TUNE_FEATURES_tune-armv8 = "armv8"
>> +TUNE_FEATURES_tune-armv8-crypto = "${TUNE_FEATURES_tune-armv8} cryptov8"
>> +TUNE_FEATURES_tune-armv8-crc = "${TUNE_FEATURES_tune-armv8} crcv8"
>> +TUNE_FEATURES_tune-armv8-crypto-crc = "${TUNE_FEATURES_tune-armv8} cryptov8 crcv8"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8 = "armv8"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-crypto-crc"
>> +
>> +AVAILTUNES += "armv8-neon armv8-neon-crypto armv8-neon-crc armv8-neon-crypto-crc"
>> +TUNE_FEATURES_tune-armv8-neon = "${TUNE_FEATURES_tune-armv8} neon"
>> +TUNE_FEATURES_tune-armv8-neon-crypto = "${TUNE_FEATURES_tune-armv8-crypto} neon"
>> +TUNE_FEATURES_tune-armv8-neon-crc = "${TUNE_FEATURES_tune-armv8-crc} neon"
>> +TUNE_FEATURES_tune-armv8-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8} armv8-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto} armv8-neon-crypto"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crc} armv8-neon-crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8-crypto-crc} armv8-neon-crypto-crc"
>> +
>> +AVAILTUNES += "armv8hf armv8hf-crypto armv8hf-crc armv8hf-crypto-crc"
>> +TUNE_FEATURES_tune-armv8hf = "${TUNE_FEATURES_tune-armv8} callconvention-hard"
>> +TUNE_FEATURES_tune-armv8hf-crypto = "${TUNE_FEATURES_tune-armv8-crypto} callconvention-hard"
>> +TUNE_FEATURES_tune-armv8hf-crc = "${TUNE_FEATURES_tune-armv8-crc} callconvention-hard"
>> +TUNE_FEATURES_tune-armv8hf-crypto-crc = "${TUNE_FEATURES_tune-armv8-crypto-crc} callconvention-hard"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf = "armv8hf"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-crypto-crc"
>> +
>> +AVAILTUNES += "armv8hf-neon armv8hf-neon-crypto armv8hf-neon-crc armv8hf-neon-crypto-crc"
>> +TUNE_FEATURES_tune-armv8hf-neon = "${TUNE_FEATURES_tune-armv8hf} neon"
>> +TUNE_FEATURES_tune-armv8hf-neon-crypto = "${TUNE_FEATURES_tune-armv8hf-crypto} neon"
>> +TUNE_FEATURES_tune-armv8hf-neon-crc = "${TUNE_FEATURES_tune-armv8hf-crc} neon"
>> +TUNE_FEATURES_tune-armv8hf-neon-crypto-crc = "${TUNE_FEATURES_tune-armv8hf-crypto-crc} neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf} armv8hf-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto} armv8hf-neon-crypto"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crc} armv8hf-neon-crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8hf-neon-crypto-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8hf-crypto-crc} armv8hf-neon-crypto-crc"
>> +
>> +TUNEVALID[cryptov8] = "Enable armv8 crypto extensions"
>> +TUNEVALID[crcv8] = "Enable armv8 crc extensions"
>> +
>> --
>> 2.7.4
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

Cheers,
--
Fathi Boudra
Linaro.org | Open source software for ARM SoCs



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

* Re: [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a
  2016-11-21  5:12     ` Herve Jourdain
@ 2016-11-21 16:36       ` Khem Raj
  0 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2016-11-21 16:36 UTC (permalink / raw)
  To: Herve Jourdain; +Cc: Patches and discussions about the oe-core layer

On Sun, Nov 20, 2016 at 9:12 PM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
> Hi Khem,
>
> Do you want me to resubmit the patch with a better commit message?
> Or do you want to submit yours instead?
> I'm fine either way.

Dont worry I will submit the one in my tree and add your sign off. if
you test that out.

>
> Herve
>
> -----Original Message-----
> From: Khem Raj [mailto:raj.khem@gmail.com]
> Sent: dimanche 20 novembre 2016 20:35
> To: Herve Jourdain <herve.jourdain@neuf.fr>
> Cc: Patches and discussions about the oe-core layer <openembedded-core@lists.openembedded.org>
> Subject: Re: [OE-core] [oe-core][PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a
>
> On Sun, Nov 20, 2016 at 4:10 AM, Herve Jourdain <herve.jourdain@neuf.fr> wrote:
>> Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
>> ---
>>  meta/conf/machine/include/arm/arch-arm64.inc | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
>> index 9440698..9eeffac 100644
>> --- a/meta/conf/machine/include/arm/arch-arm64.inc
>> +++ b/meta/conf/machine/include/arm/arch-arm64.inc
>> @@ -1,6 +1,6 @@
>>  DEFAULTTUNE ?= "aarch64"
>>
>> -require conf/machine/include/arm/arch-armv7a.inc
>> +require conf/machine/include/arm/arch-armv7ve.inc
>
> This is ok. However a better commit message would be justified.
> I have similar patch see
>
> https://github.com/kraj/openembedded-core/commit/8ece89ac164062601d3418576d51434c69654e28
>
>>
>>  TUNEVALID[aarch64] = "Enable instructions for aarch64"
>>
>> --
>> 2.7.4
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>


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

end of thread, other threads:[~2016-11-21 16:36 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-20 12:10 [PATCH v3 0/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits Herve Jourdain
2016-11-20 12:10 ` [PATCH v3 1/3] arch-arm64.inc: include arch-armv7ve instead of arch-armv7a Herve Jourdain
2016-11-20 19:35   ` Khem Raj
2016-11-21  5:12     ` Herve Jourdain
2016-11-21 16:36       ` Khem Raj
2016-11-20 12:10 ` [PATCH v3 2/3] arch-armv8.inc: add support for 32bits armv8 options Herve Jourdain
2016-11-20 19:37   ` Khem Raj
2016-11-21  5:02     ` Herve Jourdain
2016-11-21  9:15       ` Fathi Boudra
2016-11-21 11:05         ` Herve Jourdain
2016-11-20 12:10 ` [PATCH v3 3/3] Add a tune file for cortexa53, valid for 32 bits and 64 bits Herve Jourdain
2016-11-20 19:31   ` 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.