<title>Example Filesystem Layout</title>
 
             <para>
-                Defining a common BSP directory structure allows end-users to understand and
-                become familiar with that structure.
-                A common format also encourages standardization of software support of hardware.
+                Defining a common BSP directory structure allows
+                end-users to understand and become familiar with
+                that standard.
+                A common format also encourages standardization
+                of software support for hardware.
             </para>
 
             <para>
-                The proposed form does have elements that are specific to the
-                OpenEmbedded build system.
-                It is intended that this information can be
-                used by other build systems besides the OpenEmbedded build system
-                and that it will be simple
-                to extract information and convert it to other formats if required.
-                The OpenEmbedded build system, through its standard layers mechanism, can directly
-                accept the format described as a layer.
-                The BSP captures all
-                the hardware-specific details in one place in a standard format, which is
-                useful for any person wishing to use the hardware platform regardless of
-                the build system they are using.
+                The proposed form described in this section does
+                have elements that are specific to the OpenEmbedded
+                build system.
+                It is intended that developers can use this structure
+                with other build systems besides the OpenEmbedded build
+                system.
+                It is also intended that it will be be simple to extract
+                information and convert it to other formats if required.
+                The OpenEmbedded build system, through its standard
+                <ulink url='&YOCTO_DOCS_GS_URL;#the-yocto-project-layer-model'>layers mechanism</ulink>,
+                can directly accept the format described as a layer.
+                The BSP layer captures all the hardware-specific details
+                in one place using a standard format, which is useful
+                for any person wishing to use the hardware platform
+                regardless of the build system they are using.
             </para>
 
             <para>
-                The BSP specification does not include a build system or other tools -
-                it is concerned with the hardware-specific components only.
-                At the end-distribution point, you can ship the BSP combined with a build system
-                and other tools.
-                However, it is important to maintain the distinction that these
-                are separate components that happen to be combined in certain end products.
+                The BSP specification does not include a build system
+                or other tools - the specification is concerned with
+                the hardware-specific components only.
+                At the end-distribution point, you can ship the BSP
+                layer combined with a build system and other tools.
+                Realize that it is important to maintain the distinction
+                that the BSP layer, a build system, and tools are
+                separate components that could to be combined in
+                certain end products.
             </para>
 
             <para>
-                Before looking at the common form for the file structure inside a BSP Layer,
-                you should be aware that some requirements do exist in order for a BSP to
+                Before looking at the common form for the file structure
+                inside a BSP Layer, you should be aware that some
+                requirements do exist in order for a BSP layer to
                 be considered compliant with the Yocto Project.
                 For that list of requirements, see the
                 "<link linkend='released-bsp-requirements'>Released BSP Requirements</link>"
             </para>
 
             <para>
-                Below is the common form for the file structure inside a BSP Layer.
-                While you can use this basic form for the standard, realize that the actual structures
-                for specific BSPs could differ.
-
+                Below is the common form for the file structure
+                inside a BSP Layer.
+                While this basic form represents the standard,
+                realize that the actual file structures for specific
+                BSPs could differ.
                 <literallayout class='monospaced'>
      meta-<replaceable>bsp_name</replaceable>/
      meta-<replaceable>bsp_name</replaceable>/<replaceable>bsp_license_file</replaceable>
             </para>
 
             <para>
-                Below is an example of the Raspberry Pi BSP:
-
+                Below is an example of the Raspberry Pi BSP
+                layer that ships with the Yocto Project:
                 <literallayout class='monospaced'>
      meta-raspberrypi/COPYING.MIT
-     meta-raspberrypi/README
+     meta-raspberrypi/README.md
      meta-raspberrypi/classes
-     meta-raspberrypi/classes/linux-raspberrypi-base.bbclass
      meta-raspberrypi/classes/sdcard_image-rpi.bbclass
      meta-raspberrypi/conf/
      meta-raspberrypi/conf/layer.conf
      meta-raspberrypi/conf/machine/
+     meta-raspberrypi/conf/machine/raspberrypi-cm.conf
+     meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
      meta-raspberrypi/conf/machine/raspberrypi.conf
+     meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf
      meta-raspberrypi/conf/machine/raspberrypi0.conf
      meta-raspberrypi/conf/machine/raspberrypi2.conf
+     meta-raspberrypi/conf/machine/raspberrypi3-64.conf
      meta-raspberrypi/conf/machine/raspberrypi3.conf
      meta-raspberrypi/conf/machine/include
      meta-raspberrypi/conf/machine/include/rpi-base.inc
      meta-raspberrypi/conf/machine/include/rpi-default-providers.inc
      meta-raspberrypi/conf/machine/include/rpi-default-settings.inc
      meta-raspberrypi/conf/machine/include/rpi-default-versions.inc
-     meta-raspberrypi/conf/machine/include/rpi-tune-arm1176jzf-s.inc
+     meta-raspberrypi/conf/machine/include/tune-arm1176jzf-s.inc
+     meta-raspberrypi/docs
+     meta-raspberrypi/docs/Makefile
+     meta-raspberrypi/docs/conf.py
+     meta-raspberrypi/docs/contributing.md
+     meta-raspberrypi/docs/extra-apps.md
+     meta-raspberrypi/docs/extra-build-config.md
+     meta-raspberrypi/docs/index.rst
+     meta-raspberrypi/docs/layer-contents.md
+     meta-raspberrypi/docs/readme.md
      meta-raspberrypi/files
      meta-raspberrypi/files/custom-licenses
      meta-raspberrypi/files/custom-licenses/Broadcom
      meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
      meta-raspberrypi/recipes-bsp/common
      meta-raspberrypi/recipes-bsp/common/firmware.inc
-     meta-raspberrypi/recipes-bsp/formfactor_00.bbappend
-     meta-raspberrypi/recipes-bsp/formfactor/raspberrypi/machconfig
-     meta-raspberrypi/recipes-bsp/rpi-mkimage_git.bb
-     meta-raspberrypi/recipes-bsp/rpi-mkimage/License
-     meta-raspberrypi/recipes-bsp/rpi-mkimage/open-files-relative-to-script.patch
-     meta-raspberrypi/recipes-bsp/u-boot/u-boot-rpi_git.bb
+     meta-raspberrypi/recipes-bsp/formfactor
+     meta-raspberrypi/recipes-bsp/formfactor/formfactor
+     meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi
+     meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi/machconfig
+     meta-raspberrypi/recipes-bsp/formfactor/formfactor_0.0.bbappend
+     meta-raspberrypi/recipes-bsp/rpi-u-boot-src
+     meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files
+     meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files/boot.cmd.in
+     meta-raspberrypi/recipes-bsp/rpi-u-boot-src/rpi-u-boot-scr.bb
+     meta-raspberrypi/recipes-bsp/u-boot
+     meta-raspberrypi/recipes-bsp/u-boot/u-boot
+     meta-raspberrypi/recipes-bsp/u-boot/u-boot/*.patch
+     meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
+     meta-raspberrypi/recipes-connectivity
+     meta-raspberrypi/recipes-connectivity/bluez5
+     meta-raspberrypi/recipes-connectivity/bluez5/bluez5
+     meta-raspberrypi/recipes-connectivity/bluez5/bluez5/*.patch
+     meta-raspberrypi/recipes-connectivity/bluez5/bluez5/BCM43430A1.hcd
+     meta-raspberrypi/recipes-connectivity/bluez5/bluez5brcm43438.service
+     meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
      meta-raspberrypi/recipes-core
      meta-raspberrypi/recipes-core/images
      meta-raspberrypi/recipes-core/images/rpi-basic-image.bb
      meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb
      meta-raspberrypi/recipes-core/psplash
      meta-raspberrypi/recipes-core/psplash/files
-     meta-raspberrypi/recipes-core/psplash/psplash_git.bbappend
      meta-raspberrypi/recipes-core/psplash/files/psplash-raspberrypi-img.h
+     meta-raspberrypi/recipes-core/psplash/psplash_git.bbappend
+     meta-raspberrypi/recipes-core/udev
+     meta-raspberrypi/recipes-core/udev/udev-rules-rpi
+     meta-raspberrypi/recipes-core/udev/udev-rules-rpi/99-com.rules
+     meta-raspberrypi/recipes-core/udev/udev-rules-rpi.bb
      meta-raspberrypi/recipes-devtools
      meta-raspberrypi/recipes-devtools/bcm2835
-     meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.46.bb
+     meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb
      meta-raspberrypi/recipes-devtools/pi-blaster
      meta-raspberrypi/recipes-devtools/pi-blaster/files
-     meta-raspberrypi/recipes-devtools/pi-blaster/*.patch
-     meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster.inc
+     meta-raspberrypi/recipes-devtools/pi-blaster/files/*.patch
      meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
      meta-raspberrypi/recipes-devtools/python
      meta-raspberrypi/recipes-devtools/python/python-rtimu
      meta-raspberrypi/recipes-devtools/python/python-rtimu/*.patch
      meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb
-     meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.1.0.bb
+     meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb
      meta-raspberrypi/recipes-devtools/python/rpi-gpio
      meta-raspberrypi/recipes-devtools/python/rpi-gpio/*.patch
-     meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.1.bb
+     meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb
      meta-raspberrypi/recipes-devtools/python/rpio
      meta-raspberrypi/recipes-devtools/python/rpio/*.patch
      meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb
      meta-raspberrypi/recipes-devtools/wiringPi
      meta-raspberrypi/recipes-devtools/wiringPi/files
      meta-raspberrypi/recipes-devtools/wiringPi/files/*.patch
-     meta-raspberrypi/recipes-devtools/wiringPi/wiringpi
-     meta-raspberrypi/recipes-devtools/wiringPi/wiringpi/*.patch
      meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb
      meta-raspberrypi/recipes-graphics
      meta-raspberrypi/recipes-graphics/eglinfo
      meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
      meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend
+     meta-raspberrypi/recipes-graphics/mesa
+     meta-raspberrypi/recipes-graphics/mesa/mesa-gl_%.bbappend
+     meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
      meta-raspberrypi/recipes-graphics/userland
      meta-raspberrypi/recipes-graphics/userland/userland
      meta-raspberrypi/recipes-graphics/userland/userland/*.patch
      meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc
      meta-raspberrypi/recipes-graphics/wayland
      meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend
-     meta-raspberrypi/recipes-graphics/weston
-     meta-raspberrypi/recipes-graphics/weston/weston_%.bbappend
      meta-raspberrypi/recipes-graphics/xorg-xserver
      meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config
      meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi
      meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf
      meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d
      meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-evdev.conf
-     meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-pitft.conf
+     meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/98-pitft.conf
+     meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-calibration.conf
      meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
+     meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
      meta-raspberrypi/recipes-kernel
      meta-raspberrypi/recipes-kernel/linux-firmware
-     meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware
-     meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/LICENSE.broadcom_brcm80211
-     meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.bin
-     meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.txt
-     meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_git.bbappend
+     meta-raspberrypi/recipes-kernel/linux-firmware/files
+     meta-raspberrypi/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin
+     meta-raspberrypi/recipes-kernel/linux-firmware/files/brcfmac43430-sdio.txt
+     meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
      meta-raspberrypi/recipes-kernel/linux
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.14
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.14/*.patch
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-3.18/*.patch
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-4.1/*.patch
+     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
      meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/defconfig
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.14.bb
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_3.18.bb
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.1.bb
-     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.4.bb
-     meta-raspberrypi/recipes-kernel/linux/linux.inc
+     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb
+     meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb
      meta-raspberrypi/recipes-multimedia
      meta-raspberrypi/recipes-multimedia/gstreamer
      meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx
      meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/*.patch
      meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
      meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
+     meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12
+     meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/*.patch
      meta-raspberrypi/recipes-multimedia/omxplayer
      meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer
      meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/*.patch
      meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
-     meta-raspberrypi/scripts
-     meta-raspberrypi/scripts/lib
-     meta-raspberrypi/scripts/lib/image
-     meta-raspberrypi/scripts/lib/image/canned-wks
-     meta-raspberrypi/scripts/lib/image/canned-wks/sdimage-raspberrypi.wks
+     meta-raspberrypi/recipes-multimedia/x264
+     meta-raspberrypi/recipes-multimedia/x264/x264_git.bbappend
+     meta-raspberrypi/wic
+     meta-raspberrypi/wic/sdimage-raspberrypi.wks
                 </literallayout>
             </para>
 
             <para>
-                The following sections describe each part of the proposed BSP format.
+                The following sections describe each part of the proposed
+                BSP format.
             </para>
 
             <section id="bsp-filelayout-license">
                 </para>
 
                 <para>
-                    These optional files satisfy licensing requirements for the BSP.
-                    The type or types of files here can vary depending on the licensing requirements.
-                    For example, in the Raspberry Pi BSP all licensing requirements are handled with the
+                    These optional files satisfy licensing requirements
+                    for the BSP.
+                    The type or types of files here can vary depending
+                    on the licensing requirements.
+                    For example, in the Raspberry Pi BSP all licensing
+                    requirements are handled with the
                     <filename>COPYING.MIT</filename> file.
                 </para>
 
                 <para>
                     Licensing files can be MIT, BSD, GPLv*, and so forth.
-                    These files are recommended for the BSP but are optional and totally up to the BSP developer.
+                    These files are recommended for the BSP but are
+                    optional and totally up to the BSP developer.
+                    For information on how to maintain license
+                    compliance, see the
+                    "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle'>Maintaining Open Source License Compliance During Your Product's Lifecycle</ulink>"
+                    section in the Yocto Project Development Tasks
+                    Manual.
                 </para>
             </section>
 
                 </para>
 
                 <para>
-                    This file provides information on how to boot the live images that are optionally
-                    included in the <filename>binary/</filename> directory.
-                    The <filename>README</filename> file also provides special information needed for
-                    building the image.
+                    This file provides information on how to boot the live
+                    images that are optionally included in the
+                    <filename>binary/</filename> directory.
+                    The <filename>README</filename> file also provides
+                    information needed for building the image.
                 </para>
 
                 <para>
 
                 <para>
                     This file provides information on where to locate the BSP
-                    source files used to build the images (if any) that reside in
+                    source files used to build the images (if any) that
+                    reside in
                     <filename>meta-<replaceable>bsp_name</replaceable>/binary</filename>.
                     Images in the <filename>binary</filename> would be images
                     released with the BSP.
                         If the BSP's <filename>binary</filename> directory is
                         missing or the directory has no images, an existing
                         <filename>README.sources</filename> file is
-                        meaningless.
+                        meaningless and usually does not exist.
                     </note>
                 </para>
             </section>
                 </para>
 
                 <para>
-                    This optional area contains useful pre-built kernels and
-                    user-space filesystem images released with the BSP that are
-                    appropriate to the target system.
-                    This directory typically contains graphical (e.g. Sato) and
-                    minimal live images when the BSP tarball has been created and
-                    made available in the
-                    <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website.
-                    You can use these kernels and images to get a system running
-                    and quickly get started on development tasks.
+                    This optional area contains useful pre-built kernels
+                    and user-space filesystem images released with the
+                    BSP that are appropriate to the target system.
+                    This directory typically contains graphical (e.g. Sato)
+                    and minimal live images when the BSP tarball has been
+                    created and made available in the
+                    <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink>
+                    website.
+                    You can use these kernels and images to get a system
+                    running and quickly get started on development tasks.
                 </para>
 
                 <para>
                     The exact types of binaries present are highly
                     hardware-dependent.
-                    The <filename>README</filename> file should be present in the
-                    BSP Layer and it will explain how to use the images with the
-                    target hardware.
-                    Additionally, the <filename>README.sources</filename> file
-                    should be present to locate the sources used to build the
-                    images and provide information on the Metadata.
+                    The
+                    <link linkend='bsp-filelayout-readme'><filename>README</filename></link>
+                    file should be present in the BSP Layer and it
+                    explains how to use the images with the target hardware.
+                    Additionally, the
+                    <link linkend='bsp-filelayout-readme-sources'><filename>README.sources</filename></link>
+                    file should be present to locate the sources used to
+                    build the images and provide information on the
+                    Metadata.
                 </para>
             </section>
 
                 </para>
 
                 <para>
-                    The <filename>conf/layer.conf</filename> file identifies the file structure as a
-                    layer, identifies the
-                    contents of the layer, and contains information about how the build
-                    system should use it.
-                    Generally, a standard boilerplate file such as the following works.
-                    In the following example, you would replace "<replaceable>bsp</replaceable>" and
-                    "<replaceable>_bsp</replaceable>" with the actual name
-                    of the BSP (i.e. <replaceable>bsp_name</replaceable> from the example template).
+                    The <filename>conf/layer.conf</filename> file
+                    identifies the file structure as a layer,
+                    identifies the contents of the layer, and
+                    contains information about how the build system should
+                    use it.
+                    Generally, a standard boilerplate file such as the
+                    following works.
+                    In the following example, you would replace
+                    <replaceable>bsp</replaceable> with the actual
+                    name of the BSP (i.e.
+                    <replaceable>bsp_name</replaceable> from the example
+                    template).
                 </para>
 
                 <para>
                 </para>
 
                 <para>
-                    To illustrate the string substitutions, here are the corresponding statements
-                    from the Raspberry Pi <filename>conf/layer.conf</filename> file:
+                    To illustrate the string substitutions, here are
+                    the corresponding statements from the Raspberry
+                    Pi <filename>conf/layer.conf</filename> file:
                    <literallayout class='monospaced'>
      # We have a conf and classes directory, append to BBPATH
      BBPATH .= ":${LAYERDIR}"
 
      # Additional license directories.
      LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
+          .
+          .
+          .
                     </literallayout>
                 </para>
 
                     This file simply makes
                     <ulink url='&YOCTO_DOCS_REF_URL;#bitbake-term'>BitBake</ulink>
                     aware of the recipes and configuration directories.
-                    The file must exist so that the OpenEmbedded build system can recognize the BSP.
+                    The file must exist so that the OpenEmbedded build system
+                    can recognize the BSP.
                 </para>
             </section>
 
                 </para>
 
                 <para>
-                    The machine files bind together all the information contained elsewhere
-                    in the BSP into a format that the build system can understand.
-                    If the BSP supports multiple machines, multiple machine configuration files
-                    can be present.
-                    These filenames correspond to the values to which users have set the
+                    The machine files bind together all the information
+                    contained elsewhere in the BSP into a format that
+                    the build system can understand.
+                    Each BSP Layer requires at least one machine file.
+                    If the BSP supports multiple machines, multiple
+                    machine configuration files can exist.
+                    These filenames correspond to the values to which
+                    users have set the
                     <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> variable.
                 </para>
 
                 <para>
-                    These files define things such as the kernel package to use
+                    These files define things such as the kernel package
+                    to use
                     (<ulink url='&YOCTO_DOCS_REF_URL;#var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></ulink>
-                    of virtual/kernel), the hardware drivers to
-                    include in different types of images, any special software components
-                    that are needed, any bootloader information, and also any special image
-                    format requirements.
+                    of
+                    <ulink url='&YOCTO_DOCS_DEV_URL;#metadata-virtual-providers'>virtual/kernel</ulink>),
+                    the hardware drivers to include in different types
+                    of images, any special software components that are
+                    needed, any bootloader information, and also any
+                    special image format requirements.
                 </para>
 
                 <para>
-                    Each BSP Layer requires at least one machine file.
-                    However, you can supply more than one file.
-                </para>
-
-                <para>
-                    This configuration file could also include a hardware "tuning"
-                    file that is commonly used to define the package architecture
-                    and specify optimization flags, which are carefully chosen
-                    to give best performance on a given processor.
+                    This configuration file could also include a hardware
+                    "tuning" file that is commonly used to define the
+                    package architecture and specify optimization flags,
+                    which are carefully chosen to give best performance
+                    on a given processor.
                 </para>
 
                 <para>
-                    Tuning files are found in the <filename>meta/conf/machine/include</filename>
+                    Tuning files are found in the
+                    <filename>meta/conf/machine/include</filename>
                     directory within the
                     <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
-                    For example, the <filename>ia32-base.inc</filename> file resides in the
-                    <filename>meta/conf/machine/include</filename> directory.
+                    For example, many <filename>tune-*</filename> files
+                    (e.g. <filename>tune-arm1136jf-s.inc</filename>,
+                    <filename>tun-1586-nlp.inc</filename>, and so forth)
+                    reside in the
+                    <filename>poky/meta/conf/machine/include</filename>
+                    directory.
                 </para>
 
                 <para>
                     <filename>raspberrypi3.conf</filename> contains the
                     following statement:
                     <literallayout class='monospaced'>
-     include conf/machine/raspberrypi2.conf
+     include conf/machine/include/rpi-base.inc
                     </literallayout>
                 </para>
             </section>
                 </para>
 
                 <para>
-                    This optional directory contains miscellaneous recipe files for
-                    the BSP.
+                    This optional directory contains miscellaneous recipe
+                    files for the BSP.
                     Most notably would be the formfactor files.
                     For example, in the Raspberry Pi BSP there is the
-                    <filename>formfactor_0.0.bbappend</filename> file, which is an
-                    append file used to augment the recipe that starts the build.
-                    Furthermore, there are machine-specific settings used during
-                    the build that are defined by the
-                    <filename>machconfig</filename> file further down in the
-                    directory.
-                    Here is the <filename>machconfig</filename>
-                    file for the Raspberry Pi BSP:
+                    <filename>formfactor_0.0.bbappend</filename> file,
+                    which is an append file used to augment the recipe
+                    that starts the build.
+                    Furthermore, there are machine-specific settings used
+                    during the build that are defined by the
+                    <filename>machconfig</filename> file further down in
+                    the directory.
+                    Here is the <filename>machconfig</filename> file for
+                    the Raspberry Pi BSP:
                     <literallayout class='monospaced'>
      HAVE_TOUCHSCREEN=0
      HAVE_KEYBOARD=1
                 </para>
 
                 <note><para>
-                    If a BSP does not have a formfactor entry, defaults are established according to
-                    the formfactor configuration file that is installed by the main
+                    If a BSP does not have a formfactor entry, defaults
+                    are established according to the formfactor
+                    configuration file that is installed by the main
                     formfactor recipe
                     <filename>meta/recipes-bsp/formfactor/formfactor_0.0.bb</filename>,
                     which is found in the
                 </para>
 
                 <para>
-                    This optional directory contains recipes for the BSP if it has
-                    special requirements for graphics support.
-                    All files that are needed for the BSP to support a display are
-                    kept here.
+                    This optional directory contains recipes for the
+                    BSP if it has special requirements for graphics
+                    support.
+                    All files that are needed for the BSP to support
+                    a display are kept here.
                 </para>
             </section>
 
                     Project kernel recipe found in the
                     <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
                     at <filename>meta/recipes-kernel/linux</filename>.
-                    You can append machine-specific changes to the kernel recipe
-                    by using a similarly named append file, which is located in
-                    the BSP Layer for your target device (e.g. the
+                    You can append machine-specific changes to the
+                    kernel recipe by using a similarly named append
+                    file, which is located in the BSP Layer for your
+                    target device (e.g. the
                     <filename>meta-<replaceable>bsp_name</replaceable>/recipes-kernel/linux</filename> directory).
                 </para>
 
                 <para>
-                    Suppose you are using the <filename>linux-yocto_4.4.bb</filename>
-                    recipe to build the kernel.
+                    Suppose you are using the
+                    <filename>linux-yocto_4.4.bb</filename> recipe to
+                    build the kernel.
                     In other words, you have selected the kernel in your
                     <replaceable>bsp_name</replaceable><filename>.conf</filename>
                     file by adding
      PREFERRED_VERSION_linux-yocto ?= "4.4%"
                     </literallayout>
                     <note>
-                        When the preferred provider is assumed by default, the
+                        When the preferred provider is assumed by
+                        default, the
                         <filename>PREFERRED_PROVIDER</filename>
                         statement does not appear in the
                         <replaceable>bsp_name</replaceable><filename>.conf</filename> file.
                     </note>
-                    You would use the <filename>linux-yocto_4.4.bbappend</filename>
-                    file to append specific BSP settings to the kernel, thus
-                    configuring the kernel for your particular BSP.
+                    You would use the
+                    <filename>linux-yocto_4.4.bbappend</filename>
+                    file to append specific BSP settings to the kernel,
+                    thus configuring the kernel for your particular BSP.
                 </para>
 
                 <para>