[yocto] cortexa9t2hf instead of cortexa9hf

Zoran Stojsavljevic zoran.stojsavljevic at gmail.com
Tue Jun 18 11:47:32 PDT 2019


> Just ARM_INSTRUCTION_SET to "arm" which will give you "cortexa9hf" again
> (not "armv7a").

I think this is impossible for the current state of YOCTO affairs. I
do not think bitbake is able to determine type of arm silicon, since
it needs to implement the following instruction somewhere beneath (in
privileged mode):
asm volatile("mrc p15, 0, r0, c0, c0, 0" : "=r"(reg_value) );

But according to the variable MACHINE (example: MACHINE ??=
"beaglebone"), it is able to determine that the platform is a type of
armv7a.

My two cent worth thinking,
Zoran
_______


On Tue, Jun 18, 2019 at 7:13 PM Martin Jansa <martin.jansa at gmail.com> wrote:
>
> On Mon, Jun 17, 2019 at 07:47:36PM +0200, Arno Steffens wrote:
> > Thanks for explaining this.
> > I take some time to read about thumb/thumb2. The feedback is mixed. It seems to generate more compact code, but some say it speeds up, others it slows down because of reduced function set - and it can cause strange effects.
> > And mixing this causes time to switch processor mode. So, as I am not an expert in this and can't decide what ist best on per function base and speed is of highest priority, I think I better should use not thumb(2).
> >
> > So, do I get it right that with this cortexa9t2hf I just have the option to compile it for thumb2? But without using a dedicated compiler option it generates same "standard" arm code and the difference is just to adapt all the Makefiles for this suffix.
> >
> > According to Martin I can get the previous setting by just set ARM_INSTRUCTION_SET to "arm" instead of "armv7a". Mh - I just afraid that I lose other kinds of optimisation. (I am just a user not an expert in arm architecture).
>
> I didn't say anything about changing the DEFAULTTUNE.
>
> Just ARM_INSTRUCTION_SET to "arm" which will give you "cortexa9hf" again
> (not "armv7a").
>
> > On the other hand for those like me it is better go the standard way. Once I am sure compiler results will not become worse (see above) I go for the pain and renaming my toolchain/makefiles/stuff.
>
> The results should be almost the same, maybe slightly better, depends on
> the actual code as Khem mentioned.
>
> But if this causes you a lot of pain "renaming my toolchain/makefiles/stuff"
> then you should probably spend the time on your tooling instead of
> replacing one hardcoded value with another.
>
> Cheers,
>
> >
> > Thanks for you taking the time.
> > Arno
> >
> > > Hello Arno,
> > >
> > > Let me try to explain my point of view. Since here (my best guess) we
> > > have some asynchronous bitbake code which went South upon introducing
> > > T2 HW extension.
> > >
> > > Point [1]: as far as I understand arm, cortexa9t2hf is is just a
> > > superset of previous cortexa9hf (HW wise). NEON HW extension (NEON
> > > media coprocessor) exists in both of them. In other words:
> > > cortexa9t2hf = cortexa9hf HW + T2 HW extension.
> > >
> > > Point [2]:
> > > > bitbake gives me in 2.5:
> > > > TUNE_FEATURES        = "arm armv7a vfp thumb neon callconvention-hard cortexa9"
> > > > TARGET_FPU           = "hard"
> > > >
> > > > and in 2.7:
> > > > TUNE_FEATURES        = "arm vfp cortexa9 neon thumb callconvention-hard"
> > > > TARGET_FPU           = "hard"
> > >
> > > These two lines are the same: you are able to use 32b arm mode, 16bit
> > > thumb mode, using armv7 HW with neon HW extension, and using HW FP
> > > extension as well. The Cortex in both cases is A9.
> > >
> > > I expect that somebody somewhere in bitbake version 1.42 - 100% sure
> > > (since 2.5/Sumo uses bitbake 1.38) dropped "armv7a" as TUNE FEATURE,
> > > and I have no idea if this is done intentionally or not.
> > >
> > > Because of that I copied Alex and Ross to CC: into email, so they
> > > should unveil this mystery (I would prefer "armv7" to stay in bitbake
> > > 1.42, since A8 and A9 belongs to armv7, A15 belongs to armv8 (IIRC).
> > >
> > > Bottom line: nothing to be done by you, Arno, seems that bitbake 1.42
> > > should return "armv7" as TUNE FEATURE.
> > >
> > > Best Regards,
> > > Zoran
> > > _______
> > >
> > >
> > > On Mon, Jun 17, 2019 at 3:00 PM Arno Steffens <star at gmx.li> wrote:
> > > >
> > > > Hello Zoran,
> > > > thanks. As far as I understand is thumb2 another mode of coding, that might create more compact code.
> > > > But I want to keep all compatible to my previous tool-chain and settings.
> > > > The only file where I can found this "cortexa9t2hf" is
> > > > ./meta/conf/machine/include/tune-cortexa9.inc
> > > > but I can't see how I can control Yocto to generate "cortexa9hf-neon" as before.
> > > > Or have I been wrong the time before?
> > > >
> > > > bitbake gives me in 2.5:
> > > >
> > > > TUNE_FEATURES        = "arm armv7a vfp thumb neon callconvention-hard cortexa9"
> > > > TARGET_FPU           = "hard"
> > > >
> > > > and in 2.7:
> > > > TUNE_FEATURES        = "arm vfp cortexa9 neon thumb callconvention-hard"
> > > > TARGET_FPU           = "hard"
> > > >
> > > > so armv7a seem to be missing. In terms of thumb both is same. But is that the reason? Where to set it?
> > > > Arno
> > > >
> > > > >
> > > > > Hello Arno,
> > > > >
> > > > > Your question, per say, has little to do with YOCTO forum. But I'll
> > > > > try (as my best) to answer your question.
> > > > >
> > > > > Cortexa9hf should be armv7 A9 Hard Floating (it contains HW FP unit).
> > > > >
> > > > > Cortexa9t2hf is by analogy armv7 A9 T2 Hard Floating. Now, the
> > > > > question is what is T2? T2 is addition to the previous architecture
> > > > > Cortexa9hf, and addition is Thumb-2 mode.
> > > > >
> > > > > Hope this helps,
> > > > >
> > > > > Zoran
> > > > > _______
> > > > >
> > > > > On Mon, Jun 17, 2019 at 2:03 PM Arno Steffens <star at gmx.li> wrote:
> > > > > >
> > > > > > I switched from Yocto 2.5 to 2.7 and recognised a new architetcure name.
> > > > > > Instead of cortexa9hf it is now build for cortexa9t2hf? Did I do something wrong or what exactly does this t2 mean?
> > > > > > Target system is a Zynq7020 system.
> > > > > > --
> > > > > > _______________________________________________
> > > > > > yocto mailing list
> > > > > > yocto at yoctoproject.org
> > > > > > https://lists.yoctoproject.org/listinfo/yocto
> > > > >
> > >
> > --
> > _______________________________________________
> > yocto mailing list
> > yocto at yoctoproject.org
> > https://lists.yoctoproject.org/listinfo/yocto
>
> --
> Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com


More information about the yocto mailing list