diff options
| author | rpjday@crashcourse.ca <rpjday@crashcourse.ca> | 2020-02-23 16:56:42 -0500 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-04-06 14:40:24 +0100 |
| commit | d4a3a121ed17f0a80ad4336bc0461927cd79bfe6 (patch) | |
| tree | 4180b5041eac3603848f245f7eafa2db43888bb0 /documentation/bsp-guide | |
| parent | 284af91476b118241ee5da2adcd25ebd80211ffb (diff) | |
| download | poky-d4a3a121ed17f0a80ad4336bc0461927cd79bfe6.tar.gz | |
BSP Guide: numerous tweaks/grammar/wording/clarification
(From yocto-docs rev: 3a87e5900b603f124ce7f63fd072415762f63212)
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/bsp-guide')
| -rw-r--r-- | documentation/bsp-guide/bsp.xml | 89 |
1 files changed, 52 insertions, 37 deletions
diff --git a/documentation/bsp-guide/bsp.xml b/documentation/bsp-guide/bsp.xml index e76dd57e77..96c0455f67 100644 --- a/documentation/bsp-guide/bsp.xml +++ b/documentation/bsp-guide/bsp.xml | |||
| @@ -19,7 +19,7 @@ | |||
| 19 | </para> | 19 | </para> |
| 20 | 20 | ||
| 21 | <para> | 21 | <para> |
| 22 | This guide presents information about BSP Layers, defines a structure for components | 22 | This guide presents information about BSP layers, defines a structure for components |
| 23 | so that BSPs follow a commonly understood layout, discusses how to customize | 23 | so that BSPs follow a commonly understood layout, discusses how to customize |
| 24 | a recipe for a BSP, addresses BSP licensing, and provides information that | 24 | a recipe for a BSP, addresses BSP licensing, and provides information that |
| 25 | shows you how to create a | 25 | shows you how to create a |
| @@ -34,7 +34,7 @@ | |||
| 34 | <para> | 34 | <para> |
| 35 | A BSP consists of a file structure inside a base directory. | 35 | A BSP consists of a file structure inside a base directory. |
| 36 | Collectively, you can think of the base directory, its file structure, | 36 | Collectively, you can think of the base directory, its file structure, |
| 37 | and the contents as a BSP Layer. | 37 | and the contents as a <firstterm>BSP layer</firstterm>. |
| 38 | Although not a strict requirement, BSP layers in the Yocto Project | 38 | Although not a strict requirement, BSP layers in the Yocto Project |
| 39 | use the following well-established naming convention: | 39 | use the following well-established naming convention: |
| 40 | <literallayout class='monospaced'> | 40 | <literallayout class='monospaced'> |
| @@ -69,9 +69,9 @@ | |||
| 69 | Each repository is a BSP layer supported by the Yocto Project | 69 | Each repository is a BSP layer supported by the Yocto Project |
| 70 | (e.g. <filename>meta-raspberrypi</filename> and | 70 | (e.g. <filename>meta-raspberrypi</filename> and |
| 71 | <filename>meta-intel</filename>). | 71 | <filename>meta-intel</filename>). |
| 72 | Each of these layers is a repository unto itself and clicking on a | 72 | Each of these layers is a repository unto itself and clicking on |
| 73 | layer reveals information that includes two links from which you can choose | 73 | the layer name displays two URLs from which you can |
| 74 | to set up a clone of the layer's repository on your local host system. | 74 | clone the layer's repository to your local system. |
| 75 | Here is an example that clones the Raspberry Pi BSP layer: | 75 | Here is an example that clones the Raspberry Pi BSP layer: |
| 76 | <literallayout class='monospaced'> | 76 | <literallayout class='monospaced'> |
| 77 | $ git clone git://git.yoctoproject.org/meta-raspberrypi | 77 | $ git clone git://git.yoctoproject.org/meta-raspberrypi |
| @@ -83,12 +83,13 @@ | |||
| 83 | <filename>meta-yocto-bsp</filename> layer is part of the | 83 | <filename>meta-yocto-bsp</filename> layer is part of the |
| 84 | shipped <filename>poky</filename> repository. | 84 | shipped <filename>poky</filename> repository. |
| 85 | The <filename>meta-yocto-bsp</filename> layer maintains several | 85 | The <filename>meta-yocto-bsp</filename> layer maintains several |
| 86 | BSPs such as the Beaglebone, EdgeRouter, and generic versions of | 86 | "reference" BSPs including the ARM-based Beaglebone, MIPS-based |
| 87 | EdgeRouter, and generic versions of | ||
| 87 | both 32-bit and 64-bit IA machines. | 88 | both 32-bit and 64-bit IA machines. |
| 88 | </para> | 89 | </para> |
| 89 | 90 | ||
| 90 | <para> | 91 | <para> |
| 91 | For information on the BSP development workflow, see the | 92 | For information on typical BSP development workflow, see the |
| 92 | "<link linkend='developing-a-board-support-package-bsp'>Developing a Board Support Package (BSP)</link>" | 93 | "<link linkend='developing-a-board-support-package-bsp'>Developing a Board Support Package (BSP)</link>" |
| 93 | section. | 94 | section. |
| 94 | For more information on how to set up a local copy of source files | 95 | For more information on how to set up a local copy of source files |
| @@ -98,12 +99,12 @@ | |||
| 98 | </para> | 99 | </para> |
| 99 | 100 | ||
| 100 | <para> | 101 | <para> |
| 101 | The layer's base directory | 102 | The BSP layer's base directory |
| 102 | (<filename>meta-<replaceable>bsp_root_name</replaceable></filename>) | 103 | (<filename>meta-<replaceable>bsp_root_name</replaceable></filename>) |
| 103 | is the root directory of the BSP Layer. | 104 | is the root directory of that Layer. |
| 104 | This directory is what you add to the | 105 | This directory is what you add to the |
| 105 | <ulink url='&YOCTO_DOCS_REF_URL;#var-BBLAYERS'><filename>BBLAYERS</filename></ulink> | 106 | <ulink url='&YOCTO_DOCS_REF_URL;#var-BBLAYERS'><filename>BBLAYERS</filename></ulink> |
| 106 | variable in the <filename>conf/bblayers.conf</filename> file found in the | 107 | variable in the <filename>conf/bblayers.conf</filename> file found in your |
| 107 | <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>, | 108 | <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>, |
| 108 | which is established after you run the OpenEmbedded build environment | 109 | which is established after you run the OpenEmbedded build environment |
| 109 | setup script (i.e. | 110 | setup script (i.e. |
| @@ -153,6 +154,20 @@ | |||
| 153 | layer. | 154 | layer. |
| 154 | The <filename>meta-openembedded</filename> layer contains | 155 | The <filename>meta-openembedded</filename> layer contains |
| 155 | many <filename>meta-*</filename> layers. | 156 | many <filename>meta-*</filename> layers. |
| 157 | In cases like this, you need to include the names of the actual | ||
| 158 | layers you want to work with, such as: | ||
| 159 | <literallayout class='monospaced'> | ||
| 160 | BBLAYERS ?= " \ | ||
| 161 | /usr/local/src/yocto/meta \ | ||
| 162 | /usr/local/src/yocto/meta-poky \ | ||
| 163 | /usr/local/src/yocto/meta-yocto-bsp \ | ||
| 164 | /usr/local/src/yocto/meta-mylayer \ | ||
| 165 | .../meta-openembedded/meta-oe \ | ||
| 166 | .../meta-openembedded/meta-perl \ | ||
| 167 | .../meta-openembedded/meta-networking \ | ||
| 168 | " | ||
| 169 | </literallayout> | ||
| 170 | and so on. | ||
| 156 | </para> | 171 | </para> |
| 157 | 172 | ||
| 158 | <para> | 173 | <para> |
| @@ -351,25 +366,24 @@ | |||
| 351 | layer combined with a build system and other tools. | 366 | layer combined with a build system and other tools. |
| 352 | Realize that it is important to maintain the distinction | 367 | Realize that it is important to maintain the distinction |
| 353 | that the BSP layer, a build system, and tools are | 368 | that the BSP layer, a build system, and tools are |
| 354 | separate components that could to be combined in | 369 | separate components that could be combined in |
| 355 | certain end products. | 370 | certain end products. |
| 356 | </para> | 371 | </para> |
| 357 | 372 | ||
| 358 | <para> | 373 | <para> |
| 359 | Before looking at the common form for the file structure | 374 | Before looking at the recommended form for the directory structure |
| 360 | inside a BSP Layer, you should be aware that some | 375 | inside a BSP layer, you should be aware that some |
| 361 | requirements do exist in order for a BSP layer to | 376 | requirements do exist in order for a BSP layer to |
| 362 | be considered compliant with the Yocto Project. | 377 | be considered <firstterm>compliant</firstterm> with the Yocto Project. |
| 363 | For that list of requirements, see the | 378 | For that list of requirements, see the |
| 364 | "<link linkend='released-bsp-requirements'>Released BSP Requirements</link>" | 379 | "<link linkend='released-bsp-requirements'>Released BSP Requirements</link>" |
| 365 | section. | 380 | section. |
| 366 | </para> | 381 | </para> |
| 367 | 382 | ||
| 368 | <para> | 383 | <para> |
| 369 | Below is the common form for the file structure | 384 | Below is the typical directory structure for a BSP layer. |
| 370 | inside a BSP Layer. | ||
| 371 | While this basic form represents the standard, | 385 | While this basic form represents the standard, |
| 372 | realize that the actual file structures for specific | 386 | realize that the actual layout for individual |
| 373 | BSPs could differ. | 387 | BSPs could differ. |
| 374 | <literallayout class='monospaced'> | 388 | <literallayout class='monospaced'> |
| 375 | meta-<replaceable>bsp_root_name</replaceable>/ | 389 | meta-<replaceable>bsp_root_name</replaceable>/ |
| @@ -567,7 +581,7 @@ | |||
| 567 | for the BSP. | 581 | for the BSP. |
| 568 | The type or types of files here can vary depending | 582 | The type or types of files here can vary depending |
| 569 | on the licensing requirements. | 583 | on the licensing requirements. |
| 570 | For example, in the Raspberry Pi BSP all licensing | 584 | For example, in the Raspberry Pi BSP, all licensing |
| 571 | requirements are handled with the | 585 | requirements are handled with the |
| 572 | <filename>COPYING.MIT</filename> file. | 586 | <filename>COPYING.MIT</filename> file. |
| 573 | </para> | 587 | </para> |
| @@ -802,7 +816,7 @@ | |||
| 802 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>. | 816 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>. |
| 803 | For example, many <filename>tune-*</filename> files | 817 | For example, many <filename>tune-*</filename> files |
| 804 | (e.g. <filename>tune-arm1136jf-s.inc</filename>, | 818 | (e.g. <filename>tune-arm1136jf-s.inc</filename>, |
| 805 | <filename>tun-1586-nlp.inc</filename>, and so forth) | 819 | <filename>tune-1586-nlp.inc</filename>, and so forth) |
| 806 | reside in the | 820 | reside in the |
| 807 | <filename>poky/meta/conf/machine/include</filename> | 821 | <filename>poky/meta/conf/machine/include</filename> |
| 808 | directory. | 822 | directory. |
| @@ -834,7 +848,7 @@ | |||
| 834 | This optional directory contains miscellaneous recipe | 848 | This optional directory contains miscellaneous recipe |
| 835 | files for the BSP. | 849 | files for the BSP. |
| 836 | Most notably would be the formfactor files. | 850 | Most notably would be the formfactor files. |
| 837 | For example, in the Raspberry Pi BSP there is the | 851 | For example, in the Raspberry Pi BSP, there is the |
| 838 | <filename>formfactor_0.0.bbappend</filename> file, | 852 | <filename>formfactor_0.0.bbappend</filename> file, |
| 839 | which is an append file used to augment the recipe | 853 | which is an append file used to augment the recipe |
| 840 | that starts the build. | 854 | that starts the build. |
| @@ -901,7 +915,7 @@ | |||
| 901 | The <filename>*.bb</filename> files would be a | 915 | The <filename>*.bb</filename> files would be a |
| 902 | developer-supplied kernel recipe. | 916 | developer-supplied kernel recipe. |
| 903 | This area of the BSP hierarchy can contain both these | 917 | This area of the BSP hierarchy can contain both these |
| 904 | types of files, although in practice, it is likely that | 918 | types of files although, in practice, it is likely that |
| 905 | you would have one or the other. | 919 | you would have one or the other. |
| 906 | </para> | 920 | </para> |
| 907 | 921 | ||
| @@ -976,7 +990,7 @@ | |||
| 976 | <title>Developing a Board Support Package (BSP)</title> | 990 | <title>Developing a Board Support Package (BSP)</title> |
| 977 | 991 | ||
| 978 | <para> | 992 | <para> |
| 979 | This section contains the high-level procedure you can | 993 | This section describes the high-level procedure you can |
| 980 | follow to create a BSP. | 994 | follow to create a BSP. |
| 981 | Although not required for BSP creation, the | 995 | Although not required for BSP creation, the |
| 982 | <filename>meta-intel</filename> repository, which | 996 | <filename>meta-intel</filename> repository, which |
| @@ -1298,7 +1312,7 @@ | |||
| 1298 | (<filename>openembedded-core</filename>) | 1312 | (<filename>openembedded-core</filename>) |
| 1299 | or the Source Directory (<filename>poky</filename>). | 1313 | or the Source Directory (<filename>poky</filename>). |
| 1300 | In other words, make sure you place related | 1314 | In other words, make sure you place related |
| 1301 | files in appropriately related | 1315 | files in appropriately-related |
| 1302 | <filename>recipes-*</filename> subdirectories | 1316 | <filename>recipes-*</filename> subdirectories |
| 1303 | specific to the recipe's function, or within | 1317 | specific to the recipe's function, or within |
| 1304 | a subdirectory containing a set of closely-related | 1318 | a subdirectory containing a set of closely-related |
| @@ -1315,7 +1329,7 @@ | |||
| 1315 | directory. | 1329 | directory. |
| 1316 | This license covers the BSP Metadata as a whole. | 1330 | This license covers the BSP Metadata as a whole. |
| 1317 | You must specify which license to use since no | 1331 | You must specify which license to use since no |
| 1318 | default license exists when one not specified. | 1332 | default license exists when one is not specified. |
| 1319 | See the | 1333 | See the |
| 1320 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi/meta-raspberrypi/tree/COPYING.MIT'><filename>COPYING.MIT</filename></ulink> | 1334 | <ulink url='&YOCTO_GIT_URL;/cgit.cgi/meta-raspberrypi/tree/COPYING.MIT'><filename>COPYING.MIT</filename></ulink> |
| 1321 | file for the Raspberry Pi BSP in the | 1335 | file for the Raspberry Pi BSP in the |
| @@ -1338,12 +1352,10 @@ | |||
| 1338 | file should contain the following: | 1352 | file should contain the following: |
| 1339 | <itemizedlist> | 1353 | <itemizedlist> |
| 1340 | <listitem><para> | 1354 | <listitem><para> |
| 1341 | A brief description about the hardware the BSP | 1355 | A brief description of the target hardware. |
| 1342 | targets. | ||
| 1343 | </para></listitem> | 1356 | </para></listitem> |
| 1344 | <listitem><para> | 1357 | <listitem><para> |
| 1345 | A list of all the dependencies | 1358 | A list of all the dependencies of the BSP. |
| 1346 | on which a BSP layer depends. | ||
| 1347 | These dependencies are typically a list | 1359 | These dependencies are typically a list |
| 1348 | of required layers needed to build the | 1360 | of required layers needed to build the |
| 1349 | BSP. | 1361 | BSP. |
| @@ -1606,7 +1618,7 @@ | |||
| 1606 | <title>BSP Licensing Considerations</title> | 1618 | <title>BSP Licensing Considerations</title> |
| 1607 | 1619 | ||
| 1608 | <para> | 1620 | <para> |
| 1609 | In some cases, a BSP contains separately licensed | 1621 | In some cases, a BSP contains separately-licensed |
| 1610 | Intellectual Property (IP) for a component or components. | 1622 | Intellectual Property (IP) for a component or components. |
| 1611 | For these cases, you are required to accept the terms | 1623 | For these cases, you are required to accept the terms |
| 1612 | of a commercial or other type of license that requires | 1624 | of a commercial or other type of license that requires |
| @@ -1619,7 +1631,7 @@ | |||
| 1619 | </para> | 1631 | </para> |
| 1620 | 1632 | ||
| 1621 | <para> | 1633 | <para> |
| 1622 | You could find that some separately licensed components | 1634 | You could find that some separately-licensed components |
| 1623 | that are essential for normal operation of the system might | 1635 | that are essential for normal operation of the system might |
| 1624 | not have an unencumbered (or free) substitute. | 1636 | not have an unencumbered (or free) substitute. |
| 1625 | Without these essential components, the system would be | 1637 | Without these essential components, the system would be |
| @@ -1627,7 +1639,7 @@ | |||
| 1627 | Then again, you might find that other licensed components | 1639 | Then again, you might find that other licensed components |
| 1628 | that are simply 'good-to-have' or purely elective do have | 1640 | that are simply 'good-to-have' or purely elective do have |
| 1629 | an unencumbered, free replacement component that you can | 1641 | an unencumbered, free replacement component that you can |
| 1630 | use rather than agreeing to the separately licensed | 1642 | use rather than agreeing to the separately-licensed |
| 1631 | component. | 1643 | component. |
| 1632 | Even for components essential to the system, you might | 1644 | Even for components essential to the system, you might |
| 1633 | find an unencumbered component that is not identical but | 1645 | find an unencumbered component that is not identical but |
| @@ -1740,7 +1752,7 @@ | |||
| 1740 | <para> | 1752 | <para> |
| 1741 | The <filename>bitbake-layers create-layer</filename> script | 1753 | The <filename>bitbake-layers create-layer</filename> script |
| 1742 | automates creating a BSP layer. | 1754 | automates creating a BSP layer. |
| 1743 | What makes a layer a "BSP layer", is the presence of a machine | 1755 | What makes a layer a "BSP layer" is the presence of at least one machine |
| 1744 | configuration file. | 1756 | configuration file. |
| 1745 | Additionally, a BSP layer usually has a kernel recipe | 1757 | Additionally, a BSP layer usually has a kernel recipe |
| 1746 | or an append file that leverages off an existing kernel recipe. | 1758 | or an append file that leverages off an existing kernel recipe. |
| @@ -1864,11 +1876,14 @@ | |||
| 1864 | </para> | 1876 | </para> |
| 1865 | 1877 | ||
| 1866 | <para> | 1878 | <para> |
| 1867 | Machine configuration files exist in the | 1879 | One or more machine configuration files exist in the |
| 1868 | <replaceable>bsp_layer</replaceable><filename>/conf/machine/</filename> | 1880 | <replaceable>bsp_layer</replaceable><filename>/conf/machine/</filename> |
| 1869 | directory of the layer: | 1881 | directory of the layer: |
| 1870 | <literallayout class='monospaced'> | 1882 | <literallayout class='monospaced'> |
| 1871 | <replaceable>bsp_layer</replaceable><filename>/conf/machine/</filename><replaceable>machine</replaceable><filename>.conf</filename> | 1883 | <replaceable>bsp_layer</replaceable><filename>/conf/machine/</filename><replaceable>machine1</replaceable><filename>.conf</filename> |
| 1884 | <replaceable>bsp_layer</replaceable><filename>/conf/machine/</filename><replaceable>machine2</replaceable><filename>.conf</filename> | ||
| 1885 | <replaceable>bsp_layer</replaceable><filename>/conf/machine/</filename><replaceable>machine3</replaceable><filename>.conf</filename> | ||
| 1886 | ... more ... | ||
| 1872 | </literallayout> | 1887 | </literallayout> |
| 1873 | For example, the machine configuration file for the | 1888 | For example, the machine configuration file for the |
| 1874 | <ulink url='http://beagleboard.org/bone'>BeagleBone and BeagleBone Black development boards</ulink> | 1889 | <ulink url='http://beagleboard.org/bone'>BeagleBone and BeagleBone Black development boards</ulink> |
| @@ -1919,8 +1934,8 @@ | |||
| 1919 | IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO zImage am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb" | 1934 | IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO zImage am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb" |
| 1920 | </literallayout> | 1935 | </literallayout> |
| 1921 | The variables used to configure the machine define | 1936 | The variables used to configure the machine define |
| 1922 | machine-specific properties. | 1937 | machine-specific properties; |
| 1923 | For example, machine-dependent packages, machine | 1938 | for example, machine-dependent packages, machine |
| 1924 | tunings, the type of kernel to build, and | 1939 | tunings, the type of kernel to build, and |
| 1925 | U-Boot configurations. | 1940 | U-Boot configurations. |
| 1926 | </para> | 1941 | </para> |
| @@ -1931,7 +1946,7 @@ | |||
| 1931 | machine configuration file for the BeagleBone | 1946 | machine configuration file for the BeagleBone |
| 1932 | development boards. | 1947 | development boards. |
| 1933 | Realize that much more can be defined as part of | 1948 | Realize that much more can be defined as part of |
| 1934 | a machines configuration file. | 1949 | a machine's configuration file. |
| 1935 | In general, you can learn about related variables | 1950 | In general, you can learn about related variables |
| 1936 | that this example does not have by locating the | 1951 | that this example does not have by locating the |
| 1937 | variables in the | 1952 | variables in the |
