[Buildroot] [PATCH v4 6/7] barebox: support 2nd config build

Yegor Yefremov yegorslists at googlemail.com
Thu Mar 31 06:17:47 UTC 2016


On Sun, Mar 20, 2016 at 11:35 PM, Pieter Smith <pieter at boesman.nl> wrote:
> Adds support to build barebox with a 2nd config.
>
> This is useful for building an SPL (Secondary Program Loader) in addition to
> the traditional TPL (Tertiary Program Loader). The Beaglebone Black for example
> has two barebox configurations:
> - am335x_defconfig builds the full barebox bootloader with device tree, and
> - am335x_mlo_defconfig builds the smaller MLO bootloader that loads the full
>   barebox bootloader from the eMMC or SD card.
>
> Signed-off-by: Pieter Smith <pieter at boesman.nl>

Reviewed-by: Yegor Yefremov <yegorslists at googlemail.com>

> ---
>  boot/barebox/Config.in                |  2 +
>  boot/barebox/barebox-2/Config.in      | 79 +++++++++++++++++++++++++++++++++++
>  boot/barebox/barebox-2/barebox-2.hash |  1 +
>  boot/barebox/barebox-2/barebox-2.mk   |  9 ++++
>  boot/barebox/barebox.mk               |  3 ++
>  5 files changed, 94 insertions(+)
>  create mode 100644 boot/barebox/barebox-2/Config.in
>  create mode 120000 boot/barebox/barebox-2/barebox-2.hash
>  create mode 100644 boot/barebox/barebox-2/barebox-2.mk
>
> diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in
> index 7769866..e92cdc3 100644
> --- a/boot/barebox/Config.in
> +++ b/boot/barebox/Config.in
> @@ -137,4 +137,6 @@ config BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH
>           barebox devfs format, stored in the images directory, with
>           the same name as the directory name given here.
>
> +source boot/barebox/barebox-2/Config.in
> +
>  endif
> diff --git a/boot/barebox/barebox-2/Config.in b/boot/barebox/barebox-2/Config.in
> new file mode 100644
> index 0000000..5bd8347
> --- /dev/null
> +++ b/boot/barebox/barebox-2/Config.in
> @@ -0,0 +1,79 @@
> +menuconfig BR2_TARGET_BAREBOX_2
> +       bool "Build barebox with a 2nd config"
> +       help
> +         Build barebox with a 2nd configuration.
> +
> +         Useful for building an SPL (Secondary Program Loader) in addition to
> +         the traditional TPL (Tertiary Program Loader), such as the X-Loader
> +         or MLO for Texas Instruments processors.
> +
> +if BR2_TARGET_BAREBOX_2
> +
> +choice
> +       prompt "Barebox configuration"
> +       default BR2_TARGET_BAREBOX_2_USE_DEFCONFIG
> +
> +config BR2_TARGET_BAREBOX_2_USE_DEFCONFIG
> +       bool "Using a defconfig"
> +
> +config BR2_TARGET_BAREBOX_2_USE_CUSTOM_CONFIG
> +       bool "Using a custom config file"
> +
> +endchoice
> +
> +config BR2_TARGET_BAREBOX_2_BOARD_DEFCONFIG
> +       string "board defconfig"
> +       depends on BR2_TARGET_BAREBOX_2_USE_DEFCONFIG
> +       help
> +         Name of the board for which Barebox should be built, without
> +         the _defconfig suffix.
> +
> +
> +config BR2_TARGET_BAREBOX_2_CUSTOM_CONFIG_FILE
> +       string "Configuration file path"
> +       depends on BR2_TARGET_BAREBOX_2_USE_CUSTOM_CONFIG
> +       help
> +         Path to the barebox configuration file
> +
> +config BR2_TARGET_BAREBOX_2_CONFIG_FRAGMENT_FILES
> +       string "Additional configuration fragment files"
> +       help
> +         A space-separated list of configuration fragment files,
> +         that will be merged to the main Barebox configuration file.
> +
> +config BR2_TARGET_BAREBOX_2_BUILT_IMAGE_FILE
> +       string "Built image filename"
> +       default "barebox-flash-image"
> +       help
> +         Name of the built barebox image filename in the barebox build or
> +         build images directory.
> +
> +         Set to barebox.bin for barebox versions older than 2012.10.
> +
> +config BR2_TARGET_BAREBOX_2_OUTPUT_IMAGE_FILE
> +       string "Output image filename"
> +       default "barebox-2.bin"
> +       help
> +         Name to use when copying the barebox image to the output/images
> +         directory.
> +
> +config BR2_TARGET_BAREBOX_2_CUSTOM_ENV
> +       bool "Generate an environment image"
> +       help
> +         Generate a custom environment image. This environment will
> +         contain the variables and scripts to be used at boot by
> +         barebox.
> +
> +config BR2_TARGET_BAREBOX_2_CUSTOM_ENV_PATH
> +       string "Environment path"
> +       depends on BR2_TARGET_BAREBOX_2_CUSTOM_ENV
> +       help
> +         Path to the directory containing the custom barebox
> +         environment. Depending on your setup, it will probably be
> +         based on either the content of the defaultenv or
> +         defaultenv-2 directories in the barebox source code, plus
> +         the additions needed. The output will be an image in the
> +         barebox devfs format, stored in the images directory, with
> +         the same name as the directory name given here.
> +
> +endif
> diff --git a/boot/barebox/barebox-2/barebox-2.hash b/boot/barebox/barebox-2/barebox-2.hash
> new file mode 120000
> index 0000000..b6462b8
> --- /dev/null
> +++ b/boot/barebox/barebox-2/barebox-2.hash
> @@ -0,0 +1 @@
> +../barebox.hash
> \ No newline at end of file
> diff --git a/boot/barebox/barebox-2/barebox-2.mk b/boot/barebox/barebox-2/barebox-2.mk
> new file mode 100644
> index 0000000..7a88f93
> --- /dev/null
> +++ b/boot/barebox/barebox-2/barebox-2.mk
> @@ -0,0 +1,9 @@
> +################################################################################
> +#
> +# barebox-2
> +#
> +################################################################################
> +
> +# Instantiate a 2nd barebox package, built from the same sources as the 1st,
> +# but with it's own configuration:
> +$(eval $(call barebox-package))
> diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
> index 8892ab5..71eb33a 100644
> --- a/boot/barebox/barebox.mk
> +++ b/boot/barebox/barebox.mk
> @@ -153,3 +153,6 @@ barebox-package=$(call inner-barebox-package,$(call UPPERCASE,$(pkgname)))
>
>  # instantiate this barebox package
>  $(eval $(call barebox-package))
> +
> +# add the 2nd barebox package build
> +include boot/barebox/barebox-2/barebox-2.mk
> --
> 2.5.0
>



More information about the buildroot mailing list