On Tue, Feb 16, 2016 at 06:08:45PM +0200, Dragomir Daniel wrote: > > > On 02/16/2016 04:54 PM, Martin Jansa wrote: > > On Tue, Feb 16, 2016 at 04:28:38PM +0200, Daniel Dragomir wrote: > >> From: Cristian Bercaru <cristian.berc...@windriver.com> > >> > >> 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. > > This adds TUNEVALID for various tune features which aren't valid for > > armv7a and lower (keep in mind that feature-arm-vfp.inc is included from > > arch-armv5.inc) > > > > Did you test this with tune-test script to at least confirm that it at > > least still parses for all arm* DEFAULTTUNEs? > > > > I just took over my colleague work and I need to continue it. > Tunnings are new for meand I'm looking for a review about the actual > approach > from my colleague for adding ARMv8-a tunning for 32-bit. > > No, I didn't ran such script. > Can you please tell me how to run it or at least where is this located. > It's scripts/tune/test.sh from > http://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/tune2-test > ? > It's there any Readme for it?
There isn't one, basically run the script (update it if needed) and push your results somewhere (ideally in branch which contains results from jansa/tune2-test so that it shows only the smaller diffs in parsed results. It was shortly discussed in previous tune thread: http://lists.openembedded.org/pipermail/openembedded-core/2016-February/117395.html > > Thanks, > Daniel > > >> Signed-off-by: Cristian Bercaru <cristian.berc...@windriver.com> > >> Signed-off-by: Daniel Dragomir <daniel.drago...@windriver.com> > >> --- > >> meta/conf/machine/include/arm/arch-armv7a.inc | 1 - > >> meta/conf/machine/include/arm/arch-armv8a.inc | 65 > >> ++++++++++++++++++++++ > >> meta/conf/machine/include/arm/feature-arm-neon.inc | 3 - > >> meta/conf/machine/include/arm/feature-arm-vfp.inc | 59 > >> ++++++++++++++++---- > >> 4 files changed, 112 insertions(+), 16 deletions(-) > >> create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc > >> delete mode 100644 meta/conf/machine/include/arm/feature-arm-neon.inc > >> > >> diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc > >> b/meta/conf/machine/include/arm/arch-armv7a.inc > >> index d3b6f64..ac85fda 100644 > >> --- a/meta/conf/machine/include/arm/arch-armv7a.inc > >> +++ b/meta/conf/machine/include/arm/arch-armv7a.inc > >> @@ -6,7 +6,6 @@ TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", > >> "armv7a", " -march=armv7-a > >> MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv7a", > >> "armv7a:", "" ,d)}" > >> > >> require conf/machine/include/arm/arch-armv6.inc > >> -require conf/machine/include/arm/feature-arm-neon.inc > >> > >> # Little Endian base configs > >> AVAILTUNES += "armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 > >> armv7a-vfpv3 armv7at-vfpv3 armv7a-neon armv7at-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..1b062b8 > >> --- /dev/null > >> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc > >> @@ -0,0 +1,65 @@ > >> +DEFAULTTUNE ?= "armv8a" > >> + > >> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a" > >> +TUNEVALID[crc] = "Enable CRC instrucitons for ARMv8-a" > >> +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a" > >> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a", " > >> -march=armv8-a", "", d)}" > >> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "+crc", "", > >> 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-neon-vfpv4 armv8a-fp-armv8 armv8a-neon-fp-armv8 > >> armv8a-crypto-neon-fp-armv8" > >> +ARMPKGARCH_tune-armv8a ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-vfpv3 ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-neon ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-vfpv4 ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-neon-vfpv4 ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-fp-armv8 ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-neon-fp-armv8 ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-crypto-neon-fp-armv8 ?= "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-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv8a} > >> neon vfpv4" > >> +TUNE_FEATURES_tune-armv8a-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a} > >> fp-armv8" > >> +TUNE_FEATURES_tune-armv8a-neon-fp-armv8 ?= "${TUNE_FEATURES_tune-armv8a} > >> neon fp-armv8" > >> +TUNE_FEATURES_tune-armv8a-crypto-neon-fp-armv8 ?= > >> "${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-neon-vfpv4 = > >> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-vfp-neon > >> armv8a-vfp-neon-vfpv4" > >> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8 = > >> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfp-fp-armv8" > >> +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon-fp-armv8 = > >> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-vfp-neon-fp-armv8" > >> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-neon-fp-armv8 = > >> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-neon-fp-armv8} > >> armv8a-vfp-crypto-neon-fp-armv8" > >> + > >> +# CRC configs > >> +AVAILTUNES += "armv8a-crc armv8a-crc-vfpv3 armv8a-crc-neon > >> armv8a-crc-vfpv4 armv8a-crc-neon-vfpv4 armv8a-crc-fp-armv8 > >> armv8a-crc-neon-fp-armv8 armv8a-crc-crypto-neon-fp-armv8" > >> +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-neon-vfpv4 ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-crc-fp-armv8 ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-crc-neon-fp-armv8 ?= "armv8a" > >> +ARMPKGARCH_tune-armv8a-crc-crypto-neon-fp-armv8 ?= "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-neon-vfpv4 ?= > >> "${TUNE_FEATURES_tune-armv8a-neon-vfpv4} crc" > >> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8 ?= > >> "${TUNE_FEATURES_tune-armv8a-fp-armv8} crc" > >> +TUNE_FEATURES_tune-armv8a-crc-neon-fp-armv8 ?= > >> "${TUNE_FEATURES_tune-armv8a-neon-fp-armv8} crc" > >> +TUNE_FEATURES_tune-armv8a-crc-crypto-neon-fp-armv8 ?= > >> "${TUNE_FEATURES_tune-armv8a-crypto-neon-fp-armv8} 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-neon-vfpv4 = > >> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4} armv8a-vfp-neon > >> armv8a-crc-vfp-neon armv8a-vfp-neon-vfpv4 armv8a-crc-vfp-neon-vfpv4" > >> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8 = > >> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-vfp-fp-armv8 > >> armv8a-vfp-fp-crc-armv8" > >> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon-fp-armv8 = > >> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8} armv8a-vfp-neon-fp-armv8 > >> armv8a-crc-vfp-neon-fp-armv8" > >> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-neon-fp-armv8 = > >> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon-fp-armv8} > >> armv8a-vfp-crypto-neon-fp-armv8 armv8a-crc-vfp-crypto-neon-fp-armv8" > >> + > >> diff --git a/meta/conf/machine/include/arm/feature-arm-neon.inc > >> b/meta/conf/machine/include/arm/feature-arm-neon.inc > >> deleted file mode 100644 > >> index e8b2b85..0000000 > >> --- a/meta/conf/machine/include/arm/feature-arm-neon.inc > >> +++ /dev/null > >> @@ -1,3 +0,0 @@ > >> -TUNEVALID[neon] = "Enable Neon SIMD accelerator unit." > >> -TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "neon", > >> bb.utils.contains("TUNE_FEATURES", "vfpv4", " -mfpu=neon-vfpv4", " > >> -mfpu=neon", d), "" , d)}" > >> -ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "neon", "-neon", > >> "", d)}" > >> diff --git a/meta/conf/machine/include/arm/feature-arm-vfp.inc > >> b/meta/conf/machine/include/arm/feature-arm-vfp.inc > >> index 3dfbeac..12a4e81 100644 > >> --- a/meta/conf/machine/include/arm/feature-arm-vfp.inc > >> +++ b/meta/conf/machine/include/arm/feature-arm-vfp.inc > >> @@ -1,17 +1,52 @@ > >> TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit." > >> -ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-vfp", "" > >> ,d)}" > >> - > >> TUNEVALID[vfpv3d16] = "Enable Vector Floating Point Version 3 with 16 > >> registers (vfpv3-d16) unit." > >> -TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "vfpv3d16", " > >> -mfpu=vfpv3-d16", "", d)}" > >> -ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfpv3d16", > >> "-vfpv3d16", "" ,d)}" > >> - > >> TUNEVALID[vfpv3] = "Enable Vector Floating Point Version 3 with 32 > >> registers (vfpv3) unit." > >> -TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "vfpv3", " > >> -mfpu=vfpv3", "", d)}" > >> -ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfpv3", > >> "-vfpv3", "" ,d)}" > >> - > >> TUNEVALID[vfpv4] = "Enable Vector Floating Point Version 4 (vfpv4) unit." > >> -ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfpv4", > >> "-vfpv4", "" ,d)}" > >> - > >> +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit." > >> +TUNEVALID[neon] = "Enable vfpv3 and Neon SIMD accelerator unit." > >> +TUNEVALID[crypto] = "Enable ARMv8 crypto extension." > >> TUNEVALID[callconvention-hard] = "Enable EABI hard float call > >> convention, requires VFP." > >> -TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "vfp", > >> bb.utils.contains("TUNE_FEATURES", "callconvention-hard", " > >> -mfloat-abi=hard", " -mfloat-abi=softfp", d), "" ,d)}" > >> -ARMPKGSFX_EABI .= "${@bb.utils.contains("TUNE_FEATURES", [ > >> "callconvention-hard", "vfp" ], "hf", "", d)}" > >> + > >> +python () { > >> + if bb.utils.contains("TUNE_FEATURES", "crc", True, False, d): > >> + d.appendVar("ARMPKGSFX_FPU", "-crc") > >> + > >> + if bb.utils.contains("TUNE_FEATURES", "vfp", True, False, d): > >> + d.appendVar("ARMPKGSFX_FPU", "-vfp") > >> + > >> + if bb.utils.contains("TUNE_FEATURES", "vfpv3d16", True, False, d): > >> + d.appendVar("TUNE_CCARGS", " -mfpu=vfpv3-d16") > >> + d.appendVar("ARMPKGSFX_FPU", "-vfpv3d16") > >> + > >> + if bb.utils.contains("TUNE_FEATURES", "vfpv3", True, False, d): > >> + d.appendVar("TUNE_CCARGS", " -mfpu=vfpv3") > >> + d.appendVar("ARMPKGSFX_FPU", "-vfpv3") > >> + elif bb.utils.contains("TUNE_FEATURES", "vfpv4", True, False, d): > >> + if bb.utils.contains("TUNE_FEATURES", "neon", True, False, d): > >> + d.appendVar("TUNE_CCARGS", " -mfpu=neon-vfpv4") > >> + d.appendVar("ARMPKGSFX_FPU", "-neon-vfpv4") > >> + else: > >> + d.appendVar("TUNE_CCARGS", " -mfpu=vfpv4") > >> + d.appendVar("ARMPKGSFX_FPU", "-vfpv4") > >> + elif bb.utils.contains("TUNE_FEATURES", "fp-armv8", True, False, d): > >> + if bb.utils.contains("TUNE_FEATURES", "neon", True, False, d): > >> + if bb.utils.contains("TUNE_FEATURES", "crypto", True, > >> False, d): > >> + d.appendVar("TUNE_CCARGS", " > >> -mfpu=crypto-neon-fp-armv8") > >> + d.appendVar("ARMPKGSFX_FPU", > >> "-crypto-neon-fp-armv8") > >> + else: > >> + d.appendVar("TUNE_CCARGS", " > >> -mfpu=neon-fp-armv8") > >> + d.appendVar("ARMPKGSFX_FPU", "-neon-fp-armv8") > >> + else: > >> + d.appendVar("TUNE_CCARGS", " -mfpu=fp-armv8") > >> + d.appendVar("ARMPKGSFX_FPU", "-fp-armv8") > >> + elif bb.utils.contains("TUNE_FEATURES", "neon", True, False, d): > >> + d.appendVar("TUNE_CCARGS", " -mfpu=neon") > >> + d.appendVar("ARMPKGSFX_FPU", "-neon") > >> + > >> + if bb.utils.contains("TUNE_FEATURES", "callconvention-hard", True, > >> False, d): > >> + d.appendVar("TUNE_CCARGS", " -mfloat-abi=hard") > >> + else: > >> + d.appendVar("TUNE_CCARGS", " -mfloat-abi=softfp") > >> + if bb.utils.contains("TUNE_FEATURES", [ "vfp", "callconvention-hard" ], > >> True, False, d): > >> + d.appendVar("ARMPKGSFX_EABI", "hf") > >> +} > >> -- > >> 1.9.1 > >> > >> -- > >> _______________________________________________ > >> Openembedded-core mailing list > >> Openembedded-core@lists.openembedded.org > >> http://lists.openembedded.org/mailman/listinfo/openembedded-core > -- Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com
signature.asc
Description: Digital signature
-- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core