pico-imx6ul: Add bootmenu to choose the baseboard
authorOtavio Salvador <otavio@ossystems.com.br>
Tue, 4 Sep 2018 13:23:15 +0000 (10:23 -0300)
committerStefano Babic <sbabic@denx.de>
Fri, 14 Sep 2018 13:04:24 +0000 (15:04 +0200)
Currently the baseboards do not offer a way to autodetect which one is
in use, so we ask the user if no value has been set.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
configs/pico-imx6ul_defconfig
include/configs/pico-imx6ul.h

index 56cb4810dcfc311a82784f1ad60f058d7eff3609..3d4063b136228d5c168f33c12529cfb88b9d85a3 100644 (file)
@@ -13,13 +13,14 @@ CONFIG_DISTRO_DEFAULTS=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 CONFIG_BOOTDELAY=3
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 CONFIG_BOOTDELAY=3
-CONFIG_BOOTCOMMAND="run finduuid; run distro_bootcmd"
-CONFIG_DEFAULT_FDT_FILE="imx6ul-pico-hobbit.dtb"
+CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
+CONFIG_DEFAULT_FDT_FILE="ask"
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_SPL_I2C_SUPPORT=y
 CONFIG_SPL_USB_HOST_SUPPORT=y
 CONFIG_SPL_USB_GADGET_SUPPORT=y
 CONFIG_SPL_USB_SDP_SUPPORT=y
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_SPL_I2C_SUPPORT=y
 CONFIG_SPL_USB_HOST_SUPPORT=y
 CONFIG_SPL_USB_GADGET_SUPPORT=y
 CONFIG_SPL_USB_SDP_SUPPORT=y
+CONFIG_CMD_BOOTMENU=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_DFU=y
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_DFU=y
 # CONFIG_CMD_FLASH is not set
index 5fdbff93e0a8eb3194569bb03bb3077f41358327..9905b1eebb512ed0e0f9c565ec9bd1324a2ae1ba 100644 (file)
                "/imx6ul-pico-hobbit.dtb ext4 0 1;" \
                "rootfs part 0 2\0" \
 
                "/imx6ul-pico-hobbit.dtb ext4 0 1;" \
                "rootfs part 0 2\0" \
 
+#define BOOTMENU_ENV \
+       "bootmenu_0=Boot using PICO-Hobbit baseboard=" \
+               "setenv fdtfile imx6ul-pico-hobbit.dtb\0" \
+
 #define CONFIG_SYS_MMC_IMG_LOAD_PART   1
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
 #define CONFIG_SYS_MMC_IMG_LOAD_PART   1
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
@@ -59,6 +63,7 @@
        "fdt_high=0xffffffff\0" \
        "initrd_high=0xffffffff\0" \
        "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
        "fdt_high=0xffffffff\0" \
        "initrd_high=0xffffffff\0" \
        "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
+       BOOTMENU_ENV \
        "fdt_addr=0x83000000\0" \
        "fdt_addr_r=0x83000000\0" \
        "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
        "fdt_addr=0x83000000\0" \
        "fdt_addr_r=0x83000000\0" \
        "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
        "scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \
        "mmcautodetect=yes\0" \
        CONFIG_DFU_ENV_SETTINGS \
        "scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \
        "mmcautodetect=yes\0" \
        CONFIG_DFU_ENV_SETTINGS \
+       "findfdt=" \
+               "if test $fdtfile = ask ; then " \
+                       "bootmenu -1; fi;" \
+               "if test $fdtfile != ask ; then " \
+                       "saveenv; fi;\0" \
        "finduuid=part uuid mmc 0:1 uuid\0" \
        "partitions=" \
                "uuid_disk=${uuid_gpt_disk};" \
        "finduuid=part uuid mmc 0:1 uuid\0" \
        "partitions=" \
                "uuid_disk=${uuid_gpt_disk};" \