Patchwork [2/2] feature-arm-thumb: Fix missing t2 suffix for armv7a MACHINEs

login
register
mail settings
Submitter Martin Jansa
Date Jan. 21, 2014, 11:43 p.m.
Message ID <1390347792-24649-2-git-send-email-Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/65429/
State New
Headers show

Comments

Martin Jansa - Jan. 21, 2014, 11:43 p.m.
* unfortunatelly that note about armv7 matching also armv7a is no
  longer valid since armv7 include in armv7 was replaced with
  armv6+neon in this commit:

  commit 75b8adbc042e0f65fb1286bc550d02becd3b6aea
  Author: Khem Raj <raj.khem@gmail.com>
  Date:   Tue Mar 27 18:37:45 2012 -0700

    tune/armv7: Delete

  since then thumb and arm feeds had the same architecture
* be aware that this will rename lots of feeds

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/conf/machine/include/arm/feature-arm-thumb.inc | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
Martin Jansa - Jan. 22, 2014, 12:49 a.m.
On Wed, Jan 22, 2014 at 12:43:12AM +0100, Martin Jansa wrote:
> * unfortunatelly that note about armv7 matching also armv7a is no
>   longer valid since armv7 include in armv7 was replaced with
>   armv6+neon in this commit:
> 
>   commit 75b8adbc042e0f65fb1286bc550d02becd3b6aea
>   Author: Khem Raj <raj.khem@gmail.com>
>   Date:   Tue Mar 27 18:37:45 2012 -0700
> 
>     tune/armv7: Delete
> 
>   since then thumb and arm feeds had the same architecture
> * be aware that this will rename lots of feeds

Can someone confirm that t2 should be included for armv7m or armv7r?

It looks like armv7m definitely should include it, but it doesn't even have
thumb in TUNE_FEATURES for the only armv7m user we have in oe-core cortexm3:

tune-cortexm3.inc:TUNE_FEATURES_tune-cortexm3 = "armv7m vfp cortexm3"
tune-cortexm3.inc:PACKAGE_EXTRA_ARCHS_tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7m-vfp"

tune-cortexr4.inc:TUNE_FEATURES_tune-cortexr4 = "armv7r vfp cortexr4"
tune-cortexr4.inc:PACKAGE_EXTRA_ARCHS_tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7r-vfp"

Anyway I'm sending a bit bigger RFC/WIP patchset to address this.

> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  meta/conf/machine/include/arm/feature-arm-thumb.inc | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> index bd754be..fa3a4e5 100644
> --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
> +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> @@ -9,11 +9,10 @@ ARM_THUMB_M_OPT = "${@['-marm', '-mthumb'][d.getVar('ARM_INSTRUCTION_SET', True)
>  TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", " ${ARM_THUMB_M_OPT}", "", d)}"
>  OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
>  
> -# Note armv7 will hit on armv7a as well
>  ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv4", "thumb" ], "t", "", d)}"
>  ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "thumb" ], "t", "", d)}"
>  ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv6", "thumb" ], "t", "", d)}"
> -ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7", "thumb" ], "t2", "", d)}"
> +ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7a", "thumb" ], "t2", "", d)}"
>  
>  # Whether to compile with code to allow interworking between the two
>  # instruction sets. This allows thumb code to be executed on a primarily
> -- 
> 1.8.5.3
>
Koen Kooi - Jan. 22, 2014, 6:43 a.m.
Op 22 jan. 2014, om 01:49 heeft Martin Jansa <martin.jansa@gmail.com> het volgende geschreven:

> On Wed, Jan 22, 2014 at 12:43:12AM +0100, Martin Jansa wrote:
>> * unfortunatelly that note about armv7 matching also armv7a is no
>>  longer valid since armv7 include in armv7 was replaced with
>>  armv6+neon in this commit:
>> 
>>  commit 75b8adbc042e0f65fb1286bc550d02becd3b6aea
>>  Author: Khem Raj <raj.khem@gmail.com>
>>  Date:   Tue Mar 27 18:37:45 2012 -0700
>> 
>>    tune/armv7: Delete
>> 
>>  since then thumb and arm feeds had the same architecture
>> * be aware that this will rename lots of feeds
> 
> Can someone confirm that t2 should be included for armv7m or armv7r?

cortex-M is thumb2 only, no idea about cortex-r.

regards,

Koen

> 
> It looks like armv7m definitely should include it, but it doesn't even have
> thumb in TUNE_FEATURES for the only armv7m user we have in oe-core cortexm3:
> 
> tune-cortexm3.inc:TUNE_FEATURES_tune-cortexm3 = "armv7m vfp cortexm3"
> tune-cortexm3.inc:PACKAGE_EXTRA_ARCHS_tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7m-vfp"
> 
> tune-cortexr4.inc:TUNE_FEATURES_tune-cortexr4 = "armv7r vfp cortexr4"
> tune-cortexr4.inc:PACKAGE_EXTRA_ARCHS_tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7r-vfp"
> 
> Anyway I'm sending a bit bigger RFC/WIP patchset to address this.
> 
>> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
>> ---
>> meta/conf/machine/include/arm/feature-arm-thumb.inc | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>> 
>> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
>> index bd754be..fa3a4e5 100644
>> --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
>> +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
>> @@ -9,11 +9,10 @@ ARM_THUMB_M_OPT = "${@['-marm', '-mthumb'][d.getVar('ARM_INSTRUCTION_SET', True)
>> TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", " ${ARM_THUMB_M_OPT}", "", d)}"
>> OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
>> 
>> -# Note armv7 will hit on armv7a as well
>> ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv4", "thumb" ], "t", "", d)}"
>> ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "thumb" ], "t", "", d)}"
>> ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv6", "thumb" ], "t", "", d)}"
>> -ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7", "thumb" ], "t2", "", d)}"
>> +ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7a", "thumb" ], "t2", "", d)}"
>> 
>> # Whether to compile with code to allow interworking between the two
>> # instruction sets. This allows thumb code to be executed on a primarily
>> -- 
>> 1.8.5.3
>> 
> 
> -- 
> Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Martin Jansa - Jan. 22, 2014, 9:57 a.m.
On Wed, Jan 22, 2014 at 07:43:19AM +0100, Koen Kooi wrote:
> 
> Op 22 jan. 2014, om 01:49 heeft Martin Jansa <martin.jansa@gmail.com> het volgende geschreven:
> 
> > On Wed, Jan 22, 2014 at 12:43:12AM +0100, Martin Jansa wrote:
> >> * unfortunatelly that note about armv7 matching also armv7a is no
> >>  longer valid since armv7 include in armv7 was replaced with
> >>  armv6+neon in this commit:
> >> 
> >>  commit 75b8adbc042e0f65fb1286bc550d02becd3b6aea
> >>  Author: Khem Raj <raj.khem@gmail.com>
> >>  Date:   Tue Mar 27 18:37:45 2012 -0700
> >> 
> >>    tune/armv7: Delete
> >> 
> >>  since then thumb and arm feeds had the same architecture
> >> * be aware that this will rename lots of feeds
> > 
> > Can someone confirm that t2 should be included for armv7m or armv7r?
> 
> cortex-M is thumb2 only, no idea about cortex-r.

Thanks.

From
http://www.arm.com/products/processors/cortex-r/cortex-r4.php

it looks like r4 should support both, I've addressed that in following
RFC/WIP.

> > It looks like armv7m definitely should include it, but it doesn't even have
> > thumb in TUNE_FEATURES for the only armv7m user we have in oe-core cortexm3:
> > 
> > tune-cortexm3.inc:TUNE_FEATURES_tune-cortexm3 = "armv7m vfp cortexm3"
> > tune-cortexm3.inc:PACKAGE_EXTRA_ARCHS_tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7m-vfp"
> > 
> > tune-cortexr4.inc:TUNE_FEATURES_tune-cortexr4 = "armv7r vfp cortexr4"
> > tune-cortexr4.inc:PACKAGE_EXTRA_ARCHS_tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7r-vfp"
> > 
> > Anyway I'm sending a bit bigger RFC/WIP patchset to address this.
> > 
> >> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> >> ---
> >> meta/conf/machine/include/arm/feature-arm-thumb.inc | 3 +--
> >> 1 file changed, 1 insertion(+), 2 deletions(-)
> >> 
> >> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> >> index bd754be..fa3a4e5 100644
> >> --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
> >> +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> >> @@ -9,11 +9,10 @@ ARM_THUMB_M_OPT = "${@['-marm', '-mthumb'][d.getVar('ARM_INSTRUCTION_SET', True)
> >> TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", " ${ARM_THUMB_M_OPT}", "", d)}"
> >> OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
> >> 
> >> -# Note armv7 will hit on armv7a as well
> >> ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv4", "thumb" ], "t", "", d)}"
> >> ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "thumb" ], "t", "", d)}"
> >> ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv6", "thumb" ], "t", "", d)}"
> >> -ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7", "thumb" ], "t2", "", d)}"
> >> +ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7a", "thumb" ], "t2", "", d)}"
> >> 
> >> # Whether to compile with code to allow interworking between the two
> >> # instruction sets. This allows thumb code to be executed on a primarily
> >> -- 
> >> 1.8.5.3
> >> 
> > 
> > -- 
> > Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
>

Patch

diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
index bd754be..fa3a4e5 100644
--- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -9,11 +9,10 @@  ARM_THUMB_M_OPT = "${@['-marm', '-mthumb'][d.getVar('ARM_INSTRUCTION_SET', True)
 TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", " ${ARM_THUMB_M_OPT}", "", d)}"
 OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
 
-# Note armv7 will hit on armv7a as well
 ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv4", "thumb" ], "t", "", d)}"
 ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "thumb" ], "t", "", d)}"
 ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv6", "thumb" ], "t", "", d)}"
-ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7", "thumb" ], "t2", "", d)}"
+ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7a", "thumb" ], "t2", "", d)}"
 
 # Whether to compile with code to allow interworking between the two
 # instruction sets. This allows thumb code to be executed on a primarily