diff --git a/documentation/bsp-guide/bsp.xml b/documentation/bsp-guide/bsp.xml index 363ab77340..a14dd3b888 100644 --- a/documentation/bsp-guide/bsp.xml +++ b/documentation/bsp-guide/bsp.xml @@ -34,11 +34,13 @@ The BSP consists of a file structure inside a base directory. Collectively, you can think of the base directory and the file structure as a BSP Layer. - BSP Layers use the following naming convention: + Although not a strict requirement, layers in the Yocto Project use the + following well established naming convention: meta-<bsp_name> - "bsp_name" is a placeholder for the machine or platform name. + The string "meta-" is prepended to the machine or platform name, which is + "bsp_name" in the above form. @@ -318,9 +320,9 @@ # We have a conf and classes directory, add to BBPATH BBPATH .= ":${LAYERDIR}" - # We have recipes-* directories, add to BBFILES - BBFILES += "${LAYERDIR}/recipes-*/*.bb \ - ${LAYERDIR}/recipes-*/*.bbappend" + # We have a recipes directory, add to BBFILES + BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "bsp" BBFILE_PATTERN_bsp = "^${LAYERDIR}/" @@ -329,8 +331,8 @@ - To illustrate the string substitutions, here are the last three statements from the Crown - Bay conf/layer.conf file: + To illustrate the string substitutions, here are the corresponding statements + from the Crown Bay conf/layer.conf file: BBFILE_COLLECTIONS += "crownbay" BBFILE_PATTERN_crownbay = "^${LAYERDIR}/" @@ -397,9 +399,8 @@ Tuning files are found in the meta/conf/machine/include directory within the Source Directory. - Tuning files can also reside in the BSP Layer itself. For example, the ia32-base.inc file resides in the - meta-intel BSP Layer in conf/machine/include. + meta/conf/machine/include directory. @@ -409,12 +410,13 @@ require conf/machine/include/tune-atom.inc require conf/machine/include/ia32-base.inc + require conf/machine/include/meta-intel.inc
- Miscellaneous Recipe Files + Miscellaneous BSP-Specific Recipe Files You can find these files in the BSP Layer at: @@ -500,28 +502,28 @@ the meta-<bsp_name>/recipes-kernel/linux directory). - Suppose you are using the linux-yocto_3.4.bb recipe to build + Suppose you are using the linux-yocto_3.8.bb recipe to build the kernel. In other words, you have selected the kernel in your <bsp_name>.conf file by adding these types of statements: PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" - PREFERRED_VERSION_linux-yocto = "3.4%" + PREFERRED_VERSION_linux-yocto ?= "3.8%" When the preferred provider is assumed by default, the PREFERRED_PROVIDER statement does not appear in the <bsp_name>.conf file. - You would use the linux-yocto_3.4.bbappend file to append + You would use the linux-yocto_3.8.bbappend file to append specific BSP settings to the kernel, thus configuring the kernel for your particular BSP. As an example, look at the existing Crown Bay BSP. The append file used is: - meta-crownbay/recipes-kernel/linux/linux-yocto_3.4.bbappend + meta-crownbay/recipes-kernel/linux/linux-yocto_3.8.bbappend The following listing shows the file. Be aware that the actual commit ID strings in this example listing might be different @@ -531,40 +533,43 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" COMPATIBLE_MACHINE_crownbay = "crownbay" - KMACHINE_crownbay = "crownbay" - KBRANCH_crownbay = "standard/crownbay" + KMACHINE_crownbay = "crownbay" + KBRANCH_crownbay = "standard/crownbay" + KERNEL_FEATURES_crownbay_append = " features/drm-emgd/drm-emgd-1.16 cfg/vesafb" COMPATIBLE_MACHINE_crownbay-noemgd = "crownbay-noemgd" - KMACHINE_crownbay-noemgd = "crownbay" - KBRANCH_crownbay-noemgd = "standard/crownbay" + KMACHINE_crownbay-noemgd = "crownbay" + KBRANCH_crownbay-noemgd = "standard/crownbay" + KERNEL_FEATURES_crownbay-noemgd_append = " cfg/vesafb" - SRCREV_machine_pn-linux-yocto_crownbay ?= "449f7f520350700858f21a5554b81cc8ad23267d" - SRCREV_meta_pn-linux-yocto_crownbay ?= "9e3bdb7344054264b750e53fbbb6394cc1c942ac" - SRCREV_emgd_pn-linux-yocto_crownbay ?= "86643bdd8cbad616a161ab91f51108cf0da827bc" + LINUX_VERSION = "3.8.4" - SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= "449f7f520350700858f21a5554b81cc8ad23267d" - SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= "9e3bdb7344054264b750e53fbbb6394cc1c942ac" + SRCREV_meta_crownbay = "2a6d36e75ca0a121570a389d7bab76ec240cbfda" + SRCREV_machine_crownbay = "47aed0c17c1c55988198ad39f86ae88894c8e0a4" + SRCREV_emgd_crownbay = "c780732f175ff0ec866fac2130175876b519b576" - KSRC_linux_yocto_3_4 ?= "git.yoctoproject.org/linux-yocto-3.4.git" - SRC_URI_crownbay = "git://git.yoctoproject.org/linux-yocto-3.4.git;protocol=git;nocheckout=1;branch=${KBRANCH},meta,emgd-1.14;name=machine,meta,emgd" - SRC_URI_crownbay-noemgd = "git://git.yoctoproject.org/linux-yocto-3.4.git;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta" + SRCREV_meta_crownbay-noemgd = "2a6d36e75ca0a121570a389d7bab76ec240cbfda" + SRCREV_machine_crownbay-noemgd = "47aed0c17c1c55988198ad39f86ae88894c8e0a4" + + SRC_URI_crownbay = "git://git.yoctoproject.org/linux-yocto-3.8.git;protocol=git;nocheckout=1;branch=${KBRANCH},${KMETA},emgd-1.16;name=machine,meta,emgd" This append file contains statements used to support the Crown Bay BSP for both Intel EMGD and the VESA graphics. The build process, in this case, recognizes and uses only the statements that apply to the defined machine name - crownbay in this case. - So, the applicable statements in the linux-yocto_3.4.bbappend + So, the applicable statements in the linux-yocto_3.8.bbappend file are follows: FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" COMPATIBLE_MACHINE_crownbay = "crownbay" - KMACHINE_crownbay = "crownbay" - KBRANCH_crownbay = "standard/crownbay" + KMACHINE_crownbay = "crownbay" + KBRANCH_crownbay = "standard/crownbay" + KERNEL_FEATURES_crownbay_append = " features/drm-emgd/drm-emgd-1.16 cfg/vesafb" - SRCREV_machine_pn-linux-yocto_crownbay ?= "449f7f520350700858f21a5554b81cc8ad23267d" - SRCREV_meta_pn-linux-yocto_crownbay ?= "9e3bdb7344054264b750e53fbbb6394cc1c942ac" - SRCREV_emgd_pn-linux-yocto_crownbay ?= "86643bdd8cbad616a161ab91f51108cf0da827bc" + SRCREV_meta_crownbay = "2a6d36e75ca0a121570a389d7bab76ec240cbfda" + SRCREV_machine_crownbay = "47aed0c17c1c55988198ad39f86ae88894c8e0a4" + SRCREV_emgd_crownbay = "c780732f175ff0ec866fac2130175876b519b576" The append file defines crownbay as the COMPATIBLE_MACHINE @@ -574,8 +579,11 @@ machine name used by the Linux Yocto kernel. The file also uses the optional KBRANCH variable - to ensure the build process uses the standard/default/crownbay + to ensure the build process uses the standard/crownbay kernel branch. + The + KERNEL_FEATURES + variable enables features specific to the kernel. Finally, the append file points to specific commits in the Source Directory Git repository and the meta Git repository branches to identify the @@ -601,7 +609,7 @@ - For example, suppose you had a some configuration options in a file called + For example, suppose you had some configuration options in a file called network_configs.cfg. You can place that file inside a directory named /linux-yocto and then add a SRC_URI statement such as the following to the append file. @@ -723,7 +731,7 @@ as outlined in recipes.txt. If you cannot find a category in recipes.txt to fit a particular recipe, you can make up your own - recipe-* subdirectory. + recipes-* subdirectory. You can find recipes.txt in the meta directory of the Source Directory, @@ -811,9 +819,9 @@ This file identifies the meta-<bsp_name> BSP layer as a layer to the build system. Machine Configuration File: - You must include a conf/machine/<bsp_name>.conf - in the meta-<bsp_name> directory. - This configuration file defines a machine target that can be built + You must include one or more conf/machine/<bsp_name>.conf + files in the meta-<bsp_name> directory. + These configuration files define machine targets that can be built using the BSP layer. Multiple machine configuration files define variations of machine configurations that are supported by the BSP. @@ -827,7 +835,8 @@ It is completely possible for a developer to structure the working repository as a conglomeration of unrelated BSP files, and to possibly generate BSPs targeted for release - from that directory using scripts or some other mechanism. + from that directory using scripts or some other mechanism + (e.g. meta-yocto-bsp layer). Such considerations are outside the scope of this document. @@ -1259,7 +1268,7 @@ As the yocto-bsp create command runs, default values for the prompts appear in brackets. Pressing enter without supplying anything on the command line or pressing enter - and providing an invalid response causes the script to accept the default value. + with an invalid response causes the script to accept the default value. Once the script completes, the new meta-myarm BSP layer is created in the current working directory. This example assumes you have sourced the @@ -1350,7 +1359,7 @@ bblayers.conf file. Here is an example: - BBLAYERS = ?" \ + BBLAYERS = ? " \ /usr/local/src/yocto/meta \ /usr/local/src/yocto/meta-yocto \ /usr/local/src/yocto/meta-yocto-bsp \ diff --git a/documentation/ref-manual/faq.xml b/documentation/ref-manual/faq.xml index df9f7fadc3..f96b64c1a5 100644 --- a/documentation/ref-manual/faq.xml +++ b/documentation/ref-manual/faq.xml @@ -407,7 +407,7 @@ You need to create a form factor file as described in the - "Miscellaneous Recipe Files" + "Miscellaneous BSP-Specific Recipe Files" section in the Yocto Project Board Support Packages (BSP) Developer's Guide. Set the HAVE_TOUCHSCREEN variable equal to @@ -431,7 +431,7 @@ automatically bring up network interfaces. Therefore, you will need to add a BSP-specific netbase that includes an interfaces file. - See the "Miscellaneous Recipe Files" + See the "Miscellaneous BSP-Specific Recipe Files" section in the Yocto Project Board Support Packages (BSP) Developer's Guide for information on creating these types of miscellaneous recipe files.