On Tue, Jun 28, 2011 at 12:13 PM, Darren Hart <dvh...@linux.intel.com> wrote: > > > On 06/28/2011 10:38 AM, Koen Kooi wrote: >> >> Op 28 jun 2011, om 19:36 heeft Darren Hart het volgende geschreven: >> >>> >>> >>> On 06/24/2011 04:54 AM, Koen Kooi wrote: >>>> Hi, >>>> >>>> We discussed tune files a bit during last nights TSC meeting and Khem had >>>> expressed the need before, so I'd like to get this discussion started by >>>> using >>>> armv7a as an example. >>>> >>>> For armv7a capable cores we have the following hardware features: >>>> >>>> * armv7a instruction set >>>> * thumb1 instruction set >>>> * thumb2 instruction set >>>> * VFP coprocessor >>>> * optional NEON coprocessor >>>> >>>> For the ABI we can choose the following: >>>> >>>> * softtp without hw support (e.g. no VFP instructions emitted, slow) >>>> * softfp with hw support (e.g. VFP and/or NEON instructions emitted, fast) >>>> * hardfp, emits VFP and/or NEON instructions, slightly faster than >>>> softfp/hw, >>>> incompatible with everything else >>>> >>>> And the extra knobs: >>>> >>>> * pure thumb1, no arm instructions (limited use) >>>> * thumb1/arm interworking >>>> * pure thumb2, no arm instructions >>>> * thumb2 interworking (not sure if that's actually usefull, thumb2 has >>>> complete coverage) >>>> >>>> In OE .dev we have the following vars: >>>> >>>> TARGET_FPU: switches between hw float and sw float, no reflection in >>>> package arch >>>> ARM_FP_ABI: switches between softfp and hardfp, will create 'armv7a' or >>>> 'armv7a-hardfp' as package arch >>>> ARM_INSTRUCTION_SET: switches between arm and thumb1, no reflection in >>>> package arch >>>> THUMB_INTERWORK: turns on interworking, no reflection in package arch >>>> >>>> (side note, oe-core/distroless and meta-yocto/poky don't turn set >>>> TARGET_FPU >>>> for armv7a and will generate slow code, angstrom does turn it on) >>> >>> >>> oe-core tune-cortexa8.inc doesn't make use of these variables (unlike >>> meta-texasinstruments) and does make use of the neon coprocessor, but >>> still uses the softfp float-api: >>> >>> TARGET_CC_ARCH = "-march=armv7-a -mtune=cortex-a8 -mfpu=neon >>> -mfloat-abi=softfp -fno-tree-vectorize" >> >> Don't confuse softfp calling conventions with softfloat! The above will >> still emit >> vfp and neon instructions if your set TARGET_FPU = hard > > Ah. So we would need to add something like: > > conf/distro/include/angstrom.inc:TARGET_FPU_armv7a ?= "hard" > conf/distro/include/angstrom.inc:TARGET_FPU_armv7a-vfp ?= "hard" > > to something DISTRO specific (poky.conf or similar). > > It isn't clear to me why this is a distro policy decision instead of > part of the tune include or the machine config itself. > > Can someone elaborate on why this goes where it does? >
adding to what Koen said. Its a different incompatible ABI hardfp binaries will not work on softfp root file system Since its a ABI changer its best left to distros to choose what ABI they would prefer but in oe-core we need to make provisions for that. Which we dont have at the moment. > Thanks, > > -- > Darren Hart > Intel Open Source Technology Center > Yocto Project - Linux Kernel > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core > _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core