diff --git a/poky/documentation/ref-manual/ref-images.xml b/poky/documentation/ref-manual/ref-images.xml
new file mode 100644
index 0000000..6f10a6f
--- /dev/null
+++ b/poky/documentation/ref-manual/ref-images.xml
@@ -0,0 +1,170 @@
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
+<!--SPDX-License-Identifier: CC-BY-2.0-UK-->
+
+<chapter id='ref-images'>
+    <title>Images</title>
+
+    <para>
+        The OpenEmbedded build system provides several example
+        images to satisfy different needs.
+        When you issue the <filename>bitbake</filename> command you provide a "top-level" recipe
+        that essentially begins the build for the type of image you want.
+    </para>
+
+    <note>
+        Building an image without GNU General Public License Version 3 (GPLv3),
+        GNU Lesser General Public License Version 3 (LGPLv3), and the
+        GNU Affero General Public License Version 3 (AGPL-3.0) components
+        is only supported for minimal and base images.
+        Furthermore, if you are going to build an image using non-GPLv3 and
+        similarly licensed components, you must make the following changes in
+        the <filename>local.conf</filename> file before using the BitBake
+        command to build the minimal or base image:
+        <literallayout class='monospaced'>
+     1. Comment out the EXTRA_IMAGE_FEATURES line
+     2. Set INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
+        </literallayout>
+    </note>
+
+    <para>
+        From within the <filename>poky</filename> Git repository, you can use
+        the following command to display the list of directories within the
+        <link linkend='source-directory'>Source Directory</link>
+        that contain image recipe files:
+        <literallayout class='monospaced'>
+     $ ls meta*/recipes*/images/*.bb
+        </literallayout>
+    </para>
+
+    <para>
+        Following is a list of supported recipes:
+        <itemizedlist>
+            <listitem><para>
+                <filename>build-appliance-image</filename>:
+                An example virtual machine that contains all the pieces
+                required to run builds using the build system as well as the
+                build system itself.
+                You can boot and run the image using either the
+                <ulink url='http://www.vmware.com/products/player/overview.html'>VMware Player</ulink>
+                or
+                <ulink url='http://www.vmware.com/products/workstation/overview.html'>VMware Workstation</ulink>.
+                For more information on this image, see the
+                <ulink url='&YOCTO_HOME_URL;/software-item/build-appliance/'>Build Appliance</ulink>
+                page on the Yocto Project website.
+                </para></listitem>
+            <listitem><para><filename>core-image-base</filename>:
+                A console-only image that fully supports the target device hardware.</para></listitem>
+            <listitem><para><filename>core-image-clutter</filename>:
+                An image with support for the Open GL-based toolkit Clutter, which enables development of
+                rich and animated graphical user interfaces.</para></listitem>
+            <listitem><para><filename>core-image-full-cmdline</filename>:
+                A console-only image with more full-featured Linux system
+                functionality installed.</para></listitem>
+                <listitem><para><filename>core-image-lsb</filename>:
+                An image that conforms to the Linux Standard Base (LSB)
+                specification.
+                This image requires a distribution configuration that
+                enables LSB compliance (e.g. <filename>poky-lsb</filename>).
+                If you build <filename>core-image-lsb</filename> without that
+                configuration, the image will not be LSB-compliant.
+                </para></listitem>
+            <listitem><para><filename>core-image-lsb-dev</filename>:
+                A <filename>core-image-lsb</filename> image that is suitable for development work
+                using the host.
+                The image includes headers and libraries you can use in a host development
+                environment.
+                This image requires a distribution configuration that
+                enables LSB compliance (e.g. <filename>poky-lsb</filename>).
+                If you build <filename>core-image-lsb-dev</filename> without that
+                configuration, the image will not be LSB-compliant.
+                </para></listitem>
+            <listitem><para><filename>core-image-lsb-sdk</filename>:
+                A <filename>core-image-lsb</filename> that includes everything in
+                the cross-toolchain but also includes development headers and libraries
+                to form a complete standalone SDK.
+                This image requires a distribution configuration that
+                enables LSB compliance (e.g. <filename>poky-lsb</filename>).
+                If you build <filename>core-image-lsb-sdk</filename> without that
+                configuration, the image will not be LSB-compliant.
+                This image is suitable for development using the target.</para></listitem>
+            <listitem><para><filename>core-image-minimal</filename>:
+                A small image just capable of allowing a device to boot.</para></listitem>
+            <listitem><para><filename>core-image-minimal-dev</filename>:
+                A <filename>core-image-minimal</filename> image suitable for development work
+                using the host.
+                The image includes headers and libraries you can use in a host development
+                environment.
+                </para></listitem>
+            <listitem><para id='images-core-image-minimal-initramfs'><filename>core-image-minimal-initramfs</filename>:
+                A <filename>core-image-minimal</filename> image that has the Minimal RAM-based
+                Initial Root Filesystem (initramfs) as part of the kernel,
+                which allows the system to find the first "init" program more efficiently.
+                See the
+                <link linkend='var-PACKAGE_INSTALL'><filename>PACKAGE_INSTALL</filename></link>
+                variable for additional information helpful when working with
+                initramfs images.
+                </para></listitem>
+            <listitem><para><filename>core-image-minimal-mtdutils</filename>:
+                A <filename>core-image-minimal</filename> image that has support
+                for the Minimal MTD Utilities, which let the user interact with the
+                MTD subsystem in the kernel to perform operations on flash devices.
+                </para></listitem>
+            <listitem><para><filename>core-image-rt</filename>:
+                A <filename>core-image-minimal</filename> image plus a real-time test suite and
+                tools appropriate for real-time use.</para></listitem>
+            <listitem><para><filename>core-image-rt-sdk</filename>:
+                A <filename>core-image-rt</filename> image that includes everything in
+                the cross-toolchain.
+                The image also includes development headers and libraries to form a complete
+                stand-alone SDK and is suitable for development using the target.
+                </para></listitem>
+            <listitem><para><filename>core-image-sato</filename>:
+                An image with Sato support, a mobile environment and visual style that works well
+                with mobile devices.
+                The image supports X11 with a Sato theme and applications such as
+                a terminal, editor, file manager, media player, and so forth.
+                </para></listitem>
+            <listitem><para><filename>core-image-sato-dev</filename>:
+                A <filename>core-image-sato</filename> image suitable for development
+                using the host.
+                The image includes libraries needed to build applications on the device itself,
+                testing and profiling tools, and debug symbols.
+                This image was formerly <filename>core-image-sdk</filename>.
+                </para></listitem>
+            <listitem><para><filename>core-image-sato-sdk</filename>:
+                A <filename>core-image-sato</filename> image that includes everything in
+                the cross-toolchain.
+                The image also includes development headers and libraries to form a complete standalone SDK
+                and is suitable for development using the target.</para></listitem>
+            <listitem><para><filename>core-image-testmaster</filename>:
+                A "master" image designed to be used for automated runtime testing.
+                Provides a "known good" image that is deployed to a separate
+                partition so that you can boot into it and use it to deploy a
+                second image to be tested.
+                You can find more information about runtime testing in the
+                "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>"
+                section in the Yocto Project Development Tasks Manual.
+                </para></listitem>
+            <listitem><para><filename>core-image-testmaster-initramfs</filename>:
+                A RAM-based Initial Root Filesystem (initramfs) image tailored for
+                use with the <filename>core-image-testmaster</filename> image.
+                </para></listitem>
+            <listitem><para><filename>core-image-weston</filename>:
+                A very basic Wayland image with a terminal.
+                This image provides the Wayland protocol libraries and the
+                reference Weston compositor.
+                For more information, see the
+                "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-using-wayland-and-weston'>Using Wayland and Weston</ulink>"
+                section in the Yocto Project Development Tasks Manual.
+                </para></listitem>
+            <listitem><para><filename>core-image-x11</filename>:
+                A very basic X11 image with a terminal.
+                </para></listitem>
+        </itemizedlist>
+    </para>
+</chapter>
+<!--
+vim: expandtab tw=80 ts=4
+-->
