poky: subtree update:c67f57c09e..c6bc20857c

Adrian Freihofer (2):
      oe-publish-sdk: fix layers init via ssh
      oe-publish-sdk: add --keep-orig option

Alexander Kanavin (68):
      meta-selftest: correct the virgl test for 5.8 kernels
      bison: upgrade 3.6.4 -> 3.7.1
      util-linux: upgrade 2.35.2 -> 2.36
      python3-numpy: upgrade 1.19.0 -> 1.19.1
      python3-setuptools: upgrade 49.3.1 -> 49.6.0
      rsync: upgrade 3.2.2 -> 3.2.3
      util-linux: merge .inc into .bb
      acpica: upgrade 20200528 -> 20200717
      asciidoc: upgrade 9.0.1 -> 9.0.2
      cryptodev: upgrade 1.10 -> 1.11
      diffoscope: upgrade 153 -> 156
      epiphany: upgrade 3.36.3 -> 3.36.4
      font-alias: upgrade 1.0.3 -> 1.0.4
      gtk+3: upgrade 3.24.21 -> 3.24.22
      libcheck: upgrade 0.15.0 -> 0.15.2
      libinput: upgrade 1.16.0 -> 1.16.1
      libpipeline: upgrade 1.5.2 -> 1.5.3
      libx11: upgrade 1.6.9 -> 1.6.11
      linux-firmware: upgrade 20200619 -> 20200721
      man-pages: upgrade 5.07 -> 5.08
      mc: upgrade 4.8.24 -> 4.8.25
      mesa: upgrade 20.1.4 -> 20.1.5
      piglit: upgrade to latest revision
      re2c: upgrade 2.0 -> 2.0.2
      sysstat: upgrade 12.2.2 -> 12.4.0
      vala: upgrade 0.48.7 -> 0.48.9
      bootchart2: update 0.14.8 -> 0.14.9
      harfbuzz: convert to meson, enable gobject introspection
      pango: update 1.44.7 -> 1.46.0
      boost: update 1.73.0 -> 1.74.0
      xev: update 1.2.3 -> 1.2.4
      wpebackend-fdo: update 1.6.1 -> 1.7.1
      gpgme: update 1.13.1 -> 1.14.0
      libpsl: update 0.21.0 -> 0.21.1.
      gettext: update 0.20.2 -> 0.21
      cmake: update 3.17.3 -> 3.18.1
      linux-firmware: update 20200721 -> 20200817
      meson: update 0.55.0 -> 0.55.1
      systemd-boot: bump version to 246.2
      json-glib: inherit upstream-version-is-even
      packagegroup-core-device-devel: remove
      oeqa/x32lib: rework to use readelf from the host
      oeqa/multilib: rework to use readelf from the host
      oeqa/multilib: un-skip the connman test
      poky.conf: do not install packagegroup-core-device-devel into qemu images
      glib-2.0: update 2.64.4 -> 2.64.5
      cmake: upgrade 3.18.1 -> 3.18.2
      libxcrypt: upgrade 4.4.16 -> 4.4.17
      debianutils: upgrade 4.11 -> 4.11.1
      enchant2: upgrade 2.2.8 -> 2.2.9
      harfbuzz: upgrade 2.7.1 -> 2.7.2
      libmpc: upgrade 1.1.0 -> 1.2.0
      librepo: upgrade 1.12.0 -> 1.12.1
      libuv: upgrade 1.38.1 -> 1.39.0
      msmtp: upgrade 1.8.11 -> 1.8.12
      ninja: upgrade 1.10.0 -> 1.10.1
      p11-kit: upgrade 0.23.20 -> 0.23.21
      pango: upgrade 1.46.0 -> 1.46.1
      re2c: upgrade 2.0.2 -> 2.0.3
      resolvconf: upgrade 1.82 -> 1.83
      stress-ng: upgrade 0.11.18 -> 0.11.19
      gnu-config: update to latest revision
      nasm: update 2.15.03 -> 2.15.05
      libva-utils: fix upstream version check
      gnupg: update 2.2.21 -> 2.2.22
      libx11: update 1.6.11 -> 1.6.12
      mesa: update 20.1.5 -> 20.1.6
      xserver-xorg: update 1.20.8 -> 1.20.9

Andrey Zhizhikin (1):
      insane: check for missing update-alternatives inherit

Anibal Limon (1):
      recipes-kernel: linux-firmware add qcom-venus-{5.2,5.4} packages

Aníbal Limón (1):
      recipes-graphics/xorg-xserver: Add patch to fix segfault when probe

Armin Kuster (2):
      bind: update to 9.11.22 ESV
      core-image-sato: qemumips use 512 mem

Bruce Ashfield (30):
      linux-yocto/5.4: update to v5.4.59
      linux-yocto/5.8: update to v5.8.2
      yocto-bsp: update to v5.4.56
      yocto-bsp: update to v5.4.58
      qemu: bump default reference kernel to v5.8
      linux-yocto/5.8: fix perf and virtio_scsi warnings
      linux-yocto-rt/5.8: fix lttng-modules build
      linux-yocto/5.8: selftests/bpf: Prevent runqslower from racing on building bpftool
      linux-yocto/5.8: disable CONFIG_NFS_DISABLE_UDP_SUPPORT
      poky: set preferred version for linux-yocto to be v5.8
      poky-tiny: set preferred version to 5.8
      poky: add preferred version for linux-yocto-rt
      linux-yocto/5.8: update to v5.8.3
      linux-yocto/5.4: update to v5.4.60
      kernel: config cleanups for 5.8+
      linux-yocto/5.4: update to v5.4.61
      linux-yocto/5.8: update to v5.8.4
      linux-yocto/5.8: disable IKHEADERS in default builds
      kernel-yocto: allow promotion of configuration warnings to errors
      kernel-yocto: checksum all modifications to available kernel fragments directories
      lttng-modules/devupstream: bump to latest 2.12 commits
      linux-yocto-dev: bump to v5.9+
      linux-yocto/5.8: update to v5.8.5
      kernel-devsrc: account for HOSTCC and HOSTCXX
      linux-yocto/config: netfilter: Enable nat for ipv4 and ipv6
      linux-yocto/5.8: update to v5.8.8
      linux-yocto/5.4: update to v5.4.64
      linux-yocto/config: configuration warning cleanup
      linux-yocto/5.8: update to v5.8.9
      linux-yocto/5.4: update to v5.4.65

Changhyeok Bae (2):
      iw: upgrade 5.4 -> 5.8
      iputils: upgrade s20190709 -> s20200821

Chris Laplante (12):
      bitbake: compat.py: remove file since it no longer actually implements anything
      bitbake: COW: formatting
      bitbake: COW: migrate test suite into tests/cow
      cve-update-db-native: add progress handler
      cve-check/cve-update-db-native: use lockfile to fix usage under multiconfig
      cve-update-db-native: use context manager for cve_f
      cve-check: avoid FileNotFoundError if no do_cve_check task has run
      bitbake: utils: process_profilelog: use context manager
      bitbake: utils: fix UnboundLocalError when _print_exception raises
      cve-update-db-native: be less magical about checking whether the cve-check class is enabled
      cve-update-db-native: move -journal checking into do_fetch
      cve-update-db-native: remove unused variable

Christophe GUIBOUT (1):
      initramfs-framework: support kernel cmdline with double quotes

Denys Dmytriyenko (2):
      weston: upgrade 8.0.0 -> 9.0.0
      cryptodev: bump 1 commit past 1.11 to fix 5.9-rc1+

Diego Sueiro (2):
      license_image.bbclass: Create symlink to the image license manifest dir
      license_image.bbclass: Fix symlink to the image license manifest dir creation

Douglas Royds (1):
      tcmode-default: Drop gcc-cross-initial, gcc-crosssdk-initial references

Frazer Clews (1):
      bitbake: lib: fix most undefined code picked up by pylint

Geoff Parker (1):
      systemd-serialgetty: Replace sed quoting using ' with " to allow var expansion

Jacob Kroon (1):
      gcc10: Don't default back to -fcommon

Jean-Francois Dagenais (1):
      bitbake: siggen: clean_basepath: remove recipe full path when virtual:xyz present

Jens Rehsack (1):
      lttng-modules: backport patches from 2.12.x to fix 5.4.64+ and 5.8.9+ builds

Joe Slater (1):
      pseudo: fix renaming to self

Jon Mason (4):
      cortex-m0plus.inc: change file permissions
      tune-cortexa55.inc: clean-up ARMv8.2a uses
      tune-cortexa57-cortexa53.inc: add CRC and set march
      tune-cortexa*: Cleanups

Joshua Watt (8):
      wic: Add 512 Byte alignment to --offset
      oeqa: runtime_tests: Extra GPG debugging
      oeqa: sdk: Capture stderr output
      oeqa: reproducible: Fix test not producing diffs
      diffoscope: upgrade 156 -> 158
      bitbake: bitbake: Add parsing torture test
      bitbake: cooker: Block SIGINT in worker processes
      sphinx: dev-manual: Clarify that virtual providers do not apply to runtime dependencies

Kai Kang (1):
      dhcpcd: 9.1.4 -> 9.2.0

Kevin Hao (1):
      meta-yocto-bsp: Bump to the v5.8 kernel

Khairul Rohaizzat Jamaluddin (1):
      wic/bootimg-efi: IMAGE_EFI_BOOT_FILES variable added to separate bootimg-efi and bootimg-partition

Khem Raj (24):
      gcc-cross-canadian: Install gcc/g++ wrappers for musl
      uninative: Upgrade to 2.9
      packagegroup-core-tools-profile: Disable lttng-modules for riscv64
      lttng-modules: Disable on riscv64
      kexec-tools: Fix build with -fno-common on ppc
      lttng-tools: Do not build for riscv64
      util-linux: Allow update alternatives for additional apps
      lttng-tools: lttng-ust works on riscv64
      json-glib: Backport a build fix with clang
      rpcbind: Use update-alternatives for rpcinfo
      go: Upgrade to 1.15 major release
      weston-init: Redefine weston service and add socket activation option
      musl: Upgrade to latest master
      libucontext: Recognise riscv32 architecture
      linuxloader.bbclass: Define riscv32 ldso for musl
      populate_sdk_ext: Do not assume local.conf will always exist
      weston: plane_add_prop() calls break musl atomic modesetting
      weston-init: Enable RDP screen share
      weston-init: Do not use fbdev backend
      weston-init: Select drm/fbdev backends for qemu machines
      oeqa/weston: Fix tests to run with systemd
      core-image-weston: Bump qemu memory to 512M
      go: Update to 1.15.2 minor release
      bind: Inherit update-alternatives

Mark Hatle (6):
      package_tar.bbclass: Sync to the other package_* classes
      kernel.bbclass: Remove do_install[prefunc] no longer needed
      buildhistory.bbclass: Rework to use read_subpackage_metadata
      kernel.bbclass: Move away from calling package_get_auto_pr
      package.bbclass: hash equivalency and pr service
      bitbake: process.py: Handle SystemExit exception to eliminate backtrace

Mark Morton (1):
      sphinx: test-manual code block, link, and format update

Martin Jansa (7):
      devtool: expand SRC_URI when guessing recipe update mode
      image-artifact-names: introduce new bbclass and move some variables into it
      kernel.bbclass: use bash variables like imageType, base_name without {}
      kernel.bbclass: eliminate (initramfs_)symlink_name variables
      kernel.bbclass: use camelCase notation for bash variables in do_deploy
      *-initramfs: don't use .rootfs IMAGE_NAME_SUFFIX
      bitbake.conf: use ${TCMODE}-${TCLIBC} directory for CACHE

Matt Madison (1):
      image.bbclass: fix REPRODUCIBLE_TIMESTAMP_ROOTFS reference

Michael Gloff (2):
      sysvinit rc: Use PSPLASH_FIFO_DIR for progress fifo
      sysvinit: Remove ${B} assignment

Michael Tretter (1):
      devtool: deploy-target: Fix size calculation for hard links

Ming Liu (2):
      systemd: split systemd specific udev rules into its own package
      libubootenv: inherit uboot-config

Mingli Yu (3):
      qemu: always define unknown_lock_type
      qemu: override DEBUG_BUILD
      bison: remove the parallel build patch

Naveen Saini (1):
      lib/oe/recipeutils.py: add support for BBFILES_DYNAMIC

Nicolas Dechesne (73):
      linux-libc-headers: kernel headers are installed in STAGING_KERNEL_BUILDDIR
      bitbake: sphinx: add initial build infrastructure
      bitbake: sphinx: initial sphinx support
      bitbake: sphinx: bitbake-user-manual: use builtin sphinx glossary
      bitbake: sphinx: switch to readthedocs theme
      bitbake: sphinx: override theme CSS
      bitbake: sphinx: fixup for links
      bitbake: sphinx: fix links inside notes
      bitbake: sphinx: fixes all remaining warnings
      bitbake: sphinx: Makefile.sphinx: add clean and publish targets
      bitbake: sphinx: tweak html output a bit
      bitbake: sphinx: add SPDX headers
      bitbake: sphinx: index: move the boilerplate at the end of the page
      bitbake: sphinx: conf: enable extlinks extension
      bitbake: sphinx: add releases page
      bitbake: sphinx: bitbake-user-manual: insert additional blank line after title
      bitbake: sphinx: last manual round of fixes/improvements
      bitbake: sphinx: update style for important, caution and warnings
      bitbake: sphinx: remove leading '/'
      bitbake: sphinx: theme_override: properly set font for verbatim text
      bitbake: bitbake-user-manual: fix bad links
      sphinx: add initial build infrastructure
      sphinx: initial sphinx support
      sphinx: ref-variables: use builtin sphinx glossary
      sphinx: overview-manual: add figures
      sphinx: switch to readthedocs theme
      sphinx: Add SPDX license headers
      sphinx: add CSS theme override
      sphinx: bsp-guide: add figures
      sphinx: add Yocto project logo
      sphinx: conf: update copyright
      sphinx: conf: add substitutions/global variables
      sphinx: add boilerplate file
      sphinx: add boilerplate to manuals
      sphinx: ref-manual: add revision history table
      sphinx: add a general index
      sphinx: conf.py: enable sphinx.ext.autosectionlabel
      sphinx: ref-manual: use builtin glossary for the Terms section
      sphinx: fix internal links
      sphinx: ref-manual: fix typo
      sphinx: fix custom term links
      sphinx: manual updates for some links
      sphinx: dev-manual add figures
      sphinx: kernel-dev: add figures
      sphinx: profile-manual: add figures
      sphinx: fix up bold text for informalexample container
      sphinx: ref-manual: add figures
      sphinx: sdk-manual: add figures
      sphinx: test-manual: add figures
      sphinx: toaster-manual: add figures
      sphinx: add links for Yocto project website
      sphinx: fix links when the link text should be displayed
      sphinx: add links to terms in the BitBake glossary
      sphinx: add links to section in the Bitbake manual
      sphinx: setup extlink for docs.yoctoproject.org
      sphinx: enable intersphinx extension
      sphinx: insert blank below between title and toc
      sphinx: fix up terms related to kernel-fitimage
      sphinx: conf: a few rendering tweaks
      sphinx: makefile: add publish target
      sphinx: conf: include CSS/JS files, the proper way
      sphinx: convert 'what I wish I'd known'
      sphinx: convert 'transitioning to a custom environment'
      sphinx: ref-manual: fix heading for oe-init-build-env
      sphinx: brief-yoctoprojectqs: fix up all remaining rendering issues
      sphinx: Makefile.sphinx improvements
      sphinx: convert bsp-guide
      sphinx: remove leading '/'
      sphinx: update style for important, caution and warnings
      sphinx: profile-manual: convert profile-manual
      sphinx: theme_override: properly set font for verbatim text
      sphinx: theme_override: add tying-it-together admonition
      sphinx: conf: exclude adt-manual/*.rst

Oleksandr Kravchuk (1):
      ell: update to 0.33

Ovidiu Panait (1):
      libxml2: Fix CVE-2020-24977

Peter A. Bigot (2):
      bluez5: fix builds that require ell support
      timezone: include leap second data in tzdata-core

Peter Bergin (1):
      systemd: avoid failing if no udev rules provided

Pierre-Jean Texier (2):
      libubootenv: upgrade 0.3 -> 0.3.1
      diffoscope: upgrade 158 -> 160

Quentin Schulz (16):
      sphinx: brief-yoctoprojectqs: remove redundant welcome
      sphinx: brief-yoctoprojectqs: fix ambiguous note for cyclone5 example
      sphinx: brief-yoctoprojectqs: add missing boilerplate
      sphinx: overview-manual: add link to AUH how-to section
      sphinx: overview-manual: fix bitbake basic explanation
      sphinx: brief-yoctoprojectqs: add note on branch consistency between layers
      sphinx: what-i-wish-id-known: update "don't be fooled by doc search results"
      sphinx: overview-manual: remove highlight in bold section
      sphinx: replace special quotes with single and double quotes
      sphinx: fix incorrect indentations
      sphinx: brief-yoctoprojectqs: put other distros note after Ubuntu-specific packages
      sphinx: fix a few typos or missing/too many words
      sphinx: "highlight" some variables, tasks or files
      sphinx: fix or add missing links and remove mention of Eclipse workflow
      ref-manual: examples: hello-autotools: upgrade to 2.10
      ref-manual: examples: libxpm: add relative path to .inc

Rahul Kumar (1):
      systemd-serialgetty: Fix sed expression quoting

Rasmus Villemoes (1):
      kernel.bbclass: run do_symlink_kernsrc before do_patch

Richard Purdie (74):
      nativesdk-sdk-provides-dummy: Add /bin/sh
      bitbake: fetch2/wget: Remove buffering parameter
      bitbake: cooker: Ensure parse_quit thread is closed down
      bitbake: cooker: Explictly shut down the sync thread
      bitbake: fetch2: Drop cups.org from wget status checks
      bitbake: build/msg: Cleanup verbose option handling
      bitbake: cooker/cookerdata/main: Improve loglevel handling
      bitbake: cookerdata: Ensure UI options are updated to the server
      bitbake: cooker/cookerdata: Ensure UI event log is updated from commandline
      bitbake: cooker: Defer configuration init to after UI connection
      bitbake: server/process: Move the socket code to server process only
      bitbake: main/server/process: Drop configuration object passing
      bitbake: cooker: Ensure BB_ORIGENV is updated by changes to configuration.env
      bitbake: server/process: Log extra threads at exit
      bitbake: server/process: Add bitbake-server and exec() a new server process
      bitbake: runqueue: Don't use sys.argv
      bitbake: cooker: Ensure cooker's enviroment is updated on updateConfig
      connman-gnome/matchbox-desktop: Remove file:// globbing
      selftest/recipetool: Drop globbing SRC_URI test, no longer supported
      local.conf.sample: Document memory resident bitbake
      bitbake: fetch2: Drop globbing supprt in file:// SRC_URIs
      bitbake: server/process: Use sys.executable for bitbake-server
      bitbake: process: Avoid bb.utils.timeout
      bitbake: utils: Drop broken timeout function
      bitbake: server/process: Fix typo in code causing tracebacks
      oeqa/selftest: Apply patch to fix cpio build with -fno-common
      runqemu: Show an error for conflicting graphics options
      lttng: Move platform logic to dedicated inc file
      patchelf: upgrade 0.11 -> 0.12
      build-appliance/packagegroup-core-base-utils: Replace dhcp-client/dhcp-server with dhcpcd/kea
      selftest/prservice: Improve test failure message
      iputils: Adapt ${PN}-tftpd package dependency to PACKAGECONFIG
      bitbake: process/knotty: Improve early exception handling
      bitbake: cooker/cookerdata: Use BBHandledException, not sys.exit()
      bitbake: cookerdata: Fix exception raise statements
      bitbake: process: Avoid printing binary strings for leftover processes
      bitbake: server/process: Ensure logging is flushed
      bitbake: server/process: Don't show tracebacks if the lockfile is removed
      bitbake: cooker: Ensure parser replacement calls parser final_cleanup
      bitbake: cooker: Assign a name to the sync thread to aid debugging
      bitbake: server/process: Ensure we don't keep looping if some other server is started
      bitbake: server/process: Prefix the log data with pid/time information
      bitbake: server/process: Note when commands complete in logs
      bitbake: cooker: Ensure parser is cleaned up
      runqemu: Add a hook to allow it to renice
      bitbake: cooker: Avoid parser deadlocks
      bitbake: cooker: Ensure parser worker signal handlers are default
      selftest/signing: Ensure build path relocation is safe
      oeqa/concurrencytest: Improve builddir path manipulations
      bitbake: cooker/command: Fix disconnection handling
      bitbake: tinfoil: Ensure sockets don't leak even when exceptions occur
      bitbake: tests/fetch: Move away from problematic freedesktop.org urls
      bitbake: sphinx: Enhance the sphinx experience/nagivation with:
      bitbake: sphinx: theme_override: Use bold for emphasis text
      Revert "qemu: always define unknown_lock_type"
      Revert "core-image-sato: qemumips use 512 mem"
      sphinx: Organize top level docs
      sphinx: releases.rst: Add index/links to docs for previous releases
      sphinx: boilerplate.rst: Drop versions notes as we have better navigation now
      sphinx: boilerplate.rst: Sphinx puts the copyright elsewhere
      sphinx: history: Move revision history to its own section
      sphinx: manuals: Move boilerplate after toctree
      sphinx: Add support for multiple docs version
      sphinx: index.rst: Fix links
      sphinx: ref-system-requirements: Improve formatting of the notes sections, merging them
      sphinx: ref-manual links fixes and many other cleanups to import
      sphinx: dev-manual: Various URL, code block and other fixes to imported data
      sphinx: sdk-manual: Various URL, code block and other fixes to imported data
      sphinx: kernel-dev: Various URL, code block and other fixes to imported data
      sphinx: theme_override: Use bold for emphasis text
      sphinx: ref-tasks: Add populate_sdk_ext task definition
      sphinx: ref-manual/migration: Split each release into its own file
      sphinx: overview-manual: Various URL, code block and other fixes to imported data
      build-appliance-image: Update to master head revision

Robert Yang (3):
      bitbake: cooker.py: Save prioritized BBFILES to BBFILES_PRIORITIZED
      bitbake: utils.py: get_file_layer(): Exit the loop when file is matched
      bitbake: utils.py: get_file_layer(): Improve performance

Ross Burton (25):
      package.bbclass: explode the RPROVIDES so we don't think the versions are provides
      elfutils: silence a new QA warning
      insane: improve gnu-hash-style warning
      gdk-pixbuf: add tests PACKAGECONFIG
      debianutils: change SRC_URI to use snapshot.debian.org
      insane: only load real files as ELF
      autoconf: consolidate SRC_URI
      autoconf: consolidate DEPENDS
      kea: no need to depend on kea-native
      kea: don't use PACKAGECONFIG inappropriately
      kea: bump to 1.7.10
      help2man: rewrite recipe
      local.conf.sample.extended: remove help2man reference
      curl: add vendors to CVE_PRODUCT to exclude false positives
      harfbuzz: update patch status
      harfbuzz: fix a build race around hb-version.h
      cmake: whitelist CVE-2016-10642
      ncurses: remove config.cache
      qemu: fix CVE-2020-14364
      cve-update-db-native: remove unused import
      cve-update-db-native: add more logging when fetching
      cve-update-db-native: use fetch task
      alsa-plugins: improve .la removal
      sato-screenshot: improve .la removal
      buildhistory-diff: use BUILDDIR to know where buildhistory is

Saul Wold (1):
      gnupg: uprev 2.2.22 -> 2.2.23

Stacy Gaikovaia (2):
      bison: uprev from 3.7.1 to 3.7.2
      valgrind: fix memcheck vgtests remove fullpath-after flags

Steve Sakoman (1):
      xinput-calibrator: change SRC_URI to branch with libinput support

Sumit Garg (1):
      insane: fix gnu-hash-style check

TeohJayShen (1):
      oeqa/runtime: add test for matchbox-terminal

Tim Orling (1):
      sphinx: toaster-manual: fix vars, links, code blocks

Vijai Kumar K (2):
      image_types_wic: Add ASSUME_PROVIDED to WICVARS
      wic: misc: Add /bin to the list of searchpaths

Yanfei Xu (1):
      kernel-yocto: only replace leading -I in include paths

Yi Zhao (1):
      glib-networking: add ptest

Zhixiong Chi (1):
      gnutls: CVE-2020-24659

akuster (8):
      log4cplus: move meta-oe pkg to core
      kea: Move from meta-networking
      maintainers.inc: Add me as kea & log4plus maintainer.
      dhcpcd: Move from meta-network as OE-Core needs a client
      maintainers.inc: Add me as dhcpcd maintainer
      dhcp: remove from core
      bind: Add 9.16.x
      bind: 9.11 remove

hongxu (1):
      sysstat: fix installed-vs-shipped QA Issue in systemd

zangrc (4):
      libcap:upgrade 2.42 -> 2.43
      libcap-ng:upgrade 0.7.10 -> 0.7.11
      libgpg-error:upgrade 1.38 -> 1.39
      at-spi2-core:upgrade 2.36.0 -> 2.36.1

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I5542f5eea751a2641342e945725fd687cd74bebe
diff --git a/poky/documentation/bsp-guide/bsp.rst b/poky/documentation/bsp-guide/bsp.rst
new file mode 100644
index 0000000..024a240
--- /dev/null
+++ b/poky/documentation/bsp-guide/bsp.rst
@@ -0,0 +1,1527 @@
+.. SPDX-License-Identifier: CC-BY-2.0-UK
+
+************************************************
+Board Support Packages (BSP) - Developer's Guide
+************************************************
+
+A Board Support Package (BSP) is a collection of information that
+defines how to support a particular hardware device, set of devices, or
+hardware platform. The BSP includes information about the hardware
+features present on the device and kernel configuration information
+along with any additional hardware drivers required. The BSP also lists
+any additional software components required in addition to a generic
+Linux software stack for both essential and optional platform features.
+
+This guide presents information about BSP layers, defines a structure
+for components so that BSPs follow a commonly understood layout,
+discusses how to customize a recipe for a BSP, addresses BSP licensing,
+and provides information that shows you how to create a BSP
+Layer using the :ref:`bitbake-layers <bsp-guide/bsp:Creating a new BSP Layer Using the \`\`bitbake-layers\`\` Script>`
+tool.
+
+BSP Layers
+==========
+
+A BSP consists of a file structure inside a base directory.
+Collectively, you can think of the base directory, its file structure,
+and the contents as a BSP layer. Although not a strict requirement, BSP
+layers in the Yocto Project use the following well-established naming
+convention: ::
+
+   meta-bsp_root_name
+
+The string "meta-" is prepended to the
+machine or platform name, which is bsp_root_name in the above form.
+
+.. note::
+
+   Because the BSP layer naming convention is well-established, it is
+   advisable to follow it when creating layers. Technically speaking, a
+   BSP layer name does not need to start with
+   meta-. However, various scripts and tools in the Yocto Project development
+   environment assume this convention.
+
+To help understand the BSP layer concept, consider the BSPs that the
+Yocto Project supports and provides with each release. You can see the
+layers in the
+:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
+through
+a web interface at :yocto_git:`/`. If you go to that interface,
+you will find a list of repositories under "Yocto Metadata Layers".
+
+.. note::
+
+   Layers that are no longer actively supported as part of the Yocto
+   Project appear under the heading "Yocto Metadata Layer Archive."
+
+Each repository is a BSP layer supported by the Yocto Project (e.g.
+``meta-raspberrypi`` and ``meta-intel``). Each of these layers is a
+repository unto itself and clicking on the layer name displays two URLs
+from which you can clone the layer's repository to your local system.
+Here is an example that clones the Raspberry Pi BSP layer: ::
+
+   $ git clone git://git.yoctoproject.org/meta-raspberrypi
+
+In addition to BSP layers, the ``meta-yocto-bsp`` layer is part of the
+shipped ``poky`` repository. The ``meta-yocto-bsp`` layer maintains
+several "reference" BSPs including the ARM-based Beaglebone, MIPS-based
+EdgeRouter, and generic versions of both 32-bit and 64-bit IA machines.
+
+For information on typical BSP development workflow, see the
+:ref:`bsp-guide/bsp: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
+:ref:`dev-manual/dev-manual-start:locating yocto project source files`
+section in the Yocto Project Development Tasks Manual.
+
+The BSP layer's base directory (``meta-bsp_root_name``) is the root
+directory of that Layer. This directory is what you add to the
+:term:`BBLAYERS` variable in the
+``conf/bblayers.conf`` file found in your
+:term:`Build Directory`, which is
+established after you run the OpenEmbedded build environment setup
+script (i.e. :ref:`ref-manual/ref-structure:\`\`oe-init-build-env\`\`` ).
+Adding the root directory allows the :term:`OpenEmbedded Build System`
+to recognize the BSP
+layer and from it build an image. Here is an example: ::
+
+   BBLAYERS ?= " \
+      /usr/local/src/yocto/meta \
+      /usr/local/src/yocto/meta-poky \
+      /usr/local/src/yocto/meta-yocto-bsp \
+      /usr/local/src/yocto/meta-mylayer \
+      "
+
+.. note::
+
+   Ordering and ``BBFILE_PRIORITY`` for the layers listed in BBLAYERS matter. For
+   example, if multiple layers define a machine configuration, the OpenEmbedded
+   build system uses the last layer searched given similar layer priorities. The
+   build system works from the top-down through the layers listed in ``BBLAYERS``.
+
+Some BSPs require or depend on additional layers beyond the BSP's root
+layer in order to be functional. In this case, you need to specify these
+layers in the ``README`` "Dependencies" section of the BSP's root layer.
+Additionally, if any build instructions exist for the BSP, you must add
+them to the "Dependencies" section.
+
+Some layers function as a layer to hold other BSP layers. These layers
+are knows as ":term:`container layers <Container Layer>`". An example of
+this type of layer is OpenEmbedded's
+`meta-openembedded <https://github.com/openembedded/meta-openembedded>`__
+layer. The ``meta-openembedded`` layer contains many ``meta-*`` layers.
+In cases like this, you need to include the names of the actual layers
+you want to work with, such as: ::
+
+   BBLAYERS ?= " \
+     /usr/local/src/yocto/meta \
+     /usr/local/src/yocto/meta-poky \
+     /usr/local/src/yocto/meta-yocto-bsp \
+     /usr/local/src/yocto/meta-mylayer \
+     .../meta-openembedded/meta-oe \
+     .../meta-openembedded/meta-perl \
+     .../meta-openembedded/meta-networking \
+     "
+
+and so on.
+
+For more information on layers, see the
+":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
+section of the Yocto Project Development Tasks Manual.
+
+Preparing Your Build Host to Work With BSP Layers
+=================================================
+
+This section describes how to get your build host ready to work with BSP
+layers. Once you have the host set up, you can create the layer as
+described in the
+":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
+section.
+
+.. note::
+
+   For structural information on BSPs, see the Example Filesystem Layout
+   section.
+
+#. *Set Up the Build Environment:* Be sure you are set up to use BitBake
+   in a shell. See the ":ref:`dev-manual/dev-manual-start:preparing the build host`"
+   section in the Yocto Project Development Tasks Manual for information on how
+   to get a build host ready that is either a native Linux machine or a machine
+   that uses CROPS.
+
+#. *Clone the ``poky`` Repository:* You need to have a local copy of the
+   Yocto Project :term:`Source Directory` (i.e. a local
+   ``poky`` repository). See the
+   "ref:`dev-manual/dev-manual-start:cloning the ``poky`` repository`" and
+   possibly the
+   ":ref:`dev-manual/dev-manual-start:checking out by branch in poky`" or
+   ":ref:`dev-manual/dev-manual-start:checking out by tag in poky`"
+   sections
+   all in the Yocto Project Development Tasks Manual for information on
+   how to clone the ``poky`` repository and check out the appropriate
+   branch for your work.
+
+#. *Determine the BSP Layer You Want:* The Yocto Project supports many
+   BSPs, which are maintained in their own layers or in layers designed
+   to contain several BSPs. To get an idea of machine support through
+   BSP layers, you can look at the `index of
+   machines <&YOCTO_RELEASE_DL_URL;/machines>`__ for the release.
+
+#. *Optionally Clone the ``meta-intel`` BSP Layer:* If your hardware is
+   based on current Intel CPUs and devices, you can leverage this BSP
+   layer. For details on the ``meta-intel`` BSP layer, see the layer's
+   `README <http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/tree/README>`__
+   file.
+
+   #. *Navigate to Your Source Directory:* Typically, you set up the
+      ``meta-intel`` Git repository inside the :term:`Source Directory` (e.g.
+      ``poky``). ::
+
+         $ cd /home/you/poky
+
+   #. *Clone the Layer:* ::
+
+         $ git clone git://git.yoctoproject.org/meta-intel.git
+         Cloning into 'meta-intel'...
+         remote: Counting objects: 15585, done.
+         remote: Compressing objects: 100% (5056/5056), done.
+         remote: Total 15585 (delta 9123), reused 15329 (delta 8867)
+         Receiving objects: 100% (15585/15585), 4.51 MiB | 3.19 MiB/s, done.
+         Resolving deltas: 100% (9123/9123), done.
+         Checking connectivity... done.
+
+   #. *Check Out the Proper Branch:* The branch you check out for
+      ``meta-intel`` must match the same branch you are using for the
+      Yocto Project release (e.g. &DISTRO_NAME_NO_CAP;): ::
+
+         $ cd meta-intel
+         $ git checkout -b &DISTRO_NAME_NO_CAP; remotes/origin/&DISTRO_NAME_NO_CAP;
+         Branch &DISTRO_NAME_NO_CAP; set up to track remote branch
+         &DISTRO_NAME_NO_CAP; from origin.
+         Switched to a new branch '&DISTRO_NAME_NO_CAP;'
+
+      .. note::
+
+         To see the available branch names in a cloned repository, use the ``git
+         branch -al`` command. See the
+         ":ref:`dev-manual/dev-manual-start:checking out by branch in poky`"
+         section in the Yocto Project Development Tasks Manual for more
+         information.
+
+#. *Optionally Set Up an Alternative BSP Layer:* If your hardware can be
+   more closely leveraged to an existing BSP not within the
+   ``meta-intel`` BSP layer, you can clone that BSP layer.
+
+   The process is identical to the process used for the ``meta-intel``
+   layer except for the layer's name. For example, if you determine that
+   your hardware most closely matches the ``meta-raspberrypi``, clone
+   that layer: ::
+
+      $ git clone git://git.yoctoproject.org/meta-raspberrypi
+      Cloning into 'meta-raspberrypi'...
+      remote: Counting objects: 4743, done.
+      remote: Compressing objects: 100% (2185/2185), done.
+      remote: Total 4743 (delta 2447), reused 4496 (delta 2258)
+      Receiving objects: 100% (4743/4743), 1.18 MiB | 0 bytes/s, done.
+      Resolving deltas: 100% (2447/2447), done.
+      Checking connectivity... done.
+
+#. *Initialize the Build Environment:* While in the root directory of
+   the Source Directory (i.e. ``poky``), run the
+   :ref:`ref-manual/ref-structure:\`\`oe-init-build-env\`\`` environment
+   setup script to define the OpenEmbedded build environment on your
+   build host. ::
+
+      $ source &OE_INIT_FILE;
+
+   Among other things, the script creates the :term:`Build Directory`, which is
+   ``build`` in this case and is located in the :term:`Source Directory`.  After
+   the script runs, your current working directory is set to the ``build``
+   directory.
+
+.. _bsp-filelayout:
+
+Example Filesystem Layout
+=========================
+
+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.
+
+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 :ref:`layers mechanism
+<overview-manual/overview-manual-yp-intro:the yocto project layer model>`, 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.
+
+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 be combined in certain end products.
+
+Before looking at the recommended form for the directory 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
+":ref:`bsp-guide/bsp:released bsp requirements`" section.
+
+Below is the typical directory structure for a BSP layer. While this
+basic form represents the standard, realize that the actual layout for
+individual BSPs could differ. ::
+
+   meta-bsp_root_name/
+   meta-bsp_root_name/bsp_license_file
+   meta-bsp_root_name/README
+   meta-bsp_root_name/README.sources
+   meta-bsp_root_name/binary/bootable_images
+   meta-bsp_root_name/conf/layer.conf
+   meta-bsp_root_name/conf/machine/*.conf
+   meta-bsp_root_name/recipes-bsp/*
+   meta-bsp_root_name/recipes-core/*
+   meta-bsp_root_name/recipes-graphics/*
+   meta-bsp_root_name/recipes-kernel/linux/linux-yocto_kernel_rev.bbappend
+
+Below is an example of the Raspberry Pi BSP layer that is available from
+the :yocto_git:`Source Respositories <>`: ::
+
+   meta-raspberrypi/COPYING.MIT
+   meta-raspberrypi/README.md
+   meta-raspberrypi/classes
+   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/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
+   meta-raspberrypi/recipes-bsp/bootfiles
+   meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb
+   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
+   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/images/rpi-hwup-image.bb
+   meta-raspberrypi/recipes-core/images/rpi-test-image.bb
+   meta-raspberrypi/recipes-core/packagegroups
+   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/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.52.bb
+   meta-raspberrypi/recipes-devtools/pi-blaster
+   meta-raspberrypi/recipes-devtools/pi-blaster/files
+   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.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.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_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/userland/userland_git.bb
+   meta-raspberrypi/recipes-graphics/vc-graphics
+   meta-raspberrypi/recipes-graphics/vc-graphics/files
+   meta-raspberrypi/recipes-graphics/vc-graphics/files/egl.pc
+   meta-raspberrypi/recipes-graphics/vc-graphics/files/vchiq.sh
+   meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics-hardfp.bb
+   meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.bb
+   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/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/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/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-dev.bb
+   meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.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/recipes-multimedia/x264
+   meta-raspberrypi/recipes-multimedia/x264/x264_git.bbappend
+   meta-raspberrypi/wic meta-raspberrypi/wic/sdimage-raspberrypi.wks
+
+The following sections describe each part of the proposed BSP format.
+
+.. _bsp-filelayout-license:
+
+License Files
+-------------
+
+You can find these files in the BSP Layer at: ::
+
+   meta-bsp_root_name/bsp_license_file
+
+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 ``COPYING.MIT`` file.
+
+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. For information on how to maintain license compliance, see
+the ":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
+section in the Yocto Project Development Tasks Manual.
+
+.. _bsp-filelayout-readme:
+
+README File
+-----------
+
+You can find this file in the BSP Layer at: ::
+
+   meta-bsp_root_name/README
+
+This file provides information on how to boot the live images that are
+optionally included in the ``binary/`` directory. The ``README`` file
+also provides information needed for building the image.
+
+At a minimum, the ``README`` file must contain a list of dependencies,
+such as the names of any other layers on which the BSP depends and the
+name of the BSP maintainer with his or her contact information.
+
+.. _bsp-filelayout-readme-sources:
+
+README.sources File
+-------------------
+
+You can find this file in the BSP Layer at: ::
+
+   meta-bsp_root_name/README.sources
+
+This file provides information on where to locate the BSP source files
+used to build the images (if any) that reside in
+``meta-bsp_root_name/binary``. Images in the ``binary`` would be images
+released with the BSP. The information in the ``README.sources`` file
+also helps you find the :term:`Metadata`
+used to generate the images that ship with the BSP.
+
+.. note::
+
+   If the BSP's ``binary`` directory is missing or the directory has no images, an
+   existing ``README.sources`` file is meaningless and usually does not exist.
+
+.. _bsp-filelayout-binary:
+
+Pre-built User Binaries
+-----------------------
+
+You can find these files in the BSP Layer at: ::
+
+   meta-bsp_root_name/binary/bootable_images
+
+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 :yocto_home:`Yocto Project <>` website. You can
+use these kernels and images to get a system running and quickly get
+started on development tasks.
+
+The exact types of binaries present are highly hardware-dependent. The
+:ref:`README <bsp-guide/bsp:readme file>` file should be present in the
+BSP Layer and it explains how to use the images with the target
+hardware. Additionally, the
+:ref:`README.sources <bsp-guide/bsp:readme.sources file>` file should be
+present to locate the sources used to build the images and provide
+information on the Metadata.
+
+.. _bsp-filelayout-layer:
+
+Layer Configuration File
+------------------------
+
+You can find this file in the BSP Layer at: ::
+
+   meta-bsp_root_name/conf/layer.conf
+
+The ``conf/layer.conf`` 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
+bsp with the actual name of the BSP (i.e. bsp_root_name from the example
+template). ::
+
+   # We have a conf and classes directory, add to BBPATH
+   BBPATH .= ":${LAYERDIR}"
+
+   # We have a recipes directory, add to BBFILES
+   BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+               ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+   BBFILE_COLLECTIONS += "bsp"
+   BBFILE_PATTERN_bsp = "^${LAYERDIR}/"
+   BBFILE_PRIORITY_bsp = "6"
+   LAYERDEPENDS_bsp = "intel"
+
+To illustrate the string substitutions, here are the corresponding
+statements from the Raspberry Pi ``conf/layer.conf`` file: ::
+
+   # We have a conf and classes directory, append to BBPATH
+   BBPATH .= ":${LAYERDIR}"
+
+   # We have a recipes directory containing .bb and .bbappend files, add to BBFILES
+   BBFILES += "${LAYERDIR}/recipes*/*/*.bb \
+               ${LAYERDIR}/recipes*/*/*.bbappend"
+
+   BBFILE_COLLECTIONS += "raspberrypi"
+   BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
+   BBFILE_PRIORITY_raspberrypi = "9"
+
+   # Additional license directories.
+   LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
+   .
+   .
+   .
+
+This file simply makes :term:`BitBake` aware of the recipes and configuration
+directories. The file must exist so that the OpenEmbedded build system can
+recognize the BSP.
+
+.. _bsp-filelayout-machine:
+
+Hardware Configuration Options
+------------------------------
+
+You can find these files in the BSP Layer at: ::
+
+   meta-bsp_root_name/conf/machine/*.conf
+
+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
+:term:`MACHINE` variable.
+
+These files define things such as the kernel package to use
+(:term:`PREFERRED_PROVIDER` of
+:ref:`virtual/kernel <dev-manual/dev-manual-common-tasks:using virtual providers>`),
+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.
+
+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.
+
+Tuning files are found in the ``meta/conf/machine/include`` directory
+within the :term:`Source Directory`.
+For example, many ``tune-*`` files (e.g. ``tune-arm1136jf-s.inc``,
+``tune-1586-nlp.inc``, and so forth) reside in the
+``poky/meta/conf/machine/include`` directory.
+
+To use an include file, you simply include them in the machine
+configuration file. For example, the Raspberry Pi BSP
+``raspberrypi3.conf`` contains the following statement: ::
+
+   include conf/machine/include/rpi-base.inc
+
+.. _bsp-filelayout-misc-recipes:
+
+Miscellaneous BSP-Specific Recipe Files
+---------------------------------------
+
+You can find these files in the BSP Layer at: ::
+
+   meta-bsp_root_name/recipes-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 ``formfactor_0.0.bbappend`` 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 ``machconfig`` file further down in the
+directory. Here is the ``machconfig`` file for the Raspberry Pi BSP: ::
+
+   HAVE_TOUCHSCREEN=0
+   HAVE_KEYBOARD=1
+
+   DISPLAY_CAN_ROTATE=0
+   DISPLAY_ORIENTATION=0
+   DISPLAY_DPI=133
+
+.. note::
+
+   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
+   ``meta/recipes-bsp/formfactor/formfactor_0.0.bb``, which is found in
+   the :term:`Source Directory`.
+
+.. _bsp-filelayout-recipes-graphics:
+
+Display Support Files
+---------------------
+
+You can find these files in the BSP Layer at: ::
+
+   meta-bsp_root_name/recipes-graphics/*
+
+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.
+
+.. _bsp-filelayout-kernel:
+
+Linux Kernel Configuration
+--------------------------
+
+You can find these files in the BSP Layer at: ::
+
+   meta-bsp_root_name/recipes-kernel/linux/linux*.bbappend
+   meta-bsp_root_name/recipes-kernel/linux/*.bb
+
+Append files (``*.bbappend``) modify the main kernel recipe being used
+to build the image. The ``*.bb`` files would be a developer-supplied
+kernel recipe. This area of the BSP hierarchy can contain both these
+types of files although, in practice, it is likely that you would have
+one or the other.
+
+For your BSP, you typically want to use an existing Yocto Project kernel
+recipe found in the :term:`Source Directory`
+at
+``meta/recipes-kernel/linux``. 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
+``meta-bsp_root_name/recipes-kernel/linux`` directory).
+
+Suppose you are using the ``linux-yocto_4.4.bb`` recipe to build the
+kernel. In other words, you have selected the kernel in your
+bsp_root_name\ ``.conf`` file by adding
+:term:`PREFERRED_PROVIDER` and :term:`PREFERRED_VERSION`
+statements as follows: ::
+
+   PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
+   PREFERRED_VERSION_linux-yocto ?= "4.4%"
+
+.. note::
+
+   When the preferred provider is assumed by default, the ``PREFERRED_PROVIDER``
+   statement does not appear in the ``bsp_root_name`` .conf file.
+
+You would use the ``linux-yocto_4.4.bbappend`` file to append specific
+BSP settings to the kernel, thus configuring the kernel for your
+particular BSP.
+
+You can find more information on what your append file should contain in
+the ":ref:`kernel-dev/kernel-dev-common:creating the append file`" section
+in the Yocto Project Linux Kernel Development Manual.
+
+An alternate scenario is when you create your own kernel recipe for the
+BSP. A good example of this is the Raspberry Pi BSP. If you examine the
+``recipes-kernel/linux`` directory you see the following: ::
+
+   linux-raspberrypi-dev.bb
+   linux-raspberrypi.inc
+   linux-raspberrypi_4.14.bb
+   linux-raspberrypi_4.9.bb
+
+The directory contains three kernel recipes and a common include file.
+
+Developing a Board Support Package (BSP)
+========================================
+
+This section describes the high-level procedure you can follow to create
+a BSP. 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 ":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` script`"
+section.
+
+The following illustration and list summarize the BSP creation general
+workflow.
+
+.. image:: figures/bsp-dev-flow.png
+   :align: center
+
+#. *Set up Your Host Development System to Support Development Using the
+   Yocto Project*: See the ":ref:`dev-manual/dev-manual-start:preparing the build host`"
+   section in the Yocto Project Development Tasks Manual for options on how to
+   get a system ready to use the Yocto Project.
+
+#. *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 leverage when creating your
+   BSP. For information on how to get these files, see the
+   ":ref:`bsp-guide/bsp:preparing your build host to work with bsp layers`"
+   section.
+
+#. *Create Your Own BSP Layer Using the bitbake-layers 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
+   ``bitbake-layers`` script. For information about that script, see the
+   ":ref:`bsp-guide/bsp:creating a new bsp layer using the \`\`bitbake-layers\`\` 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 ":ref:`overview-manual/overview-manual-yp-intro:the yocto project layer model`"
+   section in the Yocto Project Overview and Concepts Manual. You can also
+   reference the ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
+   section in the Yocto Project Development Tasks Manual. For more
+   information on BSP layers, see the ":ref:`bsp-guide/bsp:bsp layers`"
+   section.
+
+   .. note::
+
+      -  Five hardware reference BSPs exist that are part of the Yocto
+         Project release and are located in the ``poky/meta-yocto-bsp``
+         BSP layer:
+
+         -  Texas Instruments Beaglebone (``beaglebone-yocto``)
+
+         -  Ubiquiti Networks EdgeRouter Lite (``edgerouter``)
+
+         -  Two general IA platforms (``genericx86`` and ``genericx86-64``)
+
+      -  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 ":ref:`bsp-guide/bsp:example filesystem layout`"
+   section. In the standard layout, notice
+   the 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
+   identifies the kernel you are going to use. When you run the
+   ``bitbake-layers`` 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 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``) 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
+   ":ref:`dev-manual/dev-manual-common-tasks:enabling your layer`"
+   section in the Yocto Project Development Tasks Manual for information
+   on how to let the build system know about your new layer.
+
+#. *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
+   :doc:`BitBake User Manual <bitbake:index>`.
+
+   The build process supports several types of images to satisfy
+   different needs. See the
+   ":ref:`ref-manual/ref-images:Images`" chapter in the Yocto
+   Project Reference Manual for information on supported images.
+
+Requirements and Recommendations for Released BSPs
+==================================================
+
+Certain requirements exist for a released BSP to be considered compliant
+with the Yocto Project. Additionally, recommendations also exist. This
+section describes the requirements and recommendations for released
+BSPs.
+
+Released BSP Requirements
+-------------------------
+
+Before looking at BSP requirements, you should consider the following:
+
+-  The requirements here assume the BSP layer is a well-formed, "legal"
+   layer that can be added to the Yocto Project. For guidelines on
+   creating a layer that meets these base requirements, see the
+   ":ref:`bsp-guide/bsp:bsp layers`" section in this manual and the
+   ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
+   section in the Yocto Project Development Tasks Manual.
+
+-  The requirements in this section apply regardless of how you package
+   a BSP. You should consult the packaging and distribution guidelines
+   for your specific release process. For an example of packaging and
+   distribution requirements, see the "`Third Party BSP Release
+   Process <https://wiki.yoctoproject.org/wiki/Third_Party_BSP_Release_Process>`__"
+   wiki page.
+
+-  The requirements for the BSP as it is made available to a developer
+   are completely independent of the released form of the BSP. For
+   example, the BSP Metadata can be contained within a Git repository
+   and could have a directory structure completely different from what
+   appears in the officially released BSP layer.
+
+-  It is not required that specific packages or package modifications
+   exist in the BSP layer, beyond the requirements for general
+   compliance with the Yocto Project. For example, no requirement exists
+   dictating that a specific kernel or kernel version be used in a given
+   BSP.
+
+Following are the requirements for a released BSP that conform to the
+Yocto Project:
+
+-  *Layer Name:* The BSP must have a layer name that follows the Yocto
+   Project standards. For information on BSP layer names, see the
+   ":ref:`bsp-guide/bsp:bsp layers`" section.
+
+-  *File System Layout:* When possible, use the same directory names in
+   your BSP layer as listed in the ``recipes.txt`` file, which is found
+   in ``poky/meta`` directory of the :term:`Source Directory`
+   or in the OpenEmbedded-Core Layer (``openembedded-core``) at
+   http://git.openembedded.org/openembedded-core/tree/meta.
+
+   You should place recipes (``*.bb`` files) and recipe modifications
+   (``*.bbappend`` files) into ``recipes-*`` subdirectories by
+   functional area 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 ``recipes-*`` subdirectory.
+
+   Within any particular ``recipes-*`` category, the layout should match
+   what is found in the OpenEmbedded-Core Git repository
+   (``openembedded-core``) or the Source Directory (``poky``). In other
+   words, make sure you place related files in appropriately-related
+   ``recipes-*`` subdirectories specific to the recipe's function, or
+   within a subdirectory containing a set of closely-related recipes.
+   The recipes themselves should follow the general guidelines for
+   recipes used in the Yocto Project found in the "`OpenEmbedded Style
+   Guide <http://openembedded.org/wiki/Styleguide>`__".
+
+-  *License File:* You must include a license file in the
+   ``meta-bsp_root_name`` directory. This license covers the BSP
+   Metadata as a whole. You must specify which license to use since no
+   default license exists when one is not specified. See the
+   :yocto_git:`COPYING.MIT </cgit.cgi/meta-raspberrypi/tree/COPYING.MIT>`
+   file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
+   as an example.
+
+-  *README File:* You must include a ``README`` file in the
+   ``meta-bsp_root_name`` directory. See the
+   :yocto_git:`README.md </cgit.cgi/meta-raspberrypi/tree/README.md>`
+   file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
+   as an example.
+
+   At a minimum, the ``README`` file should contain the following:
+
+   -  A brief description of the target hardware.
+
+   -  A list of all the dependencies of the BSP. These dependencies are
+      typically a list of required layers needed to build the BSP.
+      However, the dependencies should also contain information
+      regarding any other dependencies the BSP might have.
+
+   -  Any required special licensing information. For example, this
+      information includes information on special variables needed to
+      satisfy a EULA, or instructions on information needed to build or
+      distribute binaries built from the BSP Metadata.
+
+   -  The name and contact information for the BSP layer maintainer.
+      This is the person to whom patches and questions should be sent.
+      For information on how to find the right person, see the
+      ":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
+      section in the Yocto Project Development Tasks Manual.
+
+   -  Instructions on how to build the BSP using the BSP layer.
+
+   -  Instructions on how to boot the BSP build from the BSP layer.
+
+   -  Instructions on how to boot the binary images contained in the
+      ``binary`` directory, if present.
+
+   -  Information on any known bugs or issues that users should know
+      about when either building or booting the BSP binaries.
+
+-  *README.sources File:* If your BSP contains binary images in the
+   ``binary`` directory, you must include a ``README.sources`` file in
+   the ``meta-bsp_root_name`` directory. This file specifies exactly
+   where you can find the sources used to generate the binary images.
+
+-  *Layer Configuration File:* You must include a ``conf/layer.conf``
+   file in the ``meta-bsp_root_name`` directory. This file identifies
+   the ``meta-bsp_root_name`` BSP layer as a layer to the build
+   system.
+
+-  *Machine Configuration File:* You must include one or more
+   ``conf/machine/bsp_root_name.conf`` files in the
+   ``meta-bsp_root_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 the BSP supports. If a BSP supports multiple
+   machine variations, you need to adequately describe each variation in
+   the BSP ``README`` file. Do not use multiple machine configuration
+   files to describe disparate hardware. If you do have very different
+   targets, you should create separate BSP layers for each target.
+
+   .. note::
+
+      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 (e.g.  ``meta-yocto-bsp`` layer). Such considerations
+      are outside the scope of this document.
+
+Released BSP Recommendations
+----------------------------
+
+Following are recommendations for released BSPs that conform to the
+Yocto Project:
+
+-  *Bootable Images:* Released BSPs can contain one or more bootable
+   images. Including bootable images allows users to easily try out the
+   BSP using their own hardware.
+
+   In some cases, it might not be convenient to include a bootable
+   image. If so, you might want to make two versions of the BSP
+   available: one that contains binary images, and one that does not.
+   The version that does not contain bootable images avoids unnecessary
+   download times for users not interested in the images.
+
+   If you need to distribute a BSP and include bootable images or build
+   kernel and filesystems meant to allow users to boot the BSP for
+   evaluation purposes, you should put the images and artifacts within a
+   ``binary/`` subdirectory located in the ``meta-bsp_root_name``
+   directory.
+
+   .. note::
+
+      If you do include a bootable image as part of the BSP and the
+      image was built by software covered by the GPL or other open
+      source licenses, it is your responsibility to understand and meet
+      all licensing requirements, which could include distribution of
+      source files.
+
+-  *Use a Yocto Linux Kernel:* Kernel recipes in the BSP should be based
+   on a Yocto Linux kernel. Basing your recipes on these kernels reduces
+   the costs for maintaining the BSP and increases its scalability. See
+   the ``Yocto Linux Kernel`` category in the
+   :yocto_git:`Source Repositories <>` for these kernels.
+
+Customizing a Recipe for a BSP
+==============================
+
+If you plan on customizing a recipe for a particular BSP, you need to do
+the following:
+
+-  Create a ``*.bbappend`` file for the modified recipe. For information on using
+   append files, see the ":ref:`dev-manual/dev-manual-common-tasks:using
+   .bbappend files in your layer`" section in the Yocto Project Development
+   Tasks Manual.
+
+-  Ensure your directory structure in the BSP layer that supports your
+   machine is such that the OpenEmbedded build system can find it. See
+   the example later in this section for more information.
+
+-  Put the append file in a directory whose name matches the machine's
+   name and is located in an appropriate sub-directory inside the BSP
+   layer (i.e. ``recipes-bsp``, ``recipes-graphics``, ``recipes-core``,
+   and so forth).
+
+-  Place the BSP-specific files in the proper directory inside the BSP
+   layer. How expansive the layer is affects where you must place these
+   files. For example, if your layer supports several different machine
+   types, you need to be sure your layer's directory structure includes
+   hierarchy that separates the files according to machine. If your
+   layer does not support multiple machines, the layer would not have
+   that additional hierarchy and the files would obviously not be able
+   to reside in a machine-specific directory.
+
+Following is a specific example to help you better understand the
+process. This example customizes customizes a recipe by adding a
+BSP-specific configuration file named ``interfaces`` to the
+``init-ifupdown_1.0.bb`` recipe for machine "xyz" where the BSP layer
+also supports several other machines:
+
+#. Edit the ``init-ifupdown_1.0.bbappend`` file so that it contains the
+   following: ::
+
+      FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+   The append file needs to be in the ``meta-xyz/recipes-core/init-ifupdown``
+   directory.
+
+#. Create and place the new ``interfaces`` configuration file in the
+   BSP's layer here: ::
+
+      meta-xyz/recipes-core/init-ifupdown/files/xyz-machine-one/interfaces
+
+   .. note::
+
+      If the meta-xyz layer did not support multiple machines, you would place
+      the interfaces configuration file in the layer here: ::
+
+         meta-xyz/recipes-core/init-ifupdown/files/interfaces
+
+   The :term:`FILESEXTRAPATHS` variable in the append files extends the search
+   path the build system uses to find files during the build. Consequently, for
+   this example you need to have the ``files`` directory in the same location as
+   your append file.
+
+BSP Licensing Considerations
+============================
+
+In some cases, a BSP contains separately-licensed Intellectual Property
+(IP) for a component or components. For these cases, you are required to
+accept the terms of a commercial or other type of license that requires
+some kind of explicit End User License Agreement (EULA). Once you accept
+the license, the OpenEmbedded build system can then build and include
+the corresponding component in the final BSP image. If the BSP is
+available as a pre-built image, you can download the image after
+agreeing to the license or EULA.
+
+You could find that some separately-licensed components that are
+essential for normal operation of the system might not have an
+unencumbered (or free) substitute. Without these essential components,
+the system would be non-functional. Then again, you might find that
+other licensed components that are simply 'good-to-have' or purely
+elective do have an unencumbered, free replacement component that you
+can use rather than agreeing to the separately-licensed component. Even
+for components essential to the system, you might find an unencumbered
+component that is not identical but will work as a less-capable version
+of the licensed version in the BSP recipe.
+
+For cases where you can substitute a free component and still maintain
+the system's functionality, the "DOWNLOADS" selection from the
+"SOFTWARE" tab on the :yocto_home:`Yocto Project Website <>` makes
+available de-featured BSPs that are completely free of any IP
+encumbrances. For these cases, you can use the substitution directly and
+without any further licensing requirements. If present, these fully
+de-featured BSPs are named appropriately different as compared to the
+names of their respective encumbered BSPs. If available, these
+substitutions are your simplest and most preferred options. Obviously,
+use of these substitutions assumes the resulting functionality meets
+system requirements.
+
+.. note::
+
+   If however, a non-encumbered version is unavailable or it provides
+   unsuitable functionality or quality, you can use an encumbered
+   version.
+
+A couple different methods exist within the OpenEmbedded build system to
+satisfy the licensing requirements for an encumbered BSP. The following
+list describes them in order of preference:
+
+#. *Use the LICENSE_FLAGS Variable to Define the Recipes that Have Commercial or
+   Other Types of Specially-Licensed Packages:* For each of those recipes, you can
+   specify a matching license string in a ``local.conf`` variable named
+   :term:`LICENSE_FLAGS_WHITELIST`.
+   Specifying the matching license string signifies that you agree to
+   the license. Thus, the build system can build the corresponding
+   recipe and include the component in the image. See the
+   ":ref:`dev-manual/dev-manual-common-tasks:enabling commercially licensed recipes`"
+   section in the Yocto Project Development Tasks Manual for details on
+   how to use these variables.
+
+   If you build as you normally would, without specifying any recipes in
+   the ``LICENSE_FLAGS_WHITELIST``, the build stops and provides you
+   with the list of recipes that you have tried to include in the image
+   that need entries in the ``LICENSE_FLAGS_WHITELIST``. Once you enter
+   the appropriate license flags into the whitelist, restart the build
+   to continue where it left off. During the build, the prompt will not
+   appear again since you have satisfied the requirement.
+
+   Once the appropriate license flags are on the white list in the
+   ``LICENSE_FLAGS_WHITELIST`` variable, you can build the encumbered
+   image with no change at all to the normal build process.
+
+#. *Get a Pre-Built Version of the BSP:* You can get this type of BSP by
+   selecting the "DOWNLOADS" item from the "SOFTWARE" tab on the
+   :yocto_home:`Yocto Project website <>`. You can download BSP tarballs
+   that contain proprietary components after agreeing to the licensing
+   requirements of each of the individually encumbered packages as part
+   of the download process. Obtaining the BSP this way allows you to
+   access an encumbered image immediately after agreeing to the
+   click-through license agreements presented by the website. If you
+   want to build the image yourself using the recipes contained within
+   the BSP tarball, you will still need to create an appropriate
+   ``LICENSE_FLAGS_WHITELIST`` to match the encumbered recipes in the
+   BSP.
+
+.. note::
+
+   Pre-compiled images are bundled with a time-limited kernel that runs
+   for a predetermined amount of time (10 days) before it forces the
+   system to reboot. This limitation is meant to discourage direct
+   redistribution of the image. You must eventually rebuild the image if
+   you want to remove this restriction.
+
+Creating a new BSP Layer Using the ``bitbake-layers`` Script
+============================================================
+
+The ``bitbake-layers create-layer`` script automates creating a BSP
+layer. What makes a layer a "BSP layer" is the presence of at least one
+machine configuration file. Additionally, a BSP layer usually has a
+kernel recipe or an append file that leverages off an existing kernel
+recipe. The primary requirement, however, is the machine configuration.
+
+Use these steps to create a BSP layer:
+
+-  *Create a General Layer:* Use the ``bitbake-layers`` script with the
+   ``create-layer`` subcommand to create a new general layer. For
+   instructions on how to create a general layer using the
+   ``bitbake-layers`` script, see the
+   ":ref:`dev-manual/dev-manual-common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
+   section in the Yocto Project Development Tasks Manual.
+
+-  *Create a Layer Configuration File:* Every layer needs a layer
+   configuration file. This configuration file establishes locations for
+   the layer's recipes, priorities for the layer, and so forth. You can
+   find examples of ``layer.conf`` files in the Yocto Project
+   :yocto_git:`Source Repositories <>`. To get examples of what you need
+   in your configuration file, locate a layer (e.g. "meta-ti") and
+   examine the
+   :yocto_git:`local.conf </cgit/cgit.cgi/meta-ti/tree/conf/layer.conf>`
+   file.
+
+-  *Create a Machine Configuration File:* Create a
+   ``conf/machine/bsp_root_name.conf`` file. See
+   :yocto_git:`meta-yocto-bsp/conf/machine </cgit/cgit.cgi/poky/tree/meta-yocto-bsp/conf/machine>`
+   for sample ``bsp_root_name.conf`` files. Other samples such as
+   :yocto_git:`meta-ti </cgit/cgit.cgi/meta-ti/tree/conf/machine>`
+   and
+   :yocto_git:`meta-freescale </cgit/cgit.cgi/meta-freescale/tree/conf/machine>`
+   exist from other vendors that have more specific machine and tuning
+   examples.
+
+-  *Create a Kernel Recipe:* Create a kernel recipe in
+   ``recipes-kernel/linux`` by either using a kernel append file or a
+   new custom kernel recipe file (e.g. ``yocto-linux_4.12.bb``). The BSP
+   layers mentioned in the previous step also contain different kernel
+   examples. See the ":ref:`kernel-dev/kernel-dev-common:modifying an existing recipe`"
+   section in the Yocto Project Linux Kernel Development Manual for
+   information on how to create a custom kernel.
+
+The remainder of this section provides a description of the Yocto
+Project reference BSP for Beaglebone, which resides in the
+:yocto_git:`meta-yocto-bsp </cgit/cgit.cgi/poky/tree/meta-yocto-bsp>`
+layer.
+
+BSP Layer Configuration Example
+-------------------------------
+
+The layer's ``conf`` directory contains the ``layer.conf`` configuration
+file. In this example, the ``conf/layer.conf`` is the following: ::
+
+   # 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"
+
+   BBFILE_COLLECTIONS += "yoctobsp"
+   BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
+   BBFILE_PRIORITY_yoctobsp = "5"
+   LAYERVERSION_yoctobsp = "4"
+   LAYERSERIES_COMPAT_yoctobsp = "&DISTRO_NAME_NO_CAP;"
+
+The variables used in this file configure the layer. A good way to learn about layer
+configuration files is to examine various files for BSP from the
+:yocto_git:`Source Repositories <>`.
+
+For a detailed description of this particular layer configuration file,
+see ":ref:`step 3 <dev-manual/dev-manual-common-tasks:creating your own layer>`"
+in the discussion that describes how to create layers in the Yocto
+Project Development Tasks Manual.
+
+BSP Machine Configuration Example
+---------------------------------
+
+As mentioned earlier in this section, the existence of a machine
+configuration file is what makes a layer a BSP layer as compared to a
+general or kernel layer.
+
+One or more machine configuration files exist in the
+``bsp_layer/conf/machine/`` directory of the layer: ::
+
+   bsp_layer/conf/machine/machine1\.conf``
+   bsp_layer/conf/machine/machine2\.conf``
+   bsp_layer/conf/machine/machine3\.conf``
+   ... more ...
+
+For example, the machine configuration file for the `BeagleBone and
+BeagleBone Black development boards <http://beagleboard.org/bone>`__ is
+located in the layer ``poky/meta-yocto-bsp/conf/machine`` and is named
+``beaglebone-yocto.conf``: ::
+
+   #@TYPE: Machine
+   #@NAME: Beaglebone-yocto machine
+   #@DESCRIPTION: Reference machine configuration for http://beagleboard.org/bone and http://beagleboard.org/black boards
+
+   PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+   XSERVER ?= "xserver-xorg \
+               xf86-video-modesetting \
+              "
+
+   MACHINE_EXTRA_RRECOMMENDS = "kernel-modules kernel-devicetree"
+
+   EXTRA_IMAGEDEPENDS += "u-boot"
+
+   DEFAULTTUNE ?= "cortexa8hf-neon"
+   include conf/machine/include/tune-cortexa8.inc
+
+   IMAGE_FSTYPES += "tar.bz2 jffs2 wic wic.bmap"
+   EXTRA_IMAGECMD_jffs2 = "-lnp "
+   WKS_FILE ?= "beaglebone-yocto.wks"
+   IMAGE_INSTALL_append = " kernel-devicetree kernel-image-zimage"
+   do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
+
+   SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0"
+   SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
+
+   PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
+   PREFERRED_VERSION_linux-yocto ?= "5.0%"
+
+   KERNEL_IMAGETYPE = "zImage"
+   KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
+   KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
+
+   SPL_BINARY = "MLO"
+   UBOOT_SUFFIX = "img"
+   UBOOT_MACHINE = "am335x_evm_defconfig"
+   UBOOT_ENTRYPOINT = "0x80008000"
+   UBOOT_LOADADDRESS = "0x80008000"
+
+   MACHINE_FEATURES = "usbgadget usbhost vfat alsa"
+
+   IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO zImage am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
+
+The variables used to configure the machine define machine-specific properties; for
+example, machine-dependent packages, machine tunings, the type of kernel
+to build, and U-Boot configurations.
+
+The following list provides some explanation for the statements found in
+the example reference machine configuration file for the BeagleBone
+development boards. Realize that much more can be defined as part of a
+machine's configuration file. In general, you can learn about related
+variables that this example does not have by locating the variables in
+the ":ref:`ref-manual/ref-variables:variables glossary`" in the Yocto
+Project Reference Manual.
+
+-  :term:`PREFERRED_PROVIDER_virtual/xserver <PREFERRED_PROVIDER>`:
+   The recipe that provides "virtual/xserver" when more than one
+   provider is found. In this case, the recipe that provides
+   "virtual/xserver" is "xserver-xorg", which exists in
+   ``poky/meta/recipes-graphics/xorg-xserver``.
+
+-  :term:`XSERVER`: The packages that
+   should be installed to provide an X server and drivers for the
+   machine. In this example, the "xserver-xorg" and
+   "xf86-video-modesetting" are installed.
+
+-  :term:`MACHINE_EXTRA_RRECOMMENDS`:
+   A list of machine-dependent packages not essential for booting the
+   image. Thus, the build does not fail if the packages do not exist.
+   However, the packages are required for a fully-featured image.
+
+   .. tip::
+
+      Many ``MACHINE\*`` variables exist that help you configure a particular piece
+      of hardware.
+
+-  :term:`EXTRA_IMAGEDEPENDS`:
+   Recipes to build that do not provide packages for installing into the
+   root filesystem but building the image depends on the recipes.
+   Sometimes a recipe is required to build the final image but is not
+   needed in the root filesystem. In this case, the U-Boot recipe must
+   be built for the image.
+
+-  :term:`DEFAULTTUNE`: Machines
+   use tunings to optimize machine, CPU, and application performance.
+   These features, which are collectively known as "tuning features",
+   exist in the :term:`OpenEmbedded-Core (OE-Core)` layer (e.g.
+   ``poky/meta/conf/machine/include``). In this example, the default
+   tunning file is "cortexa8hf-neon".
+
+   .. note::
+
+      The include statement that pulls in the
+      conf/machine/include/tune-cortexa8.inc file provides many tuning
+      possibilities.
+
+-  :term:`IMAGE_FSTYPES`: The
+   formats the OpenEmbedded build system uses during the build when
+   creating the root filesystem. In this example, four types of images
+   are supported.
+
+-  :term:`EXTRA_IMAGECMD`:
+   Specifies additional options for image creation commands. In this
+   example, the "-lnp " option is used when creating the
+   `JFFS2 <https://en.wikipedia.org/wiki/JFFS2>`__ image.
+
+-  :term:`WKS_FILE`: The location of
+   the :ref:`Wic kickstart <ref-manual/ref-kickstart:openembedded kickstart (\`\`.wks\`\`) reference>` file used
+   by the OpenEmbedded build system to create a partitioned image
+   (image.wic).
+
+-  :term:`IMAGE_INSTALL`:
+   Specifies packages to install into an image through the
+   :ref:`image <ref-classes-image>` class. Recipes
+   use the ``IMAGE_INSTALL`` variable.
+
+-  ``do_image_wic[depends]``: A task that is constructed during the
+   build. In this example, the task depends on specific tools in order
+   to create the sysroot when buiding a Wic image.
+
+-  :term:`SERIAL_CONSOLES`:
+   Defines a serial console (TTY) to enable using getty. In this case,
+   the baud rate is "115200" and the device name is "ttyO0".
+
+-  :term:`PREFERRED_PROVIDER_virtual/kernel <PREFERRED_PROVIDER>`:
+   Specifies the recipe that provides "virtual/kernel" when more than
+   one provider is found. In this case, the recipe that provides
+   "virtual/kernel" is "linux-yocto", which exists in the layer's
+   ``recipes-kernel/linux`` directory.
+
+-  :term:`PREFERRED_VERSION_linux-yocto <PREFERRED_VERSION>`:
+   Defines the version of the recipe used to build the kernel, which is
+   "5.0" in this case.
+
+-  :term:`KERNEL_IMAGETYPE`:
+   The type of kernel to build for the device. In this case, the
+   OpenEmbedded build system creates a "zImage" image type.
+
+-  :term:`KERNEL_DEVICETREE`:
+   The names of the generated Linux kernel device trees (i.e. the
+   ``*.dtb``) files. All the device trees for the various BeagleBone
+   devices are included.
+
+-  :term:`KERNEL_EXTRA_ARGS`:
+   Additional ``make`` command-line arguments the OpenEmbedded build
+   system passes on when compiling the kernel. In this example,
+   ``LOADADDR=${UBOOT_ENTRYPOINT}`` is passed as a command-line argument.
+
+-  :term:`SPL_BINARY`: Defines the
+   Secondary Program Loader (SPL) binary type. In this case, the SPL
+   binary is set to "MLO", which stands for Multimedia card LOader.
+
+   The BeagleBone development board requires an SPL to boot and that SPL
+   file type must be MLO. Consequently, the machine configuration needs
+   to define ``SPL_BINARY`` as ``MLO``.
+
+   .. note::
+
+      For more information on how the SPL variables are used, see the u-boot.inc
+      include file.
+
+-  :term:`UBOOT_* <UBOOT_ENTRYPOINT>`: Defines
+   various U-Boot configurations needed to build a U-Boot image. In this
+   example, a U-Boot image is required to boot the BeagleBone device.
+   See the following variables for more information:
+
+   -  :term:`UBOOT_SUFFIX`:
+      Points to the generated U-Boot extension.
+
+   -  :term:`UBOOT_MACHINE`:
+      Specifies the value passed on the make command line when building
+      a U-Boot image.
+
+   -  :term:`UBOOT_ENTRYPOINT`:
+      Specifies the entry point for the U-Boot image.
+
+   -  :term:`UBOOT_LOADADDRESS`:
+      Specifies the load address for the U-Boot image.
+
+-  :term:`MACHINE_FEATURES`:
+   Specifies the list of hardware features the BeagleBone device is
+   capable of supporting. In this case, the device supports "usbgadget
+   usbhost vfat alsa".
+
+-  :term:`IMAGE_BOOT_FILES`:
+   Files installed into the device's boot partition when preparing the
+   image using the Wic tool with the ``bootimg-partition`` or
+   ``bootimg-efi`` source plugin.
+
+BSP Kernel Recipe Example
+-------------------------
+
+The kernel recipe used to build the kernel image for the BeagleBone
+device was established in the machine configuration: ::
+
+   PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
+   PREFERRED_VERSION_linux-yocto ?= "5.0%"
+
+The ``meta-yocto-bsp/recipes-kernel/linux`` directory in the layer contains
+metadata used to build the kernel. In this case, a kernel append file
+(i.e. ``linux-yocto_5.0.bbappend``) is used to override an established
+kernel recipe (i.e. ``linux-yocto_5.0.bb``), which is located in
+https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/linux.
+
+Following is the contents of the append file: ::
+
+   KBRANCH_genericx86 = "v5.0/standard/base"
+   KBRANCH_genericx86-64 = "v5.0/standard/base"
+   KBRANCH_edgerouter = "v5.0/standard/edgerouter"
+   KBRANCH_beaglebone-yocto = "v5.0/standard/beaglebone"
+
+   KMACHINE_genericx86 ?= "common-pc"
+   KMACHINE_genericx86-64 ?= "common-pc-64"
+   KMACHINE_beaglebone-yocto ?= "beaglebone"
+
+   SRCREV_machine_genericx86 ?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d"
+   SRCREV_machine_genericx86-64 ?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d"
+   SRCREV_machine_edgerouter ?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d"
+   SRCREV_machine_beaglebone-yocto ?= "3df4aae6074e94e794e27fe7f17451d9353cdf3d"
+
+   COMPATIBLE_MACHINE_genericx86 = "genericx86"
+   COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
+   COMPATIBLE_MACHINE_edgerouter = "edgerouter"
+   COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto"
+
+   LINUX_VERSION_genericx86 = "5.0.3"
+   LINUX_VERSION_genericx86-64 = "5.0.3"
+   LINUX_VERSION_edgerouter = "5.0.3"
+   LINUX_VERSION_beaglebone-yocto = "5.0.3"
+
+This particular append file works for all the machines that are
+part of the ``meta-yocto-bsp`` layer. The relevant statements are
+appended with the "beaglebone-yocto" string. The OpenEmbedded build
+system uses these statements to override similar statements in the
+kernel recipe:
+
+-  :term:`KBRANCH`: Identifies the
+   kernel branch that is validated, patched, and configured during the
+   build.
+
+-  :term:`KMACHINE`: Identifies the
+   machine name as known by the kernel, which is sometimes a different
+   name than what is known by the OpenEmbedded build system.
+
+-  :term:`SRCREV`: Identifies the
+   revision of the source code used to build the image.
+
+-  :term:`COMPATIBLE_MACHINE`:
+   A regular expression that resolves to one or more target machines
+   with which the recipe is compatible.
+
+-  :term:`LINUX_VERSION`: The
+   Linux version from kernel.org used by the OpenEmbedded build system
+   to build the kernel image.