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 <[email protected] <mailto:[email protected]>> 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 <[email protected]
    <mailto:[email protected]>>
    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

-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to