@@ -3269,13 +3269,89 @@ variable using the "type" varflag. Here is an example::
The :ref:`ref-classes-uboot-config` class provides support for configuring one
or more U-Boot build configurations.
-There are two ways to configure the recipe for your machine:
+There are three ways to configure the recipe for your machine:
-- Using :term:`UBOOT_CONFIG` variable. For example::
+- Using the :term:`UBOOT_MACHINE` variable (and its companion variable
+ :term:`UBOOT_BINARY`). For example::
+
+ UBOOT_MACHINE = "config"
+ UBOOT_BINARY = "u-boot.bin"
+
+- Using :term:`UBOOT_CONFIG` variables. For example::
+
+ UBOOT_CONFIG ??= "foo bar"
+ UBOOT_CONFIG[foo] = "config"
+ UBOOT_CONFIG[bar] = "config2"
+
+ UBOOT_CONFIG_IMAGE_FSTYPES[bar] = "fstype"
+
+ UBOOT_CONFIG_BINARY[foo] = "binary"
+
+ UBOOT_CONFIG_MAKE_OPTS[foo] = "FOO=1"
+ UBOOT_CONFIG_MAKE_OPTS[bar] = "BAR=1"
+
+ UBOOT_CONFIG_FRAGMENTS[foo] = "foo.fragment"
+
+ In this example, all possible configurations are selected (``foo`` and
+ ``bar``), but it is also possible to build only ``foo`` or ``bar`` by
+ changing the value of :term:`UBOOT_CONFIG` to include either one or the
+ other.
+
+ Each build configuration is associated to a variable flag definition of
+ :term:`UBOOT_CONFIG`, and associated changes for each config as defined
+ in the various UBOOT_CONFIG_* variables.
+
+ - UBOOT_CONFIG[config]: defconfig file selected for this build configuration.
+ These files are found in the source tree's ``configs`` folder of U-Boot.
+
+ *This option is mandatory.*
+
+ - :term:`UBOOT_CONFIG_IMAGE_FSTYPES` [config]: image types to append to the
+ :term:`IMAGE_FSTYPES` variable for image generation for this build
+ configuration.
+
+ This can allow building an extra image format that uses the binary
+ generated by this build configuration.
+
+ This option is not mandatory and can be left unspecified if not needed.
+
+ - :term:`UBOOT_CONFIG_BINARY` [config]: binary to select as the one to deploy in
+ :term:`DEPLOY_DIR_IMAGE`. The output of a U-Boot build may be more than
+ one binary, for example::
+
+ u-boot.bin
+ u-boot-with-spl.bin
+
+ Setting the ``binary`` value to ``u-boot-with-spl.bin`` will make this
+ binary the one deployed in :term:`DEPLOY_DIR_IMAGE`. It is renamed to
+ include the build configuration name in the process (``foo`` or ``bar`` in
+ the above example).
+
+ This option defaults to :term:`UBOOT_BINARY` if not specified.
+
+ - :term:`UBOOT_CONFIG_MAKE_OPTS` [config]: additional options passed to
+ ``make`` when configuring and compiling U-Boot for this configuration
+ entry. The options in this entry are added before the options in
+ :term:`UBOOT_MAKE_OPTS`.
+
+ This option is not mandatory and adds nothing if not specified. If
+ you do not have a make option for a given config, you can simply not
+ set the flag for that config.
+
+ - :term:`UBOOT_CONFIG_FRAGMENTS` [config]: additional config fragment(s)
+ from the source tree that is used during ``do_configure()`` to setup the
+ build. The options in this entry are added before the fragments in
+ :term:`UBOOT_FRAGMENTS`.
+
+ This option is not mandatory and adds nothing if not specified. If
+ you do not have a fragment a given config, you can simply not set the
+ flag for that config.
+
+- Or, a legacy method using the :term:`UBOOT_CONFIG` variable by itself. For example::
UBOOT_CONFIG ??= "foo bar"
- UBOOT_CONFIG[foo] = "config,images,binary,makeopts"
- UBOOT_CONFIG[bar] = "config2,images2,binary2,makeopts2"
+ UBOOT_CONFIG[foo] = "config,images,binary"
+ UBOOT_CONFIG[bar] = "config2,images2,binary2"
In this example, all possible configurations are selected (``foo`` and
``bar``), but it is also possible to build only ``foo`` or ``bar`` by
@@ -3313,15 +3389,9 @@ There are two ways to configure the recipe for your machine:
This option defaults to :term:`UBOOT_BINARY` if unset.
- - ``makeopts``: the additional options passed to ``make`` when configuring
- and compiling U-Boot for this configuration entry. The options in this
- entry are added before the options in :term:`UBOOT_MAKE_OPTS`.
-
-- Or, using the :term:`UBOOT_MACHINE` variable (and its companion variable
- :term:`UBOOT_BINARY`). For example::
-
- UBOOT_MACHINE = "config"
- UBOOT_BINARY = "u-boot.bin"
+.. note::
+ It is recommended to not use this legacy flow as any future extensions
+ to the control knobs will be not added to this methodology.
Using :term:`UBOOT_MACHINE` and :term:`UBOOT_CONFIG` at the same time is not
possible.
@@ -10669,29 +10669,108 @@ system and gives an overview of their function and contents.
:term:`UBOOT_CONFIG`
Configures one or more U-Boot configurations to build. Each
- configuration can define the :term:`UBOOT_MACHINE` and optionally the
- :term:`IMAGE_FSTYPES` and the :term:`UBOOT_BINARY`.
+ configuration must define the :term:`UBOOT_MACHINE`. Additional control
+ variables can found at: :term:`UBOOT_CONFIG_BINARY`,
+ :term:`UBOOT_CONFIG_FRAGMENTS`, :term:`UBOOT_CONFIG_IMAGE_FSTYPES`, and
+ :term:`UBOOT_CONFIG_MAKE_OPTS`.
- Here is an example from the ``meta-freescale`` layer. ::
+ Here is an updated example from the ``meta-freescale`` layer. ::
UBOOT_CONFIG ??= "sdcard-ifc-secure-boot sdcard-ifc sdcard-qspi lpuart qspi secure-boot nor"
+
UBOOT_CONFIG[nor] = "ls1021atwr_nor_defconfig"
- UBOOT_CONFIG[sdcard-ifc] = "ls1021atwr_sdcard_ifc_defconfig,,u-boot-with-spl-pbl.bin"
- UBOOT_CONFIG[sdcard-qspi] = "ls1021atwr_sdcard_qspi_defconfig,,u-boot-with-spl-pbl.bin"
+ UBOOT_CONFIG[sdcard-ifc] = "ls1021atwr_sdcard_ifc_defconfig"
+ UBOOT_CONFIG[sdcard-qspi] = "ls1021atwr_sdcard_qspi_defconfig"
UBOOT_CONFIG[lpuart] = "ls1021atwr_nor_lpuart_defconfig"
UBOOT_CONFIG[qspi] = "ls1021atwr_qspi_defconfig"
UBOOT_CONFIG[secure-boot] = "ls1021atwr_nor_SECURE_BOOT_defconfig"
- UBOOT_CONFIG[sdcard-ifc-secure-boot] = "ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig,,u-boot-with-spl-pbl.bin"
+ UBOOT_CONFIG[sdcard-ifc-secure-boot] = "ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig"
+
+ UBOOT_CONFIG_BINARY[sdcard-ifc] = "u-boot-with-spl-pbl.bin"
+ UBOOT_CONFIG_BINARY[sdcard-qspi] = "u-boot-with-spl-pbl.bin"
+ UBOOT_CONFIG_BINARY[sdcard-ifc-secure-boot] = "u-boot-with-spl-pbl.bin"
In this example, all possible seven configurations are selected. Each
configuration specifies "..._defconfig" as :term:`UBOOT_MACHINE`, and
the "sd..." configurations define an individual name for
- :term:`UBOOT_BINARY`. No configuration defines a second parameter for
- :term:`IMAGE_FSTYPES` to use for the U-Boot image.
+ :term:`UBOOT_CONFIG_BINARY`.
For more information on how the :term:`UBOOT_CONFIG` is handled, see the
:ref:`ref-classes-uboot-config` class.
+ :term:`UBOOT_CONFIG_BINARY`
+ This variable cannot be set to a value in a config, it is a placeholder
+ for configuring the :term:`UBOOT_CONFIG` flow via flags::
+
+ UBOOT_CONFIG_BINARY[foo] = "binary1"
+ UBOOT_CONFIG_BINARY[bar] = "binary2"
+
+ Specify the binary to select as the one to deploy in :term:`DEPLOY_DIR_IMAGE`.
+ The output of a U-Boot build may be more than one binary, for example::
+
+ u-boot.bin
+ u-boot-with-spl.bin
+
+ Setting the ``binary`` value to ``u-boot-with-spl.bin`` will make this
+ binary the one deployed in :term:`DEPLOY_DIR_IMAGE`. It is renamed to
+ include the build configuration name in the process (``foo`` or ``bar`` in
+ the above example).
+
+ This option defaults to :term:`UBOOT_BINARY` if not specified.
+
+ For more information on how the :term:`UBOOT_CONFIG_BINARY` is handled, see the
+ :ref:`ref-classes-uboot-config` class.
+
+ :term:`UBOOT_CONFIG_FRAGMENTS`
+ This variable cannot be set to a value in a config, it is a placeholder
+ for configuring the :term:`UBOOT_CONFIG` flow via flags::
+
+ UBOOT_CONFIG_FRAGMENTS[foo] = "frag1 frag2"
+ UBOOT_CONFIG_FRAGMENTS[bar] = "frag3"
+
+ Specify a list of fragments from the source tree that should be combined
+ with the defconfig from :term:`UBOOT_CONFIG` that are used during ``do_configure()``
+ to configure the build.
+
+ This option is not required and you only need to specify flag settings for
+ configs that need them.
+
+ For more information on how the :term:`UBOOT_CONFIG_FRAGMENTS` is handled, see the
+ :ref:`ref-classes-uboot-config` class.
+
+ :term:`UBOOT_CONFIG_IMAGE_FSTYPES`
+ This variable cannot be set to a value in a config, it is a placeholder
+ for configuring the :term:`UBOOT_CONFIG` flow via flags::
+
+ UBOOT_CONFIG_IMAGE_FSTYPES[foo] = "fstype1"
+ UBOOT_CONFIG_IMAGE_FSTYPES[bar] = "fstype2"
+
+ Append additional image types to the :term:`IMAGE_FSTYPES` variable for
+ image generation for this build configuration. This can allow building an
+ extra image format that uses the binary generated by this build configuration.
+
+ This option is not required and you only need to specify flag settings for
+ configs that need them.
+
+ For more information on how the :term:`UBOOT_CONFIG_IMAGE_FSTYPES` is handled, see the
+ :ref:`ref-classes-uboot-config` class.
+
+ :term:`UBOOT_CONFIG_MAKE_OPTS`
+ This variable cannot be set to a value in a config, it is a placeholder
+ for configuring the :term:`UBOOT_CONFIG` flow via flags::
+
+ UBOOT_CONFIG_MAKE_OPTS[foo] = "OPT1=foo OPT2=2"
+ UBOOT_CONFIG_MAKE_OPTS[bar] = "OPT1=bar"
+
+ Specify a list of make command line options that are passed to the ``make`` command
+ during ``do_compile()``.
+
+ This option is not required and you only need to specify flag settings for
+ configs that need them.
+
+ For more information on how the :term:`UBOOT_CONFIG_MAKE_OPTS` is handled, see the
+ :ref:`ref-classes-uboot-config` class.
+
:term:`UBOOT_DTB_LOADADDRESS`
Specifies the load address for the dtb image used by U-Boot. During FIT
image creation, the :term:`UBOOT_DTB_LOADADDRESS` variable is used in
@@ -10980,6 +11059,12 @@ system and gives an overview of their function and contents.
See the :ref:`ref-classes-uboot-sign` class for details.
+ :term:`UBOOT_FRAGMENTS`
+ The :term:`UBOOT_FRAGMENTS` variable can be used to pass extra config
+ fragments from the source tree to ``make`` when U-Boot is configured.
+
+ See the :ref:`ref-classes-uboot-config` class for more information.
+
:term:`UBOOT_INITIAL_ENV_BINARY`
This variable enables the generation of the U-Boot initial environment in
binary format.
The UBOOT_CONFIG flow was updated in oe-core [1]. Document all of the new variables and preferred method of specifying the various controls for each config. [1] xxx Signed-off-by: Ryan Eatmon <reatmon@ti.com> --- documentation/ref-manual/classes.rst | 96 +++++++++++++++++++---- documentation/ref-manual/variables.rst | 101 +++++++++++++++++++++++-- 2 files changed, 176 insertions(+), 21 deletions(-)