Lines Matching refs:BSP

4 Board Support Packages (BSP) - Developer's Guide
7 A Board Support Package (BSP) is a collection of information that
9 hardware platform. The BSP includes information about the hardware
11 along with any additional hardware drivers required. The BSP also lists
15 This guide presents information about BSP layers, defines a structure
17 discusses how to customize a recipe for a BSP, addresses BSP licensing,
18 and provides information that shows you how to create a BSP
19 Layer using the :ref:`bitbake-layers <bsp-guide/bsp:Creating a new BSP Layer Using the \`\`bitbake-…
22 BSP Layers
25 A BSP consists of a file structure inside a base directory.
27 and the contents as a BSP layer. Although not a strict requirement, BSP
38 Because the BSP layer naming convention is well-established, it is
40 BSP layer name does not need to start with ``meta-``.
44 To help understand the BSP layer concept, consider the BSPs that the
57 Each repository is a BSP layer supported by the Yocto Project (e.g.
61 Here is an example that clones the Raspberry Pi BSP layer::
65 In addition to BSP layers, the ``meta-yocto-bsp`` layer is part of the
70 For information on typical BSP development workflow, see the
78 The BSP layer's base directory (``meta-bsp_root_name``) is the root
86 to recognize the BSP
104 Some BSPs require or depend on additional layers beyond the BSP's root
106 layers in the ``README`` "Dependencies" section of the BSP's root layer.
107 Additionally, if any build instructions exist for the BSP, you must add
110 Some layers function as a layer to hold other BSP layers. These layers
134 Preparing Your Build Host to Work With BSP Layers
137 This section describes how to get your build host ready to work with BSP
166 #. *Determine the BSP Layer You Want:* The Yocto Project supports many
169 BSP layers, you can look at the
173 #. *Optionally Clone the meta-intel BSP Layer:* If your hardware is
174 based on current Intel CPUs and devices, you can leverage this BSP
175 layer. For details on the ``meta-intel`` BSP layer, see the layer's
213 #. *Optionally Set Up an Alternative BSP Layer:* If your hardware can be
214 more closely leveraged to an existing BSP not within the
215 ``meta-intel`` BSP layer, you can clone that BSP layer.
247 Defining a common BSP directory structure allows end-users to understand
258 directly accept the format described as a layer. The BSP layer captures
263 The BSP specification does not include a build system or other tools -
265 only. At the end-distribution point, you can ship the BSP layer combined
267 maintain the distinction that the BSP layer, a build system, and tools
271 inside a BSP layer, you should be aware that there are some requirements
272 in order for a BSP layer to be considered compliant with the Yocto
276 Below is the typical directory structure for a BSP layer. While this
292 Below is an example of the Raspberry Pi BSP layer that is available from
450 The following sections describe each part of the proposed BSP format.
455 You can find these files in the BSP Layer at::
459 These optional files satisfy licensing requirements for the BSP. The
461 requirements. For example, in the Raspberry Pi BSP, all licensing
465 recommended for the BSP but are optional and totally up to the BSP
473 You can find this file in the BSP Layer at::
482 such as the names of any other layers on which the BSP depends and the
483 name of the BSP maintainer with his or her contact information.
488 You can find this file in the BSP Layer at::
492 This file provides information on where to locate the BSP source files
495 released with the BSP. The information in the ``README.sources`` file
497 used to generate the images that ship with the BSP.
501 If the BSP's ``binary`` directory is missing or the directory has no images, an
507 You can find these files in the BSP Layer at::
512 filesystem images released with the BSP that are appropriate to the
514 and minimal live images when the BSP tarball has been created and made
521 BSP Layer and it explains how to use the images with the target
530 You can find this file in the BSP Layer at::
538 "bsp" with the actual name of the BSP (i.e. "bsp_root_name" from the example
575 recognize the BSP.
580 You can find these files in the BSP Layer at::
585 in the BSP into a format that the build system can understand. Each BSP
586 Layer requires at least one machine file. If the BSP supports multiple
610 configuration file. For example, the Raspberry Pi BSP
615 Miscellaneous BSP-Specific Recipe Files
618 You can find these files in the BSP Layer at::
622 This optional directory contains miscellaneous recipe files for the BSP.
624 Raspberry Pi BSP, there is the ``formfactor_0.0.bbappend`` file, which
628 directory. Here is the ``machconfig`` file for the Raspberry Pi BSP::
639 If a BSP does not have a formfactor entry, defaults are established
648 You can find these files in the BSP Layer at::
652 This optional directory contains recipes for the BSP if it has special
653 requirements for graphics support. All files that are needed for the BSP
659 You can find these files in the BSP Layer at::
666 kernel recipe. This area of the BSP hierarchy can contain both these
670 For your BSP, you typically want to use an existing Yocto Project kernel
675 located in the BSP Layer for your target device (e.g. the
693 BSP settings to the kernel, thus configuring the kernel for your
694 particular BSP.
701 BSP. A good example of this is the Raspberry Pi BSP. If you examine the
711 Developing a Board Support Package (BSP)
715 a BSP. Although not required for BSP creation, the ``meta-intel``
723 The following illustration and list summarize the BSP creation general
735 local copies of these supported BSP layers on your system gives you
737 BSP. For information on how to get these files, see the
741 #. *Create Your Own BSP Layer Using the bitbake-layers Script:*
744 place the recipes and configurations for your BSP. In fact, a BSP is,
746 BSP layer that is compliant with the Yocto Project is to use the
762 information on BSP layers, see the ":ref:`bsp-guide/bsp:bsp layers`"
769 BSP layer:
780 - ``intel-core2-32``, which is a BSP optimized for the Core2
784 - ``intel-corei7-64``, which is a BSP optimized for Nehalem
788 - ``intel-quark``, which is a BSP optimized for the Intel
791 When you set up a layer for a new BSP, you should follow a standard
795 You can see the standard layout for a BSP by examining any supported
796 BSP found in the ``meta-intel`` layer inside the Source Directory.
798 #. *Make Configuration Changes to Your New BSP Layer:* The standard BSP
800 several ``recipes-*`` directories within the BSP layer. Configuration
804 many things for the BSP (e.g. keyboard, touchscreen, and so forth).
806 #. *Make Recipe Changes to Your New BSP Layer:* Recipe changes include
812 BSP layer, there remains a few things you need to do for the
837 BSP to be considered compliant with the Yocto Project.
839 Released BSP Requirements
842 Before looking at BSP requirements, you should consider the following:
844 - The requirements here assume the BSP layer is a well-formed, "legal"
852 a BSP. You should consult the packaging and distribution guidelines
854 distribution requirements, see the ":yocto_wiki:`Third Party BSP Release
858 - The requirements for the BSP as it is made available to a developer
859 are completely independent of the released form of the BSP. For
860 example, the BSP Metadata can be contained within a Git repository
862 appears in the officially released BSP layer.
865 exist in the BSP layer, beyond the requirements for general
868 BSP.
870 Following are the requirements for a released BSP that conform to the
873 - *Layer Name:* The BSP must have a layer name that follows the Yocto
874 Project standards. For information on BSP layer names, see the
878 your BSP layer as listed in the ``recipes.txt`` file, which is found
900 ``meta-bsp_root_name`` directory. This license covers the BSP
904 file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
910 file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
917 - A list of all the dependencies of the BSP. These dependencies are
918 typically a list of required layers needed to build the BSP.
920 regarding any other dependencies the BSP might have.
925 distribute binaries built from the BSP Metadata.
927 - The name and contact information for the BSP layer maintainer.
933 - Instructions on how to build the BSP using the BSP layer.
935 - Instructions on how to boot the BSP build from the BSP layer.
941 about when either building or booting the BSP binaries.
943 - *README.sources File:* If your BSP contains binary images in the
950 the ``meta-bsp_root_name`` BSP layer as a layer to the build
956 machine targets that can be built using the BSP layer. Multiple
958 configurations that the BSP supports. If a BSP supports multiple
960 the BSP ``README`` file. Do not use multiple machine configuration
962 targets, you should create separate BSP layers for each target.
967 repository as a conglomeration of unrelated BSP files, and to possibly
972 Released BSP Recommendations
980 BSP using their own hardware.
983 image. If so, you might want to make two versions of the BSP
988 If you need to distribute a BSP and include bootable images or build
989 kernel and filesystems meant to allow users to boot the BSP for
996 If you do include a bootable image as part of the BSP and the
1002 - *Use a Yocto Linux Kernel:* Kernel recipes in the BSP should be based
1004 the costs for maintaining the BSP and increases its scalability. See
1008 Customizing a Recipe for a BSP
1011 If you plan on customizing a recipe for a particular BSP, you need to do
1019 - Ensure your directory structure in the BSP layer that supports your
1024 name and is located in an appropriate sub-directory inside the BSP
1028 - Place the BSP-specific files in the proper directory inside the BSP
1039 BSP-specific configuration file named ``interfaces`` to the
1040 ``init-ifupdown_1.0.bb`` recipe for machine "xyz" where the BSP layer
1052 BSP's layer here::
1068 BSP Licensing Considerations
1071 In some cases, a BSP contains separately-licensed Intellectual Property
1076 the corresponding component in the final BSP image. If the BSP is
1089 of the licensed version in the BSP recipe.
1110 satisfy the licensing requirements for an encumbered BSP. The following
1136 #. *Get a Pre-Built Version of the BSP:* You can get this type of BSP by
1138 :yocto_home:`Yocto Project website <>`. You can download BSP tarballs
1141 of the download process. Obtaining the BSP this way allows you to
1145 the BSP tarball, you will still need to create an appropriate
1147 BSP.
1157 Creating a new BSP Layer Using the ``bitbake-layers`` Script
1160 The ``bitbake-layers create-layer`` script automates creating a BSP
1161 layer. What makes a layer a "BSP layer" is the presence of at least one
1162 machine configuration file. Additionally, a BSP layer usually has a
1166 Use these steps to create a BSP layer:
1197 new custom kernel recipe file (e.g. ``yocto-linux_4.12.bb``). The BSP
1204 Project reference BSP for Beaglebone, which resides in the
1208 BSP Layer Configuration Example
1228 configuration files is to examine various files for BSP from the
1236 BSP Machine Configuration Example
1240 configuration file is what makes a layer a BSP layer as compared to a
1445 BSP Kernel Recipe Example