diff mbox series

[U-Boot,08/16] pico-imx7d: Add bootmenu to choose the baseboard

Message ID 20180629181921.18970-8-otavio@ossystems.com.br
State Accepted
Commit 22dda6bd8b2b495a71d3776cf0b4379fe14fd8bc
Delegated to: Stefano Babic
Headers show
Series [U-Boot,01/16] pico-imx7d: Convert to distro config | expand

Commit Message

Otavio Salvador June 29, 2018, 6:19 p.m. UTC
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-imx7d_defconfig |  3 ++-
 include/configs/pico-imx7d.h | 12 +++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/configs/pico-imx7d_defconfig b/configs/pico-imx7d_defconfig
index 27e5ca910a..3eb26c75d6 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 f974b79b3b..94c846a395 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};" \