From 2dd6c0e7e2ee54784169d68933ab5b2e44881585 Mon Sep 17 00:00:00 2001
From: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
Date: Mon, 2 May 2022 23:47:59 +0200
Subject: [PATCH] use distro_bootcmd

 - this partially reverts b3a8287b which prevented BOOTENV as set by
   config_distro_boot.h being appended to CONFIG_EXTRA_ENV_SETTINGS
 - distro_bootcmd can do everything the nested loop can do:
     * boot from usb
     * arbitrary boot order
     * set arbitrary boot partition
     * search arbitrary list of prefixes
     * load a boot.scr
 - in addition to that, distro_bootcmd:
     * is the standard boot mechanism for distros (see doc/README.distro)
     * thus we can replace hard-to-read custom code
     * works with extlinux.conf (needed for debian-installer)
---
 .../boundary/nitrogen8m_som/nitrogen8m_som.c  | 29 ++++---------------
 include/configs/nitrogen8m_som.h              |  7 +++--
 2 files changed, 10 insertions(+), 26 deletions(-)

diff --git a/board/boundary/nitrogen8m_som/nitrogen8m_som.c b/board/boundary/nitrogen8m_som/nitrogen8m_som.c
index f70bbd92e5d..acb702a5fb3 100644
--- a/board/boundary/nitrogen8m_som/nitrogen8m_som.c
+++ b/board/boundary/nitrogen8m_som/nitrogen8m_som.c
@@ -330,37 +330,20 @@ static void set_env_vars(void)
 	env_set("soc", "imx8mq");
 	env_set("imx_cpu", get_imx_type((get_cpu_rev() & 0xFF000) >> 12));
 	env_set("uboot_defconfig", CONFIG_DEFCONFIG);
+	env_set("stdin", "serial,usbkbd");
 	env_set("stdout", "serial,vga");
 	env_set("stderr", "serial,vga");
 
 	// MNT Reform 2
-	env_set("fdt_addr", "0x50000000");
-	env_set("ramdiskaddr", "0x51000000");
+	env_set("fdt_addr_r", "0x50000000");
+	env_set("ramdisk_addr_r", "0x44000000");
 #ifdef MNTREFORM_BOOT_RISCOS
 	env_set("bootcmd", "usb start; usb reset; ext4load mmc 1 ${loadaddr} /RISCOSIMX8M; go ${loadaddr} 32");
 #else
-	// boot normal system using boot.scr
+	// boot normal system using distro_bootcmd
 	env_set("kernel_addr_r", "0x40480000");
-	env_set("fdt_addr_r", "0x50000000");
-	env_set("ramdisk_addr_r", "0x51000000");
-	env_set("bootpart", "1");
-	env_set("script", "boot.scr");
-	env_set("bootcmd",
-			"usb start; "
-			"setenv devtype; "            // unset environment variable so that the loop variable takes precedence
-			"for devtype in usb mmc; do " // first try usb, then SD card or eMMC
-				"setenv devnum; "         // unset environment variable so that the loop variable takes precedence
-				"for devnum in 1 0; do "  // first try SD card (mmc1) then eMMC (mmc0)
-					"${devtype} dev ${devnum}; "
-					"if test \"${devtype}\" = \"usb\" || ${devtype} rescan; then "
-						"setenv prefix; " // unset environment variable so that the loop variable takes precedence
-						"for prefix in / /boot/; do " // search for boot.scr in / and in /boot/
-							"load ${devtype} ${devnum}:${bootpart} ${loadaddr} ${prefix}${script} && source; "
-						"done; "
-					"fi; "
-				"done; "
-			"done"
-		);
+	env_set("pxefile_addr_r", "0x60000000");
+	env_set("scriptaddr", "0x61000000");
 #endif
 
 	env_set("bootdelay", "1");
diff --git a/include/configs/nitrogen8m_som.h b/include/configs/nitrogen8m_som.h
index 3ada3900db5..ae84e6abf59 100644
--- a/include/configs/nitrogen8m_som.h
+++ b/include/configs/nitrogen8m_som.h
@@ -175,7 +175,8 @@
 #if (CONFIG_SYS_FSL_USDHC_NUM == 1)
 #define DISTRO_BOOT_DEV_MMC(func) func(MMC, mmc, 0)
 #elif (CONFIG_SYS_FSL_USDHC_NUM == 2)
-#define DISTRO_BOOT_DEV_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1)
+/* first try SD-Card, then eMMC */
+#define DISTRO_BOOT_DEV_MMC(func) func(MMC, mmc, 1) func(MMC, mmc, 0)
 #else
 #define DISTRO_BOOT_DEV_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1) func(MMC, mmc, 2)
 #endif
@@ -208,7 +209,7 @@
 #define SYS_AUXCORE_BOOTDATA_DDR	0x80000000
 #define SYS_AUXCORE_BOOTDATA_TCM	0x007E0000
 
-/*#define CONFIG_EXTRA_ENV_SETTINGS             \
+#define CONFIG_EXTRA_ENV_SETTINGS             \
 	"console=" BD_CONSOLE "\0" \
 	"env_dev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
 	"env_part=" __stringify(CONFIG_SYS_MMC_ENV_PART) "\0" \
@@ -247,7 +248,7 @@
 		"setenv ipaddr 10.0.0.2; " \
 		"setenv netmask 255.255.255.0; " \
 		"setenv serverip 10.0.0.1;\0" \
-    BOOTENV*/
+    BOOTENV
 
 /*
  * PCI express
-- 
GitLab