All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv2] ARMv8 32-bit compiler tunings
@ 2016-02-27 12:44 Daniel Dragomir
  2016-02-27 12:44 ` [PATCHv2] Add tune for 32-bit ARMv8-a Daniel Dragomir
  2016-02-27 13:14 ` [PATCHv2] ARMv8 32-bit compiler tunings Dragomir Daniel
  0 siblings, 2 replies; 10+ messages in thread
From: Daniel Dragomir @ 2016-02-27 12:44 UTC (permalink / raw)
  To: openembedded-core

Hello!

This is a second version for the patch:
http://lists.openembedded.org/pipermail/openembedded-core/2016-February/117603.html

I remove the python method from feature-arm-vfp and I added the TUNE_CCARGS appends for CRC, CRYPTO and fp-armv8 only in armv8a tune file.
I fix some parsing failures for armv7a*-neon-vfpv4 tunes.
Also, I reworked the tunes to eliminate multiple parsing failures that I got running Martin's script.

@Martin, I ran again the script and the results are better. I pushed the results in a personal repo:
Tune results without the patch - clean open-embedded:
https://github.com/ddragomi/tune_test/tree/14861fd72be9aebaaa209d9990d72745c90b43eb/tune

Tune results with this patch (VERSION 2):
https://github.com/ddragomi/tune_test/tree/master/tune

And a diff between those here (I fix some parsing failures for armv7a*-neon-vfpv4 tunes):
https://github.com/ddragomi/tune_test/commit/06fbd558bf7e5d91d312628a023b8c0495e8f37a

NOTE: I also added a new fake-machine (axxiaarm) that require arch-arm8a.inc
to test/parse armv8a tunes:
DEFAULTTUNE ?= "armv8a-neon"
require conf/machine/include/arm/arch-armv8a.inc

Previous message:
Starting with linux-yocto-4.1, Intel provides kernel support for its
ARM v8 Axxia platforms, both on 32-bit and 64-bit.
Poky already contains arm 64-bit compiler tunings, so I added 32-bit
tunings based on those for armv7.

The patch that I send you is a draft. Please review it and if it's ok
I will return with thumb and big-endian tunings.

Best regards,
Daniel Dragomir (1):
  Add tune for 32-bit ARMv8-a

 meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
 meta/conf/machine/include/arm/arch-armv8a.inc | 75 +++++++++++++++++++++++++++
 2 files changed, 77 insertions(+), 2 deletions(-)
 create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

-- 
1.9.1



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

* [PATCHv2] Add tune for 32-bit ARMv8-a
  2016-02-27 12:44 [PATCHv2] ARMv8 32-bit compiler tunings Daniel Dragomir
@ 2016-02-27 12:44 ` Daniel Dragomir
  2016-03-01  0:02   ` Andre McCurdy
  2016-03-02  0:17   ` Andrei Gherzan
  2016-02-27 13:14 ` [PATCHv2] ARMv8 32-bit compiler tunings Dragomir Daniel
  1 sibling, 2 replies; 10+ messages in thread
From: Daniel Dragomir @ 2016-02-27 12:44 UTC (permalink / raw)
  To: openembedded-core

This patch adds tunes for 32-bit armv8 platforms. The user can select
the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
and the Neon, crc and crypto extensions.

Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.

Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com>
---
 meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
 meta/conf/machine/include/arm/arch-armv8a.inc | 75 +++++++++++++++++++++++++++
 2 files changed, 77 insertions(+), 2 deletions(-)
 create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc
index d3b6f64..ff6bc29 100644
--- a/meta/conf/machine/include/arm/arch-armv7a.inc
+++ b/meta/conf/machine/include/arm/arch-armv7a.inc
@@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
 PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfp-vfpv3d16-vfpv3 armv7at2hf-vfp-vfpv3d16-vfpv3"
 PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
 PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon armv7at2hf-vfp-neon"
-PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
-PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-neon-vfpv4 armv7at2hf-vfp-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-vfpv4-neon armv7at2hf-vfp-neon-vfpv4"
 
 # Big Endian
 AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon"
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 0000000..2d8dd73
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -0,0 +1,75 @@
+DEFAULTTUNE ?= "armv8a"
+
+TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
+TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
+
+TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
+ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "-crc", "", d)}"
+
+TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
+ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto", "-crypto", "", d)}"
+
+TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
+ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", "-fp-armv8", "", d)}"
+
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a", bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", " -march=armv8-a", d), "", d)}"
+
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", bb.utils.contains("TUNE_FEATURES", "neon", bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8", " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
+
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv8a", "armv8a:", "" ,d)}"
+
+require conf/machine/include/arm/arch-armv7a.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4 armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon armv8a-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8a ?= "armv8a"
+ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
+ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
+ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
+ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
+ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
+ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
+TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a} vfpv3"
+TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
+TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a} vfpv4"
+TUNE_FEATURES_tune-armv8a-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a} neon vfpv4"
+TUNE_FEATURES_tune-armv8a-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a} fp-armv8"
+TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a} neon fp-armv8"
+TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8a = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv8a armv8a-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon armv8a-vfp-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon armv8a-fp-armv8-vfp-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon} armv8a-crypto-fp-armv8-vfp-neon"
+
+# CRC configs
+AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8 armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
+TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
+TUNE_FEATURES_tune-armv8a-crc-neon ?= "${TUNE_FEATURES_tune-armv8a-neon} crc"
+TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
+TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
+TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
+TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
+TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3 armv8a-crc-vfp-vfpv3"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon armv8a-crc-vfp-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4 armv8a-crc-vfp-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8 armv8a-crc-fp-armv8-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon} armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
-- 
1.9.1



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

* Re: [PATCHv2] ARMv8 32-bit compiler tunings
  2016-02-27 12:44 [PATCHv2] ARMv8 32-bit compiler tunings Daniel Dragomir
  2016-02-27 12:44 ` [PATCHv2] Add tune for 32-bit ARMv8-a Daniel Dragomir
@ 2016-02-27 13:14 ` Dragomir Daniel
  1 sibling, 0 replies; 10+ messages in thread
From: Dragomir Daniel @ 2016-02-27 13:14 UTC (permalink / raw)
  To: openembedded-core



On 02/27/2016 02:44 PM, Daniel Dragomir wrote:
> Hello!
>
> This is a second version for the patch:
> http://lists.openembedded.org/pipermail/openembedded-core/2016-February/117603.html
>
> I remove the python method from feature-arm-vfp and I added the TUNE_CCARGS appends for CRC, CRYPTO and fp-armv8 only in armv8a tune file.
> I fix some parsing failures for armv7a*-neon-vfpv4 tunes.
> Also, I reworked the tunes to eliminate multiple parsing failures that I got running Martin's script.
>
> @Martin, I ran again the script and the results are better. I pushed the results in a personal repo:
> Tune results without the patch - clean open-embedded:
> https://github.com/ddragomi/tune_test/tree/14861fd72be9aebaaa209d9990d72745c90b43eb/tune

Sorry, the correct link is:
https://github.com/ddragomi/tune_test/tree/c71174fad88c88257cc7d567327181cb57eb2185/tune

>
> Tune results with this patch (VERSION 2):
> https://github.com/ddragomi/tune_test/tree/master/tune
>
> And a diff between those here (I fix some parsing failures for armv7a*-neon-vfpv4 tunes):
> https://github.com/ddragomi/tune_test/commit/06fbd558bf7e5d91d312628a023b8c0495e8f37a

Sorry, the correct link is:
https://github.com/ddragomi/tune_test/commit/8575dbd9ea39e69908a6adaffa494f7a7198b243

>
> NOTE: I also added a new fake-machine (axxiaarm) that require arch-arm8a.inc
> to test/parse armv8a tunes:
> DEFAULTTUNE ?= "armv8a-neon"
> require conf/machine/include/arm/arch-armv8a.inc
>
> Previous message:
> Starting with linux-yocto-4.1, Intel provides kernel support for its
> ARM v8 Axxia platforms, both on 32-bit and 64-bit.
> Poky already contains arm 64-bit compiler tunings, so I added 32-bit
> tunings based on those for armv7.
>
> The patch that I send you is a draft. Please review it and if it's ok
> I will return with thumb and big-endian tunings.
>
> Best regards,
> Daniel Dragomir (1):
>    Add tune for 32-bit ARMv8-a
>
>   meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>   meta/conf/machine/include/arm/arch-armv8a.inc | 75 +++++++++++++++++++++++++++
>   2 files changed, 77 insertions(+), 2 deletions(-)
>   create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>



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

* Re: [PATCHv2] Add tune for 32-bit ARMv8-a
  2016-02-27 12:44 ` [PATCHv2] Add tune for 32-bit ARMv8-a Daniel Dragomir
@ 2016-03-01  0:02   ` Andre McCurdy
  2016-03-01 16:33     ` Dragomir Daniel
  2016-03-02  0:17   ` Andrei Gherzan
  1 sibling, 1 reply; 10+ messages in thread
From: Andre McCurdy @ 2016-03-01  0:02 UTC (permalink / raw)
  To: Daniel Dragomir; +Cc: OE Core mailing list

On Sat, Feb 27, 2016 at 4:44 AM, Daniel Dragomir
<daniel.dragomir@windriver.com> wrote:
> This patch adds tunes for 32-bit armv8 platforms. The user can select
> the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
> and the Neon, crc and crypto extensions.

Why vfpv3? Are there really any armv8a CPUs which have vfpv3 but not vfpv4?

> Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.

If you find any issues in arch-armv7a.inc then please double check
arch-armv7ve.inc too. These two files are very closely related.

> Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
> Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com>
> ---
>  meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>  meta/conf/machine/include/arm/arch-armv8a.inc | 75 +++++++++++++++++++++++++++
>  2 files changed, 77 insertions(+), 2 deletions(-)
>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>
> diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc
> index d3b6f64..ff6bc29 100644
> --- a/meta/conf/machine/include/arm/arch-armv7a.inc
> +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
> @@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
>  PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfp-vfpv3d16-vfpv3 armv7at2hf-vfp-vfpv3d16-vfpv3"
>  PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
>  PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon armv7at2hf-vfp-neon"
> -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
> -PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-neon-vfpv4 armv7at2hf-vfp-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-vfpv4-neon armv7at2hf-vfp-neon-vfpv4"

Is this patch against jethro? Master seems to have a different fix:

  http://git.openembedded.org/openembedded-core/commit/?id=6661718158f8fdcdf63b0d48e8fe72d3ac4778f2

>  # Big Endian
>  AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon"
> 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 0000000..2d8dd73
> --- /dev/null
> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> @@ -0,0 +1,75 @@
> +DEFAULTTUNE ?= "armv8a"
> +
> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
> +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
> +
> +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "-crc", "", d)}"
> +
> +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto", "-crypto", "", d)}"
> +
> +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", "-fp-armv8", "", d)}"
> +
> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a", bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", " -march=armv8-a", d), "", d)}"
> +
> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", bb.utils.contains("TUNE_FEATURES", "neon", bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8", " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
> +
> +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv8a", "armv8a:", "" ,d)}"
> +
> +require conf/machine/include/arm/arch-armv7a.inc

You should include arch-armv7ve.inc here, not arch-armv7a.inc.

> +# Little Endian base configs
> +AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4 armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon armv8a-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8a ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
> +TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a} vfpv3"
> +TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
> +TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a} vfpv4"
> +TUNE_FEATURES_tune-armv8a-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a} neon vfpv4"
> +TUNE_FEATURES_tune-armv8a-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a} fp-armv8"
> +TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a} neon fp-armv8"
> +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv8a armv8a-vfp"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon armv8a-vfp-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon armv8a-fp-armv8-vfp-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon} armv8a-crypto-fp-armv8-vfp-neon"
> +
> +# CRC configs
> +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8 armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
> +TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
> +TUNE_FEATURES_tune-armv8a-crc-neon ?= "${TUNE_FEATURES_tune-armv8a-neon} crc"
> +TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
> +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
> +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc-vfp"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3 armv8a-crc-vfp-vfpv3"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon armv8a-crc-vfp-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4 armv8a-crc-vfp-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8 armv8a-crc-fp-armv8-vfp"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon} armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
> --
> 1.9.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCHv2] Add tune for 32-bit ARMv8-a
  2016-03-01  0:02   ` Andre McCurdy
@ 2016-03-01 16:33     ` Dragomir Daniel
  2016-03-01 19:12       ` Andre McCurdy
  0 siblings, 1 reply; 10+ messages in thread
From: Dragomir Daniel @ 2016-03-01 16:33 UTC (permalink / raw)
  To: Andre McCurdy; +Cc: OE Core mailing list



On 03/01/2016 02:02 AM, Andre McCurdy wrote:
> On Sat, Feb 27, 2016 at 4:44 AM, Daniel Dragomir
> <daniel.dragomir@windriver.com> wrote:
>> This patch adds tunes for 32-bit armv8 platforms. The user can select
>> the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
>> and the Neon, crc and crypto extensions.
> Why vfpv3? Are there really any armv8a CPUs which have vfpv3 but not vfpv4?

Hello Andre,

I didn't checked before, I simply follow armv7a example and add the new 
features.
But it seams that you're right, all armv8a CPU support both vfp 
versions, so, I will remove armv8a-vfpv3 tune and keep just vfpv4 one.

>> Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.
> If you find any issues in arch-armv7a.inc then please double check
> arch-armv7ve.inc too. These two files are very closely related.
>
>> Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
>> Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com>
>> ---
>>   meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>>   meta/conf/machine/include/arm/arch-armv8a.inc | 75 +++++++++++++++++++++++++++
>>   2 files changed, 77 insertions(+), 2 deletions(-)
>>   create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>>
>> diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc
>> index d3b6f64..ff6bc29 100644
>> --- a/meta/conf/machine/include/arm/arch-armv7a.inc
>> +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
>> @@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
>>   PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfp-vfpv3d16-vfpv3 armv7at2hf-vfp-vfpv3d16-vfpv3"
>>   PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
>>   PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon armv7at2hf-vfp-neon"
>> -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
>> -PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-neon-vfpv4 armv7at2hf-vfp-neon-vfpv4"
>> +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-vfpv4-neon armv7at2hf-vfp-neon-vfpv4"
> Is this patch against jethro? Master seems to have a different fix:
>
>    http://git.openembedded.org/openembedded-core/commit/?id=6661718158f8fdcdf63b0d48e8fe72d3ac4778f2

Yes, against jethro branch. That's why I didn't saw this fix and also 
didn't saw the arch-armv7ve.inc file.
How do I proceed if I want to have armv8a support in jethro? Should I 
checkout the master branch and add my changes there and resend the patch 
with the note to be backported to jethro?
But this patch (with the fix for armv7a) and the one that add 
arch-armv7ve.inc will be back-ported to jethro too, or how is the process?

>>   # Big Endian
>>   AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon"
>> 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 0000000..2d8dd73
>> --- /dev/null
>> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
>> @@ -0,0 +1,75 @@
>> +DEFAULTTUNE ?= "armv8a"
>> +
>> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
>> +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
>> +
>> +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "-crc", "", d)}"
>> +
>> +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto", "-crypto", "", d)}"
>> +
>> +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", "-fp-armv8", "", d)}"
>> +
>> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a", bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", " -march=armv8-a", d), "", d)}"
>> +
>> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", bb.utils.contains("TUNE_FEATURES", "neon", bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8", " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
>> +
>> +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv8a", "armv8a:", "" ,d)}"
>> +
>> +require conf/machine/include/arm/arch-armv7a.inc
> You should include arch-armv7ve.inc here, not arch-armv7a.inc.

Ok, but armv7ve include file is not in jethro. Only in master.

Thanks,
Daniel

>
>> +# Little Endian base configs
>> +AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4 armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon armv8a-crypto-fp-armv8-neon"
>> +ARMPKGARCH_tune-armv8a ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
>> +TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
>> +TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a} vfpv3"
>> +TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
>> +TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a} vfpv4"
>> +TUNE_FEATURES_tune-armv8a-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a} neon vfpv4"
>> +TUNE_FEATURES_tune-armv8a-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a} fp-armv8"
>> +TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a} neon fp-armv8"
>> +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv8a armv8a-vfp"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon armv8a-vfp-vfpv4-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon armv8a-fp-armv8-vfp-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon} armv8a-crypto-fp-armv8-vfp-neon"
>> +
>> +# CRC configs
>> +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8 armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
>> +ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
>> +TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-neon ?= "${TUNE_FEATURES_tune-armv8a-neon} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc-vfp"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3 armv8a-crc-vfp-vfpv3"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon armv8a-crc-vfp-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4 armv8a-crc-vfp-vfpv4"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8 armv8a-crc-fp-armv8-vfp"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon} armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
>> --
>> 1.9.1
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core



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

* Re: [PATCHv2] Add tune for 32-bit ARMv8-a
  2016-03-01 16:33     ` Dragomir Daniel
@ 2016-03-01 19:12       ` Andre McCurdy
  2016-03-02 10:25         ` Dragomir Daniel
  0 siblings, 1 reply; 10+ messages in thread
From: Andre McCurdy @ 2016-03-01 19:12 UTC (permalink / raw)
  To: Dragomir Daniel; +Cc: OE Core mailing list

On Tue, Mar 1, 2016 at 8:33 AM, Dragomir Daniel
<daniel.dragomir@windriver.com> wrote:
>
> On 03/01/2016 02:02 AM, Andre McCurdy wrote:
>>
>> On Sat, Feb 27, 2016 at 4:44 AM, Daniel Dragomir
>> <daniel.dragomir@windriver.com> wrote:
>>>
>>> This patch adds tunes for 32-bit armv8 platforms. The user can select
>>> the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
>>> and the Neon, crc and crypto extensions.
>>
>> Why vfpv3? Are there really any armv8a CPUs which have vfpv3 but not
>> vfpv4?
>
>
> Hello Andre,
>
> I didn't checked before, I simply follow armv7a example and add the new
> features.
> But it seams that you're right, all armv8a CPU support both vfp versions,
> so, I will remove armv8a-vfpv3 tune and keep just vfpv4 one.
>
>>> Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.
>>
>> If you find any issues in arch-armv7a.inc then please double check
>> arch-armv7ve.inc too. These two files are very closely related.
>>
>>> Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
>>> Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com>
>>> ---
>>>   meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>>>   meta/conf/machine/include/arm/arch-armv8a.inc | 75
>>> +++++++++++++++++++++++++++
>>>   2 files changed, 77 insertions(+), 2 deletions(-)
>>>   create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>>>
>>> diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc
>>> b/meta/conf/machine/include/arm/arch-armv7a.inc
>>> index d3b6f64..ff6bc29 100644
>>> --- a/meta/conf/machine/include/arm/arch-armv7a.inc
>>> +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
>>> @@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
>>>   PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfp-vfpv3d16-vfpv3
>>> armv7at2hf-vfp-vfpv3d16-vfpv3"
>>>   PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
>>>   PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon
>>> armv7at2hf-vfp-neon"
>>> -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
>>> -PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-neon-vfpv4
>>> armv7at2hf-vfp-neon-vfpv4"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-vfpv4-neon
>>> armv7at2hf-vfp-neon-vfpv4"
>>
>> Is this patch against jethro? Master seems to have a different fix:
>>
>>
>> http://git.openembedded.org/openembedded-core/commit/?id=6661718158f8fdcdf63b0d48e8fe72d3ac4778f2
>
>
> Yes, against jethro branch. That's why I didn't saw this fix and also didn't
> saw the arch-armv7ve.inc file.
> How do I proceed if I want to have armv8a support in jethro? Should I
> checkout the master branch and add my changes there and resend the patch
> with the note to be backported to jethro?
> But this patch (with the fix for armv7a) and the one that add
> arch-armv7ve.inc will be back-ported to jethro too, or how is the process?

The process is always to get changes merged to master first.

Support for new CPU tuning options is unlikely to get backported to
the official jethro release, so you'll need to keep these changes in
your own branch or distro until you update to the OE release which
includes them.

(If you don't maintain your own distro then a simpler approach may be
just to set the required TUNE_CCARGS etc directly from your machine
config file).


>>>   # Big Endian
>>>   AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16
>>> armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon"
>>> 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 0000000..2d8dd73
>>> --- /dev/null
>>> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
>>> @@ -0,0 +1,75 @@
>>> +DEFAULTTUNE ?= "armv8a"
>>> +
>>> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
>>> +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
>>> +
>>> +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
>>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "-crc",
>>> "", d)}"
>>> +
>>> +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
>>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto",
>>> "-crypto", "", d)}"
>>> +
>>> +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
>>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8",
>>> "-fp-armv8", "", d)}"
>>> +
>>> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a",
>>> bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", "
>>> -march=armv8-a", d), "", d)}"
>>> +
>>> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8",
>>> bb.utils.contains("TUNE_FEATURES", "neon",
>>> bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8",
>>> " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
>>> +
>>> +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv8a",
>>> "armv8a:", "" ,d)}"
>>> +
>>> +require conf/machine/include/arm/arch-armv7a.inc
>>
>> You should include arch-armv7ve.inc here, not arch-armv7a.inc.
>
>
> Ok, but armv7ve include file is not in jethro. Only in master.
>
> Thanks,
> Daniel
>
>
>>
>>> +# Little Endian base configs
>>> +AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4
>>> armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon
>>> armv8a-crypto-fp-armv8-neon"
>>> +ARMPKGARCH_tune-armv8a ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
>>> +TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
>>> +TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a} vfpv3"
>>> +TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
>>> +TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a} vfpv4"
>>> +TUNE_FEATURES_tune-armv8a-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a}
>>> neon vfpv4"
>>> +TUNE_FEATURES_tune-armv8a-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a}
>>> fp-armv8"
>>> +TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a}
>>> neon fp-armv8"
>>> +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?=
>>> "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a = "${PACKAGE_EXTRA_ARCHS_tune-armv7a}
>>> armv8a armv8a-vfp"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon
>>> armv8a-vfp-vfpv4-neon"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon
>>> armv8a-fp-armv8-vfp-neon"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon}
>>> armv8a-crypto-fp-armv8-vfp-neon"
>>> +
>>> +# CRC configs
>>> +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon
>>> armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8
>>> armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
>>> +ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
>>> +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
>>> +TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
>>> +TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?=
>>> "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
>>> +TUNE_FEATURES_tune-armv8a-crc-neon ?= "${TUNE_FEATURES_tune-armv8a-neon}
>>> crc"
>>> +TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?=
>>> "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
>>> +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?=
>>> "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
>>> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?=
>>> "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
>>> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?=
>>> "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
>>> +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?=
>>> "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc-vfp"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3
>>> armv8a-crc-vfp-vfpv3"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon
>>> armv8a-crc-vfp-neon"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4
>>> armv8a-crc-vfp-vfpv4"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon
>>> armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8
>>> armv8a-crc-fp-armv8-vfp"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon
>>> armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon =
>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon}
>>> armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
>>> --
>>> 1.9.1
>>>
>>> --
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core@lists.openembedded.org
>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>


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

* Re: [PATCHv2] Add tune for 32-bit ARMv8-a
  2016-02-27 12:44 ` [PATCHv2] Add tune for 32-bit ARMv8-a Daniel Dragomir
  2016-03-01  0:02   ` Andre McCurdy
@ 2016-03-02  0:17   ` Andrei Gherzan
  2016-03-02 10:35     ` Dragomir Daniel
  1 sibling, 1 reply; 10+ messages in thread
From: Andrei Gherzan @ 2016-03-02  0:17 UTC (permalink / raw)
  To: Daniel Dragomir; +Cc: openembedded

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

Hi Daniel,

On Sat, Feb 27, 2016 at 1:44 PM, Daniel Dragomir <
daniel.dragomir@windriver.com> wrote:

> This patch adds tunes for 32-bit armv8 platforms. The user can select
> the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
> and the Neon, crc and crypto extensions.
>
> Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.
>
> Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
> Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com>
> ---
>  meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>  meta/conf/machine/include/arm/arch-armv8a.inc | 75
> +++++++++++++++++++++++++++
>  2 files changed, 77 insertions(+), 2 deletions(-)
>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>
> diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc
> b/meta/conf/machine/include/arm/arch-armv7a.inc
> index d3b6f64..ff6bc29 100644
> --- a/meta/conf/machine/include/arm/arch-armv7a.inc
> +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
> @@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
>  PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfp-vfpv3d16-vfpv3
> armv7at2hf-vfp-vfpv3d16-vfpv3"
>  PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
>  PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon
> armv7at2hf-vfp-neon"
> -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
> -PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-neon-vfpv4
> armv7at2hf-vfp-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-vfpv4-neon
> armv7at2hf-vfp-neon-vfpv4"
>
>  # Big Endian
>  AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16
> armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon"
> 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 0000000..2d8dd73
> --- /dev/null
> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> @@ -0,0 +1,75 @@
> +DEFAULTTUNE ?= "armv8a"
> +
> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
> +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
> +
> +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
>

Small typo here: instrucitons .


> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "-crc",
> "", d)}"
> +
> +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto",
> "-crypto", "", d)}"
> +
> +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8",
> "-fp-armv8", "", d)}"
> +
> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a",
> bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", "
> -march=armv8-a", d), "", d)}"
> +
> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8",
> bb.utils.contains("TUNE_FEATURES", "neon",
> bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8",
> " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
> +
> +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv8a",
> "armv8a:", "" ,d)}"
> +
> +require conf/machine/include/arm/arch-armv7a.inc
> +
> +# Little Endian base configs
> +AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4
> armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon
> armv8a-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8a ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
> +TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a} vfpv3"
> +TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
> +TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a} vfpv4"
> +TUNE_FEATURES_tune-armv8a-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a}
> neon vfpv4"
> +TUNE_FEATURES_tune-armv8a-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a}
> fp-armv8"
> +TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a}
> neon fp-armv8"
> +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?=
> "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a = "${PACKAGE_EXTRA_ARCHS_tune-armv7a}
> armv8a armv8a-vfp"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon
> armv8a-vfp-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon
> armv8a-fp-armv8-vfp-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon}
> armv8a-crypto-fp-armv8-vfp-neon"
> +
> +# CRC configs
> +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon
> armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8
> armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
> +TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?=
> "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
> +TUNE_FEATURES_tune-armv8a-crc-neon ?= "${TUNE_FEATURES_tune-armv8a-neon}
> crc"
> +TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?=
> "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
> +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?=
> "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?=
> "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?=
> "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
> +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?=
> "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8a}
> armv8a-crc-vfp"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3
> armv8a-crc-vfp-vfpv3"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon
> armv8a-crc-vfp-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4
> armv8a-crc-vfp-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon
> armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8
> armv8a-crc-fp-armv8-vfp"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon
> armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon =
> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon}
> armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
>
>
Any plans for 64 bit version?

Andrei

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

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

* Re: [PATCHv2] Add tune for 32-bit ARMv8-a
  2016-03-01 19:12       ` Andre McCurdy
@ 2016-03-02 10:25         ` Dragomir Daniel
  0 siblings, 0 replies; 10+ messages in thread
From: Dragomir Daniel @ 2016-03-02 10:25 UTC (permalink / raw)
  To: Andre McCurdy; +Cc: OE Core mailing list



On 03/01/2016 09:12 PM, Andre McCurdy wrote:
> On Tue, Mar 1, 2016 at 8:33 AM, Dragomir Daniel
> <daniel.dragomir@windriver.com> wrote:
>> On 03/01/2016 02:02 AM, Andre McCurdy wrote:
>>> On Sat, Feb 27, 2016 at 4:44 AM, Daniel Dragomir
>>> <daniel.dragomir@windriver.com> wrote:
>>>> This patch adds tunes for 32-bit armv8 platforms. The user can select
>>>> the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
>>>> and the Neon, crc and crypto extensions.
>>> Why vfpv3? Are there really any armv8a CPUs which have vfpv3 but not
>>> vfpv4?
>>
>> Hello Andre,
>>
>> I didn't checked before, I simply follow armv7a example and add the new
>> features.
>> But it seams that you're right, all armv8a CPU support both vfp versions,
>> so, I will remove armv8a-vfpv3 tune and keep just vfpv4 one.
>>
>>>> Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.
>>> If you find any issues in arch-armv7a.inc then please double check
>>> arch-armv7ve.inc too. These two files are very closely related.
>>>
>>>> Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
>>>> Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com>
>>>> ---
>>>>    meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>>>>    meta/conf/machine/include/arm/arch-armv8a.inc | 75
>>>> +++++++++++++++++++++++++++
>>>>    2 files changed, 77 insertions(+), 2 deletions(-)
>>>>    create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>>>>
>>>> diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc
>>>> b/meta/conf/machine/include/arm/arch-armv7a.inc
>>>> index d3b6f64..ff6bc29 100644
>>>> --- a/meta/conf/machine/include/arm/arch-armv7a.inc
>>>> +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
>>>> @@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
>>>>    PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfp-vfpv3d16-vfpv3
>>>> armv7at2hf-vfp-vfpv3d16-vfpv3"
>>>>    PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
>>>>    PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon
>>>> armv7at2hf-vfp-neon"
>>>> -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
>>>> -PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-neon-vfpv4
>>>> armv7at2hf-vfp-neon-vfpv4"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-vfpv4-neon
>>>> armv7at2hf-vfp-neon-vfpv4"
>>> Is this patch against jethro? Master seems to have a different fix:
>>>
>>>
>>> http://git.openembedded.org/openembedded-core/commit/?id=6661718158f8fdcdf63b0d48e8fe72d3ac4778f2
>>
>> Yes, against jethro branch. That's why I didn't saw this fix and also didn't
>> saw the arch-armv7ve.inc file.
>> How do I proceed if I want to have armv8a support in jethro? Should I
>> checkout the master branch and add my changes there and resend the patch
>> with the note to be backported to jethro?
>> But this patch (with the fix for armv7a) and the one that add
>> arch-armv7ve.inc will be back-ported to jethro too, or how is the process?
> The process is always to get changes merged to master first.
>
> Support for new CPU tuning options is unlikely to get backported to
> the official jethro release, so you'll need to keep these changes in
> your own branch or distro until you update to the OE release which
> includes them.
>
> (If you don't maintain your own distro then a simpler approach may be
> just to set the required TUNE_CCARGS etc directly from your machine
> config file).

I'll rework this patch against master and resend for OE and we'll keep 
also the tunes in our layer 
(http://git.yoctoproject.org/cgit/cgit.cgi/meta-axxia/) for jethro branch.

Thanks Andre!

>
>>>>    # Big Endian
>>>>    AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16
>>>> armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon"
>>>> 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 0000000..2d8dd73
>>>> --- /dev/null
>>>> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
>>>> @@ -0,0 +1,75 @@
>>>> +DEFAULTTUNE ?= "armv8a"
>>>> +
>>>> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
>>>> +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
>>>> +
>>>> +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
>>>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "-crc",
>>>> "", d)}"
>>>> +
>>>> +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
>>>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto",
>>>> "-crypto", "", d)}"
>>>> +
>>>> +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
>>>> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8",
>>>> "-fp-armv8", "", d)}"
>>>> +
>>>> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a",
>>>> bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", "
>>>> -march=armv8-a", d), "", d)}"
>>>> +
>>>> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8",
>>>> bb.utils.contains("TUNE_FEATURES", "neon",
>>>> bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8",
>>>> " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
>>>> +
>>>> +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv8a",
>>>> "armv8a:", "" ,d)}"
>>>> +
>>>> +require conf/machine/include/arm/arch-armv7a.inc
>>> You should include arch-armv7ve.inc here, not arch-armv7a.inc.
>>
>> Ok, but armv7ve include file is not in jethro. Only in master.
>>
>> Thanks,
>> Daniel
>>
>>
>>>> +# Little Endian base configs
>>>> +AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4
>>>> armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon
>>>> armv8a-crypto-fp-armv8-neon"
>>>> +ARMPKGARCH_tune-armv8a ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
>>>> +TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
>>>> +TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a} vfpv3"
>>>> +TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
>>>> +TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a} vfpv4"
>>>> +TUNE_FEATURES_tune-armv8a-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a}
>>>> neon vfpv4"
>>>> +TUNE_FEATURES_tune-armv8a-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a}
>>>> fp-armv8"
>>>> +TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a}
>>>> neon fp-armv8"
>>>> +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?=
>>>> "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a = "${PACKAGE_EXTRA_ARCHS_tune-armv7a}
>>>> armv8a armv8a-vfp"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon
>>>> armv8a-vfp-vfpv4-neon"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon
>>>> armv8a-fp-armv8-vfp-neon"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon}
>>>> armv8a-crypto-fp-armv8-vfp-neon"
>>>> +
>>>> +# CRC configs
>>>> +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon
>>>> armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8
>>>> armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
>>>> +ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
>>>> +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
>>>> +TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
>>>> +TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?=
>>>> "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
>>>> +TUNE_FEATURES_tune-armv8a-crc-neon ?= "${TUNE_FEATURES_tune-armv8a-neon}
>>>> crc"
>>>> +TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?=
>>>> "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
>>>> +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?=
>>>> "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
>>>> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?=
>>>> "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
>>>> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?=
>>>> "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
>>>> +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?=
>>>> "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc-vfp"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3
>>>> armv8a-crc-vfp-vfpv3"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon
>>>> armv8a-crc-vfp-neon"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4
>>>> armv8a-crc-vfp-vfpv4"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon
>>>> armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8
>>>> armv8a-crc-fp-armv8-vfp"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon
>>>> armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
>>>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon =
>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon}
>>>> armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
>>>> --
>>>> 1.9.1
>>>>
>>>> --
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core@lists.openembedded.org
>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>



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

* Re: [PATCHv2] Add tune for 32-bit ARMv8-a
  2016-03-02  0:17   ` Andrei Gherzan
@ 2016-03-02 10:35     ` Dragomir Daniel
  2016-03-02 15:49       ` Andrei Gherzan
  0 siblings, 1 reply; 10+ messages in thread
From: Dragomir Daniel @ 2016-03-02 10:35 UTC (permalink / raw)
  To: Andrei Gherzan; +Cc: openembedded

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

Hi Andrei,

On 03/02/2016 02:17 AM, Andrei Gherzan wrote:
> Hi Daniel,
>
> On Sat, Feb 27, 2016 at 1:44 PM, Daniel Dragomir 
> <daniel.dragomir@windriver.com <mailto:daniel.dragomir@windriver.com>> 
> wrote:
>
>     This patch adds tunes for 32-bit armv8 platforms. The user can select
>     the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
>     and the Neon, crc and crypto extensions.
>
>     Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.
>
>     Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com
>     <mailto:daniel.dragomir@windriver.com>>
>     Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com
>     <http://windriver.com>>
>     ---
>      meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>      meta/conf/machine/include/arm/arch-armv8a.inc | 75
>     +++++++++++++++++++++++++++
>      2 files changed, 77 insertions(+), 2 deletions(-)
>      create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>
>     diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc
>     b/meta/conf/machine/include/arm/arch-armv7a.inc
>     index d3b6f64..ff6bc29 100644
>     --- a/meta/conf/machine/include/arm/arch-armv7a.inc
>     +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
>     @@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
>      PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16}
>     armv7ahf-vfp-vfpv3d16-vfpv3 armv7at2hf-vfp-vfpv3d16-vfpv3"
>      PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
>      PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon
>     armv7at2hf-vfp-neon"
>     -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
>     -PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon}
>     armv7ahf-vfp-neon-vfpv4 armv7at2hf-vfp-neon-vfpv4"
>     +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon}
>     armv7ahf-vfp-vfpv4-neon armv7at2hf-vfp-neon-vfpv4"
>
>      # Big Endian
>      AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16
>     armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon
>     armv7atb-neon"
>     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 0000000..2d8dd73
>     --- /dev/null
>     +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
>     @@ -0,0 +1,75 @@
>     +DEFAULTTUNE ?= "armv8a"
>     +
>     +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
>     +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
>     +
>     +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
>
>
> Small typo here: instrucitons .

Thanks! Didn't noticed :)

>     +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc",
>     "-crc", "", d)}"
>     +
>     +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
>     +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto",
>     "-crypto", "", d)}"
>     +
>     +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
>     +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES",
>     "fp-armv8", "-fp-armv8", "", d)}"
>     +
>     +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a",
>     bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", "
>     -march=armv8-a", d), "", d)}"
>     +
>     +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8",
>     bb.utils.contains("TUNE_FEATURES", "neon",
>     bb.utils.contains("TUNE_FEATURES", "crypto", "
>     -mfpu=crypto-neon-fp-armv8", " -mfpu=neon-fp-armv8", d), "
>     -mfpu=fp-armv8", d), "", d)}"
>     +
>     +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES",
>     "armv8a", "armv8a:", "" ,d)}"
>     +
>     +require conf/machine/include/arm/arch-armv7a.inc
>     +
>     +# Little Endian base configs
>     +AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4
>     armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon
>     armv8a-crypto-fp-armv8-neon"
>     +ARMPKGARCH_tune-armv8a ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
>     +TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
>     +TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a}
>     vfpv3"
>     +TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
>     +TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a}
>     vfpv4"
>     +TUNE_FEATURES_tune-armv8a-vfpv4-neon ?=
>     "${TUNE_FEATURES_tune-armv8a} neon vfpv4"
>     +TUNE_FEATURES_tune-armv8a-fp-armv8 ?=
>     "${TUNE_FEATURES_tune-armv8a} fp-armv8"
>     +TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?=
>     "${TUNE_FEATURES_tune-armv8a} neon fp-armv8"
>     +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?=
>     "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv8a armv8a-vfp"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon
>     armv8a-vfp-vfpv4-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon
>     armv8a-fp-armv8-vfp-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon}
>     armv8a-crypto-fp-armv8-vfp-neon"
>     +
>     +# CRC configs
>     +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon
>     armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8
>     armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
>     +ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
>     +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
>     +TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?=
>     "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-neon ?=
>     "${TUNE_FEATURES_tune-armv8a-neon} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?=
>     "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?=
>     "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?=
>     "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?=
>     "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
>     +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?=
>     "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc-vfp"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3
>     armv8a-crc-vfp-vfpv3"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon
>     armv8a-crc-vfp-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4
>     armv8a-crc-vfp-vfpv4"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon
>     armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8
>     armv8a-crc-fp-armv8-vfp"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon
>     armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
>     +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon =
>     "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon}
>     armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
>
>
> Any plans for 64 bit version?
>
> Andrei
>

Yes, we have plans to add specific tunes for armv8 64bit too, but after 
we finish for 32bit.
For the moment, for 64bit, we simply include arch-armv8.inc witch only 
require arch-arm64.inc.

Regards,
Daniel


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

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

* Re: [PATCHv2] Add tune for 32-bit ARMv8-a
  2016-03-02 10:35     ` Dragomir Daniel
@ 2016-03-02 15:49       ` Andrei Gherzan
  0 siblings, 0 replies; 10+ messages in thread
From: Andrei Gherzan @ 2016-03-02 15:49 UTC (permalink / raw)
  To: Dragomir Daniel; +Cc: openembedded

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

On Wed, Mar 2, 2016 at 11:35 AM, Dragomir Daniel <
daniel.dragomir@windriver.com> wrote:

> Hi Andrei,
>
>
> On 03/02/2016 02:17 AM, Andrei Gherzan wrote:
>
> Hi Daniel,
>
> On Sat, Feb 27, 2016 at 1:44 PM, Daniel Dragomir <
> <daniel.dragomir@windriver.com>daniel.dragomir@windriver.com> wrote:
>
>> This patch adds tunes for 32-bit armv8 platforms. The user can select
>> the vector floating-point instruction set: vfpv3, vfpv4 or fp-armv8
>> and the Neon, crc and crypto extensions.
>>
>> Also, fix some parsing failures for armv7a*-neon-vfpv4 tunes.
>>
>> Signed-off-by: Daniel Dragomir < <daniel.dragomir@windriver.com>
>> daniel.dragomir@windriver.com>
>> Signed-off-by: Cristian Bercaru <cristian.bercaru at windriver.com>
>> ---
>>  meta/conf/machine/include/arm/arch-armv7a.inc |  4 +-
>>  meta/conf/machine/include/arm/arch-armv8a.inc | 75
>> +++++++++++++++++++++++++++
>>  2 files changed, 77 insertions(+), 2 deletions(-)
>>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
>>
>> diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc
>> b/meta/conf/machine/include/arm/arch-armv7a.inc
>> index d3b6f64..ff6bc29 100644
>> --- a/meta/conf/machine/include/arm/arch-armv7a.inc
>> +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
>> @@ -65,8 +65,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-v
>>  PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfp-vfpv3d16-vfpv3
>> armv7at2hf-vfp-vfpv3d16-vfpv3"
>>  PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
>>  PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon
>> armv7at2hf-vfp-neon"
>> -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
>> -PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-neon-vfpv4
>> armv7at2hf-vfp-neon-vfpv4"
>> +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-vfpv4-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-vfp-vfpv4-neon
>> armv7at2hf-vfp-neon-vfpv4"
>>
>>  # Big Endian
>>  AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16
>> armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon"
>> 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 0000000..2d8dd73
>> --- /dev/null
>> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
>> @@ -0,0 +1,75 @@
>> +DEFAULTTUNE ?= "armv8a"
>> +
>> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
>> +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a"
>> +
>> +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a"
>>
>
> Small typo here: instrucitons .
>
>
> Thanks! Didn't noticed :)
>
>
Welcome.


>
>
>
>> +ARMPKGSFX_FPU .= "${@bb.utils.contains(" <$%7B@bb.utils.contains(>TUNE_FEATURES",
>> "crc", "-crc", "", d)}"
>> +
>> +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
>> +ARMPKGSFX_FPU .= "${@bb.utils.contains(" <$%7B@bb.utils.contains(>TUNE_FEATURES",
>> "crypto", "-crypto", "", d)}"
>> +
>> +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
>> +ARMPKGSFX_FPU .= "${@bb.utils.contains(" <$%7B@bb.utils.contains(>TUNE_FEATURES",
>> "fp-armv8", "-fp-armv8", "", d)}"
>> +
>> +TUNE_CCARGS .= "${@bb.utils.contains(" <$%7B@bb.utils.contains(>TUNE_FEATURES",
>> "armv8a", bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc",
>> " -march=armv8-a", d), "", d)}"
>> +
>> +TUNE_CCARGS .= "${@bb.utils.contains(" <$%7B@bb.utils.contains(>TUNE_FEATURES",
>> "fp-armv8", bb.utils.contains("TUNE_FEATURES", "neon",
>> bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8",
>> " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
>> +
>> +MACHINEOVERRIDES =. "${@bb.utils.contains(" <$%7B@bb.utils.contains(>TUNE_FEATURES",
>> "armv8a", "armv8a:", "" ,d)}"
>> +
>> +require conf/machine/include/arm/arch-armv7a.inc
>> +
>> +# Little Endian base configs
>> +AVAILTUNES += "armv8a armv8a-vfpv3 armv8a-neon armv8a-vfpv4
>> armv8a-vfpv4-neon armv8a-fp-armv8 armv8a-fp-armv8-neon
>> armv8a-crypto-fp-armv8-neon"
>> +ARMPKGARCH_tune-armv8a ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-vfpv4-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-fp-armv8-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon ?= "armv8a"
>> +TUNE_FEATURES_tune-armv8a ?= "arm armv8a vfp"
>> +TUNE_FEATURES_tune-armv8a-vfpv3 ?= "${TUNE_FEATURES_tune-armv8a} vfpv3"
>> +TUNE_FEATURES_tune-armv8a-neon ?= "${TUNE_FEATURES_tune-armv8a} neon"
>> +TUNE_FEATURES_tune-armv8a-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a} vfpv4"
>> +TUNE_FEATURES_tune-armv8a-vfpv4-neon ?= "${TUNE_FEATURES_tune-armv8a}
>> neon vfpv4"
>> +TUNE_FEATURES_tune-armv8a-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a}
>> fp-armv8"
>> +TUNE_FEATURES_tune-armv8a-fp-armv8-neon ?= "${TUNE_FEATURES_tune-armv8a}
>> neon fp-armv8"
>> +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon ?=
>> "${TUNE_FEATURES_tune-armv8a} crypto neon fp-armv8"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a = "${PACKAGE_EXTRA_ARCHS_tune-armv7a}
>> armv8a armv8a-vfp"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-vfpv3"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv3} armv8a-vfp-vfpv4"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon
>> armv8a-vfp-vfpv4-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8-vfp"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon
>> armv8a-fp-armv8-vfp-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon}
>> armv8a-crypto-fp-armv8-vfp-neon"
>> +
>> +# CRC configs
>> +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon
>> armv8a-crc-vfpv4 armv8a-crc-vfpv4-neon armv8a-crc-fp-armv8
>> armv8a-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon"
>> +ARMPKGARCH_tune-armv8a-crc ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-vfpv3 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-vfpv4 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon ?= "armv8a"
>> +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon ?= "armv8a"
>> +TUNE_FEATURES_tune-armv8a-crc ?= "${TUNE_FEATURES_tune-armv8a} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-vfpv3 ?=
>> "${TUNE_FEATURES_tune-armv8a-vfpv3} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-neon ?= "${TUNE_FEATURES_tune-armv8a-neon}
>> crc"
>> +TUNE_FEATURES_tune-armv8a-crc-vfpv4 ?=
>> "${TUNE_FEATURES_tune-armv8a-vfpv4} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon ?=
>> "${TUNE_FEATURES_tune-armv8a-vfpv4-neon} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?=
>> "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon ?=
>> "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crc"
>> +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon ?=
>> "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon} crc"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc-vfp"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-vfpv3
>> armv8a-crc-vfp-vfpv3"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-neon
>> armv8a-crc-vfp-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv3} armv8a-vfp-vfpv4
>> armv8a-crc-vfp-vfpv4"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon
>> armv8a-crc-vfp-neon armv8a-vfp-vfpv4-neon armv8a-crc-vfp-vfpv4-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8
>> armv8a-crc-fp-armv8-vfp"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon
>> armv8a-vfp-neon-fp-armv8 armv8a-crc-fp-armv8-vfp-neon"
>> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon =
>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon}
>> armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-crypto-fp-armv8-vfp-neon"
>>
>>
> Any plans for 64 bit version?
>
> Andrei
>
>
> Yes, we have plans to add specific tunes for armv8 64bit too, but after we
> finish for 32bit.
> For the moment, for 64bit, we simply include arch-armv8.inc witch only
> require arch-arm64.inc.
>
>
I am aware of those tunes but they don't include all the features. Thanks
for the heads up. I was about to look into these but I'll wait for you to
push it and will review.

Cheers!

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

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

end of thread, other threads:[~2016-03-02 15:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-27 12:44 [PATCHv2] ARMv8 32-bit compiler tunings Daniel Dragomir
2016-02-27 12:44 ` [PATCHv2] Add tune for 32-bit ARMv8-a Daniel Dragomir
2016-03-01  0:02   ` Andre McCurdy
2016-03-01 16:33     ` Dragomir Daniel
2016-03-01 19:12       ` Andre McCurdy
2016-03-02 10:25         ` Dragomir Daniel
2016-03-02  0:17   ` Andrei Gherzan
2016-03-02 10:35     ` Dragomir Daniel
2016-03-02 15:49       ` Andrei Gherzan
2016-02-27 13:14 ` [PATCHv2] ARMv8 32-bit compiler tunings Dragomir Daniel

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.