All of lore.kernel.org
 help / color / mirror / Atom feed
* GCC on ARM
@ 2017-03-31  4:07 Gary Thomas
  2017-03-31  5:07 ` Khem Raj
  0 siblings, 1 reply; 5+ messages in thread
From: Gary Thomas @ 2017-03-31  4:07 UTC (permalink / raw)
  To: yocto

[slightly off-topic]

I work with a number of embedded ARM devices, all with different
processors, hence somewhat different tuning and build directories:
   Raspberry-Pi (1,2,3 - mostly 3):
     TUNE_FEATURES     = "arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7"
     build dirs:
       tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi
   BeagleBoneBlack:
     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard"
     build dirs:
       tmp/work/armv7ahf-neon-poky-linux-gnueabi
   i.MX6:
     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard cortexa9"
     build dirs:
       tmp/work/cortexa9hf-neon-poky-linux-gnueabi
       tmp/work/cortexa9hf-neon-mx6qdl-poky-linux-gnueabi
       tmp/work/cortexa9t2hf-neon-mx6qdl-poky-linux-gnueabi

What I'm wondering is, except for the obvious programs that use SoC specific
functions like the IPU/GPU on the i.MX6, how different are these really?  So
much so that they have to all have unique binaries?  Surely I could build
busybox or python and run the same binary on all three?

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


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

* Re: GCC on ARM
  2017-03-31  4:07 GCC on ARM Gary Thomas
@ 2017-03-31  5:07 ` Khem Raj
  2017-03-31  5:33   ` Gary Thomas
  2017-03-31 18:41   ` Andre McCurdy
  0 siblings, 2 replies; 5+ messages in thread
From: Khem Raj @ 2017-03-31  5:07 UTC (permalink / raw)
  To: Gary Thomas, yocto


[-- Attachment #1.1: Type: text/plain, Size: 1314 bytes --]



On 3/30/17 9:07 PM, Gary Thomas wrote:
> [slightly off-topic]
> 
> I work with a number of embedded ARM devices, all with different
> processors, hence somewhat different tuning and build directories:
>   Raspberry-Pi (1,2,3 - mostly 3):
>     TUNE_FEATURES     = "arm armv7ve vfp thumb neon vfpv4
> callconvention-hard cortexa7"
>     build dirs:
>       tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi
>   BeagleBoneBlack:
>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard"
>     build dirs:
>       tmp/work/armv7ahf-neon-poky-linux-gnueabi
>   i.MX6:
>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard
> cortexa9"
>     build dirs:
>       tmp/work/cortexa9hf-neon-poky-linux-gnueabi
>       tmp/work/cortexa9hf-neon-mx6qdl-poky-linux-gnueabi
>       tmp/work/cortexa9t2hf-neon-mx6qdl-poky-linux-gnueabi
> 
> What I'm wondering is, except for the obvious programs that use SoC
> specific
> functions like the IPU/GPU on the i.MX6, how different are these
> really?  So
> much so that they have to all have unique binaries?  Surely I could build
> busybox or python and run the same binary on all three?
> 

You can chose a least common denominator and use that as DEFAULTTUNE for
all your machines. May be like armv7at2-neon


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 211 bytes --]

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

* Re: GCC on ARM
  2017-03-31  5:07 ` Khem Raj
@ 2017-03-31  5:33   ` Gary Thomas
  2017-03-31 17:22     ` Khem Raj
  2017-03-31 18:41   ` Andre McCurdy
  1 sibling, 1 reply; 5+ messages in thread
From: Gary Thomas @ 2017-03-31  5:33 UTC (permalink / raw)
  To: yocto

On 2017-03-31 07:07, Khem Raj wrote:
>
>
> On 3/30/17 9:07 PM, Gary Thomas wrote:
>> [slightly off-topic]
>>
>> I work with a number of embedded ARM devices, all with different
>> processors, hence somewhat different tuning and build directories:
>>   Raspberry-Pi (1,2,3 - mostly 3):
>>     TUNE_FEATURES     = "arm armv7ve vfp thumb neon vfpv4
>> callconvention-hard cortexa7"
>>     build dirs:
>>       tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi
>>   BeagleBoneBlack:
>>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard"
>>     build dirs:
>>       tmp/work/armv7ahf-neon-poky-linux-gnueabi
>>   i.MX6:
>>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard
>> cortexa9"
>>     build dirs:
>>       tmp/work/cortexa9hf-neon-poky-linux-gnueabi
>>       tmp/work/cortexa9hf-neon-mx6qdl-poky-linux-gnueabi
>>       tmp/work/cortexa9t2hf-neon-mx6qdl-poky-linux-gnueabi
>>
>> What I'm wondering is, except for the obvious programs that use SoC
>> specific
>> functions like the IPU/GPU on the i.MX6, how different are these
>> really?  So
>> much so that they have to all have unique binaries?  Surely I could build
>> busybox or python and run the same binary on all three?
>>
>
> You can chose a least common denominator and use that as DEFAULTTUNE for
> all your machines. May be like armv7at2-neon

That's good to know, thanks.

What would I be giving up?  Anything of substance/importance?

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


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

* Re: GCC on ARM
  2017-03-31  5:33   ` Gary Thomas
@ 2017-03-31 17:22     ` Khem Raj
  0 siblings, 0 replies; 5+ messages in thread
From: Khem Raj @ 2017-03-31 17:22 UTC (permalink / raw)
  To: Gary Thomas, yocto


[-- Attachment #1.1: Type: text/plain, Size: 1630 bytes --]



On 3/30/17 10:33 PM, Gary Thomas wrote:
> On 2017-03-31 07:07, Khem Raj wrote:
>>
>>
>> On 3/30/17 9:07 PM, Gary Thomas wrote:
>>> [slightly off-topic]
>>>
>>> I work with a number of embedded ARM devices, all with different
>>> processors, hence somewhat different tuning and build directories:
>>>   Raspberry-Pi (1,2,3 - mostly 3):
>>>     TUNE_FEATURES     = "arm armv7ve vfp thumb neon vfpv4
>>> callconvention-hard cortexa7"
>>>     build dirs:
>>>       tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi
>>>   BeagleBoneBlack:
>>>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard"
>>>     build dirs:
>>>       tmp/work/armv7ahf-neon-poky-linux-gnueabi
>>>   i.MX6:
>>>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard
>>> cortexa9"
>>>     build dirs:
>>>       tmp/work/cortexa9hf-neon-poky-linux-gnueabi
>>>       tmp/work/cortexa9hf-neon-mx6qdl-poky-linux-gnueabi
>>>       tmp/work/cortexa9t2hf-neon-mx6qdl-poky-linux-gnueabi
>>>
>>> What I'm wondering is, except for the obvious programs that use SoC
>>> specific
>>> functions like the IPU/GPU on the i.MX6, how different are these
>>> really?  So
>>> much so that they have to all have unique binaries?  Surely I could
>>> build
>>> busybox or python and run the same binary on all three?
>>>
>>
>> You can chose a least common denominator and use that as DEFAULTTUNE for
>> all your machines. May be like armv7at2-neon
> 
> That's good to know, thanks.
> 
> What would I be giving up?  Anything of substance/importance?
> 

I doubt anything. Optimizations are oversell.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 211 bytes --]

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

* Re: GCC on ARM
  2017-03-31  5:07 ` Khem Raj
  2017-03-31  5:33   ` Gary Thomas
@ 2017-03-31 18:41   ` Andre McCurdy
  1 sibling, 0 replies; 5+ messages in thread
From: Andre McCurdy @ 2017-03-31 18:41 UTC (permalink / raw)
  To: Khem Raj; +Cc: yocto, Gary Thomas

On Thu, Mar 30, 2017 at 10:07 PM, Khem Raj <raj.khem@gmail.com> wrote:
> On 3/30/17 9:07 PM, Gary Thomas wrote:
>> [slightly off-topic]
>>
>> I work with a number of embedded ARM devices, all with different
>> processors, hence somewhat different tuning and build directories:
>>   Raspberry-Pi (1,2,3 - mostly 3):
>>     TUNE_FEATURES     = "arm armv7ve vfp thumb neon vfpv4
>> callconvention-hard cortexa7"
>>     build dirs:
>>       tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi
>>   BeagleBoneBlack:
>>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard"
>>     build dirs:
>>       tmp/work/armv7ahf-neon-poky-linux-gnueabi
>>   i.MX6:
>>     TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard
>> cortexa9"
>>     build dirs:
>>       tmp/work/cortexa9hf-neon-poky-linux-gnueabi
>>       tmp/work/cortexa9hf-neon-mx6qdl-poky-linux-gnueabi
>>       tmp/work/cortexa9t2hf-neon-mx6qdl-poky-linux-gnueabi
>>
>> What I'm wondering is, except for the obvious programs that use SoC
>> specific
>> functions like the IPU/GPU on the i.MX6, how different are these
>> really?

These tuning features refer to the CPU core only - not the rest of the
SoC. Any differences in GPU etc are not relevant.

>> So
>> much so that they have to all have unique binaries?  Surely I could build
>> busybox or python and run the same binary on all three?

CPU cores are generally backwards compatible. The Raspberry-Pi 3
(armv7ve) could run binaries created for the other two (armv7a), but
not necessarily the other way around. e.g. armv7ve adds support for
integer division in HW, which isn't supported by armv7a, so if busybox
contains any integer division operations (which it almost certainly
does) then a busybox binary built for Raspberry-Pi 3 would fail to run
on the other two.

> You can chose a least common denominator and use that as DEFAULTTUNE for
> all your machines. May be like armv7at2-neon

The common denominator for the examples above would include hardfloat, ie:

  DEFAULTTUNE = "armv7athf-neon"

>
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>


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

end of thread, other threads:[~2017-03-31 18:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-31  4:07 GCC on ARM Gary Thomas
2017-03-31  5:07 ` Khem Raj
2017-03-31  5:33   ` Gary Thomas
2017-03-31 17:22     ` Khem Raj
2017-03-31 18:41   ` Andre McCurdy

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.