From b5f1593eac18b7aa5f9653bcebacaff377318046 Mon Sep 17 00:00:00 2001
From: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
Date: Mon, 9 Oct 2023 09:50:48 +0200
Subject: [PATCH] tqma8mpxl: enable distro boot

Signed-off-by: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
---
 .../tqma8mpxl_multi_mba8mp_ras314_defconfig   |   3 +-
 configs/tqma8mpxl_multi_mba8mpxl_defconfig    |   2 +-
 include/configs/tqma8mpxl-mba8mp-ras314.h     |   8 +-
 include/configs/tqma8mpxl-mba8mpxl.h          |   8 +-
 include/configs/tqma8mpxl.h                   | 227 ++----------------
 5 files changed, 40 insertions(+), 208 deletions(-)

diff --git a/configs/tqma8mpxl_multi_mba8mp_ras314_defconfig b/configs/tqma8mpxl_multi_mba8mp_ras314_defconfig
index 0cd4aee354..2b84636312 100644
--- a/configs/tqma8mpxl_multi_mba8mp_ras314_defconfig
+++ b/configs/tqma8mpxl_multi_mba8mp_ras314_defconfig
@@ -15,7 +15,6 @@ CONFIG_FIT_SIGNATURE=y
 CONFIG_FIT_CIPHER=y
 CONFIG_LEGACY_IMAGE_FORMAT=y
 CONFIG_BOOTDELAY=3
-CONFIG_BOOTCOMMAND="run mmcboot"
 CONFIG_VERSION_VARIABLE=y
 CONFIG_ARCH_MISC_INIT=y
 CONFIG_CMD_LICENSE=y
@@ -53,7 +52,9 @@ CONFIG_SYSRESET=y
 CONFIG_SYSRESET_PSCI=y
 CONFIG_NXP_TMU=y
 CONFIG_DM_VIDEO=y
+CONFIG_FAT_WRITE=y
 CONFIG_DYNAMIC_CRC_TABLE=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
 CONFIG_LMB_MAX_REGIONS=16
+CONFIG_CMD_IMPORTENV=y
diff --git a/configs/tqma8mpxl_multi_mba8mpxl_defconfig b/configs/tqma8mpxl_multi_mba8mpxl_defconfig
index d020405a6b..db20a5c897 100644
--- a/configs/tqma8mpxl_multi_mba8mpxl_defconfig
+++ b/configs/tqma8mpxl_multi_mba8mpxl_defconfig
@@ -14,7 +14,6 @@ CONFIG_FIT_SIGNATURE=y
 CONFIG_FIT_CIPHER=y
 CONFIG_LEGACY_IMAGE_FORMAT=y
 CONFIG_BOOTDELAY=3
-CONFIG_BOOTCOMMAND="run mmcboot"
 CONFIG_VERSION_VARIABLE=y
 CONFIG_ARCH_MISC_INIT=y
 CONFIG_CMD_LICENSE=y
@@ -57,3 +56,4 @@ CONFIG_DYNAMIC_CRC_TABLE=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
 CONFIG_LMB_MAX_REGIONS=16
+CONFIG_CMD_IMPORTENV=y
diff --git a/include/configs/tqma8mpxl-mba8mp-ras314.h b/include/configs/tqma8mpxl-mba8mp-ras314.h
index 9a38680c83..7eef5bedff 100644
--- a/include/configs/tqma8mpxl-mba8mp-ras314.h
+++ b/include/configs/tqma8mpxl-mba8mp-ras314.h
@@ -27,6 +27,12 @@
 
 #define BB_ENV_SETTINGS \
 	"console=" CONSOLE_DEV "\0" \
-	"fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0"
+	"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 0) \
+	func(MMC, mmc, 1) \
+	func(PXE, pxe, na) \
+	func(DHCP, dhcp, na)
 
 #endif /* __TQMA8MPXL_MBA8MPRAS314_H */
diff --git a/include/configs/tqma8mpxl-mba8mpxl.h b/include/configs/tqma8mpxl-mba8mpxl.h
index f652a02eba..351c13ad94 100644
--- a/include/configs/tqma8mpxl-mba8mpxl.h
+++ b/include/configs/tqma8mpxl-mba8mpxl.h
@@ -27,6 +27,12 @@
 
 #define BB_ENV_SETTINGS \
 	"console=" CONSOLE_DEV "\0" \
-	"fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0"
+	"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 0) \
+	func(MMC, mmc, 1) \
+	func(PXE, pxe, na) \
+	func(DHCP, dhcp, na)
 
 #endif /* __TQMA8MPXL_MBA8MPXL_H */
diff --git a/include/configs/tqma8mpxl.h b/include/configs/tqma8mpxl.h
index 6e832128db..4a31298461 100644
--- a/include/configs/tqma8mpxl.h
+++ b/include/configs/tqma8mpxl.h
@@ -10,10 +10,12 @@
 
 #include <linux/sizes.h>
 #include <asm/arch/imx-regs.h>
-#include "imx_env.h"
+#include <config_distro_bootcmd.h>
+#include <environment/tq/boot.h>
 
 #define CONFIG_SPL_MAX_SIZE			(152 * 1024)
 #define CONFIG_SYS_MONITOR_LEN			(512 * 1024)
+
 #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
 /*
  * 0x300 sectors -> 384 k -> 0x60000: offset of FIT image created with
@@ -23,13 +25,12 @@
 #define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION	1
 /*
  * we use spl_nor to read FIT image created with imx-mkimage from QSPI
- * using memory mapped read. Offset is the same as for SD / e-MMC
+ * using memory mapped read. Needs SPL_NOR_SUPPORT to be set!
  */
 #define CONFIG_SYS_UBOOT_BASE	(QSPI0_AMBA_BASE + \
 				 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512)
 
 #ifdef CONFIG_SPL_BUILD
-
 #define CONFIG_SPL_STACK		0x187FF0	/* OCRAM_S */
 #define CONFIG_SPL_BSS_START_ADDR	0x0095e000	/* OCRAM, after code */
 #define CONFIG_SPL_BSS_MAX_SIZE		0x2000		/* 8 KB */
@@ -53,198 +54,25 @@
 
 #define CONFIG_REMAKE_ELF
 
-/* TODO: JAILHOUSE support */
-
-#define CONFIG_MFG_ENV_SETTINGS \
-	CONFIG_MFG_ENV_SETTINGS_DEFAULT \
-	"initrd_addr=0x43800000\0" \
-	"initrd_high=0xffffffffffffffff\0" \
-	"emmc_dev=0\0"\
-	"sd_dev=1\0" \
-
-#if defined(CONFIG_IMX_BOOTAUX)
-
-/*
- * cm_loadaddr is set to TCML per default.
- * cm_maxsize is used to prevent loading too large images. This limit is
- * 128 kiByte for TCML.
- * Size and base address can be changed to RAM address or SPI NOR if larger
- * images are needed. In this case further adaption is needed.
- */
-#define CM_ENV_SETTINGS                                                        \
-	"cm_image=cm.bin\0"                                                    \
-	"cm_loadaddr=0x7e0000\0"                                               \
-	"cm_maxsize=0x20000\0"                                                 \
-	"boot_cm_mmc=mmc dev ${mmcdev}; mmc rescan; "                          \
-			"if load mmc ${mmcdev}:${mmcpart} ${loadaddr} "        \
-				"${mmcpath}/${cm_image}; then "                \
-			"if itest ${filesize} > 0; then "                      \
-				"if itest ${filesize} <= ${cm_maxsize}; then " \
-					"cp.b ${loadaddr} ${cm_loadaddr} "     \
-						"${filesize};"                 \
-					"dcache flush; "                       \
-					"bootaux ${cm_loadaddr}; "             \
-				"else "                                        \
-					"echo ${filesize} > ${cm_maxsize}; "   \
-					"false; "                              \
-				"fi; "                                         \
-			"else "                                                \
-				"echo invalid data size; "                     \
-				"false; "                                      \
-			"fi; "                                                 \
-		"else "                                                        \
-			"echo file not loaded; "                               \
-			"false; "                                              \
-		"fi; setenv filesize;\0"                                       \
-	"update_cm_mmc=run set_getcmd; "                                       \
-		"if ${get_cmd} ${cm_image}; then "                             \
-			"if itest ${filesize} > 0; then "                      \
-				"mmc dev ${mmcdev}; mmc rescan; "              \
-				"echo Write CM image to mmc ...; "             \
-				"save mmc ${mmcdev}:${mmcpart} ${loadaddr} "   \
-					"${mmcpath}${cm_image} ${filesize}; "  \
-			"fi; "                                                 \
-		"fi; "                                                         \
-		"setenv filesize; setenv get_cmd\0"
-
-#else
-
-#define CM_ENV_SETTINGS
-
-#endif
-
 /* Initial environment variables */
 #define MODULE_ENV_SETTINGS		\
-	CONFIG_MFG_ENV_SETTINGS \
-	"script=boot.scr\0" \
-	"image=Image\0" \
-	"splashimage=0x50000000\0" \
-	"fdt_addr=0x43000000\0"			\
-	"boot_fit=no\0" \
-	"initrd_addr=0x43800000\0"		\
-	"initrd_high=0xffffffffffffffff\0" \
-	"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
-	"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
-	"mmcpath=/\0" \
+	"uboot_mmc_start=0x40\0" \
+	"uboot_mmc_size=0xfc0\0" \
+	"uboot_fspi_start=0x0\0" \
+	"uboot_fspi_size=0x400000\0" \
+	"fdt_addr_r=0x44000000\0" \
+	"kernel_addr_r=0x42000000\0" \
+	"ramdisk_addr_r=0x46400000\0" \
+	"scriptaddr=0x46000000\0" \
+	"pxefile_addr_r=0x51000000\0" \
+	"emmc_dev=0\0" /* for UUU */ \
+	"sd_dev=1\0" /* for UUU */ \
+	"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" /* for update_*_mmc */ \
+	"bootpart=" __stringify(CONFIG_SYS_MMCSD_FS_BOOT_PARTITION) "\0" /* for update_cm_mmc */ \
+	"mmcpath=/\0" /* for update_cm_mmc */ \
 	"mmcautodetect=yes\0" \
-	"loadbootscript=mmc dev ${mmcdev}; mmc rescan;" \
-		"load mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
-		"${mmcpath}${script};\0" \
-	"bootscript=echo Running bootscript from mmc ...; " \
-		"source\0" \
-	"loadimage=mmc dev ${mmcdev}; mmc rescan;" \
-		"load mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
-			"${mmcpath}${image}\0" \
-	"loadfdt=mmc dev ${mmcdev}; mmc rescan;" \
-		"load mmc ${mmcdev}:${mmcpart} ${fdt_addr} " \
-			"${mmcpath}${fdt_file}\0" \
-	"boot_os=booti ${loadaddr} - ${fdt_addr};\0" \
-	"mmcboot=echo Booting from mmc ...; " \
-		"setenv bootargs; " \
-		"run mmcargs; " \
-		"if test ${boot_fit} = yes || test ${boot_fit} = try; then " \
-			"bootm ${loadaddr}; " \
-		"else " \
-			"if run loadfdt; then " \
-				"if run loadimage; then " \
-					"run boot_os; " \
-				"else " \
-					"echo WARN: Cannot load the kernel; " \
-				"fi; " \
-			"else " \
-				"echo WARN: Cannot load the DT; " \
-			"fi; " \
-		"fi;\0" \
-	"netboot=echo Booting from net ...; " \
-		"setenv bootargs; " \
-		"run netargs;  " \
-		"run set_getcmd; " \
-		"${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 " \
-				"run boot_os; " \
-			"else " \
-				"echo WARN: Cannot load the DT; " \
-			"fi; " \
-		"fi;\0" \
-	"update_kernel_mmc=run set_getcmd; "                                   \
-		"if ${get_cmd} ${image}; then "                                \
-			"if itest ${filesize} > 0; then "                      \
-				"echo Write to mmc ${mmcdev}:${mmcpart}...; "  \
-				"mmc dev ${mmcdev}; mmc rescan;" \
-				"save mmc ${mmcdev}:${mmcpart} ${loadaddr} "   \
-					"${mmcpath}${image} ${filesize}; "     \
-			"fi; "                                                 \
-		"fi; "                                                         \
-		"setenv filesize; setenv get_cmd \0"                           \
-	"update_fdt_mmc=run set_getcmd; "                                      \
-		"if ${get_cmd} ${fdt_file}; then "                             \
-			"if itest ${filesize} > 0; then "                      \
-				"echo Write to mmc ${mmcdev}:${mmcpart}...; "  \
-				"mmc dev ${mmcdev}; mmc rescan;" \
-				"save mmc ${mmcdev}:${mmcpart} ${loadaddr} "   \
-					"${mmcpath}${fdt_file} ${filesize}; "  \
-			"fi; "                                                 \
-		"fi; "                                                         \
-		"setenv filesize; setenv get_cmd \0"                           \
-	"uboot_mmc_start=0x40\0"                                               \
-	"uboot_mmc_size=0xfc0\0"                                               \
-	"uboot_fspi_start=0x0\0"                                               \
-	"uboot_fspi_size=0x400000\0"                                           \
-	"uboot=bootstream.bin\0"                                               \
-	"update_uboot_mmc=run set_getcmd; if ${get_cmd} ${uboot}; then "       \
-		"if itest ${filesize} > 0; then "                              \
-			"echo Write u-boot image to mmc ${mmcdev} ...; "       \
-			"mmc dev ${mmcdev}; mmc rescan; "                      \
-			"setexpr blkc ${filesize} + 0x1ff; "                   \
-			"setexpr blkc ${blkc} / 0x200; "                       \
-			"if itest ${blkc} <= ${uboot_mmc_size}; then "         \
-				"mmc write ${loadaddr} ${uboot_mmc_start} "    \
-					"${blkc}; "                            \
-			"fi; "                                                 \
-		"fi; fi; "                                                     \
-		"setenv filesize; setenv blkc \0"                              \
-	"set_getcmd=if test \"${ip_dyn}\" = yes; then "                        \
-			"setenv get_cmd dhcp; "                                \
-		"else "                                                        \
-			"setenv get_cmd tftp; "                                \
-		"fi; \0"                                                       \
-	"rootfsmode=ro\0"                                                      \
-	"addtty=setenv bootargs ${bootargs} console=${console},${baudrate}\0"  \
-	"mmcargs=run addtty addmmc\0"                              \
-	"mmcrootpart=2\0"                                                      \
-	"addmmc=setenv bootargs ${bootargs} "                                  \
-		"root=/dev/mmcblk${mmcblkdev}p${mmcrootpart} ${rootfsmode} "   \
-		"rootwait\0"                                                   \
-	"netargs=run addnfs addip addtty\0"                        \
-	"addnfs=setenv bootargs ${bootargs} "                                  \
-		"root=/dev/nfs rw "                                            \
-		"nfsroot=${serverip}:${rootpath},v3,tcp;\0"                    \
-	"netdev=eth0\0"                                                        \
-	"rootpath=/srv/nfs\0"                                                  \
-	"ipmode=static\0"                                                      \
-	"addip_static=setenv bootargs ${bootargs} "                            \
-		"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:"            \
-		"${hostname}:${netdev}:off\0"                                  \
-	"addip_dynamic=setenv bootargs ${bootargs} ip=dhcp\0"                  \
-	"addip=if test \"${ipmode}\" != static; then "                         \
-		"run addip_dynamic; else run addip_static; fi\0"
-
-#if !defined(CONFIG_BOOTCOMMAND)
-#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; " \
-	   "else run boot_os; fi"
-#endif
+	"boot_targets_auto=yes\0" \
+	""
 
 /* Link Definitions */
 #define CONFIG_LOADADDR			0x40480000
@@ -345,21 +173,12 @@
 #error
 #endif
 
-#include "tqma8-shared-env.h"
+#define CONFIG_IMX6_PWM_PER_CLK 24000000
 
 #define CONFIG_EXTRA_ENV_SETTINGS	\
-	TQMA8_SHARED_ENV_SETTINGS	\
-	CM_ENV_SETTINGS			\
+	TQ_BOOT_ENV_SETTINGS  \
+	BOOTENV \
 	MODULE_ENV_SETTINGS		\
 	BB_ENV_SETTINGS
 
-#ifndef CONFIG_SPL_BUILD
-#define BOOT_TARGET_DEVICES(func) \
-	func(MMC, mmc, 0) \
-	func(USB, usb, 0)
-#include <config_distro_bootcmd.h>
-#endif
-
-#define CONFIG_IMX6_PWM_PER_CLK 24000000
-
 #endif /* __TQMA8MPXL_H */
-- 
2.34.1

