Providing a common form allows end-users to understand and become familiar with the layout. A common format also encourages standardization of software support of hardware.
The proposed form does have elements that are specific to the OpenEmbedded build system. It is intended that this information can be used by other build systems besides the OpenEmbedded build system and that it will be simple to extract information and convert it to other formats if required. The OpenEmbedded build system, through its standard layers mechanism, can directly accept the format described as a layer. The BSP captures all the hardware-specific details in one place in a standard format, which is useful for any person wishing to use the hardware platform regardless of the build system they are using.
The BSP specification does not include a build system or other tools - it is concerned with the hardware-specific components only. At the end-distribution point, you can ship the BSP combined with a build system and other tools. However, it is important to maintain the distinction that these are separate components that happen to be combined in certain end products.
Before looking at the common form for the file structure inside a BSP Layer, you should be aware that some requirements do exist in order for a BSP to be considered compliant with the Yocto Project. For that list of requirements, see the "Released BSP Requirements" section.
Below is the common form for the file structure inside a BSP Layer. While you can use this basic form for the standard, realize that the actual structures for specific BSPs could differ.
meta-<bsp_name>/ meta-<bsp_name>/<bsp_license_file> meta-<bsp_name>/README meta-<bsp_name>/README.sources meta-<bsp_name>/binary/<bootable_images> meta-<bsp_name>/conf/layer.conf meta-<bsp_name>/conf/machine/*.conf meta-<bsp_name>/recipes-bsp/* meta-<bsp_name>/recipes-core/* meta-<bsp_name>/recipes-graphics/* meta-<bsp_name>/recipes-kernel/linux/linux-yocto_<kernel_rev>.bbappend
Below is an example of the Crown Bay BSP:
meta-crownbay/COPYING.MIT meta-crownbay/README meta-crownbay/README.sources meta-crownbay/binary/ meta-crownbay/conf/ meta-crownbay/conf/layer.conf meta-crownbay/conf/machine/ meta-crownbay/conf/machine/crownbay.conf meta-crownbay/conf/machine/crownbay-noemgd.conf meta-crownbay/recipes-bsp/ meta-crownbay/recipes-bsp/formfactor/ meta-crownbay/recipes-bsp/formfactor/formfactor_0.0.bbappend meta-crownbay/recipes-bsp/formfactor/formfactor/ meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay/ meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay/machconfig meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay-noemgd/ meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay-noemgd/machconfig meta-crownbay/recipes-graphics/ meta-crownbay/recipes-graphics/xorg-xserver/ meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/ meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/ meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/xorg.conf meta-crownbay/recipes-kernel/ meta-crownbay/recipes-kernel/linux/ meta-crownbay/recipes-kernel/linux/linux-yocto_3.4.bbappend meta-crownbay/recipes-kernel/linux/linux-yocto_3.8.bbappend meta-crownbay/recipes-kernel/linux/linux-yocto_3.10.bbappend meta-crownbay/recipes-kernel/linux/linux-yocto-dev.bbappend meta-crownbay/recipes-kernel/linux/linux-yocto-rt_3.4.bbappend meta-crownbay/recipes-kernel/linux/linux-yocto-rt_3.8.bbappend meta-crownbay/recipes-kernel/linux/linux-yocto-rt_3.10.bbappend
The following sections describe each part of the proposed BSP format.