From a8c8680f84a9d3496676be4d30c52f90c1c7c1d1 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Wed, 28 Jun 2017 13:51:27 -0700 Subject: dev-manual, bsp-guide: Moved BSP development workflow section Fixes [YOCTO #11630] Moved the section on BSP Development workflow from the dev-manual into the bsp-guide. This procedure needs to live in the BSP guide. Many links had to be fixed. (From yocto-docs rev: fbf06240f83221929aea237660146e0076207f6a) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/bsp-guide/bsp.xml | 191 ++++++++++++++++++++++- documentation/bsp-guide/figures/bsp-dev-flow.png | Bin 0 -> 42751 bytes 2 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 documentation/bsp-guide/figures/bsp-dev-flow.png (limited to 'documentation/bsp-guide') diff --git a/documentation/bsp-guide/bsp.xml b/documentation/bsp-guide/bsp.xml index 50822db2c2..f452c6eaec 100644 --- a/documentation/bsp-guide/bsp.xml +++ b/documentation/bsp-guide/bsp.xml @@ -83,8 +83,8 @@ For information on the BSP development workflow, see the - "Developing a Board Support Package (BSP)" - section in the Yocto Project Development Manual. + "Developing a Board Support Package (BSP)" + section. For more information on how to set up a local copy of source files from a Git repository, see the "Working With Yocto Project Source Files" @@ -710,6 +710,193 @@ +
+ Developing a Board Support Package (BSP) + + + A BSP is a collection of recipes that, when applied during a build, results in + an image that you can run on a particular board. + Thus, the package when compiled into the new image, supports the operation of the board. + + + + For a brief list of terms used when describing the development process in the Yocto Project, + see the + "Yocto Project Terms" section. + + + + The remainder of this section presents the basic + steps used to create a BSP using the Yocto Project's + BSP Tools. + Although not required for BSP creation, the + meta-intel repository, which contains + many BSPs supported by the Yocto Project, is part of the example. + + + + For an example that shows how to create a new layer using the tools, see the + "Creating a New BSP Layer Using the yocto-bsp Script" + section. + + + + The following illustration and list summarize the BSP creation general workflow. + + + + + + + + + Set up your host development system to support + development using the Yocto Project: See the + "The Linux Distribution" + and the + "The Build Host Packages" sections both + in the Yocto Project Quick Start for requirements. + Establish a local copy of the project files on your + system: You need this + Source Directory + available on your host system. + Having these files on your system gives you access to the build + process and to the tools you need. + For information on how to set up the Source Directory, + see the + "Working With Yocto Project Source Files" + section in the Yocto Project Development Manual. + + Establish the meta-intel + repository on your system: Having local copies + of these supported BSP layers on your system gives you + access to layers you might be able to build on or modify + to create your BSP. + For information on how to get these files, see the + "Setting Up BSP Layers" + section in the Yocto Project Development Manual. + + Create your own BSP layer using the + yocto-bsp script: + Layers are ideal for + isolating and storing work for a given piece of hardware. + A layer is really just a location or area in which you place + the recipes and configurations for your BSP. + In fact, a BSP is, in itself, a special type of layer. + The simplest way to create a new BSP layer that is compliant with the + Yocto Project is to use the yocto-bsp script. + For information about that script, see the + "Creating a New BSP Layer Using the yocto-bsp Script" + section. + + + + Another example that illustrates a layer + is an application. + Suppose you are creating an application that has + library or other dependencies in order for it to + compile and run. + The layer, in this case, would be where all the + recipes that define those dependencies are kept. + The key point for a layer is that it is an isolated + area that contains all the relevant information for + the project that the OpenEmbedded build system knows + about. + For more information on layers, see the + "Understanding and Creating Layers" + section in the Yocto Project Development Manual. + For more information on BSP layers, see the + "BSP Layers" + section. + + + Five BSPs exist that are part of the Yocto Project release: + beaglebone (ARM), + mpc8315e (PowerPC), + and edgerouter (MIPS). + The recipes and configurations for these five BSPs + are located and dispersed within the + Source Directory. + + + + Three core Intel BSPs exist as part of the Yocto + Project release in the + meta-intel layer: + + intel-core2-32, + which is a BSP optimized for the Core2 family of CPUs + as well as all CPUs prior to the Silvermont core. + + intel-corei7-64, + which is a BSP optimized for Nehalem and later + Core and Xeon CPUs as well as Silvermont and later + Atom CPUs, such as the Baytrail SoCs. + + intel-quark, + which is a BSP optimized for the Intel Galileo + gen1 & gen2 development boards. + + + + + + + When you set up a layer for a new BSP, you should follow a standard layout. + This layout is described in the + "Example Filesystem Layout" + section. + In the standard layout, you will notice a suggested structure for recipes and + configuration information. + You can see the standard layout for a BSP by examining + any supported BSP found in the meta-intel layer inside + the Source Directory. + Make configuration changes to your new BSP + layer: The standard BSP layer structure organizes the files you need + to edit in conf and several recipes-* + directories within the BSP layer. + Configuration changes identify where your new layer is on the local system + and identify which kernel you are going to use. + When you run the yocto-bsp script, you are able to interactively + configure many things for the BSP (e.g. keyboard, touchscreen, and so forth). + + Make recipe changes to your new BSP layer: Recipe + changes include altering recipes (.bb files), removing + recipes you do not use, and adding new recipes or append files + (.bbappend) that you need to support your hardware. + + Prepare for the build: Once you have made all the + changes to your BSP layer, there remains a few things + you need to do for the OpenEmbedded build system in order for it to create your image. + You need to get the build environment ready by sourcing an environment setup script + (i.e. oe-init-build-env or + oe-init-build-env-memres) + and you need to be sure two key configuration files are configured appropriately: + the conf/local.conf and the + conf/bblayers.conf file. + You must make the OpenEmbedded build system aware of your new layer. + See the + "Enabling Your Layer" + section in the Yocto Project Development Manual + for information on how to let the build system know about your new layer. + The entire process for building an image is overviewed in the section + "Building Images" section + of the Yocto Project Quick Start. + You might want to reference this information. + Build the image: The OpenEmbedded build system + uses the BitBake tool to build images based on the type of image you want to create. + You can find more information about BitBake in the + BitBake User Manual. + + The build process supports several types of images to satisfy different needs. + See the + "Images" chapter + in the Yocto Project Reference Manual for information on + supported images. + + +
+
Requirements and Recommendations for Released BSPs diff --git a/documentation/bsp-guide/figures/bsp-dev-flow.png b/documentation/bsp-guide/figures/bsp-dev-flow.png new file mode 100644 index 0000000000..540b0abb9f Binary files /dev/null and b/documentation/bsp-guide/figures/bsp-dev-flow.png differ -- cgit v1.2.3-54-g00ecf