summaryrefslogtreecommitdiffstats
path: root/documentation/bsp-guide
diff options
context:
space:
mode:
authorNicolas Dechesne <nicolas.dechesne@linaro.org>2020-09-14 22:48:21 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-09-17 10:09:35 +0100
commit9a569729dd1e190f528b9c1c63da88c2b83d8cff (patch)
tree3a4d6adeade33cf735e6b4ce098604759ac61ca4 /documentation/bsp-guide
parentbe93bbd86bdd14ade6de813fd310e976ba737a2e (diff)
downloadpoky-9a569729dd1e190f528b9c1c63da88c2b83d8cff.tar.gz
sphinx: convert bsp-guide
Last round of manual fixes for remaining links and conversion problems. (From yocto-docs rev: 954801327bf2574e6d7bc9275985be17cfd086f1) Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/bsp-guide')
-rw-r--r--documentation/bsp-guide/bsp.rst1068
1 files changed, 571 insertions, 497 deletions
diff --git a/documentation/bsp-guide/bsp.rst b/documentation/bsp-guide/bsp.rst
index cdde41af63..024a240c22 100644
--- a/documentation/bsp-guide/bsp.rst
+++ b/documentation/bsp-guide/bsp.rst
@@ -15,9 +15,8 @@ Linux software stack for both essential and optional platform features.
15This guide presents information about BSP layers, defines a structure 15This guide presents information about BSP layers, defines a structure
16for components so that BSPs follow a commonly understood layout, 16for components so that BSPs follow a commonly understood layout,
17discusses how to customize a recipe for a BSP, addresses BSP licensing, 17discusses how to customize a recipe for a BSP, addresses BSP licensing,
18and provides information that shows you how to create a `BSP 18and provides information that shows you how to create a BSP
19Layer <#bsp-layers>`__ using the 19Layer using the :ref:`bitbake-layers <bsp-guide/bsp:Creating a new BSP Layer Using the \`\`bitbake-layers\`\` Script>`
20```bitbake-layers`` <#creating-a-new-bsp-layer-using-the-bitbake-layers-script>`__
21tool. 20tool.
22 21
23BSP Layers 22BSP Layers
@@ -27,7 +26,11 @@ A BSP consists of a file structure inside a base directory.
27Collectively, you can think of the base directory, its file structure, 26Collectively, you can think of the base directory, its file structure,
28and the contents as a BSP layer. Although not a strict requirement, BSP 27and the contents as a BSP layer. Although not a strict requirement, BSP
29layers in the Yocto Project use the following well-established naming 28layers in the Yocto Project use the following well-established naming
30convention: meta-bsp_root_name The string "meta-" is prepended to the 29convention: ::
30
31 meta-bsp_root_name
32
33The string "meta-" is prepended to the
31machine or platform name, which is bsp_root_name in the above form. 34machine or platform name, which is bsp_root_name in the above form.
32 35
33.. note:: 36.. note::
@@ -35,14 +38,14 @@ machine or platform name, which is bsp_root_name in the above form.
35 Because the BSP layer naming convention is well-established, it is 38 Because the BSP layer naming convention is well-established, it is
36 advisable to follow it when creating layers. Technically speaking, a 39 advisable to follow it when creating layers. Technically speaking, a
37 BSP layer name does not need to start with 40 BSP layer name does not need to start with
38 meta- 41 meta-. However, various scripts and tools in the Yocto Project development
39 . However, various scripts and tools in the Yocto Project development
40 environment assume this convention. 42 environment assume this convention.
41 43
42To help understand the BSP layer concept, consider the BSPs that the 44To help understand the BSP layer concept, consider the BSPs that the
43Yocto Project supports and provides with each release. You can see the 45Yocto Project supports and provides with each release. You can see the
44layers in the `Yocto Project Source 46layers in the
45Repositories <&YOCTO_DOCS_OM_URL;#yocto-project-repositories>`__ through 47:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
48through
46a web interface at :yocto_git:`/`. If you go to that interface, 49a web interface at :yocto_git:`/`. If you go to that interface,
47you will find a list of repositories under "Yocto Metadata Layers". 50you will find a list of repositories under "Yocto Metadata Layers".
48 51
@@ -55,8 +58,9 @@ Each repository is a BSP layer supported by the Yocto Project (e.g.
55``meta-raspberrypi`` and ``meta-intel``). Each of these layers is a 58``meta-raspberrypi`` and ``meta-intel``). Each of these layers is a
56repository unto itself and clicking on the layer name displays two URLs 59repository unto itself and clicking on the layer name displays two URLs
57from which you can clone the layer's repository to your local system. 60from which you can clone the layer's repository to your local system.
58Here is an example that clones the Raspberry Pi BSP layer: $ git clone 61Here is an example that clones the Raspberry Pi BSP layer: ::
59git://git.yoctoproject.org/meta-raspberrypi 62
63 $ git clone git://git.yoctoproject.org/meta-raspberrypi
60 64
61In addition to BSP layers, the ``meta-yocto-bsp`` layer is part of the 65In addition to BSP layers, the ``meta-yocto-bsp`` layer is part of the
62shipped ``poky`` repository. The ``meta-yocto-bsp`` layer maintains 66shipped ``poky`` repository. The ``meta-yocto-bsp`` layer maintains
@@ -64,11 +68,11 @@ several "reference" BSPs including the ARM-based Beaglebone, MIPS-based
64EdgeRouter, and generic versions of both 32-bit and 64-bit IA machines. 68EdgeRouter, and generic versions of both 32-bit and 64-bit IA machines.
65 69
66For information on typical BSP development workflow, see the 70For information on typical BSP development workflow, see the
67"`Developing a Board Support Package 71:ref:`bsp-guide/bsp:developing a board support package (bsp)`
68(BSP) <#developing-a-board-support-package-bsp>`__" section. For more 72section. For more
69information on how to set up a local copy of source files from a Git 73information on how to set up a local copy of source files from a Git
70repository, see the "`Locating Yocto Project Source 74repository, see the
71Files <&YOCTO_DOCS_DEV_URL;#locating-yocto-project-source-files>`__" 75:ref:`dev-manual/dev-manual-start:locating yocto project source files`
72section in the Yocto Project Development Tasks Manual. 76section in the Yocto Project Development Tasks Manual.
73 77
74The BSP layer's base directory (``meta-bsp_root_name``) is the root 78The BSP layer's base directory (``meta-bsp_root_name``) is the root
@@ -77,26 +81,24 @@ directory of that Layer. This directory is what you add to the
77``conf/bblayers.conf`` file found in your 81``conf/bblayers.conf`` file found in your
78:term:`Build Directory`, which is 82:term:`Build Directory`, which is
79established after you run the OpenEmbedded build environment setup 83established after you run the OpenEmbedded build environment setup
80script (i.e. ````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__). 84script (i.e. :ref:`ref-manual/ref-structure:\`\`oe-init-build-env\`\`` ).
81Adding the root directory allows the :term:`OpenEmbedded Build System` 85Adding the root directory allows the :term:`OpenEmbedded Build System`
82to recognize the BSP 86to recognize the BSP
83layer and from it build an image. Here is an example: BBLAYERS ?= " \\ 87layer and from it build an image. Here is an example: ::
84/usr/local/src/yocto/meta \\ /usr/local/src/yocto/meta-poky \\ 88
85/usr/local/src/yocto/meta-yocto-bsp \\ /usr/local/src/yocto/meta-mylayer 89 BBLAYERS ?= " \
86\\ " 90 /usr/local/src/yocto/meta \
91 /usr/local/src/yocto/meta-poky \
92 /usr/local/src/yocto/meta-yocto-bsp \
93 /usr/local/src/yocto/meta-mylayer \
94 "
87 95
88.. note:: 96.. note::
89 97
90 Ordering and 98 Ordering and ``BBFILE_PRIORITY`` for the layers listed in BBLAYERS matter. For
91 BBFILE_PRIORITY 99 example, if multiple layers define a machine configuration, the OpenEmbedded
92 for the layers listed in 100 build system uses the last layer searched given similar layer priorities. The
93 BBLAYERS 101 build system works from the top-down through the layers listed in ``BBLAYERS``.
94 matter. For example, if multiple layers define a machine
95 configuration, the OpenEmbedded build system uses the last layer
96 searched given similar layer priorities. The build system works from
97 the top-down through the layers listed in
98 BBLAYERS
99 .
100 102
101Some BSPs require or depend on additional layers beyond the BSP's root 103Some BSPs require or depend on additional layers beyond the BSP's root
102layer in order to be functional. In this case, you need to specify these 104layer in order to be functional. In this case, you need to specify these
@@ -105,20 +107,27 @@ Additionally, if any build instructions exist for the BSP, you must add
105them to the "Dependencies" section. 107them to the "Dependencies" section.
106 108
107Some layers function as a layer to hold other BSP layers. These layers 109Some layers function as a layer to hold other BSP layers. These layers
108are knows as "`container 110are knows as ":term:`container layers <Container Layer>`". An example of
109layers <&YOCTO_DOCS_REF_URL;#term-container-layer>`__". An example of
110this type of layer is OpenEmbedded's 111this type of layer is OpenEmbedded's
111```meta-openembedded`https://github.com/openembedded/meta-openembedded 112`meta-openembedded <https://github.com/openembedded/meta-openembedded>`__
112layer. The ``meta-openembedded`` layer contains many ``meta-*`` layers. 113layer. The ``meta-openembedded`` layer contains many ``meta-*`` layers.
113In cases like this, you need to include the names of the actual layers 114In cases like this, you need to include the names of the actual layers
114you want to work with, such as: BBLAYERS ?= " \\ 115you want to work with, such as: ::
115/usr/local/src/yocto/meta \\ /usr/local/src/yocto/meta-poky \\ 116
116/usr/local/src/yocto/meta-yocto-bsp \\ /usr/local/src/yocto/meta-mylayer 117 BBLAYERS ?= " \
117\\ .../meta-openembedded/meta-oe \\ .../meta-openembedded/meta-perl \\ 118 /usr/local/src/yocto/meta \
118.../meta-openembedded/meta-networking \\ " and so on. 119 /usr/local/src/yocto/meta-poky \
119 120 /usr/local/src/yocto/meta-yocto-bsp \
120For more information on layers, see the "`Understanding and Creating 121 /usr/local/src/yocto/meta-mylayer \
121Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__" 122 .../meta-openembedded/meta-oe \
123 .../meta-openembedded/meta-perl \
124 .../meta-openembedded/meta-networking \
125 "
126
127and so on.
128
129For more information on layers, see the
130":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
122section of the Yocto Project Development Tasks Manual. 131section of the Yocto Project Development Tasks Manual.
123 132
124Preparing Your Build Host to Work With BSP Layers 133Preparing Your Build Host to Work With BSP Layers
@@ -126,101 +135,109 @@ Preparing Your Build Host to Work With BSP Layers
126 135
127This section describes how to get your build host ready to work with BSP 136This section describes how to get your build host ready to work with BSP
128layers. Once you have the host set up, you can create the layer as 137layers. Once you have the host set up, you can create the layer as
129described in the "`Creating a new BSP Layer Using the ``bitbake-layers`` 138described in the
130Script <#creating-a-new-bsp-layer-using-the-bitbake-layers-script>`__" 139":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
131section. 140section.
132 141
133.. note:: 142.. note::
134 143
135 For structural information on BSPs, see the 144 For structural information on BSPs, see the Example Filesystem Layout
136 Example Filesystem Layout
137 section. 145 section.
138 146
1391. *Set Up the Build Environment:* Be sure you are set up to use BitBake 147#. *Set Up the Build Environment:* Be sure you are set up to use BitBake
140 in a shell. See the "`Preparing the Build 148 in a shell. See the ":ref:`dev-manual/dev-manual-start:preparing the build host`"
141 Host <&YOCTO_DOCS_DEV_URL;#dev-preparing-the-build-host>`__" section 149 section in the Yocto Project Development Tasks Manual for information on how
142 in the Yocto Project Development Tasks Manual for information on how 150 to get a build host ready that is either a native Linux machine or a machine
143 to get a build host ready that is either a native Linux machine or a 151 that uses CROPS.
144 machine that uses CROPS.
145 152
1462. *Clone the ``poky`` Repository:* You need to have a local copy of the 153#. *Clone the ``poky`` Repository:* You need to have a local copy of the
147 Yocto Project :term:`Source Directory` (i.e. a local 154 Yocto Project :term:`Source Directory` (i.e. a local
148 ``poky`` repository). See the "`Cloning the ``poky`` 155 ``poky`` repository). See the
149 Repository <&YOCTO_DOCS_DEV_URL;#cloning-the-poky-repository>`__" and 156 "ref:`dev-manual/dev-manual-start:cloning the ``poky`` repository`" and
150 possibly the "`Checking Out by Branch in 157 possibly the
151 Poky <&YOCTO_DOCS_DEV_URL;#checking-out-by-branch-in-poky>`__" or 158 ":ref:`dev-manual/dev-manual-start:checking out by branch in poky`" or
152 "`Checking Out by Tag in 159 ":ref:`dev-manual/dev-manual-start:checking out by tag in poky`"
153 Poky <&YOCTO_DOCS_DEV_URL;#checkout-out-by-tag-in-poky>`__" sections 160 sections
154 all in the Yocto Project Development Tasks Manual for information on 161 all in the Yocto Project Development Tasks Manual for information on
155 how to clone the ``poky`` repository and check out the appropriate 162 how to clone the ``poky`` repository and check out the appropriate
156 branch for your work. 163 branch for your work.
157 164
1583. *Determine the BSP Layer You Want:* The Yocto Project supports many 165#. *Determine the BSP Layer You Want:* The Yocto Project supports many
159 BSPs, which are maintained in their own layers or in layers designed 166 BSPs, which are maintained in their own layers or in layers designed
160 to contain several BSPs. To get an idea of machine support through 167 to contain several BSPs. To get an idea of machine support through
161 BSP layers, you can look at the `index of 168 BSP layers, you can look at the `index of
162 machines <&YOCTO_RELEASE_DL_URL;/machines>`__ for the release. 169 machines <&YOCTO_RELEASE_DL_URL;/machines>`__ for the release.
163 170
1644. *Optionally Clone the ``meta-intel`` BSP Layer:* If your hardware is 171#. *Optionally Clone the ``meta-intel`` BSP Layer:* If your hardware is
165 based on current Intel CPUs and devices, you can leverage this BSP 172 based on current Intel CPUs and devices, you can leverage this BSP
166 layer. For details on the ``meta-intel`` BSP layer, see the layer's 173 layer. For details on the ``meta-intel`` BSP layer, see the layer's
167 ```README`http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/tree/README 174 `README <http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/tree/README>`__
168 file. 175 file.
169 176
170 1. *Navigate to Your Source Directory:* Typically, you set up the 177 #. *Navigate to Your Source Directory:* Typically, you set up the
171 ``meta-intel`` Git repository inside the :term:`Source Directory` (e.g. 178 ``meta-intel`` Git repository inside the :term:`Source Directory` (e.g.
172 ``poky``). $ cd /home/you/poky 179 ``poky``). ::
173 180
174 2. *Clone the Layer:* $ git clone 181 $ cd /home/you/poky
175 git://git.yoctoproject.org/meta-intel.git Cloning into
176 'meta-intel'... remote: Counting objects: 15585, done. remote:
177 Compressing objects: 100% (5056/5056), done. remote: Total 15585
178 (delta 9123), reused 15329 (delta 8867) Receiving objects: 100%
179 (15585/15585), 4.51 MiB \| 3.19 MiB/s, done. Resolving deltas:
180 100% (9123/9123), done. Checking connectivity... done.
181 182
182 3. *Check Out the Proper Branch:* The branch you check out for 183 #. *Clone the Layer:* ::
184
185 $ git clone git://git.yoctoproject.org/meta-intel.git
186 Cloning into 'meta-intel'...
187 remote: Counting objects: 15585, done.
188 remote: Compressing objects: 100% (5056/5056), done.
189 remote: Total 15585 (delta 9123), reused 15329 (delta 8867)
190 Receiving objects: 100% (15585/15585), 4.51 MiB | 3.19 MiB/s, done.
191 Resolving deltas: 100% (9123/9123), done.
192 Checking connectivity... done.
193
194 #. *Check Out the Proper Branch:* The branch you check out for
183 ``meta-intel`` must match the same branch you are using for the 195 ``meta-intel`` must match the same branch you are using for the
184 Yocto Project release (e.g. DISTRO_NAME_NO_CAP): $ cd meta-intel $ 196 Yocto Project release (e.g. &DISTRO_NAME_NO_CAP;): ::
185 git checkout -b DISTRO_NAME_NO_CAP 197
186 remotes/origin/DISTRO_NAME_NO_CAP Branch DISTRO_NAME_NO_CAP set up 198 $ cd meta-intel
187 to track remote branch DISTRO_NAME_NO_CAP from origin. Switched to 199 $ git checkout -b &DISTRO_NAME_NO_CAP; remotes/origin/&DISTRO_NAME_NO_CAP;
188 a new branch 'DISTRO_NAME_NO_CAP' 200 Branch &DISTRO_NAME_NO_CAP; set up to track remote branch
201 &DISTRO_NAME_NO_CAP; from origin.
202 Switched to a new branch '&DISTRO_NAME_NO_CAP;'
189 203
190 .. note:: 204 .. note::
191 205
192 To see the available branch names in a cloned repository, use 206 To see the available branch names in a cloned repository, use the ``git
193 the 207 branch -al`` command. See the
194 git branch -al 208 ":ref:`dev-manual/dev-manual-start:checking out by branch in poky`"
195 command. See the " 209 section in the Yocto Project Development Tasks Manual for more
196 Checking Out By Branch in Poky 210 information.
197 " section in the Yocto Project Development Tasks Manual for
198 more information.
199 211
2005. *Optionally Set Up an Alternative BSP Layer:* If your hardware can be 212#. *Optionally Set Up an Alternative BSP Layer:* If your hardware can be
201 more closely leveraged to an existing BSP not within the 213 more closely leveraged to an existing BSP not within the
202 ``meta-intel`` BSP layer, you can clone that BSP layer. 214 ``meta-intel`` BSP layer, you can clone that BSP layer.
203 215
204 The process is identical to the process used for the ``meta-intel`` 216 The process is identical to the process used for the ``meta-intel``
205 layer except for the layer's name. For example, if you determine that 217 layer except for the layer's name. For example, if you determine that
206 your hardware most closely matches the ``meta-raspberrypi``, clone 218 your hardware most closely matches the ``meta-raspberrypi``, clone
207 that layer: $ git clone git://git.yoctoproject.org/meta-raspberrypi 219 that layer: ::
208 Cloning into 'meta-raspberrypi'... remote: Counting objects: 4743, 220
209 done. remote: Compressing objects: 100% (2185/2185), done. remote: 221 $ git clone git://git.yoctoproject.org/meta-raspberrypi
210 Total 4743 (delta 2447), reused 4496 (delta 2258) Receiving objects: 222 Cloning into 'meta-raspberrypi'...
211 100% (4743/4743), 1.18 MiB \| 0 bytes/s, done. Resolving deltas: 100% 223 remote: Counting objects: 4743, done.
212 (2447/2447), done. Checking connectivity... done. 224 remote: Compressing objects: 100% (2185/2185), done.
213 225 remote: Total 4743 (delta 2447), reused 4496 (delta 2258)
2146. *Initialize the Build Environment:* While in the root directory of 226 Receiving objects: 100% (4743/4743), 1.18 MiB | 0 bytes/s, done.
227 Resolving deltas: 100% (2447/2447), done.
228 Checking connectivity... done.
229
230#. *Initialize the Build Environment:* While in the root directory of
215 the Source Directory (i.e. ``poky``), run the 231 the Source Directory (i.e. ``poky``), run the
216 ````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__ environment 232 :ref:`ref-manual/ref-structure:\`\`oe-init-build-env\`\`` environment
217 setup script to define the OpenEmbedded build environment on your 233 setup script to define the OpenEmbedded build environment on your
218 build host. $ source OE_INIT_FILE Among other things, the script 234 build host. ::
219 creates the 235
220 :term:`Build Directory`, which is 236 $ source &OE_INIT_FILE;
221 ``build`` in this case and is located in the :term:`Source Directory`. 237
222 After the 238 Among other things, the script creates the :term:`Build Directory`, which is
223 script runs, your current working directory is set to the ``build`` 239 ``build`` in this case and is located in the :term:`Source Directory`. After
240 the script runs, your current working directory is set to the ``build``
224 directory. 241 directory.
225 242
226.. _bsp-filelayout: 243.. _bsp-filelayout:
@@ -237,8 +254,8 @@ specific to the OpenEmbedded build system. It is intended that
237developers can use this structure with other build systems besides the 254developers can use this structure with other build systems besides the
238OpenEmbedded build system. It is also intended that it will be be simple 255OpenEmbedded build system. It is also intended that it will be be simple
239to extract information and convert it to other formats if required. The 256to extract information and convert it to other formats if required. The
240OpenEmbedded build system, through its standard `layers 257OpenEmbedded build system, through its standard :ref:`layers mechanism
241mechanism <&YOCTO_DOCS_OM_URL;#the-yocto-project-layer-model>`__, can 258<overview-manual/overview-manual-yp-intro:the yocto project layer model>`, can
242directly accept the format described as a layer. The BSP layer captures 259directly accept the format described as a layer. The BSP layer captures
243all the hardware-specific details in one place using a standard format, 260all the hardware-specific details in one place using a standard format,
244which is useful for any person wishing to use the hardware platform 261which is useful for any person wishing to use the hardware platform
@@ -254,166 +271,180 @@ are separate components that could be combined in certain end products.
254Before looking at the recommended form for the directory structure 271Before looking at the recommended form for the directory structure
255inside a BSP layer, you should be aware that some requirements do exist 272inside a BSP layer, you should be aware that some requirements do exist
256in order for a BSP layer to be considered compliant with the Yocto 273in order for a BSP layer to be considered compliant with the Yocto
257Project. For that list of requirements, see the "`Released BSP 274Project. For that list of requirements, see the
258Requirements <#released-bsp-requirements>`__" section. 275":ref:`bsp-guide/bsp:released bsp requirements`" section.
259 276
260Below is the typical directory structure for a BSP layer. While this 277Below is the typical directory structure for a BSP layer. While this
261basic form represents the standard, realize that the actual layout for 278basic form represents the standard, realize that the actual layout for
262individual BSPs could differ. meta-bsp_root_name/ 279individual BSPs could differ. ::
263meta-bsp_root_name/bsp_license_file meta-bsp_root_name/README 280
264meta-bsp_root_name/README.sources 281 meta-bsp_root_name/
265meta-bsp_root_name/binary/bootable_images 282 meta-bsp_root_name/bsp_license_file
266meta-bsp_root_name/conf/layer.conf 283 meta-bsp_root_name/README
267meta-bsp_root_name/conf/machine/*.conf meta-bsp_root_name/recipes-bsp/\* 284 meta-bsp_root_name/README.sources
268meta-bsp_root_name/recipes-core/\* 285 meta-bsp_root_name/binary/bootable_images
269meta-bsp_root_name/recipes-graphics/\* 286 meta-bsp_root_name/conf/layer.conf
270meta-bsp_root_name/recipes-kernel/linux/linux-yocto_kernel_rev.bbappend 287 meta-bsp_root_name/conf/machine/*.conf
288 meta-bsp_root_name/recipes-bsp/*
289 meta-bsp_root_name/recipes-core/*
290 meta-bsp_root_name/recipes-graphics/*
291 meta-bsp_root_name/recipes-kernel/linux/linux-yocto_kernel_rev.bbappend
271 292
272Below is an example of the Raspberry Pi BSP layer that is available from 293Below is an example of the Raspberry Pi BSP layer that is available from
273the :yocto_git:`Source Respositories <>`: 294the :yocto_git:`Source Respositories <>`: ::
274meta-raspberrypi/COPYING.MIT meta-raspberrypi/README.md 295
275meta-raspberrypi/classes 296 meta-raspberrypi/COPYING.MIT
276meta-raspberrypi/classes/sdcard_image-rpi.bbclass meta-raspberrypi/conf/ 297 meta-raspberrypi/README.md
277meta-raspberrypi/conf/layer.conf meta-raspberrypi/conf/machine/ 298 meta-raspberrypi/classes
278meta-raspberrypi/conf/machine/raspberrypi-cm.conf 299 meta-raspberrypi/classes/sdcard_image-rpi.bbclass
279meta-raspberrypi/conf/machine/raspberrypi-cm3.conf 300 meta-raspberrypi/conf/
280meta-raspberrypi/conf/machine/raspberrypi.conf 301 meta-raspberrypi/conf/layer.conf
281meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf 302 meta-raspberrypi/conf/machine/
282meta-raspberrypi/conf/machine/raspberrypi0.conf 303 meta-raspberrypi/conf/machine/raspberrypi-cm.conf
283meta-raspberrypi/conf/machine/raspberrypi2.conf 304 meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
284meta-raspberrypi/conf/machine/raspberrypi3-64.conf 305 meta-raspberrypi/conf/machine/raspberrypi.conf
285meta-raspberrypi/conf/machine/raspberrypi3.conf 306 meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf
286meta-raspberrypi/conf/machine/include 307 meta-raspberrypi/conf/machine/raspberrypi0.conf
287meta-raspberrypi/conf/machine/include/rpi-base.inc 308 meta-raspberrypi/conf/machine/raspberrypi2.conf
288meta-raspberrypi/conf/machine/include/rpi-default-providers.inc 309 meta-raspberrypi/conf/machine/raspberrypi3-64.conf
289meta-raspberrypi/conf/machine/include/rpi-default-settings.inc 310 meta-raspberrypi/conf/machine/raspberrypi3.conf
290meta-raspberrypi/conf/machine/include/rpi-default-versions.inc 311 meta-raspberrypi/conf/machine/include
291meta-raspberrypi/conf/machine/include/tune-arm1176jzf-s.inc 312 meta-raspberrypi/conf/machine/include/rpi-base.inc
292meta-raspberrypi/docs meta-raspberrypi/docs/Makefile 313 meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
293meta-raspberrypi/docs/conf.py meta-raspberrypi/docs/contributing.md 314 meta-raspberrypi/conf/machine/include/rpi-default-settings.inc
294meta-raspberrypi/docs/extra-apps.md 315 meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
295meta-raspberrypi/docs/extra-build-config.md 316 meta-raspberrypi/conf/machine/include/tune-arm1176jzf-s.inc
296meta-raspberrypi/docs/index.rst meta-raspberrypi/docs/layer-contents.md 317 meta-raspberrypi/docs
297meta-raspberrypi/docs/readme.md meta-raspberrypi/files 318 meta-raspberrypi/docs/Makefile
298meta-raspberrypi/files/custom-licenses 319 meta-raspberrypi/docs/conf.py
299meta-raspberrypi/files/custom-licenses/Broadcom 320 meta-raspberrypi/docs/contributing.md
300meta-raspberrypi/recipes-bsp meta-raspberrypi/recipes-bsp/bootfiles 321 meta-raspberrypi/docs/extra-apps.md
301meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb 322 meta-raspberrypi/docs/extra-build-config.md
302meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb 323 meta-raspberrypi/docs/index.rst
303meta-raspberrypi/recipes-bsp/common 324 meta-raspberrypi/docs/layer-contents.md
304meta-raspberrypi/recipes-bsp/common/firmware.inc 325 meta-raspberrypi/docs/readme.md
305meta-raspberrypi/recipes-bsp/formfactor 326 meta-raspberrypi/files
306meta-raspberrypi/recipes-bsp/formfactor/formfactor 327 meta-raspberrypi/files/custom-licenses
307meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi 328 meta-raspberrypi/files/custom-licenses/Broadcom
308meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi/machconfig 329 meta-raspberrypi/recipes-bsp
309meta-raspberrypi/recipes-bsp/formfactor/formfactor_0.0.bbappend 330 meta-raspberrypi/recipes-bsp/bootfiles
310meta-raspberrypi/recipes-bsp/rpi-u-boot-src 331 meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb
311meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files 332 meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
312meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files/boot.cmd.in 333 meta-raspberrypi/recipes-bsp/common
313meta-raspberrypi/recipes-bsp/rpi-u-boot-src/rpi-u-boot-scr.bb 334 meta-raspberrypi/recipes-bsp/common/firmware.inc
314meta-raspberrypi/recipes-bsp/u-boot 335 meta-raspberrypi/recipes-bsp/formfactor
315meta-raspberrypi/recipes-bsp/u-boot/u-boot 336 meta-raspberrypi/recipes-bsp/formfactor/formfactor
316meta-raspberrypi/recipes-bsp/u-boot/u-boot/*.patch 337 meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi
317meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend 338 meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi/machconfig
318meta-raspberrypi/recipes-connectivity 339 meta-raspberrypi/recipes-bsp/formfactor/formfactor_0.0.bbappend
319meta-raspberrypi/recipes-connectivity/bluez5 340 meta-raspberrypi/recipes-bsp/rpi-u-boot-src
320meta-raspberrypi/recipes-connectivity/bluez5/bluez5 341 meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files
321meta-raspberrypi/recipes-connectivity/bluez5/bluez5/*.patch 342 meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files/boot.cmd.in
322meta-raspberrypi/recipes-connectivity/bluez5/bluez5/BCM43430A1.hcd 343 meta-raspberrypi/recipes-bsp/rpi-u-boot-src/rpi-u-boot-scr.bb
323meta-raspberrypi/recipes-connectivity/bluez5/bluez5brcm43438.service 344 meta-raspberrypi/recipes-bsp/u-boot
324meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend 345 meta-raspberrypi/recipes-bsp/u-boot/u-boot
325meta-raspberrypi/recipes-core meta-raspberrypi/recipes-core/images 346 meta-raspberrypi/recipes-bsp/u-boot/u-boot/*.patch
326meta-raspberrypi/recipes-core/images/rpi-basic-image.bb 347 meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
327meta-raspberrypi/recipes-core/images/rpi-hwup-image.bb 348 meta-raspberrypi/recipes-connectivity
328meta-raspberrypi/recipes-core/images/rpi-test-image.bb 349 meta-raspberrypi/recipes-connectivity/bluez5
329meta-raspberrypi/recipes-core/packagegroups 350 meta-raspberrypi/recipes-connectivity/bluez5/bluez5
330meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb 351 meta-raspberrypi/recipes-connectivity/bluez5/bluez5/*.patch
331meta-raspberrypi/recipes-core/psplash 352 meta-raspberrypi/recipes-connectivity/bluez5/bluez5/BCM43430A1.hcd
332meta-raspberrypi/recipes-core/psplash/files 353 meta-raspberrypi/recipes-connectivity/bluez5/bluez5brcm43438.service
333meta-raspberrypi/recipes-core/psplash/files/psplash-raspberrypi-img.h 354 meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
334meta-raspberrypi/recipes-core/psplash/psplash_git.bbappend 355 meta-raspberrypi/recipes-core
335meta-raspberrypi/recipes-core/udev 356 meta-raspberrypi/recipes-core/images
336meta-raspberrypi/recipes-core/udev/udev-rules-rpi 357 meta-raspberrypi/recipes-core/images/rpi-basic-image.bb
337meta-raspberrypi/recipes-core/udev/udev-rules-rpi/99-com.rules 358 meta-raspberrypi/recipes-core/images/rpi-hwup-image.bb
338meta-raspberrypi/recipes-core/udev/udev-rules-rpi.bb 359 meta-raspberrypi/recipes-core/images/rpi-test-image.bb
339meta-raspberrypi/recipes-devtools 360 meta-raspberrypi/recipes-core/packagegroups
340meta-raspberrypi/recipes-devtools/bcm2835 361 meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb
341meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb 362 meta-raspberrypi/recipes-core/psplash
342meta-raspberrypi/recipes-devtools/pi-blaster 363 meta-raspberrypi/recipes-core/psplash/files
343meta-raspberrypi/recipes-devtools/pi-blaster/files 364 meta-raspberrypi/recipes-core/psplash/files/psplash-raspberrypi-img.h
344meta-raspberrypi/recipes-devtools/pi-blaster/files/*.patch 365 meta-raspberrypi/recipes-core/psplash/psplash_git.bbappend
345meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb 366 meta-raspberrypi/recipes-core/udev
346meta-raspberrypi/recipes-devtools/python 367 meta-raspberrypi/recipes-core/udev/udev-rules-rpi
347meta-raspberrypi/recipes-devtools/python/python-rtimu 368 meta-raspberrypi/recipes-core/udev/udev-rules-rpi/99-com.rules
348meta-raspberrypi/recipes-devtools/python/python-rtimu/*.patch 369 meta-raspberrypi/recipes-core/udev/udev-rules-rpi.bb
349meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb 370 meta-raspberrypi/recipes-devtools
350meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb 371 meta-raspberrypi/recipes-devtools/bcm2835
351meta-raspberrypi/recipes-devtools/python/rpi-gpio 372 meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb
352meta-raspberrypi/recipes-devtools/python/rpi-gpio/*.patch 373 meta-raspberrypi/recipes-devtools/pi-blaster
353meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb 374 meta-raspberrypi/recipes-devtools/pi-blaster/files
354meta-raspberrypi/recipes-devtools/python/rpio 375 meta-raspberrypi/recipes-devtools/pi-blaster/files/*.patch
355meta-raspberrypi/recipes-devtools/python/rpio/*.patch 376 meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
356meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb 377 meta-raspberrypi/recipes-devtools/python
357meta-raspberrypi/recipes-devtools/wiringPi 378 meta-raspberrypi/recipes-devtools/python/python-rtimu
358meta-raspberrypi/recipes-devtools/wiringPi/files 379 meta-raspberrypi/recipes-devtools/python/python-rtimu/*.patch
359meta-raspberrypi/recipes-devtools/wiringPi/files/*.patch 380 meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb
360meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb 381 meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb
361meta-raspberrypi/recipes-graphics 382 meta-raspberrypi/recipes-devtools/python/rpi-gpio
362meta-raspberrypi/recipes-graphics/eglinfo 383 meta-raspberrypi/recipes-devtools/python/rpi-gpio/*.patch
363meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend 384 meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb
364meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend 385 meta-raspberrypi/recipes-devtools/python/rpio
365meta-raspberrypi/recipes-graphics/mesa 386 meta-raspberrypi/recipes-devtools/python/rpio/*.patch
366meta-raspberrypi/recipes-graphics/mesa/mesa-gl_%.bbappend 387 meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
367meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend 388 meta-raspberrypi/recipes-devtools/wiringPi
368meta-raspberrypi/recipes-graphics/userland 389 meta-raspberrypi/recipes-devtools/wiringPi/files
369meta-raspberrypi/recipes-graphics/userland/userland 390 meta-raspberrypi/recipes-devtools/wiringPi/files/*.patch
370meta-raspberrypi/recipes-graphics/userland/userland/*.patch 391 meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
371meta-raspberrypi/recipes-graphics/userland/userland_git.bb 392 meta-raspberrypi/recipes-graphics
372meta-raspberrypi/recipes-graphics/vc-graphics 393 meta-raspberrypi/recipes-graphics/eglinfo
373meta-raspberrypi/recipes-graphics/vc-graphics/files 394 meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
374meta-raspberrypi/recipes-graphics/vc-graphics/files/egl.pc 395 meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
375meta-raspberrypi/recipes-graphics/vc-graphics/files/vchiq.sh 396 meta-raspberrypi/recipes-graphics/mesa
376meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics-hardfp.bb 397 meta-raspberrypi/recipes-graphics/mesa/mesa-gl_%.bbappend
377meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.bb 398 meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
378meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc 399 meta-raspberrypi/recipes-graphics/userland
379meta-raspberrypi/recipes-graphics/wayland 400 meta-raspberrypi/recipes-graphics/userland/userland
380meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend 401 meta-raspberrypi/recipes-graphics/userland/userland/*.patch
381meta-raspberrypi/recipes-graphics/xorg-xserver 402 meta-raspberrypi/recipes-graphics/userland/userland_git.bb
382meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config 403 meta-raspberrypi/recipes-graphics/vc-graphics
383meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi 404 meta-raspberrypi/recipes-graphics/vc-graphics/files
384meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf 405 meta-raspberrypi/recipes-graphics/vc-graphics/files/egl.pc
385meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d 406 meta-raspberrypi/recipes-graphics/vc-graphics/files/vchiq.sh
386meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-evdev.conf 407 meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics-hardfp.bb
387meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/98-pitft.conf 408 meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.bb
388meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-calibration.conf 409 meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc
389meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend 410 meta-raspberrypi/recipes-graphics/wayland
390meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend 411 meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend
391meta-raspberrypi/recipes-kernel 412 meta-raspberrypi/recipes-graphics/xorg-xserver
392meta-raspberrypi/recipes-kernel/linux-firmware 413 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config
393meta-raspberrypi/recipes-kernel/linux-firmware/files 414 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi
394meta-raspberrypi/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin 415 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf
395meta-raspberrypi/recipes-kernel/linux-firmware/files/brcfmac43430-sdio.txt 416 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d
396meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend 417 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-evdev.conf
397meta-raspberrypi/recipes-kernel/linux 418 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/98-pitft.conf
398meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb 419 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-calibration.conf
399meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc 420 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
400meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb 421 meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
401meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb 422 meta-raspberrypi/recipes-kernel
402meta-raspberrypi/recipes-multimedia 423 meta-raspberrypi/recipes-kernel/linux-firmware
403meta-raspberrypi/recipes-multimedia/gstreamer 424 meta-raspberrypi/recipes-kernel/linux-firmware/files
404meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx 425 meta-raspberrypi/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin
405meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/*.patch 426 meta-raspberrypi/recipes-kernel/linux-firmware/files/brcfmac43430-sdio.txt
406meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend 427 meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
407meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend 428 meta-raspberrypi/recipes-kernel/linux
408meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12 429 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
409meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/*.patch 430 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
410meta-raspberrypi/recipes-multimedia/omxplayer 431 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb
411meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer 432 meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb
412meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/*.patch 433 meta-raspberrypi/recipes-multimedia
413meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb 434 meta-raspberrypi/recipes-multimedia/gstreamer
414meta-raspberrypi/recipes-multimedia/x264 435 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx
415meta-raspberrypi/recipes-multimedia/x264/x264_git.bbappend 436 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/*.patch
416meta-raspberrypi/wic meta-raspberrypi/wic/sdimage-raspberrypi.wks 437 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
438 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
439 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12
440 meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/*.patch
441 meta-raspberrypi/recipes-multimedia/omxplayer
442 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer
443 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/*.patch
444 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
445 meta-raspberrypi/recipes-multimedia/x264
446 meta-raspberrypi/recipes-multimedia/x264/x264_git.bbappend
447 meta-raspberrypi/wic meta-raspberrypi/wic/sdimage-raspberrypi.wks
417 448
418The following sections describe each part of the proposed BSP format. 449The following sections describe each part of the proposed BSP format.
419 450
@@ -422,8 +453,9 @@ The following sections describe each part of the proposed BSP format.
422License Files 453License Files
423------------- 454-------------
424 455
425You can find these files in the BSP Layer at: 456You can find these files in the BSP Layer at: ::
426meta-bsp_root_name/bsp_license_file 457
458 meta-bsp_root_name/bsp_license_file
427 459
428These optional files satisfy licensing requirements for the BSP. The 460These optional files satisfy licensing requirements for the BSP. The
429type or types of files here can vary depending on the licensing 461type or types of files here can vary depending on the licensing
@@ -433,8 +465,7 @@ requirements are handled with the ``COPYING.MIT`` file.
433Licensing files can be MIT, BSD, GPLv*, and so forth. These files are 465Licensing files can be MIT, BSD, GPLv*, and so forth. These files are
434recommended for the BSP but are optional and totally up to the BSP 466recommended for the BSP but are optional and totally up to the BSP
435developer. For information on how to maintain license compliance, see 467developer. For information on how to maintain license compliance, see
436the "`Maintaining Open Source License Compliance During Your Product's 468the ":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
437Lifecycle <&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle>`__"
438section in the Yocto Project Development Tasks Manual. 469section in the Yocto Project Development Tasks Manual.
439 470
440.. _bsp-filelayout-readme: 471.. _bsp-filelayout-readme:
@@ -442,7 +473,9 @@ section in the Yocto Project Development Tasks Manual.
442README File 473README File
443----------- 474-----------
444 475
445You can find this file in the BSP Layer at: meta-bsp_root_name/README 476You can find this file in the BSP Layer at: ::
477
478 meta-bsp_root_name/README
446 479
447This file provides information on how to boot the live images that are 480This file provides information on how to boot the live images that are
448optionally included in the ``binary/`` directory. The ``README`` file 481optionally included in the ``binary/`` directory. The ``README`` file
@@ -457,8 +490,9 @@ name of the BSP maintainer with his or her contact information.
457README.sources File 490README.sources File
458------------------- 491-------------------
459 492
460You can find this file in the BSP Layer at: 493You can find this file in the BSP Layer at: ::
461meta-bsp_root_name/README.sources 494
495 meta-bsp_root_name/README.sources
462 496
463This file provides information on where to locate the BSP source files 497This file provides information on where to locate the BSP source files
464used to build the images (if any) that reside in 498used to build the images (if any) that reside in
@@ -469,19 +503,17 @@ used to generate the images that ship with the BSP.
469 503
470.. note:: 504.. note::
471 505
472 If the BSP's 506 If the BSP's ``binary`` directory is missing or the directory has no images, an
473 binary 507 existing ``README.sources`` file is meaningless and usually does not exist.
474 directory is missing or the directory has no images, an existing
475 README.sources
476 file is meaningless and usually does not exist.
477 508
478.. _bsp-filelayout-binary: 509.. _bsp-filelayout-binary:
479 510
480Pre-built User Binaries 511Pre-built User Binaries
481----------------------- 512-----------------------
482 513
483You can find these files in the BSP Layer at: 514You can find these files in the BSP Layer at: ::
484meta-bsp_root_name/binary/bootable_images 515
516 meta-bsp_root_name/binary/bootable_images
485 517
486This optional area contains useful pre-built kernels and user-space 518This optional area contains useful pre-built kernels and user-space
487filesystem images released with the BSP that are appropriate to the 519filesystem images released with the BSP that are appropriate to the
@@ -492,10 +524,10 @@ use these kernels and images to get a system running and quickly get
492started on development tasks. 524started on development tasks.
493 525
494The exact types of binaries present are highly hardware-dependent. The 526The exact types of binaries present are highly hardware-dependent. The
495```README`` <#bsp-filelayout-readme>`__ file should be present in the 527:ref:`README <bsp-guide/bsp:readme file>` file should be present in the
496BSP Layer and it explains how to use the images with the target 528BSP Layer and it explains how to use the images with the target
497hardware. Additionally, the 529hardware. Additionally, the
498```README.sources`` <#bsp-filelayout-readme-sources>`__ file should be 530:ref:`README.sources <bsp-guide/bsp:readme.sources file>` file should be
499present to locate the sources used to build the images and provide 531present to locate the sources used to build the images and provide
500information on the Metadata. 532information on the Metadata.
501 533
@@ -504,43 +536,61 @@ information on the Metadata.
504Layer Configuration File 536Layer Configuration File
505------------------------ 537------------------------
506 538
507You can find this file in the BSP Layer at: 539You can find this file in the BSP Layer at: ::
508meta-bsp_root_name/conf/layer.conf 540
541 meta-bsp_root_name/conf/layer.conf
509 542
510The ``conf/layer.conf`` file identifies the file structure as a layer, 543The ``conf/layer.conf`` file identifies the file structure as a layer,
511identifies the contents of the layer, and contains information about how 544identifies the contents of the layer, and contains information about how
512the build system should use it. Generally, a standard boilerplate file 545the build system should use it. Generally, a standard boilerplate file
513such as the following works. In the following example, you would replace 546such as the following works. In the following example, you would replace
514bsp with the actual name of the BSP (i.e. bsp_root_name from the example 547bsp with the actual name of the BSP (i.e. bsp_root_name from the example
515template). 548template). ::
549
550 # We have a conf and classes directory, add to BBPATH
551 BBPATH .= ":${LAYERDIR}"
552
553 # We have a recipes directory, add to BBFILES
554 BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
555 ${LAYERDIR}/recipes-*/*/*.bbappend"
516 556
517# We have a conf and classes directory, add to BBPATH BBPATH .= 557 BBFILE_COLLECTIONS += "bsp"
518":${LAYERDIR}" # We have a recipes directory, add to BBFILES BBFILES += 558 BBFILE_PATTERN_bsp = "^${LAYERDIR}/"
519"${LAYERDIR}/recipes-*/*/*.bb \\ ${LAYERDIR}/recipes-*/*/*.bbappend" 559 BBFILE_PRIORITY_bsp = "6"
520BBFILE_COLLECTIONS += "bsp" BBFILE_PATTERN_bsp = "^${LAYERDIR}/" 560 LAYERDEPENDS_bsp = "intel"
521BBFILE_PRIORITY_bsp = "6" LAYERDEPENDS_bsp = "intel"
522 561
523To illustrate the string substitutions, here are the corresponding 562To illustrate the string substitutions, here are the corresponding
524statements from the Raspberry Pi ``conf/layer.conf`` file: # We have a 563statements from the Raspberry Pi ``conf/layer.conf`` file: ::
525conf and classes directory, append to BBPATH BBPATH .= ":${LAYERDIR}" # 564
526We have a recipes directory containing .bb and .bbappend files, add to 565 # We have a conf and classes directory, append to BBPATH
527BBFILES BBFILES += "${LAYERDIR}/recipes*/*/*.bb \\ 566 BBPATH .= ":${LAYERDIR}"
528${LAYERDIR}/recipes*/*/*.bbappend" BBFILE_COLLECTIONS += "raspberrypi" 567
529BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/" 568 # We have a recipes directory containing .bb and .bbappend files, add to BBFILES
530BBFILE_PRIORITY_raspberrypi = "9" # Additional license directories. 569 BBFILES += "${LAYERDIR}/recipes*/*/*.bb \
531LICENSE_PATH += "${LAYERDIR}/files/custom-licenses" . . . 570 ${LAYERDIR}/recipes*/*/*.bbappend"
532 571
533This file simply makes :term:`BitBake` 572 BBFILE_COLLECTIONS += "raspberrypi"
534aware of the recipes and configuration directories. The file must exist 573 BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
535so that the OpenEmbedded build system can recognize the BSP. 574 BBFILE_PRIORITY_raspberrypi = "9"
575
576 # Additional license directories.
577 LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
578 .
579 .
580 .
581
582This file simply makes :term:`BitBake` aware of the recipes and configuration
583directories. The file must exist so that the OpenEmbedded build system can
584recognize the BSP.
536 585
537.. _bsp-filelayout-machine: 586.. _bsp-filelayout-machine:
538 587
539Hardware Configuration Options 588Hardware Configuration Options
540------------------------------ 589------------------------------
541 590
542You can find these files in the BSP Layer at: 591You can find these files in the BSP Layer at: ::
543meta-bsp_root_name/conf/machine/*.conf 592
593 meta-bsp_root_name/conf/machine/*.conf
544 594
545The machine files bind together all the information contained elsewhere 595The machine files bind together all the information contained elsewhere
546in the BSP into a format that the build system can understand. Each BSP 596in the BSP into a format that the build system can understand. Each BSP
@@ -550,9 +600,8 @@ filenames correspond to the values to which users have set the
550:term:`MACHINE` variable. 600:term:`MACHINE` variable.
551 601
552These files define things such as the kernel package to use 602These files define things such as the kernel package to use
553(:term:`PREFERRED_PROVIDER` 603(:term:`PREFERRED_PROVIDER` of
554of 604:ref:`virtual/kernel <dev-manual/dev-manual-common-tasks:using virtual providers>`),
555`virtual/kernel <&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers>`__),
556the hardware drivers to include in different types of images, any 605the hardware drivers to include in different types of images, any
557special software components that are needed, any bootloader information, 606special software components that are needed, any bootloader information,
558and also any special image format requirements. 607and also any special image format requirements.
@@ -570,16 +619,18 @@ For example, many ``tune-*`` files (e.g. ``tune-arm1136jf-s.inc``,
570 619
571To use an include file, you simply include them in the machine 620To use an include file, you simply include them in the machine
572configuration file. For example, the Raspberry Pi BSP 621configuration file. For example, the Raspberry Pi BSP
573``raspberrypi3.conf`` contains the following statement: include 622``raspberrypi3.conf`` contains the following statement: ::
574conf/machine/include/rpi-base.inc 623
624 include conf/machine/include/rpi-base.inc
575 625
576.. _bsp-filelayout-misc-recipes: 626.. _bsp-filelayout-misc-recipes:
577 627
578Miscellaneous BSP-Specific Recipe Files 628Miscellaneous BSP-Specific Recipe Files
579--------------------------------------- 629---------------------------------------
580 630
581You can find these files in the BSP Layer at: 631You can find these files in the BSP Layer at: ::
582meta-bsp_root_name/recipes-bsp/\* 632
633 meta-bsp_root_name/recipes-bsp/*
583 634
584This optional directory contains miscellaneous recipe files for the BSP. 635This optional directory contains miscellaneous recipe files for the BSP.
585Most notably would be the formfactor files. For example, in the 636Most notably would be the formfactor files. For example, in the
@@ -587,9 +638,14 @@ Raspberry Pi BSP, there is the ``formfactor_0.0.bbappend`` file, which
587is an append file used to augment the recipe that starts the build. 638is an append file used to augment the recipe that starts the build.
588Furthermore, there are machine-specific settings used during the build 639Furthermore, there are machine-specific settings used during the build
589that are defined by the ``machconfig`` file further down in the 640that are defined by the ``machconfig`` file further down in the
590directory. Here is the ``machconfig`` file for the Raspberry Pi BSP: 641directory. Here is the ``machconfig`` file for the Raspberry Pi BSP: ::
591HAVE_TOUCHSCREEN=0 HAVE_KEYBOARD=1 DISPLAY_CAN_ROTATE=0 642
592DISPLAY_ORIENTATION=0 DISPLAY_DPI=133 643 HAVE_TOUCHSCREEN=0
644 HAVE_KEYBOARD=1
645
646 DISPLAY_CAN_ROTATE=0
647 DISPLAY_ORIENTATION=0
648 DISPLAY_DPI=133
593 649
594.. note:: 650.. note::
595 651
@@ -604,8 +660,9 @@ DISPLAY_ORIENTATION=0 DISPLAY_DPI=133
604Display Support Files 660Display Support Files
605--------------------- 661---------------------
606 662
607You can find these files in the BSP Layer at: 663You can find these files in the BSP Layer at: ::
608meta-bsp_root_name/recipes-graphics/\* 664
665 meta-bsp_root_name/recipes-graphics/*
609 666
610This optional directory contains recipes for the BSP if it has special 667This optional directory contains recipes for the BSP if it has special
611requirements for graphics support. All files that are needed for the BSP 668requirements for graphics support. All files that are needed for the BSP
@@ -616,9 +673,10 @@ to support a display are kept here.
616Linux Kernel Configuration 673Linux Kernel Configuration
617-------------------------- 674--------------------------
618 675
619You can find these files in the BSP Layer at: 676You can find these files in the BSP Layer at: ::
620meta-bsp_root_name/recipes-kernel/linux/linux*.bbappend 677
621meta-bsp_root_name/recipes-kernel/linux/*.bb 678 meta-bsp_root_name/recipes-kernel/linux/linux*.bbappend
679 meta-bsp_root_name/recipes-kernel/linux/*.bb
622 680
623Append files (``*.bbappend``) modify the main kernel recipe being used 681Append files (``*.bbappend``) modify the main kernel recipe being used
624to build the image. The ``*.bb`` files would be a developer-supplied 682to build the image. The ``*.bb`` files would be a developer-supplied
@@ -637,36 +695,35 @@ located in the BSP Layer for your target device (e.g. the
637Suppose you are using the ``linux-yocto_4.4.bb`` recipe to build the 695Suppose you are using the ``linux-yocto_4.4.bb`` recipe to build the
638kernel. In other words, you have selected the kernel in your 696kernel. In other words, you have selected the kernel in your
639bsp_root_name\ ``.conf`` file by adding 697bsp_root_name\ ``.conf`` file by adding
640:term:`PREFERRED_PROVIDER` 698:term:`PREFERRED_PROVIDER` and :term:`PREFERRED_VERSION`
641and 699statements as follows: ::
642:term:`PREFERRED_VERSION` 700
643statements as follows: PREFERRED_PROVIDER_virtual/kernel ?= 701 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
644"linux-yocto" PREFERRED_VERSION_linux-yocto ?= "4.4%" 702 PREFERRED_VERSION_linux-yocto ?= "4.4%"
645 703
646.. note:: 704.. note::
647 705
648 When the preferred provider is assumed by default, the 706 When the preferred provider is assumed by default, the ``PREFERRED_PROVIDER``
649 PREFERRED_PROVIDER 707 statement does not appear in the ``bsp_root_name`` .conf file.
650 statement does not appear in the
651 bsp_root_name
652 .conf
653 file.
654 708
655You would use the ``linux-yocto_4.4.bbappend`` file to append specific 709You would use the ``linux-yocto_4.4.bbappend`` file to append specific
656BSP settings to the kernel, thus configuring the kernel for your 710BSP settings to the kernel, thus configuring the kernel for your
657particular BSP. 711particular BSP.
658 712
659You can find more information on what your append file should contain in 713You can find more information on what your append file should contain in
660the "`Creating the Append 714the ":ref:`kernel-dev/kernel-dev-common:creating the append file`" section
661File <&YOCTO_DOCS_KERNEL_DEV_URL;#creating-the-append-file>`__" section
662in the Yocto Project Linux Kernel Development Manual. 715in the Yocto Project Linux Kernel Development Manual.
663 716
664An alternate scenario is when you create your own kernel recipe for the 717An alternate scenario is when you create your own kernel recipe for the
665BSP. A good example of this is the Raspberry Pi BSP. If you examine the 718BSP. A good example of this is the Raspberry Pi BSP. If you examine the
666``recipes-kernel/linux`` directory you see the following: 719``recipes-kernel/linux`` directory you see the following: ::
667linux-raspberrypi-dev.bb linux-raspberrypi.inc linux-raspberrypi_4.14.bb 720
668linux-raspberrypi_4.9.bb The directory contains three kernel recipes and 721 linux-raspberrypi-dev.bb
669a common include file. 722 linux-raspberrypi.inc
723 linux-raspberrypi_4.14.bb
724 linux-raspberrypi_4.9.bb
725
726The directory contains three kernel recipes and a common include file.
670 727
671Developing a Board Support Package (BSP) 728Developing a Board Support Package (BSP)
672======================================== 729========================================
@@ -677,8 +734,7 @@ repository, which contains many BSPs supported by the Yocto Project, is
677part of the example. 734part of the example.
678 735
679For an example that shows how to create a new layer using the tools, see 736For an example that shows how to create a new layer using the tools, see
680the "`Creating a New BSP Layer Using the ``bitbake-layers`` 737the ":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
681Script <#creating-a-new-bsp-layer-using-the-bitbake-layers-script>`__"
682section. 738section.
683 739
684The following illustration and list summarize the BSP creation general 740The following illustration and list summarize the BSP creation general
@@ -687,29 +743,26 @@ workflow.
687.. image:: figures/bsp-dev-flow.png 743.. image:: figures/bsp-dev-flow.png
688 :align: center 744 :align: center
689 745
6901. *Set up Your Host Development System to Support Development Using the 746#. *Set up Your Host Development System to Support Development Using the
691 Yocto Project*: See the "`Preparing the Build 747 Yocto Project*: See the ":ref:`dev-manual/dev-manual-start:preparing the build host`"
692 Host <&YOCTO_DOCS_DEV_URL;#dev-preparing-the-build-host>`__" section 748 section in the Yocto Project Development Tasks Manual for options on how to
693 in the Yocto Project Development Tasks Manual for options on how to
694 get a system ready to use the Yocto Project. 749 get a system ready to use the Yocto Project.
695 750
6962. *Establish the ``meta-intel`` Repository on Your System:* Having 751#. *Establish the meta-intel Repository on Your System:* Having
697 local copies of these supported BSP layers on your system gives you 752 local copies of these supported BSP layers on your system gives you
698 access to layers you might be able to leverage when creating your 753 access to layers you might be able to leverage when creating your
699 BSP. For information on how to get these files, see the "`Preparing 754 BSP. For information on how to get these files, see the
700 Your Build Host to Work with BSP 755 ":ref:`bsp-guide/bsp:preparing your build host to work with bsp layers`"
701 Layers <#preparing-your-build-host-to-work-with-bsp-layers>`__"
702 section. 756 section.
703 757
7043. *Create Your Own BSP Layer Using the ``bitbake-layers`` Script:* 758#. *Create Your Own BSP Layer Using the bitbake-layers Script:*
705 Layers are ideal for isolating and storing work for a given piece of 759 Layers are ideal for isolating and storing work for a given piece of
706 hardware. A layer is really just a location or area in which you 760 hardware. A layer is really just a location or area in which you
707 place the recipes and configurations for your BSP. In fact, a BSP is, 761 place the recipes and configurations for your BSP. In fact, a BSP is,
708 in itself, a special type of layer. The simplest way to create a new 762 in itself, a special type of layer. The simplest way to create a new
709 BSP layer that is compliant with the Yocto Project is to use the 763 BSP layer that is compliant with the Yocto Project is to use the
710 ``bitbake-layers`` script. For information about that script, see the 764 ``bitbake-layers`` script. For information about that script, see the
711 "`Creating a New BSP Layer Using the ``bitbake-layers`` 765 ":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
712 Script <#creating-a-new-bsp-layer-using-the-bitbake-layers-script>`__"
713 section. 766 section.
714 767
715 Another example that illustrates a layer is an application. Suppose 768 Another example that illustrates a layer is an application. Suppose
@@ -719,13 +772,11 @@ workflow.
719 are kept. The key point for a layer is that it is an isolated area 772 are kept. The key point for a layer is that it is an isolated area
720 that contains all the relevant information for the project that the 773 that contains all the relevant information for the project that the
721 OpenEmbedded build system knows about. For more information on 774 OpenEmbedded build system knows about. For more information on
722 layers, see the "`The Yocto Project Layer 775 layers, see the ":ref:`overview-manual/overview-manual-yp-intro:the yocto project layer model`"
723 Model <&YOCTO_DOCS_OM_URL;#the-yocto-project-layer-model>`__" section 776 section in the Yocto Project Overview and Concepts Manual. You can also
724 in the Yocto Project Overview and Concepts Manual. You can also 777 reference the ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
725 reference the "`Understanding and Creating
726 Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__"
727 section in the Yocto Project Development Tasks Manual. For more 778 section in the Yocto Project Development Tasks Manual. For more
728 information on BSP layers, see the "`BSP Layers <#bsp-layers>`__" 779 information on BSP layers, see the ":ref:`bsp-guide/bsp:bsp layers`"
729 section. 780 section.
730 781
731 .. note:: 782 .. note::
@@ -738,8 +789,7 @@ workflow.
738 789
739 - Ubiquiti Networks EdgeRouter Lite (``edgerouter``) 790 - Ubiquiti Networks EdgeRouter Lite (``edgerouter``)
740 791
741 - Two general IA platforms (``genericx86`` and 792 - Two general IA platforms (``genericx86`` and ``genericx86-64``)
742 ``genericx86-64``)
743 793
744 - Three core Intel BSPs exist as part of the Yocto Project 794 - Three core Intel BSPs exist as part of the Yocto Project
745 release in the ``meta-intel`` layer: 795 release in the ``meta-intel`` layer:
@@ -756,13 +806,13 @@ workflow.
756 Galileo gen1 & gen2 development boards. 806 Galileo gen1 & gen2 development boards.
757 807
758 When you set up a layer for a new BSP, you should follow a standard 808 When you set up a layer for a new BSP, you should follow a standard
759 layout. This layout is described in the "`Example Filesystem 809 layout. This layout is described in the ":ref:`bsp-guide/bsp:example filesystem layout`"
760 Layout <#bsp-filelayout>`__" section. In the standard layout, notice 810 section. In the standard layout, notice
761 the suggested structure for recipes and configuration information. 811 the suggested structure for recipes and configuration information.
762 You can see the standard layout for a BSP by examining any supported 812 You can see the standard layout for a BSP by examining any supported
763 BSP found in the ``meta-intel`` layer inside the Source Directory. 813 BSP found in the ``meta-intel`` layer inside the Source Directory.
764 814
7654. *Make Configuration Changes to Your New BSP Layer:* The standard BSP 815#. *Make Configuration Changes to Your New BSP Layer:* The standard BSP
766 layer structure organizes the files you need to edit in ``conf`` and 816 layer structure organizes the files you need to edit in ``conf`` and
767 several ``recipes-*`` directories within the BSP layer. Configuration 817 several ``recipes-*`` directories within the BSP layer. Configuration
768 changes identify where your new layer is on the local system and 818 changes identify where your new layer is on the local system and
@@ -770,12 +820,12 @@ workflow.
770 ``bitbake-layers`` script, you are able to interactively configure 820 ``bitbake-layers`` script, you are able to interactively configure
771 many things for the BSP (e.g. keyboard, touchscreen, and so forth). 821 many things for the BSP (e.g. keyboard, touchscreen, and so forth).
772 822
7735. *Make Recipe Changes to Your New BSP Layer:* Recipe changes include 823#. *Make Recipe Changes to Your New BSP Layer:* Recipe changes include
774 altering recipes (``*.bb`` files), removing recipes you do not use, 824 altering recipes (``*.bb`` files), removing recipes you do not use,
775 and adding new recipes or append files (``.bbappend``) that support 825 and adding new recipes or append files (``.bbappend``) that support
776 your hardware. 826 your hardware.
777 827
7786. *Prepare for the Build:* Once you have made all the changes to your 828#. *Prepare for the Build:* Once you have made all the changes to your
779 BSP layer, there remains a few things you need to do for the 829 BSP layer, there remains a few things you need to do for the
780 OpenEmbedded build system in order for it to create your image. You 830 OpenEmbedded build system in order for it to create your image. You
781 need to get the build environment ready by sourcing an environment 831 need to get the build environment ready by sourcing an environment
@@ -783,11 +833,11 @@ workflow.
783 key configuration files are configured appropriately: the 833 key configuration files are configured appropriately: the
784 ``conf/local.conf`` and the ``conf/bblayers.conf`` file. You must 834 ``conf/local.conf`` and the ``conf/bblayers.conf`` file. You must
785 make the OpenEmbedded build system aware of your new layer. See the 835 make the OpenEmbedded build system aware of your new layer. See the
786 "`Enabling Your Layer <&YOCTO_DOCS_DEV_URL;#enabling-your-layer>`__" 836 ":ref:`dev-manual/dev-manual-common-tasks:enabling your layer`"
787 section in the Yocto Project Development Tasks Manual for information 837 section in the Yocto Project Development Tasks Manual for information
788 on how to let the build system know about your new layer. 838 on how to let the build system know about your new layer.
789 839
7907. *Build the Image:* The OpenEmbedded build system uses the BitBake 840#. *Build the Image:* The OpenEmbedded build system uses the BitBake
791 tool to build images based on the type of image you want to create. 841 tool to build images based on the type of image you want to create.
792 You can find more information about BitBake in the 842 You can find more information about BitBake in the
793 :doc:`BitBake User Manual <bitbake:index>`. 843 :doc:`BitBake User Manual <bitbake:index>`.
@@ -812,10 +862,9 @@ Before looking at BSP requirements, you should consider the following:
812 862
813- The requirements here assume the BSP layer is a well-formed, "legal" 863- The requirements here assume the BSP layer is a well-formed, "legal"
814 layer that can be added to the Yocto Project. For guidelines on 864 layer that can be added to the Yocto Project. For guidelines on
815 creating a layer that meets these base requirements, see the "`BSP 865 creating a layer that meets these base requirements, see the
816 Layers <#bsp-layers>`__" section in this manual and the 866 ":ref:`bsp-guide/bsp:bsp layers`" section in this manual and the
817 "`Understanding and Creating 867 ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
818 Layers" <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__"
819 section in the Yocto Project Development Tasks Manual. 868 section in the Yocto Project Development Tasks Manual.
820 869
821- The requirements in this section apply regardless of how you package 870- The requirements in this section apply regardless of how you package
@@ -841,14 +890,13 @@ Following are the requirements for a released BSP that conform to the
841Yocto Project: 890Yocto Project:
842 891
843- *Layer Name:* The BSP must have a layer name that follows the Yocto 892- *Layer Name:* The BSP must have a layer name that follows the Yocto
844 Project standards. For information on BSP layer names, see the "`BSP 893 Project standards. For information on BSP layer names, see the
845 Layers <#bsp-layers>`__" section. 894 ":ref:`bsp-guide/bsp:bsp layers`" section.
846 895
847- *File System Layout:* When possible, use the same directory names in 896- *File System Layout:* When possible, use the same directory names in
848 your BSP layer as listed in the ``recipes.txt`` file, which is found 897 your BSP layer as listed in the ``recipes.txt`` file, which is found
849 in ``poky/meta`` directory of the :term:`Source Directory` 898 in ``poky/meta`` directory of the :term:`Source Directory`
850 or in the 899 or in the OpenEmbedded-Core Layer (``openembedded-core``) at
851 OpenEmbedded-Core Layer (``openembedded-core``) at
852 http://git.openembedded.org/openembedded-core/tree/meta. 900 http://git.openembedded.org/openembedded-core/tree/meta.
853 901
854 You should place recipes (``*.bb`` files) and recipe modifications 902 You should place recipes (``*.bb`` files) and recipe modifications
@@ -868,7 +916,7 @@ Yocto Project:
868 Guide <http://openembedded.org/wiki/Styleguide>`__". 916 Guide <http://openembedded.org/wiki/Styleguide>`__".
869 917
870- *License File:* You must include a license file in the 918- *License File:* You must include a license file in the
871 ``meta-``\ bsp_root_name directory. This license covers the BSP 919 ``meta-bsp_root_name`` directory. This license covers the BSP
872 Metadata as a whole. You must specify which license to use since no 920 Metadata as a whole. You must specify which license to use since no
873 default license exists when one is not specified. See the 921 default license exists when one is not specified. See the
874 :yocto_git:`COPYING.MIT </cgit.cgi/meta-raspberrypi/tree/COPYING.MIT>` 922 :yocto_git:`COPYING.MIT </cgit.cgi/meta-raspberrypi/tree/COPYING.MIT>`
@@ -876,7 +924,7 @@ Yocto Project:
876 as an example. 924 as an example.
877 925
878- *README File:* You must include a ``README`` file in the 926- *README File:* You must include a ``README`` file in the
879 ``meta-``\ bsp_root_name directory. See the 927 ``meta-bsp_root_name`` directory. See the
880 :yocto_git:`README.md </cgit.cgi/meta-raspberrypi/tree/README.md>` 928 :yocto_git:`README.md </cgit.cgi/meta-raspberrypi/tree/README.md>`
881 file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer 929 file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
882 as an example. 930 as an example.
@@ -898,9 +946,8 @@ Yocto Project:
898 - The name and contact information for the BSP layer maintainer. 946 - The name and contact information for the BSP layer maintainer.
899 This is the person to whom patches and questions should be sent. 947 This is the person to whom patches and questions should be sent.
900 For information on how to find the right person, see the 948 For information on how to find the right person, see the
901 "`Submitting a Change to the Yocto 949 ":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
902 Project <&YOCTO_DOCS_DEV_URL;#how-to-submit-a-change>`__" section 950 section in the Yocto Project Development Tasks Manual.
903 in the Yocto Project Development Tasks Manual.
904 951
905 - Instructions on how to build the BSP using the BSP layer. 952 - Instructions on how to build the BSP using the BSP layer.
906 953
@@ -912,19 +959,19 @@ Yocto Project:
912 - Information on any known bugs or issues that users should know 959 - Information on any known bugs or issues that users should know
913 about when either building or booting the BSP binaries. 960 about when either building or booting the BSP binaries.
914 961
915- *README.sources File:* If you BSP contains binary images in the 962- *README.sources File:* If your BSP contains binary images in the
916 ``binary`` directory, you must include a ``README.sources`` file in 963 ``binary`` directory, you must include a ``README.sources`` file in
917 the ``meta-``\ bsp_root_name directory. This file specifies exactly 964 the ``meta-bsp_root_name`` directory. This file specifies exactly
918 where you can find the sources used to generate the binary images. 965 where you can find the sources used to generate the binary images.
919 966
920- *Layer Configuration File:* You must include a ``conf/layer.conf`` 967- *Layer Configuration File:* You must include a ``conf/layer.conf``
921 file in the ``meta-``\ bsp_root_name directory. This file identifies 968 file in the ``meta-bsp_root_name`` directory. This file identifies
922 the ``meta-``\ bsp_root_name BSP layer as a layer to the build 969 the ``meta-bsp_root_name`` BSP layer as a layer to the build
923 system. 970 system.
924 971
925- *Machine Configuration File:* You must include one or more 972- *Machine Configuration File:* You must include one or more
926 ``conf/machine/``\ bsp_root_name\ ``.conf`` files in the 973 ``conf/machine/bsp_root_name.conf`` files in the
927 ``meta-``\ bsp_root_name directory. These configuration files define 974 ``meta-bsp_root_name`` directory. These configuration files define
928 machine targets that can be built using the BSP layer. Multiple 975 machine targets that can be built using the BSP layer. Multiple
929 machine configuration files define variations of machine 976 machine configuration files define variations of machine
930 configurations that the BSP supports. If a BSP supports multiple 977 configurations that the BSP supports. If a BSP supports multiple
@@ -936,12 +983,10 @@ Yocto Project:
936 .. note:: 983 .. note::
937 984
938 It is completely possible for a developer to structure the working 985 It is completely possible for a developer to structure the working
939 repository as a conglomeration of unrelated BSP files, and to 986 repository as a conglomeration of unrelated BSP files, and to possibly
940 possibly generate BSPs targeted for release from that directory 987 generate BSPs targeted for release from that directory using scripts or
941 using scripts or some other mechanism (e.g. 988 some other mechanism (e.g. ``meta-yocto-bsp`` layer). Such considerations
942 meta-yocto-bsp 989 are outside the scope of this document.
943 layer). Such considerations are outside the scope of this
944 document.
945 990
946Released BSP Recommendations 991Released BSP Recommendations
947---------------------------- 992----------------------------
@@ -962,7 +1007,7 @@ Yocto Project:
962 If you need to distribute a BSP and include bootable images or build 1007 If you need to distribute a BSP and include bootable images or build
963 kernel and filesystems meant to allow users to boot the BSP for 1008 kernel and filesystems meant to allow users to boot the BSP for
964 evaluation purposes, you should put the images and artifacts within a 1009 evaluation purposes, you should put the images and artifacts within a
965 ``binary/`` subdirectory located in the ``meta-``\ bsp_root_name 1010 ``binary/`` subdirectory located in the ``meta-bsp_root_name``
966 directory. 1011 directory.
967 1012
968 .. note:: 1013 .. note::
@@ -985,10 +1030,10 @@ Customizing a Recipe for a BSP
985If you plan on customizing a recipe for a particular BSP, you need to do 1030If you plan on customizing a recipe for a particular BSP, you need to do
986the following: 1031the following:
987 1032
988- Create a ``*.bbappend`` file for the modified recipe. For information 1033- Create a ``*.bbappend`` file for the modified recipe. For information on using
989 on using append files, see the "`Using .bbappend Files in Your 1034 append files, see the ":ref:`dev-manual/dev-manual-common-tasks:using
990 Layer <&YOCTO_DOCS_DEV_URL;#using-bbappend-files>`__" section in the 1035 .bbappend files in your layer`" section in the Yocto Project Development
991 Yocto Project Development Tasks Manual. 1036 Tasks Manual.
992 1037
993- Ensure your directory structure in the BSP layer that supports your 1038- Ensure your directory structure in the BSP layer that supports your
994 machine is such that the OpenEmbedded build system can find it. See 1039 machine is such that the OpenEmbedded build system can find it. See
@@ -1014,33 +1059,30 @@ BSP-specific configuration file named ``interfaces`` to the
1014``init-ifupdown_1.0.bb`` recipe for machine "xyz" where the BSP layer 1059``init-ifupdown_1.0.bb`` recipe for machine "xyz" where the BSP layer
1015also supports several other machines: 1060also supports several other machines:
1016 1061
10171. Edit the ``init-ifupdown_1.0.bbappend`` file so that it contains the 1062#. Edit the ``init-ifupdown_1.0.bbappend`` file so that it contains the
1018 following: FILESEXTRAPATHS_prepend := "${THISDIR}/files:" The append 1063 following: ::
1019 file needs to be in the ``meta-xyz/recipes-core/init-ifupdown`` 1064
1065 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
1066
1067 The append file needs to be in the ``meta-xyz/recipes-core/init-ifupdown``
1020 directory. 1068 directory.
1021 1069
10222. Create and place the new ``interfaces`` configuration file in the 1070#. Create and place the new ``interfaces`` configuration file in the
1023 BSP's layer here: 1071 BSP's layer here: ::
1024 meta-xyz/recipes-core/init-ifupdown/files/xyz-machine-one/interfaces 1072
1073 meta-xyz/recipes-core/init-ifupdown/files/xyz-machine-one/interfaces
1025 1074
1026 .. note:: 1075 .. note::
1027 1076
1028 If the 1077 If the meta-xyz layer did not support multiple machines, you would place
1029 meta-xyz 1078 the interfaces configuration file in the layer here: ::
1030 layer did not support multiple machines, you would place the
1031 interfaces
1032 configuration file in the layer here:
1033 ::
1034 1079
1035 meta-xyz/recipes-core/init-ifupdown/files/interfaces 1080 meta-xyz/recipes-core/init-ifupdown/files/interfaces
1036
1037 1081
1038 The 1082 The :term:`FILESEXTRAPATHS` variable in the append files extends the search
1039 :term:`FILESEXTRAPATHS` 1083 path the build system uses to find files during the build. Consequently, for
1040 variable in the append files extends the search path the build system 1084 this example you need to have the ``files`` directory in the same location as
1041 uses to find files during the build. Consequently, for this example 1085 your append file.
1042 you need to have the ``files`` directory in the same location as your
1043 append file.
1044 1086
1045BSP Licensing Considerations 1087BSP Licensing Considerations
1046============================ 1088============================
@@ -1087,17 +1129,14 @@ A couple different methods exist within the OpenEmbedded build system to
1087satisfy the licensing requirements for an encumbered BSP. The following 1129satisfy the licensing requirements for an encumbered BSP. The following
1088list describes them in order of preference: 1130list describes them in order of preference:
1089 1131
10901. *Use 1132#. *Use the LICENSE_FLAGS Variable to Define the Recipes that Have Commercial or
1091 the*\ :term:`LICENSE_FLAGS`\ *Variable 1133 Other Types of Specially-Licensed Packages:* For each of those recipes, you can
1092 to Define the Recipes that Have Commercial or Other Types of
1093 Specially-Licensed Packages:* For each of those recipes, you can
1094 specify a matching license string in a ``local.conf`` variable named 1134 specify a matching license string in a ``local.conf`` variable named
1095 :term:`LICENSE_FLAGS_WHITELIST`. 1135 :term:`LICENSE_FLAGS_WHITELIST`.
1096 Specifying the matching license string signifies that you agree to 1136 Specifying the matching license string signifies that you agree to
1097 the license. Thus, the build system can build the corresponding 1137 the license. Thus, the build system can build the corresponding
1098 recipe and include the component in the image. See the "`Enabling 1138 recipe and include the component in the image. See the
1099 Commercially Licensed 1139 ":ref:`dev-manual/dev-manual-common-tasks:enabling commercially licensed recipes`"
1100 Recipes <&YOCTO_DOCS_DEV_URL;#enabling-commercially-licensed-recipes>`__"
1101 section in the Yocto Project Development Tasks Manual for details on 1140 section in the Yocto Project Development Tasks Manual for details on
1102 how to use these variables. 1141 how to use these variables.
1103 1142
@@ -1113,7 +1152,7 @@ list describes them in order of preference:
1113 ``LICENSE_FLAGS_WHITELIST`` variable, you can build the encumbered 1152 ``LICENSE_FLAGS_WHITELIST`` variable, you can build the encumbered
1114 image with no change at all to the normal build process. 1153 image with no change at all to the normal build process.
1115 1154
11162. *Get a Pre-Built Version of the BSP:* You can get this type of BSP by 1155#. *Get a Pre-Built Version of the BSP:* You can get this type of BSP by
1117 selecting the "DOWNLOADS" item from the "SOFTWARE" tab on the 1156 selecting the "DOWNLOADS" item from the "SOFTWARE" tab on the
1118 :yocto_home:`Yocto Project website <>`. You can download BSP tarballs 1157 :yocto_home:`Yocto Project website <>`. You can download BSP tarballs
1119 that contain proprietary components after agreeing to the licensing 1158 that contain proprietary components after agreeing to the licensing
@@ -1148,9 +1187,8 @@ Use these steps to create a BSP layer:
1148- *Create a General Layer:* Use the ``bitbake-layers`` script with the 1187- *Create a General Layer:* Use the ``bitbake-layers`` script with the
1149 ``create-layer`` subcommand to create a new general layer. For 1188 ``create-layer`` subcommand to create a new general layer. For
1150 instructions on how to create a general layer using the 1189 instructions on how to create a general layer using the
1151 ``bitbake-layers`` script, see the "`Creating a General Layer Using 1190 ``bitbake-layers`` script, see the
1152 the ``bitbake-layers`` 1191 ":ref:`dev-manual/dev-manual-common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
1153 Script <&YOCTO_DOCS_DEV_URL;#creating-a-general-layer-using-the-bitbake-layers-script>`__"
1154 section in the Yocto Project Development Tasks Manual. 1192 section in the Yocto Project Development Tasks Manual.
1155 1193
1156- *Create a Layer Configuration File:* Every layer needs a layer 1194- *Create a Layer Configuration File:* Every layer needs a layer
@@ -1164,9 +1202,9 @@ Use these steps to create a BSP layer:
1164 file. 1202 file.
1165 1203
1166- *Create a Machine Configuration File:* Create a 1204- *Create a Machine Configuration File:* Create a
1167 ``conf/machine/``\ bsp_root_name\ ``.conf`` file. See 1205 ``conf/machine/bsp_root_name.conf`` file. See
1168 :yocto_git:`meta-yocto-bsp/conf/machine </cgit/cgit.cgi/poky/tree/meta-yocto-bsp/conf/machine>` 1206 :yocto_git:`meta-yocto-bsp/conf/machine </cgit/cgit.cgi/poky/tree/meta-yocto-bsp/conf/machine>`
1169 for sample bsp_root_name\ ``.conf`` files. Other samples such as 1207 for sample ``bsp_root_name.conf`` files. Other samples such as
1170 :yocto_git:`meta-ti </cgit/cgit.cgi/meta-ti/tree/conf/machine>` 1208 :yocto_git:`meta-ti </cgit/cgit.cgi/meta-ti/tree/conf/machine>`
1171 and 1209 and
1172 :yocto_git:`meta-freescale </cgit/cgit.cgi/meta-freescale/tree/conf/machine>` 1210 :yocto_git:`meta-freescale </cgit/cgit.cgi/meta-freescale/tree/conf/machine>`
@@ -1177,8 +1215,7 @@ Use these steps to create a BSP layer:
1177 ``recipes-kernel/linux`` by either using a kernel append file or a 1215 ``recipes-kernel/linux`` by either using a kernel append file or a
1178 new custom kernel recipe file (e.g. ``yocto-linux_4.12.bb``). The BSP 1216 new custom kernel recipe file (e.g. ``yocto-linux_4.12.bb``). The BSP
1179 layers mentioned in the previous step also contain different kernel 1217 layers mentioned in the previous step also contain different kernel
1180 examples. See the "`Modifying an Existing 1218 examples. See the ":ref:`kernel-dev/kernel-dev-common:modifying an existing recipe`"
1181 Recipe <&YOCTO_DOCS_KERNEL_DEV_URL;#modifying-an-existing-recipe>`__"
1182 section in the Yocto Project Linux Kernel Development Manual for 1219 section in the Yocto Project Linux Kernel Development Manual for
1183 information on how to create a custom kernel. 1220 information on how to create a custom kernel.
1184 1221
@@ -1191,19 +1228,27 @@ BSP Layer Configuration Example
1191------------------------------- 1228-------------------------------
1192 1229
1193The layer's ``conf`` directory contains the ``layer.conf`` configuration 1230The layer's ``conf`` directory contains the ``layer.conf`` configuration
1194file. In this example, the ``conf/layer.conf`` is the following: # We 1231file. In this example, the ``conf/layer.conf`` is the following: ::
1195have a conf and classes directory, add to BBPATH BBPATH .= 1232
1196":${LAYERDIR}" # We have recipes-\* directories, add to BBFILES BBFILES 1233 # We have a conf and classes directory, add to BBPATH
1197+= "${LAYERDIR}/recipes-*/*/*.bb \\ ${LAYERDIR}/recipes-*/*/*.bbappend" 1234 BBPATH .= ":${LAYERDIR}"
1198BBFILE_COLLECTIONS += "yoctobsp" BBFILE_PATTERN_yoctobsp = 1235
1199"^${LAYERDIR}/" BBFILE_PRIORITY_yoctobsp = "5" LAYERVERSION_yoctobsp = 1236 # We have recipes-\* directories, add to BBFILES
1200"4" LAYERSERIES_COMPAT_yoctobsp = "DISTRO_NAME_NO_CAP" The variables 1237 BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
1201used in this file configure the layer. A good way to learn about layer 1238 ${LAYERDIR}/recipes-*/*/*.bbappend"
1239
1240 BBFILE_COLLECTIONS += "yoctobsp"
1241 BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
1242 BBFILE_PRIORITY_yoctobsp = "5"
1243 LAYERVERSION_yoctobsp = "4"
1244 LAYERSERIES_COMPAT_yoctobsp = "&DISTRO_NAME_NO_CAP;"
1245
1246The variables used in this file configure the layer. A good way to learn about layer
1202configuration files is to examine various files for BSP from the 1247configuration files is to examine various files for BSP from the
1203:yocto_git:`Source Repositories <>`. 1248:yocto_git:`Source Repositories <>`.
1204 1249
1205For a detailed description of this particular layer configuration file, 1250For a detailed description of this particular layer configuration file,
1206see "`step 3 <&YOCTO_DOCS_DEV_URL;#dev-layer-config-file-description>`__ 1251see ":ref:`step 3 <dev-manual/dev-manual-common-tasks:creating your own layer>`"
1207in the discussion that describes how to create layers in the Yocto 1252in the discussion that describes how to create layers in the Yocto
1208Project Development Tasks Manual. 1253Project Development Tasks Manual.
1209 1254
@@ -1215,37 +1260,61 @@ configuration file is what makes a layer a BSP layer as compared to a
1215general or kernel layer. 1260general or kernel layer.
1216 1261
1217One or more machine configuration files exist in the 1262One or more machine configuration files exist in the
1218bsp_layer\ ``/conf/machine/`` directory of the layer: 1263``bsp_layer/conf/machine/`` directory of the layer: ::
1219bsp_layer\ ``/conf/machine/``\ machine1\ ``.conf`` 1264
1220bsp_layer\ ``/conf/machine/``\ machine2\ ``.conf`` 1265 bsp_layer/conf/machine/machine1\.conf``
1221bsp_layer\ ``/conf/machine/``\ machine3\ ``.conf`` ... more ... For 1266 bsp_layer/conf/machine/machine2\.conf``
1222example, the machine configuration file for the `BeagleBone and 1267 bsp_layer/conf/machine/machine3\.conf``
1268 ... more ...
1269
1270For example, the machine configuration file for the `BeagleBone and
1223BeagleBone Black development boards <http://beagleboard.org/bone>`__ is 1271BeagleBone Black development boards <http://beagleboard.org/bone>`__ is
1224located in the layer ``poky/meta-yocto-bsp/conf/machine`` and is named 1272located in the layer ``poky/meta-yocto-bsp/conf/machine`` and is named
1225``beaglebone-yocto.conf``: #@TYPE: Machine #@NAME: Beaglebone-yocto 1273``beaglebone-yocto.conf``: ::
1226machine #@DESCRIPTION: Reference machine configuration for 1274
1227http://beagleboard.org/bone and http://beagleboard.org/black boards 1275 #@TYPE: Machine
1228PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" XSERVER ?= 1276 #@NAME: Beaglebone-yocto machine
1229"xserver-xorg \\ xf86-video-modesetting \\ " MACHINE_EXTRA_RRECOMMENDS = 1277 #@DESCRIPTION: Reference machine configuration for http://beagleboard.org/bone and http://beagleboard.org/black boards
1230"kernel-modules kernel-devicetree" EXTRA_IMAGEDEPENDS += "u-boot" 1278
1231DEFAULTTUNE ?= "cortexa8hf-neon" include 1279 PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
1232conf/machine/include/tune-cortexa8.inc IMAGE_FSTYPES += "tar.bz2 jffs2 1280 XSERVER ?= "xserver-xorg \
1233wic wic.bmap" EXTRA_IMAGECMD_jffs2 = "-lnp " WKS_FILE ?= 1281 xf86-video-modesetting \
1234"beaglebone-yocto.wks" IMAGE_INSTALL_append = " kernel-devicetree 1282 "
1235kernel-image-zimage" do_image_wic[depends] += 1283
1236"mtools-native:do_populate_sysroot 1284 MACHINE_EXTRA_RRECOMMENDS = "kernel-modules kernel-devicetree"
1237dosfstools-native:do_populate_sysroot" SERIAL_CONSOLES ?= "115200;ttyS0 1285
1238115200;ttyO0" SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" 1286 EXTRA_IMAGEDEPENDS += "u-boot"
1239PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" 1287
1240PREFERRED_VERSION_linux-yocto ?= "5.0%" KERNEL_IMAGETYPE = "zImage" 1288 DEFAULTTUNE ?= "cortexa8hf-neon"
1241KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb 1289 include conf/machine/include/tune-cortexa8.inc
1242am335x-bonegreen.dtb" KERNEL_EXTRA_ARGS += 1290
1243"LOADADDR=${UBOOT_ENTRYPOINT}" SPL_BINARY = "MLO" UBOOT_SUFFIX = "img" 1291 IMAGE_FSTYPES += "tar.bz2 jffs2 wic wic.bmap"
1244UBOOT_MACHINE = "am335x_evm_defconfig" UBOOT_ENTRYPOINT = "0x80008000" 1292 EXTRA_IMAGECMD_jffs2 = "-lnp "
1245UBOOT_LOADADDRESS = "0x80008000" MACHINE_FEATURES = "usbgadget usbhost 1293 WKS_FILE ?= "beaglebone-yocto.wks"
1246vfat alsa" IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO zImage 1294 IMAGE_INSTALL_append = " kernel-devicetree kernel-image-zimage"
1247am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb" The variables 1295 do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
1248used to configure the machine define machine-specific properties; for 1296
1297 SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0"
1298 SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
1299
1300 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
1301 PREFERRED_VERSION_linux-yocto ?= "5.0%"
1302
1303 KERNEL_IMAGETYPE = "zImage"
1304 KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
1305 KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
1306
1307 SPL_BINARY = "MLO"
1308 UBOOT_SUFFIX = "img"
1309 UBOOT_MACHINE = "am335x_evm_defconfig"
1310 UBOOT_ENTRYPOINT = "0x80008000"
1311 UBOOT_LOADADDRESS = "0x80008000"
1312
1313 MACHINE_FEATURES = "usbgadget usbhost vfat alsa"
1314
1315 IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO zImage am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
1316
1317The variables used to configure the machine define machine-specific properties; for
1249example, machine-dependent packages, machine tunings, the type of kernel 1318example, machine-dependent packages, machine tunings, the type of kernel
1250to build, and U-Boot configurations. 1319to build, and U-Boot configurations.
1251 1320
@@ -1254,8 +1323,7 @@ the example reference machine configuration file for the BeagleBone
1254development boards. Realize that much more can be defined as part of a 1323development boards. Realize that much more can be defined as part of a
1255machine's configuration file. In general, you can learn about related 1324machine's configuration file. In general, you can learn about related
1256variables that this example does not have by locating the variables in 1325variables that this example does not have by locating the variables in
1257the "`Yocto Project Variables 1326the ":ref:`ref-manual/ref-variables:variables glossary`" in the Yocto
1258Glossary <&YOCTO_DOCS_REF_URL;#ref-variables-glos>`__" in the Yocto
1259Project Reference Manual. 1327Project Reference Manual.
1260 1328
1261- :term:`PREFERRED_PROVIDER_virtual/xserver <PREFERRED_PROVIDER>`: 1329- :term:`PREFERRED_PROVIDER_virtual/xserver <PREFERRED_PROVIDER>`:
@@ -1274,12 +1342,10 @@ Project Reference Manual.
1274 image. Thus, the build does not fail if the packages do not exist. 1342 image. Thus, the build does not fail if the packages do not exist.
1275 However, the packages are required for a fully-featured image. 1343 However, the packages are required for a fully-featured image.
1276 1344
1277 .. note:: 1345 .. tip::
1278 1346
1279 Many 1347 Many ``MACHINE\*`` variables exist that help you configure a particular piece
1280 MACHINE\* 1348 of hardware.
1281 variables exist that help you configure a particular piece of
1282 hardware.
1283 1349
1284- :term:`EXTRA_IMAGEDEPENDS`: 1350- :term:`EXTRA_IMAGEDEPENDS`:
1285 Recipes to build that do not provide packages for installing into the 1351 Recipes to build that do not provide packages for installing into the
@@ -1291,18 +1357,15 @@ Project Reference Manual.
1291- :term:`DEFAULTTUNE`: Machines 1357- :term:`DEFAULTTUNE`: Machines
1292 use tunings to optimize machine, CPU, and application performance. 1358 use tunings to optimize machine, CPU, and application performance.
1293 These features, which are collectively known as "tuning features", 1359 These features, which are collectively known as "tuning features",
1294 exist in the `OpenEmbedded-Core 1360 exist in the :term:`OpenEmbedded-Core (OE-Core)` layer (e.g.
1295 (OE-Core) <&YOCTO_DOCS_REF_URL;#oe-core>`__ layer (e.g.
1296 ``poky/meta/conf/machine/include``). In this example, the default 1361 ``poky/meta/conf/machine/include``). In this example, the default
1297 tunning file is "cortexa8hf-neon". 1362 tunning file is "cortexa8hf-neon".
1298 1363
1299 .. note:: 1364 .. note::
1300 1365
1301 The 1366 The include statement that pulls in the
1302 include 1367 conf/machine/include/tune-cortexa8.inc file provides many tuning
1303 statement that pulls in the 1368 possibilities.
1304 conf/machine/include/tune-cortexa8.inc
1305 file provides many tuning possibilities.
1306 1369
1307- :term:`IMAGE_FSTYPES`: The 1370- :term:`IMAGE_FSTYPES`: The
1308 formats the OpenEmbedded build system uses during the build when 1371 formats the OpenEmbedded build system uses during the build when
@@ -1315,7 +1378,7 @@ Project Reference Manual.
1315 `JFFS2 <https://en.wikipedia.org/wiki/JFFS2>`__ image. 1378 `JFFS2 <https://en.wikipedia.org/wiki/JFFS2>`__ image.
1316 1379
1317- :term:`WKS_FILE`: The location of 1380- :term:`WKS_FILE`: The location of
1318 the `Wic kickstart <&YOCTO_DOCS_REF_URL;#ref-kickstart>`__ file used 1381 the :ref:`Wic kickstart <ref-manual/ref-kickstart:openembedded kickstart (\`\`.wks\`\`) reference>` file used
1319 by the OpenEmbedded build system to create a partitioned image 1382 by the OpenEmbedded build system to create a partitioned image
1320 (image.wic). 1383 (image.wic).
1321 1384
@@ -1354,7 +1417,7 @@ Project Reference Manual.
1354- :term:`KERNEL_EXTRA_ARGS`: 1417- :term:`KERNEL_EXTRA_ARGS`:
1355 Additional ``make`` command-line arguments the OpenEmbedded build 1418 Additional ``make`` command-line arguments the OpenEmbedded build
1356 system passes on when compiling the kernel. In this example, 1419 system passes on when compiling the kernel. In this example,
1357 "LOADADDR=${UBOOT_ENTRYPOINT}" is passed as a command-line argument. 1420 ``LOADADDR=${UBOOT_ENTRYPOINT}`` is passed as a command-line argument.
1358 1421
1359- :term:`SPL_BINARY`: Defines the 1422- :term:`SPL_BINARY`: Defines the
1360 Secondary Program Loader (SPL) binary type. In this case, the SPL 1423 Secondary Program Loader (SPL) binary type. In this case, the SPL
@@ -1362,12 +1425,11 @@ Project Reference Manual.
1362 1425
1363 The BeagleBone development board requires an SPL to boot and that SPL 1426 The BeagleBone development board requires an SPL to boot and that SPL
1364 file type must be MLO. Consequently, the machine configuration needs 1427 file type must be MLO. Consequently, the machine configuration needs
1365 to define ``SPL_BINARY`` as "MLO". 1428 to define ``SPL_BINARY`` as ``MLO``.
1366 1429
1367 .. note:: 1430 .. note::
1368 1431
1369 For more information on how the SPL variables are used, see the 1432 For more information on how the SPL variables are used, see the u-boot.inc
1370 u-boot.inc
1371 include file. 1433 include file.
1372 1434
1373- :term:`UBOOT_* <UBOOT_ENTRYPOINT>`: Defines 1435- :term:`UBOOT_* <UBOOT_ENTRYPOINT>`: Defines
@@ -1395,39 +1457,51 @@ Project Reference Manual.
1395 1457
1396- :term:`IMAGE_BOOT_FILES`: 1458- :term:`IMAGE_BOOT_FILES`:
1397 Files installed into the device's boot partition when preparing the 1459 Files installed into the device's boot partition when preparing the
1398 image using the Wic tool with the ``bootimg-partition`` or 1460 image using the Wic tool with the ``bootimg-partition`` or
1399 ``bootimg-efi`` source plugin. 1461 ``bootimg-efi`` source plugin.
1400 1462
1401BSP Kernel Recipe Example 1463BSP Kernel Recipe Example
1402------------------------- 1464-------------------------
1403 1465
1404The kernel recipe used to build the kernel image for the BeagleBone 1466The kernel recipe used to build the kernel image for the BeagleBone
1405device was established in the machine configuration: 1467device was established in the machine configuration: ::
1406PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" 1468
1407PREFERRED_VERSION_linux-yocto ?= "5.0%" The 1469 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
1408``meta-yocto-bsp/recipes-kernel/linux`` directory in the layer contains 1470 PREFERRED_VERSION_linux-yocto ?= "5.0%"
1471
1472The ``meta-yocto-bsp/recipes-kernel/linux`` directory in the layer contains
1409metadata used to build the kernel. In this case, a kernel append file 1473metadata used to build the kernel. In this case, a kernel append file
1410(i.e. ``linux-yocto_5.0.bbappend``) is used to override an established 1474(i.e. ``linux-yocto_5.0.bbappend``) is used to override an established
1411kernel recipe (i.e. ``linux-yocto_5.0.bb``), which is located in 1475kernel recipe (i.e. ``linux-yocto_5.0.bb``), which is located in
1412https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/linux. 1476https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/linux.
1413 1477
1414Following is the contents of the append file: KBRANCH_genericx86 = 1478Following is the contents of the append file: ::
1415"v5.0/standard/base" KBRANCH_genericx86-64 = "v5.0/standard/base" 1479
1416KBRANCH_edgerouter = "v5.0/standard/edgerouter" KBRANCH_beaglebone-yocto 1480 KBRANCH_genericx86 = "v5.0/standard/base"
1417= "v5.0/standard/beaglebone" KMACHINE_genericx86 ?= "common-pc" 1481 KBRANCH_genericx86-64 = "v5.0/standard/base"
1418KMACHINE_genericx86-64 ?= "common-pc-64" KMACHINE_beaglebone-yocto ?= 1482 KBRANCH_edgerouter = "v5.0/standard/edgerouter"
1419"beaglebone" SRCREV_machine_genericx86 ?= 1483 KBRANCH_beaglebone-yocto = "v5.0/standard/beaglebone"
1420"3df4aae6074e94e794e27fe7f17451d9353cdf3d" SRCREV_machine_genericx86-64 1484
1421?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d" SRCREV_machine_edgerouter 1485 KMACHINE_genericx86 ?= "common-pc"
1422?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d" 1486 KMACHINE_genericx86-64 ?= "common-pc-64"
1423SRCREV_machine_beaglebone-yocto ?= 1487 KMACHINE_beaglebone-yocto ?= "beaglebone"
1424"3df4aae6074e94e794e27fe7f17451d9353cdf3d" COMPATIBLE_MACHINE_genericx86 1488
1425= "genericx86" COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" 1489 SRCREV_machine_genericx86 ?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d"
1426COMPATIBLE_MACHINE_edgerouter = "edgerouter" 1490 SRCREV_machine_genericx86-64 ?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d"
1427COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto" 1491 SRCREV_machine_edgerouter ?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d"
1428LINUX_VERSION_genericx86 = "5.0.3" LINUX_VERSION_genericx86-64 = "5.0.3" 1492 SRCREV_machine_beaglebone-yocto ?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d"
1429LINUX_VERSION_edgerouter = "5.0.3" LINUX_VERSION_beaglebone-yocto = 1493
1430"5.0.3" This particular append file works for all the machines that are 1494 COMPATIBLE_MACHINE_genericx86 = "genericx86"
1495 COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
1496 COMPATIBLE_MACHINE_edgerouter = "edgerouter"
1497 COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto"
1498
1499 LINUX_VERSION_genericx86 = "5.0.3"
1500 LINUX_VERSION_genericx86-64 = "5.0.3"
1501 LINUX_VERSION_edgerouter = "5.0.3"
1502 LINUX_VERSION_beaglebone-yocto = "5.0.3"
1503
1504This particular append file works for all the machines that are
1431part of the ``meta-yocto-bsp`` layer. The relevant statements are 1505part of the ``meta-yocto-bsp`` layer. The relevant statements are
1432appended with the "beaglebone-yocto" string. The OpenEmbedded build 1506appended with the "beaglebone-yocto" string. The OpenEmbedded build
1433system uses these statements to override similar statements in the 1507system uses these statements to override similar statements in the