From 22dda6bd8b2b495a71d3776cf0b4379fe14fd8bc Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Fri, 29 Jun 2018 15:19:13 -0300 Subject: [PATCH] pico-imx7d: Add bootmenu to choose the baseboard 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 --- configs/pico-imx7d_defconfig | 3 ++- include/configs/pico-imx7d.h | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/configs/pico-imx7d_defconfig b/configs/pico-imx7d_defconfig index 27e5ca9..3eb26c7 100644 --- a/configs/pico-imx7d_defconfig +++ b/configs/pico-imx7d_defconfig @@ -12,12 +12,13 @@ CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_IMX_RDC=y CONFIG_DISTRO_DEFAULTS=y CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg" -CONFIG_BOOTCOMMAND="run finduuid; run distro_bootcmd" +CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd" 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_BOOTD is not set +CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_IMI is not set # CONFIG_CMD_XIMG is not set CONFIG_CMD_DFU=y diff --git a/include/configs/pico-imx7d.h b/include/configs/pico-imx7d.h index f974b79..94c846a 100644 --- a/include/configs/pico-imx7d.h +++ b/include/configs/pico-imx7d.h @@ -40,6 +40,10 @@ "/boot/imx7d-pico-pi.dtb ext4 0 1;" \ "rootfs part 0 1\0" \ +#define BOOTMENU_ENV \ + "bootmenu_0=Boot using PICO-PI baseboard=" \ + "setenv fdtfile imx7d-pico-pi.dtb\0" \ + #define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */ #define CONFIG_SYS_MMC_IMG_LOAD_PART 1 @@ -49,7 +53,8 @@ "console=ttymxc4\0" \ "fdt_high=0xffffffff\0" \ "initrd_high=0xffffffff\0" \ - "fdtfile=imx7d-pico-pi.dtb\0" \ + "fdtfile=ask\0" \ + BOOTMENU_ENV \ "fdt_addr=0x83000000\0" \ "fdt_addr_r=0x83000000\0" \ "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ @@ -58,6 +63,11 @@ "ramdiskaddr=0x83000000\0" \ "scriptaddr=" __stringify(CONFIG_LOADADDR) "\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};" \