[yocto] cortexa9t2hf instead of cortexa9hf

Zoran Stojsavljevic zoran.stojsavljevic at gmail.com
Tue Jun 18 13:55:31 PDT 2019


> bitbake is still just a parser of the metadata and executor of our
> tasks, it doesn't (and shouldn't) need to know anything about arm silicons.

You precisely formulated my latest thoughts in one sentence. :-)

Cheers,
Zoran
_______

On Tue, Jun 18, 2019 at 9:03 PM Martin Jansa <martin.jansa at gmail.com> wrote:
>
> On Tue, Jun 18, 2019 at 08:47:32PM +0200, Zoran Stojsavljevic wrote:
> > > 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
>
> Have you read the commit which enabled thumb by default for MACHINEs
> which support it?
>
> bitbake is still just a parser of the metadata and executor of our
> tasks, it doesn't (and shouldn't) need to know anything about arm silicons.
>
> DEFAULTTUNE is still set in the MACHINE config (through one of the .inc
> files) and ARM_INSTRUCTION_SET is just another variable which says if
> it should include -mthumb or -marm by default in TUNE_CCARGS, read
> conf/machine/include/arm/feature-arm-thumb.inc
>
> Cheers,
>
> > 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
>
> --
> Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com


More information about the yocto mailing list