distro bootcmd: Allow board defined UBI partition and volume names

This commit allows overriding the default assumption that the boot UBI
MTD partition is named 'UBI' and the UBI volume is 'boot'. A board
desiring to use a legacy or alternative NAND layout can now define the
following two extra environment variables:

	bootubipart=<some_ubi_partition_name>
	bootubivol=<some_ubi_volume_name>

EXAMPLE:

[include/configs/some_board.h]
---8<-------------------------------------------------------------------
[...]
	#include <config_distro_defaults.h>

	#define MEM_LAYOUT_ENV_SETTINGS \
		DEFAULT_LINUX_BOOT_ENV

	#define BOOT_TARGET_DEVICES(func) \
		func(UBIFS, ubifs, 0)

	#include <config_distro_bootcmd.h>
[...]
	#define CONFIG_EXTRA_ENV_SETTINGS \
		MEM_LAYOUT_ENV_SETTINGS \
		"bootubivol=rootfs\0" \
		"bootubipart=rootfs\0" \
		BOOTENV
[...]
---8<-------------------------------------------------------------------

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
This commit is contained in:
Derald D. Woods 2018-01-20 21:16:13 -06:00 committed by Tom Rini
parent af2f44267f
commit 6e1364fe45

View File

@ -71,10 +71,15 @@
#ifdef CONFIG_CMD_UBIFS #ifdef CONFIG_CMD_UBIFS
#define BOOTENV_SHARED_UBIFS \ #define BOOTENV_SHARED_UBIFS \
"ubifs_boot=" \ "ubifs_boot=" \
"if ubi part UBI && ubifsmount ubi${devnum}:boot; then " \ "env exists bootubipart || " \
"setenv devtype ubi; " \ "env set bootubipart UBI; " \
"setenv bootpart 0; " \ "env exists bootubivol || " \
"run scan_dev_for_boot; " \ "env set bootubivol boot; " \
"if ubi part ${bootubipart} && " \
"ubifsmount ubi${devnum}:${bootubivol}; " \
"then " \
"setenv devtype ubi; " \
"run scan_dev_for_boot; " \
"fi\0" "fi\0"
#define BOOTENV_DEV_UBIFS BOOTENV_DEV_BLKDEV #define BOOTENV_DEV_UBIFS BOOTENV_DEV_BLKDEV
#define BOOTENV_DEV_NAME_UBIFS BOOTENV_DEV_NAME_BLKDEV #define BOOTENV_DEV_NAME_UBIFS BOOTENV_DEV_NAME_BLKDEV
@ -125,7 +130,7 @@
"${kernel_addr_r} efi/boot/"BOOTEFI_NAME"; " \ "${kernel_addr_r} efi/boot/"BOOTEFI_NAME"; " \
"if fdt addr ${fdt_addr_r}; then " \ "if fdt addr ${fdt_addr_r}; then " \
"bootefi ${kernel_addr_r} ${fdt_addr_r};" \ "bootefi ${kernel_addr_r} ${fdt_addr_r};" \
"else " \ "else " \
"bootefi ${kernel_addr_r} ${fdtcontroladdr};" \ "bootefi ${kernel_addr_r} ${fdtcontroladdr};" \
"fi\0" \ "fi\0" \
\ \