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 <[email protected]>
---
 include/config_distro_bootcmd.h | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

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

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to