[OE-core] armv6-novfp and armv6-vfp and tune files
Mark Hatle
mark.hatle at windriver.com
Mon Sep 19 14:18:05 UTC 2011
On 9/17/11 11:13 AM, Denis 'GNUtoo' Carikli wrote:
> hi,
> I've an HTC Dream, it has an armv6 CPU but lack a vfp unit.
> I want to add correct support for it in meta-smartphone/meta-htc.
> In order to have a correct machine config that works a tune inc file
> must be required in it.
>
> In openembedded-core there is no tune file yet for an armv6 that lacks a
> vfp, but there are theses two files:
> meta/conf/machine/include/tune-arm1136jf-s.inc
> meta/conf/machine/include/arm/arch-armv6.inc
>
> tune-arm1136jf-s.inc requires arch-armv6.inc.
>
> So I need to create an tune-arm1136ej-s.inc which requires an
> arch-armv6-novfp.inc(also to be created).
>
Is the arm1136ej-s the core in the HTC dream? Or is it a custom armv6 (w/o vfp)?
If it's the later you should add a new tune file for this htc dream's processor.
The arch-armv6 should be modified to include a novfp feature. Using the armv5
as an example, I suggest:
# Little Endian
-AVAILTUNES += "armv6 armv6t armv6hf armv6thf"
+AVAILTUNES += "armv6-novfp armv6 armv6t armv6hf armv6thf"
+TUNE_FEATURES_tune-armv6-novfp ?= "armv6"
+PACKAGE_EXTRA_ARCHS_tune-armv6-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5e} armv6"
(if there is a thumb variant, add that as well...)
(...and... if there is a big endian variant add that as well...)
Then using tune-arm1136ej-s.inc as a model for a new htc-dream tune:
DEFAULTTUNE ?= "htcdream"
require conf/machine/include/arm/arch-armv6.inc
TUNEVALID[htcdream] = "Enable HTC dream specific processor optimizations"
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "htcdream",
"-mtune=<something appropriate here>", "", d)}"
AVAILTUNES += "htcdream"
TUNE_FEATURES_tune-htcdream = "${TUNE_FEATURES_tune-armv6-novfp} htcdream"
PACKAGE_EXTRA_ARCHS_tune-htcdream = "${PACKAGE_EXTRA_ARCHS_tune-armv6-novfp}"
If the htc-dream has an existing core, then you can simply add a "novfp" variant
to that core.
>
> however I wonder how to create the armv6-novfp.inc:
> arch-armv6.inc has things like that inside:
> TUNE_FEATURES_tune-armv6 ?= "armv6 vfp"
> or:
> PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp}
> armv6-vfp"
> or:
> TUNEVALID[armv6] = "Enable instructions for ARMv6"
>
> in the recipes and in the feeds and in the workdir it's labeled as
> "armv6-vfp".
>
> So the correct way would be to label an armv6 that lacks a vfp "armv6".
>
> however, I fear that the armv6 override is already taken, and also maybe
> the arch-armv6.inc should be moved to arch-armv6-vfp.inc.
Due to the way this was originally implemented, I was told no variants of the
armv6 existed w/o VFP..... so the naming is what it is, I'm open to suggesting
a change to make it more explicit that armv6 is w/o VFP and armv6-vfp is w/ VFP.
But it's up to the oe-core community if they'll accept that change to the core
tunings. It's more likely they will accept armv6-novfp (as in the examples above.)
--Mark
> Denis.
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
More information about the Openembedded-core
mailing list