[yocto] Splitting processor and target in BSPs

Tom Zanussi tom.zanussi at intel.com
Fri Sep 2 12:39:13 PDT 2011


On Fri, 2011-09-02 at 00:26 -0700, Chris Tapp wrote:
> How should meta data be structured so that a layer can support a set  
> of systems using a set of processors?
> 
> For example, many of the 'eBox' systems use variants of the Vortex86  
> SoC. So, a set of machine files are needed for these (e.g. ebox-3300,  
> ebox-3500mx, etc.).
> 
> These have different peripherals available (e.g. some have serial,  
> some don't) and use different SoC variants with different cpu, sound,  
> etc. It would therefore make sense for the machine configuration to  
> inherit the SoC attributes (for the common features) and add (or  
> remove) machine specific attributes (e.g. serial) to these. This can  
> be done by putting the SoC bits in to an include.
> 
> However, kernel configuration becomes a little bit more complicated as  
> this is done by machine name. A kernel recipe will be needed for each  
> machine (e.g. for the different sound drivers), but I can't work out  
> how to do this using a base configuration for the SoCs that are shared  
> and then adding machine specific parts. I can do it using (for  
> example) a .defconfig for each machine, but that would require updates  
> to multiple files to change the SoC configuration.
> 
> I guess what I'm really asking is, is it possible to have a base CPU  
> configuration and add a machine configuration to this ?
> 
> I've recently seen discussion of .cfg kernel fragment files. Are these  
> what I should be looking at? Are these available in the releases or  
> only in the development branch?
> 

You might also be able to use 'KERNEL_FEATURES' to help manage the .cfg
fragments by machine.  For example, in the kernel recipes you can see:

meta/recipes-kernel/linux/linux-yocto_3.0.bb:

    # Functionality flags
    KERNEL_FEATURES="features/netfilter"
    KERNEL_FEATURES_append=" features/taskstats"
    KERNEL_FEATURES_append_qemux86=" cfg/sound"
    KERNEL_FEATURES_append_qemux86-64=" cfg/sound"

which map to features in the yocto kernel meta branch.

And in the kernel .bbappends in the kernel dev layer some more
explanation:

poky-extras/meta-kernel-dev/recipes-kernel/linux/linux-yocto_3.0.bbappend:

    # KERNEL_FEATURES are features to be added to the kernel, and must
    # point to configurations stored on the 'meta' branch of the kernel
    # that is being built.
    # KERNEL_FEATURES ?= <FOO>

Tom

> Chris Tapp
> 
> opensource at keylevel.com
> www.keylevel.com
> 
> 
> 
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto





More information about the yocto mailing list