[OE-core] [RFC][PATCH] cortexa{7,15,17}: add VFPv4 tunes

Martin Jansa martin.jansa at gmail.com
Tue Oct 6 14:28:57 UTC 2015


On Tue, Oct 06, 2015 at 02:52:21PM +0100, Phil Blundell wrote:
> On Tue, 2015-10-06 at 15:36 +0200, Martin Jansa wrote:
> > 
> > * we should also update Cortex-A7 and Cortex-A15, to use 
> > -march=armv7ve,
> >   but the problem is that oe-core has gcc-4.[89] and gcc-5.2 and gcc
> > -4.8
> >   doesn't support it yet,
> 
> Or you could make it use -mcpu=cortex-a15, which works for all gcc
> versions within living memory.  I've been using this change locally for
> some months and it seems to work reasonably well:

Thanks for comment.

Yes, that's what we're doing now for our MACHINEs (dropping -march while adding -mcpu).

But on current tunes I liked how hierarchical they are, so dropping
common armv7a (or armv7ve) seems a bit strange in current design.

> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> index a94386f..22291dc 100644
> --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
> +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> @@ -12,6 +12,7 @@ ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6',  't',  '', d
>  ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 't2', '', d)}"
>  ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', 't2', '', d)}"
>  ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 't2', '', d)}"
> +ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa15', 't2', '', d)}"
>  
>  # If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb")
>  # If the defice doesn't support ARM, then always set "thumb" even when
> diff --git a/meta/conf/machine/include/tune-cortexa15.inc b/meta/conf/machine/include/tune-cortexa15.inc
> index 5529777..f6c7d80 100644
> --- a/meta/conf/machine/include/tune-cortexa15.inc
> +++ b/meta/conf/machine/include/tune-cortexa15.inc
> @@ -3,7 +3,9 @@ DEFAULTTUNE ?= "armv7a-neon"
>  require conf/machine/include/arm/arch-armv7a.inc
>  
>  TUNEVALID[cortexa15] = "Enable Cortex-A15 specific processor optimizations"
> -TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa15", " -mtune=cortex-a15", "", d)}"
> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa15", " -mcpu=cortex-a15", "", d)}"
> +
> +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa15", "cortexa15:armv7a:", "" ,d)}"
>  
>  # Little Endian base configs
>  AVAILTUNES += "cortexa15 cortexa15t cortexa15-neon cortexa15t-neon"
> @@ -11,10 +13,10 @@ ARMPKGARCH_tune-cortexa15 = "cortexa15"
>  ARMPKGARCH_tune-cortexa15t = "cortexa15"
>  ARMPKGARCH_tune-cortexa15-neon = "cortexa15"
>  ARMPKGARCH_tune-cortexa15t-neon = "cortexa15"
> -TUNE_FEATURES_tune-cortexa15 = "${TUNE_FEATURES_tune-armv7a} cortexa15"
> -TUNE_FEATURES_tune-cortexa15t = "${TUNE_FEATURES_tune-armv7at} cortexa15"
> -TUNE_FEATURES_tune-cortexa15-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa15"
> -TUNE_FEATURES_tune-cortexa15t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa15"
> +TUNE_FEATURES_tune-cortexa15 = "arm vfp cortexa15"
> +TUNE_FEATURES_tune-cortexa15t = "arm vftp thumb cortexa15"
> +TUNE_FEATURES_tune-cortexa15-neon = "arm vfp neon cortexa15"
> +TUNE_FEATURES_tune-cortexa15t-neon = "arm vfp neon thumb cortexa15"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa15 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa15-vfp"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa15t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa15-vfp cortexa15t2-vfp"
>  PACKAGE_EXTRA_ARCHS_tune-cortexa15-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa15-vfp cortexa15-vfp-neon"
> 
> p.
> 

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20151006/9b52143f/attachment-0002.sig>


More information about the Openembedded-core mailing list