All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] imx8mm: configs: add support for distro boot commands
@ 2020-12-18  6:50 Alice Guo
  2020-12-18  6:50 ` [PATCH v3 2/2] board: imx8mm: add boot.cmd for distro boot on iMX8MM Alice Guo
  2021-01-23 15:49 ` [PATCH v3 1/2] imx8mm: configs: add support for distro boot commands sbabic at denx.de
  0 siblings, 2 replies; 4+ messages in thread
From: Alice Guo @ 2020-12-18  6:50 UTC (permalink / raw)
  To: u-boot

From: Alice Guo <alice.guo@nxp.com>

Supported boot device types in iMX8MM: MMC, DHCP.

CONFIG_CMD_PART is added for command part and CONFIG_CMD_FS_GENERIC is
for command fstype.

CONFIG_BOOTCOMMAND which is defined in include/configs/imx8mm_evk.h is
deleted because "run distro_bootcmd" is required to be the default boot
mode.

scriptaddr is the location in RAM where boot.scr.uimg/boot.scr will be
loaded to prior to execution.

kernel_addr_r is the location in RAM where the kernel will be loaded to.

Delete unnecessary environment variables.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
---

Changes for v3:
 - add Reviewed-by
 - re-add boot_fit, initrd_addr and bootm_size which may need to be used
Changes for v2:
 - remove supported boot device type QSPI
 - delete unnecessary environment variables
 - set "run distro_bootcmd" to be the default boot mode

 configs/imx8mm_evk_defconfig |  2 ++
 include/configs/imx8mm_evk.h | 64 +++++++-----------------------------
 2 files changed, 14 insertions(+), 52 deletions(-)

diff --git a/configs/imx8mm_evk_defconfig b/configs/imx8mm_evk_defconfig
index 91d3bc3ac9..4c0dd27e71 100644
--- a/configs/imx8mm_evk_defconfig
+++ b/configs/imx8mm_evk_defconfig
@@ -49,6 +49,8 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_FS_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
diff --git a/include/configs/imx8mm_evk.h b/include/configs/imx8mm_evk.h
index 83521ad401..6d4ae71f24 100644
--- a/include/configs/imx8mm_evk.h
+++ b/include/configs/imx8mm_evk.h
@@ -32,9 +32,20 @@

 #endif

+#ifndef CONFIG_SPL_BUILD
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 1) \
+	func(MMC, mmc, 2) \
+	func(DHCP, dhcp, na)
+
+#include <config_distro_bootcmd.h>
+#endif
+
 /* Initial environment variables */
 #define CONFIG_EXTRA_ENV_SETTINGS		\
-	"script=boot.scr\0" \
+	BOOTENV \
+	"scriptaddr=0x43500000\0" \
+	"kernel_addr_r=0x40880000\0" \
 	"image=Image\0" \
 	"console=ttymxc1,115200\0" \
 	"fdt_addr=0x43000000\0"			\
@@ -42,59 +53,8 @@
 	"fdt_file=imx8mm-evk.dtb\0" \
 	"initrd_addr=0x43800000\0"		\
 	"bootm_size=0x10000000\0" \
-	"mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
 	"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
 	"mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
-	"mmcautodetect=yes\0" \
-	"mmcargs=setenv bootargs console=${console} root=${mmcroot}\0 " \
-	"loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
-	"bootscript=echo Running bootscript from mmc ...; " \
-		"source\0" \
-	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
-	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
-	"mmcboot=echo Booting from mmc ...; " \
-		"run mmcargs; " \
-		"if test ${boot_fit} = yes || test ${boot_fit} = try; then " \
-			"bootm ${loadaddr}; " \
-		"else " \
-			"if run loadfdt; then " \
-				"booti ${loadaddr} - ${fdt_addr}; " \
-			"else " \
-				"echo WARN: Cannot load the DT; " \
-			"fi; " \
-		"fi;\0" \
-	"netargs=setenv bootargs console=${console} " \
-		"root=/dev/nfs " \
-		"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
-	"netboot=echo Booting from net ...; " \
-		"run netargs;  " \
-		"if test ${ip_dyn} = yes; then " \
-			"setenv get_cmd dhcp; " \
-		"else " \
-			"setenv get_cmd tftp; " \
-		"fi; " \
-		"${get_cmd} ${loadaddr} ${image}; " \
-		"if test ${boot_fit} = yes || test ${boot_fit} = try; then " \
-			"bootm ${loadaddr}; " \
-		"else " \
-			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
-				"booti ${loadaddr} - ${fdt_addr}; " \
-			"else " \
-				"echo WARN: Cannot load the DT; " \
-			"fi; " \
-		"fi;\0"
-
-#define CONFIG_BOOTCOMMAND \
-	   "mmc dev ${mmcdev}; if mmc rescan; then " \
-		   "if run loadbootscript; then " \
-			   "run bootscript; " \
-		   "else " \
-			   "if run loadimage; then " \
-				   "run mmcboot; " \
-			   "else run netboot; " \
-			   "fi; " \
-		   "fi; " \
-	   "fi;"

 /* Link Definitions */
 #define CONFIG_LOADADDR			0x40480000
--
2.17.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v3 2/2] board: imx8mm: add boot.cmd for distro boot on iMX8MM
  2020-12-18  6:50 [PATCH v3 1/2] imx8mm: configs: add support for distro boot commands Alice Guo
@ 2020-12-18  6:50 ` Alice Guo
  2021-01-23 15:49   ` sbabic at denx.de
  2021-01-23 15:49 ` [PATCH v3 1/2] imx8mm: configs: add support for distro boot commands sbabic at denx.de
  1 sibling, 1 reply; 4+ messages in thread
From: Alice Guo @ 2020-12-18  6:50 UTC (permalink / raw)
  To: u-boot

From: Alice Guo <alice.guo@nxp.com>

Distro Boot requires a U-Boot-specific script named boot.scr or
boot.scr.uimg which contains boot commands to boot the system. The
boot.cmd is such a file. Use mkimage to generate boot.scr or
boot.scr.uimg from boot.cmd, and the command is:
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Distro Boot Script" -d boot.cmd boot.scr.uimg

The boot.cmd file is an example script and can be modified based on
needs. bootargs is set in this script and root uses the default value "
/dev/mmcblk1p2 rootwait rw" which can be changed by overriding mmcroot.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
---

Changes for v3:
 - add Reviewed-by
Changes for v2:
 - add the additional explanation of boot.cmd in commit message

 board/freescale/imx8mm_evk/boot.cmd | 35 +++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 board/freescale/imx8mm_evk/boot.cmd

diff --git a/board/freescale/imx8mm_evk/boot.cmd b/board/freescale/imx8mm_evk/boot.cmd
new file mode 100644
index 0000000000..fdfceec263
--- /dev/null
+++ b/board/freescale/imx8mm_evk/boot.cmd
@@ -0,0 +1,35 @@
+setenv bootargs console=${console} root=${mmcroot};
+
+for boot_target in ${boot_targets};
+do
+        if test "${boot_target}" = "mmc1" ; then
+                if fatload mmc 1:${mmcpart} ${kernel_addr_r} ${image}; then
+                        if fatload mmc 1:${mmcpart} ${fdt_addr} ${fdt_file}; then
+                                echo Load image and .dtb from SD card(mmc1);
+                                booti ${kernel_addr_r} - ${fdt_addr};
+                                exit;
+                        fi
+                fi
+        fi
+
+        if test "${boot_target}" = "mmc2" ; then
+                if fatload mmc 2:${mmcpart} ${kernel_addr_r} ${image}; then
+                        if fatload mmc 2:${mmcpart} ${fdt_addr} ${fdt_file}; then
+                                echo Load image and .dtb from eMMC(mmc2);
+                                booti ${kernel_addr_r} - ${fdt_addr};
+                                exit;
+                        fi
+                fi
+        fi
+
+        if test "${boot_target}" = "dhcp" ; then
+                if dhcp ${kernel_addr_r} ${serverip}:${image}; then
+                        if dhcp ${fdt_addr} ${serverip}:${fdt_file}; then
+                                echo Load image and .dtb from net(dhcp);
+                                booti ${kernel_addr_r} - ${fdt_addr};
+                                exit;
+                        fi
+                fi
+        fi
+
+done
--
2.17.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v3 1/2] imx8mm: configs: add support for distro boot commands
  2020-12-18  6:50 [PATCH v3 1/2] imx8mm: configs: add support for distro boot commands Alice Guo
  2020-12-18  6:50 ` [PATCH v3 2/2] board: imx8mm: add boot.cmd for distro boot on iMX8MM Alice Guo
@ 2021-01-23 15:49 ` sbabic at denx.de
  1 sibling, 0 replies; 4+ messages in thread
From: sbabic at denx.de @ 2021-01-23 15:49 UTC (permalink / raw)
  To: u-boot

> From: Alice Guo <alice.guo@nxp.com>
> Supported boot device types in iMX8MM: MMC, DHCP.
> CONFIG_CMD_PART is added for command part and CONFIG_CMD_FS_GENERIC is
> for command fstype.
> CONFIG_BOOTCOMMAND which is defined in include/configs/imx8mm_evk.h is
> deleted because "run distro_bootcmd" is required to be the default boot
> mode.
> scriptaddr is the location in RAM where boot.scr.uimg/boot.scr will be
> loaded to prior to execution.
> kernel_addr_r is the location in RAM where the kernel will be loaded to.
> Delete unnecessary environment variables.
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Signed-off-by: Alice Guo <alice.guo@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v3 2/2] board: imx8mm: add boot.cmd for distro boot on iMX8MM
  2020-12-18  6:50 ` [PATCH v3 2/2] board: imx8mm: add boot.cmd for distro boot on iMX8MM Alice Guo
@ 2021-01-23 15:49   ` sbabic at denx.de
  0 siblings, 0 replies; 4+ messages in thread
From: sbabic at denx.de @ 2021-01-23 15:49 UTC (permalink / raw)
  To: u-boot

> From: Alice Guo <alice.guo@nxp.com>
> Distro Boot requires a U-Boot-specific script named boot.scr or
> boot.scr.uimg which contains boot commands to boot the system. The
> boot.cmd is such a file. Use mkimage to generate boot.scr or
> boot.scr.uimg from boot.cmd, and the command is:
> mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Distro Boot Script" -d boot.cmd boot.scr.uimg
> The boot.cmd file is an example script and can be modified based on
> needs. bootargs is set in this script and root uses the default value "
> /dev/mmcblk1p2 rootwait rw" which can be changed by overriding mmcroot.
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Signed-off-by: Alice Guo <alice.guo@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-01-23 15:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-18  6:50 [PATCH v3 1/2] imx8mm: configs: add support for distro boot commands Alice Guo
2020-12-18  6:50 ` [PATCH v3 2/2] board: imx8mm: add boot.cmd for distro boot on iMX8MM Alice Guo
2021-01-23 15:49   ` sbabic at denx.de
2021-01-23 15:49 ` [PATCH v3 1/2] imx8mm: configs: add support for distro boot commands sbabic at denx.de

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.