Re: [yocto] GCC on ARM

2017-03-31 Thread Andre McCurdy
On Thu, Mar 30, 2017 at 10:07 PM, 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?

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
>
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] GCC on ARM

2017-03-31 Thread Khem Raj


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.



signature.asc
Description: OpenPGP digital signature
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] GCC on ARM

2017-03-30 Thread Gary Thomas

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

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


Re: [yocto] GCC on ARM

2017-03-30 Thread Khem Raj


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



signature.asc
Description: OpenPGP digital signature
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] GCC on ARM

2017-03-30 Thread Gary Thomas

[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

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