3.3.5.1. Overview

For simplicity, consider the following root BSP layer description files for the BeagleBone board. These files employ both a structure and naming convention for consistency. The naming convention for the file is as follows:

     bsp_root_name-kernel_type.scc
                

Here are some example root layer BSP filenames for the BeagleBone Board BSP, which is supported by the Yocto Project:

     beaglebone-standard.scc
     beaglebone-preempt-rt.scc
                

Each file uses the root name (i.e "beaglebone") BSP name followed by the kernel type.

Examine the beaglebone-standard.scc file:

     define KMACHINE beaglebone
     define KTYPE standard
     define KARCH arm

     include ktypes/standard/standard.scc
     branch beaglebone

     include beaglebone.scc

     # default policy for standard kernels
     include features/latencytop/latencytop.scc
     include features/profiling/profiling.scc
                

Every top-level BSP description file should define the KMACHINE, KTYPE, and KARCH variables. These variables allow the OpenEmbedded build system to identify the description as meeting the criteria set by the recipe being built. This example supports the "beaglebone" machine for the "standard" kernel and the "arm" architecture.

Be aware that a hard link between the KTYPE variable and a kernel type description file does not exist. Thus, if you do not have the kernel type defined in your kernel Metadata as it is here, you only need to ensure that the LINUX_KERNEL_TYPE variable in the kernel recipe and the KTYPE variable in the BSP description file match.

To separate your kernel policy from your hardware configuration, you include a kernel type (ktype), such as "standard". In the previous example, this is done using the following:

     include ktypes/standard/standard.scc
                

This file aggregates all the configuration fragments, patches, and features that make up your standard kernel policy. See the "Kernel Types" section for more information.

To aggregate common configurations and features specific to the kernel for mybsp, use the following:

     include mybsp.scc
                

You can see that in the BeagleBone example with the following:

     include beaglebone.scc
                

For information on how to break a complete .config file into the various configuration fragments, see the "Creating Configuration Fragments" section.

Finally, if you have any configurations specific to the hardware that are not in a *.scc file, you can include them as follows:

     kconf hardware mybsp-extra.cfg
                

The BeagleBone example does not include these types of configurations. However, the Malta 32-bit board does ("mti-malta32"). Here is the mti-malta32-le-standard.scc file:

     define KMACHINE mti-malta32-le
     define KMACHINE qemumipsel
     define KTYPE standard
     define KARCH mips

     include ktypes/standard/standard.scc
     branch mti-malta32

     include mti-malta32.scc
     kconf hardware mti-malta32-le.cfg