diff --git a/config/sources/families/imx8m.conf b/config/sources/families/imx8m.conf index 4804cf166..ca699ba89 100644 --- a/config/sources/families/imx8m.conf +++ b/config/sources/families/imx8m.conf @@ -23,7 +23,7 @@ case $BOARD in ATFSOURCE='https://github.com/tq-systems/atf' # required for ram ATFBRANCH="branch:TQM-lf_v2.10" BOOTSOURCE='https://github.com/tq-systems/u-boot-tqmaxx.git' # u-boot mainlining is hard and has low-priority - BOOTBRANCH='branch:TQMa8-v2020.04_imx_5.4.70_2.3.0' + BOOTBRANCH='commit:90aea55d842b6c3c978530532e16110123995002' BOOTPATCHDIR="u-boot-tqma" # could be removed when distro boot patches are integrated ;; esac diff --git a/config/sources/families/include/imx8_common.inc b/config/sources/families/include/imx8_common.inc index b5c53aeb2..376593062 100644 --- a/config/sources/families/include/imx8_common.inc +++ b/config/sources/families/include/imx8_common.inc @@ -11,7 +11,7 @@ ARCH="arm64" KERNEL_IMAGE_TYPE="Image" OVERLAY_DIR="/boot/dtb/freescale/overlay" SRC_EXTLINUX="yes" # use extlinux as default -IMX_FIRMWARE="${IMX_FIRMWARE:-"firmware-imx-8.12"}" +IMX_FIRMWARE="${IMX_FIRMWARE:-"firmware-imx-8.26-d4c33ab"}" # ATF_PLAT musst set in board # ATF_UART_BASE musst set in board # MAP = target_make,target_patchdir,target_files diff --git a/patch/u-boot/u-boot-tqma/0001-Revert-LFU-278-20-imx8m-imx93-Disable-BINMAN.patch b/patch/u-boot/u-boot-tqma/0001-Revert-LFU-278-20-imx8m-imx93-Disable-BINMAN.patch new file mode 100644 index 000000000..efdc73fc9 --- /dev/null +++ b/patch/u-boot/u-boot-tqma/0001-Revert-LFU-278-20-imx8m-imx93-Disable-BINMAN.patch @@ -0,0 +1,38 @@ +From 70a21131b3de21c5f340b14055d837991b3f046e Mon Sep 17 00:00:00 2001 +From: Martin Schmiedel +Date: Tue, 27 May 2025 07:45:46 +0200 +Subject: [PATCH] Revert "LFU-278-20 imx8m/imx93: Disable BINMAN" + +This reverts commit a52f5af6be925fe14a282901e722543a0a6139cf. +--- + arch/arm/mach-imx/imx8m/Kconfig | 1 + + arch/arm/mach-imx/imx9/Kconfig | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig +index 3ed8aeca5e0..63a728b2704 100644 +--- a/arch/arm/mach-imx/imx8m/Kconfig ++++ b/arch/arm/mach-imx/imx8m/Kconfig +@@ -2,6 +2,7 @@ if ARCH_IMX8M + + config IMX8M + bool ++ select BINMAN + select GICV3 if ARMV8_PSCI + select HAS_CAAM + select LTO +diff --git a/arch/arm/mach-imx/imx9/Kconfig b/arch/arm/mach-imx/imx9/Kconfig +index 9d4689b3084..688d54490b3 100644 +--- a/arch/arm/mach-imx/imx9/Kconfig ++++ b/arch/arm/mach-imx/imx9/Kconfig +@@ -7,6 +7,7 @@ config AHAB_BOOT + + config IMX9 + bool ++ select BINMAN + select HAS_CAAM + select ROM_UNIFIED_SECTIONS + +-- +2.43.0 + diff --git a/patch/u-boot/u-boot-tqma/0001-tqma8-enable-distro-boot.patch b/patch/u-boot/u-boot-tqma/0001-tqma8-enable-distro-boot.patch deleted file mode 100644 index d8321efe9..000000000 --- a/patch/u-boot/u-boot-tqma/0001-tqma8-enable-distro-boot.patch +++ /dev/null @@ -1,684 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martin Schmiedel -Date: Mon, 9 Oct 2023 09:50:48 +0200 -Subject: tqma8: enable distro boot - -Signed-off-by: Martin Schmiedel ---- - board/tqc/common/Kconfig | 4 + - board/tqc/common/Makefile | 1 + - board/tqc/common/tqc_bb.h | 6 + - board/tqc/common/tqc_distro.c | 37 ++ - board/tqc/tqma8mpxl/tqma8mpxl.c | 5 +- - board/tqc/tqma8mx/tqma8mx.c | 5 +- - board/tqc/tqma8mxml/tqma8mxml.c | 5 +- - configs/tqma8mxml_1gb_mba8mx_fspi_defconfig | 1 - - configs/tqma8mxml_1gb_mba8mx_mfg_defconfig | 1 - - configs/tqma8mxml_1gb_mba8mx_mmc_defconfig | 1 - - configs/tqma8mxml_2gb_mba8mx_fspi_defconfig | 1 - - configs/tqma8mxml_2gb_mba8mx_mfg_defconfig | 1 - - configs/tqma8mxml_2gb_mba8mx_mmc_defconfig | 1 - - configs/tqma8mxml_4gb_mba8mx_fspi_defconfig | 1 - - configs/tqma8mxml_4gb_mba8mx_mfg_defconfig | 1 - - configs/tqma8mxml_4gb_mba8mx_mmc_defconfig | 1 - - configs/tqma8mxnl_1gb_mba8mx_defconfig | 1 - - configs/tqma8mxnl_1gb_mba8mx_mfg_defconfig | 1 - - doc/board/tq/examples/boot-legacy.cmd | 26 + - include/configs/tqma8mxml-mba8mx.h | 11 +- - include/configs/tqma8mxml.h | 256 ++-------- - include/environment/tq/boot.h | 21 + - 22 files changed, 167 insertions(+), 221 deletions(-) - -diff --git a/board/tqc/common/Kconfig b/board/tqc/common/Kconfig -index 111111111111..222222222222 100644 ---- a/board/tqc/common/Kconfig -+++ b/board/tqc/common/Kconfig -@@ -16,6 +16,10 @@ config TQC_ENVLOC - bool - select ENV_IS_NOWHERE - -+config TQC_DISTRO -+ bool -+ default y if DISTRO_DEFAULTS -+ - config TQC_RTC - bool - -diff --git a/board/tqc/common/Makefile b/board/tqc/common/Makefile -index 111111111111..222222222222 100644 ---- a/board/tqc/common/Makefile -+++ b/board/tqc/common/Makefile -@@ -24,6 +24,7 @@ obj-$(CONFIG_TQC_EMMC) += tqc_emmc.o - obj-$(CONFIG_TQC_SDMMC) += tqc_sdmmc.o - obj-$(CONFIG_TQC_SCU) += tqc_scu.o - obj-$(CONFIG_TQC_RTC) += tqc_rtc.o -+obj-$(CONFIG_TQC_DISTRO) += tqc_distro.o - obj-$(CONFIG_TQC_ENVLOC) += tqc_envloc.o - obj-$(CONFIG_TQC_VARD) += tq_som_features.o - obj-$(CONFIG_TQC_SPI_NOR) += tqc_spi_nor.o -diff --git a/board/tqc/common/tqc_bb.h b/board/tqc/common/tqc_bb.h -index 111111111111..222222222222 100644 ---- a/board/tqc/common/tqc_bb.h -+++ b/board/tqc/common/tqc_bb.h -@@ -64,4 +64,10 @@ int tqc_pcf85063_set_clkout(int bus, int address, uint8_t clkout); - int tqc_pcf85063_set_offset(int bus, int address, bool mode, int offset); - #endif /* CONFIG_TQC_RTC */ - -+#if IS_ENABLED(CONFIG_TQC_DISTRO) -+void tqc_distro_env_init(const char *boot_devtype); -+#else -+static inline void tqc_distro_env_init(const char *boot_devtype) {} -+#endif -+ - #endif -diff --git a/board/tqc/common/tqc_distro.c b/board/tqc/common/tqc_distro.c -new file mode 100644 -index 000000000000..111111111111 ---- /dev/null -+++ b/board/tqc/common/tqc_distro.c -@@ -0,0 +1,37 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * Copyright (c) 2023 TQ-Systems GmbH , -+ * D-82229 Seefeld, Germany. -+ * Author: Matthias Schiffer -+ */ -+ -+#include -+#include -+ -+/* -+ * Set up boot_targets for distroboot automatically -+ * -+ * If boot_targets_auto is set to "yes", boot_targets will be set to the -+ * correct device based on the environment device (which should be configured -+ * to be the boot device). Currently, this works for MMC devices. -+ */ -+void tqc_distro_env_init(const char *boot_devtype) -+{ -+ if (strcmp(env_get("boot_targets_auto") ?: "", "yes") != 0) -+ return; -+ -+ if (strcmp(boot_devtype, "mmc") == 0) { -+ int index = 0; -+ char buf[10]; -+ -+#ifdef CONFIG_ENV_IS_IN_MMC -+ index = mmc_get_env_dev(); -+#endif -+ -+ snprintf(buf, sizeof(buf), "mmc%d", index); -+ env_set("boot_targets", buf); -+ return; -+ } -+ -+ env_set("boot_targets", boot_devtype); -+} -diff --git a/board/tqc/tqma8mpxl/tqma8mpxl.c b/board/tqc/tqma8mpxl/tqma8mpxl.c -index 111111111111..222222222222 100644 ---- a/board/tqc/tqma8mpxl/tqma8mpxl.c -+++ b/board/tqc/tqma8mpxl/tqma8mpxl.c -@@ -294,9 +294,12 @@ int board_late_init(void) - - #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG - env_set("board_name", tqc_bb_get_boardname()); -- env_set("board_rev", tqc_get_boardname()); -+ env_set("board_rev", bname); - #endif - -+ /* TODO: Add support for detecting non-MMC boot devices */ -+ tqc_distro_env_init("mmc"); -+ - tqc_bb_board_late_init(); - - return 0; -diff --git a/board/tqc/tqma8mx/tqma8mx.c b/board/tqc/tqma8mx/tqma8mx.c -index 111111111111..222222222222 100644 ---- a/board/tqc/tqma8mx/tqma8mx.c -+++ b/board/tqc/tqma8mx/tqma8mx.c -@@ -219,9 +219,12 @@ int board_late_init(void) - - #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG - env_set("board_name", tqc_bb_get_boardname()); -- env_set("board_rev", tqc_get_boardname()); -+ env_set("board_rev", bname); - #endif - -+ /* TODO: Add support for detecting non-MMC boot devices */ -+ tqc_distro_env_init("mmc"); -+ - return tqc_bb_board_late_init(); - } - -diff --git a/board/tqc/tqma8mxml/tqma8mxml.c b/board/tqc/tqma8mxml/tqma8mxml.c -index 111111111111..222222222222 100644 ---- a/board/tqc/tqma8mxml/tqma8mxml.c -+++ b/board/tqc/tqma8mxml/tqma8mxml.c -@@ -179,9 +179,12 @@ int board_late_init(void) - - #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG - env_set("board_name", tqc_bb_get_boardname()); -- env_set("board_rev", tqc_get_boardname()); -+ env_set("board_rev", bname); - #endif - -+ /* TODO: Add support for detecting non-MMC boot devices */ -+ tqc_distro_env_init("mmc"); -+ - return tqc_bb_board_late_init(); - } - -diff --git a/configs/tqma8mxml_1gb_mba8mx_fspi_defconfig b/configs/tqma8mxml_1gb_mba8mx_fspi_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_1gb_mba8mx_fspi_defconfig -+++ b/configs/tqma8mxml_1gb_mba8mx_fspi_defconfig -@@ -8,7 +8,6 @@ CONFIG_TQMA8MXX_BOOT_FSPI=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxml_1gb_mba8mx_mfg_defconfig b/configs/tqma8mxml_1gb_mba8mx_mfg_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_1gb_mba8mx_mfg_defconfig -+++ b/configs/tqma8mxml_1gb_mba8mx_mfg_defconfig -@@ -9,7 +9,6 @@ CONFIG_TQMA8MXX_BOOT_SDCARD=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxml_1gb_mba8mx_mmc_defconfig b/configs/tqma8mxml_1gb_mba8mx_mmc_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_1gb_mba8mx_mmc_defconfig -+++ b/configs/tqma8mxml_1gb_mba8mx_mmc_defconfig -@@ -8,7 +8,6 @@ CONFIG_TQMA8MXX_BOOT_SDCARD=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxml_2gb_mba8mx_fspi_defconfig b/configs/tqma8mxml_2gb_mba8mx_fspi_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_2gb_mba8mx_fspi_defconfig -+++ b/configs/tqma8mxml_2gb_mba8mx_fspi_defconfig -@@ -7,7 +7,6 @@ CONFIG_TQMA8MXX_BOOT_FSPI=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxml_2gb_mba8mx_mfg_defconfig b/configs/tqma8mxml_2gb_mba8mx_mfg_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_2gb_mba8mx_mfg_defconfig -+++ b/configs/tqma8mxml_2gb_mba8mx_mfg_defconfig -@@ -8,7 +8,6 @@ CONFIG_TQMA8MXX_BOOT_SDCARD=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxml_2gb_mba8mx_mmc_defconfig b/configs/tqma8mxml_2gb_mba8mx_mmc_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_2gb_mba8mx_mmc_defconfig -+++ b/configs/tqma8mxml_2gb_mba8mx_mmc_defconfig -@@ -7,7 +7,6 @@ CONFIG_TQMA8MXX_BOOT_SDCARD=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxml_4gb_mba8mx_fspi_defconfig b/configs/tqma8mxml_4gb_mba8mx_fspi_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_4gb_mba8mx_fspi_defconfig -+++ b/configs/tqma8mxml_4gb_mba8mx_fspi_defconfig -@@ -8,7 +8,6 @@ CONFIG_TQMA8MXX_BOOT_FSPI=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxml_4gb_mba8mx_mfg_defconfig b/configs/tqma8mxml_4gb_mba8mx_mfg_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_4gb_mba8mx_mfg_defconfig -+++ b/configs/tqma8mxml_4gb_mba8mx_mfg_defconfig -@@ -9,7 +9,6 @@ CONFIG_TQMA8MXX_BOOT_SDCARD=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxml_4gb_mba8mx_mmc_defconfig b/configs/tqma8mxml_4gb_mba8mx_mmc_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxml_4gb_mba8mx_mmc_defconfig -+++ b/configs/tqma8mxml_4gb_mba8mx_mmc_defconfig -@@ -8,7 +8,6 @@ CONFIG_TQMA8MXX_BOOT_SDCARD=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxnl_1gb_mba8mx_defconfig b/configs/tqma8mxnl_1gb_mba8mx_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxnl_1gb_mba8mx_defconfig -+++ b/configs/tqma8mxnl_1gb_mba8mx_defconfig -@@ -6,7 +6,6 @@ CONFIG_TARGET_TQMA8MXNL=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/configs/tqma8mxnl_1gb_mba8mx_mfg_defconfig b/configs/tqma8mxnl_1gb_mba8mx_mfg_defconfig -index 111111111111..222222222222 100644 ---- a/configs/tqma8mxnl_1gb_mba8mx_mfg_defconfig -+++ b/configs/tqma8mxnl_1gb_mba8mx_mfg_defconfig -@@ -7,7 +7,6 @@ CONFIG_TQMA8MXX_MFG_SUPPORT=y - CONFIG_IMX_BOOTAUX=y - CONFIG_DISTRO_DEFAULTS=y - CONFIG_BOOTDELAY=3 --CONFIG_BOOTCOMMAND="run mmcboot" - CONFIG_VERSION_VARIABLE=y - CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_SEPARATE_BSS=y -diff --git a/doc/board/tq/examples/boot-legacy.cmd b/doc/board/tq/examples/boot-legacy.cmd -new file mode 100644 -index 000000000000..111111111111 ---- /dev/null -+++ b/doc/board/tq/examples/boot-legacy.cmd -@@ -0,0 +1,26 @@ -+test "${rootpart}" || setenv rootpart 2 -+ -+# devtype/devnum are part of the distroboot contract -+if test "${devtype}" = mmc; then -+ # Explicitly set device path, so the correct rootfs is used even when -+ # the same image has been written to eMMC and SD-card -+ setenv rootdev "/dev/mmcblk${devnum}p${rootpart}" -+else -+ # Generic fallback for other boot media like USB/SATA/... drives. -+ # Requires a unique partition UUID to work as expected. -+ part uuid ${devtype} ${devnum}:${rootpart} rootuuid -+ setenv rootdev "PARTUUID=${rootuuid}" -+fi -+setenv bootargs_root "root=${rootdev}" -+ -+# Set bootargs for additional arguments, or override bootargs_default -+# to replace the cmdline completely -+test "${bootargs_default}" || bootargs_default="${bootargs_root} rootwait rw console=${console},${baudrate}" -+setenv bootargs "${bootargs_default} ${bootargs}" -+ -+test "${bootfile}" || bootfile='/Image' -+test "${boottype}" || boottype='booti' -+ -+load "${devtype}" "${devnum}:${bootpart}" "${loadaddr}" "${bootfile}" || exit 1 -+load "${devtype}" "${devnum}:${bootpart}" "${fdt_addr_r}" "${fdtfile}" || exit 1 -+${boottype} "${loadaddr}" - "${fdt_addr_r}" -diff --git a/include/configs/tqma8mxml-mba8mx.h b/include/configs/tqma8mxml-mba8mx.h -index 111111111111..222222222222 100644 ---- a/include/configs/tqma8mxml-mba8mx.h -+++ b/include/configs/tqma8mxml-mba8mx.h -@@ -14,9 +14,12 @@ - - #define BB_ENV_SETTINGS \ - "console=" CONSOLE_DEV "\0" \ -- "addearlycon=setenv bootargs ${bootargs} " \ -- "earlycon=ec_imx6q," __stringify(CONFIG_MXC_UART_BASE) \ -- ",${baudrate}\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 /* __TQMA8MXML_MBA8MX_H */ -diff --git a/include/configs/tqma8mxml.h b/include/configs/tqma8mxml.h -index 111111111111..222222222222 100644 ---- a/include/configs/tqma8mxml.h -+++ b/include/configs/tqma8mxml.h -@@ -10,7 +10,8 @@ - - #include - #include --#include "imx_env.h" -+#include -+#include - - #define CONFIG_SPL_MAX_SIZE (208 * 1024) - #define CONFIG_SYS_MONITOR_LEN SZ_512K -@@ -71,13 +72,6 @@ - - #define CONFIG_REMAKE_ELF - --#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_IMX8MM) - - #define TQMA8MX_CPU_ENV_SETTINGS \ -@@ -102,193 +96,56 @@ - #error - #endif - --#if defined(CONFIG_IMX_BOOTAUX) -- --/* -- * cm_loadaddr is set to ITCM (instruction tightly coupled memory) on i.MX8MN -- * or TCML (i.MX8MM) per default. -- * cm_maxsize is used to prevent loading too large images. This limit is -- * 128 kiByte for i.MX8MM and i.MX8MN -- * 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 TQMA8MXML_CM_ENV_SETTINGS \ -- "cm_image=cm.bin\0" \ -- "cm_loadaddr=0x7e0000\0" \ -- "cm_maxsize=0x20000\0" \ -- "boot_cm_mmc=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 " \ -- "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 TQMA8MXML_CM_ENV_SETTINGS -- --#endif -- - /* Initial environment variables */ --#define TQMA8MX_MODULE_ENV_SETTINGS \ -+#define TQMA8MX_MODULE_ENV_SETTINGS \ - TQMA8MX_CPU_ENV_SETTINGS \ -- CONFIG_MFG_ENV_SETTINGS \ -- "script=boot.scr\0" \ -- "image=Image\0" \ -- "fdt_addr=0x43000000\0" \ -- "fdt_high=0xffffffffffffffff\0" \ -- "boot_fdt=try\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" \ -+ "kernel_addr_r=0x44000000\0" \ -+ "fdt_addr_r=0x46000000\0" \ -+ "initrd_addr_r=0x47000000\0" \ -+ "scriptaddr=0x50000000\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; " \ -- "run loadimage; " \ -- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ -- "if run loadfdt; then " \ -- "run boot_os; " \ -- "else " \ -- "echo WARN: Cannot load the DT; " \ -- "fi; " \ -- "else " \ -- "echo wait for boot; " \ -- "fi;\0" \ -- "netboot=echo Booting from net ...; " \ -- "setenv bootargs; " \ -- "run netargs; " \ -- "run set_getcmd; " \ -- "${get_cmd} ${loadaddr} ${image}; " \ -- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ -- "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ -- "run boot_os; " \ -- "else " \ -- "echo WARN: Cannot load the DT; " \ -- "fi; " \ -- "else " \ -- "booti; " \ -- "fi;\0" \ -- "update_kernel_mmc=run set_getcmd; " \ -- "if ${get_cmd} ${image}; then " \ -- "if itest ${filesize} > 0; then " \ -- "echo Write kernel image 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 fdt image 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=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" \ -- "update_uboot_spi=run set_getcmd; if ${get_cmd} ${uboot}; then " \ -- "if itest ${filesize} > 0; then " \ -- "echo Write u-boot image to flexspi ...; " \ -- "if itest ${filesize} <= ${uboot_fspi_size}; then " \ -- "if sf probe; then " \ -- "sf update ${loadaddr} " \ -- "${uboot_fspi_start} " \ -- "${filesize}; " \ -- "fi; " \ -- "fi; " \ -- "fi; fi; " \ -- "setenv filesize \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" \ -- "mmcrootpart=2\0" \ -- "addmmc=setenv bootargs ${bootargs} " \ -- "root=/dev/mmcblk${mmcblkdev}p${mmcrootpart} ${rootfsmode} " \ -- "rootwait\0" \ -- "mmcargs=run addtty addearlycon addmmc\0" \ -- "netargs=run addnfs addip addtty addearlycon\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" \ -+ "uboot=bootstream.bin\0" /* for update_uboot_* */ \ -+ "update_uboot_mmc=" \ -+ "run check_ipaddr; " \ -+ "tftp ${uboot} || exit 1; " \ -+ "itest ${filesize} > 0 || exit 1; " \ -+ "echo \"Writing u-boot image to mmc ${mmcdev} ...\"; " \ -+ "mmc dev ${mmcdev}; mmc rescan; " \ -+ "setexpr tmp ${filesize} + 0x1ff; setexpr tmp ${tmp} / 0x200; blkc=${tmp}; " \ -+ "setenv filesize; setenv tmp; " \ -+ "if itest ${blkc} > ${uboot_mmc_size}; then " \ -+ "echo \"U-Boot image too large (${blkc} > ${uboot_mmc_size} sectors)\"; " \ -+ "exit 1; " \ -+ "fi; " \ -+ "mmc write ${loadaddr} ${uboot_mmc_start} ${blkc}\0" \ -+ "update_uboot_spi=" \ -+ "run check_ipaddr; " \ -+ "tftp ${uboot} || exit 1; " \ -+ "itest ${filesize} > 0 || exit 1; " \ -+ "echo 'Writing u-boot image to flexspi ...'; " \ -+ "if itest ${filesize} > ${uboot_fspi_size}; then " \ -+ "echo \"U-Boot image too large " \ -+ "(${filesize} > ${uboot_fspi_size} bytes)\"; " \ -+ "exit 1; " \ -+ "fi; " \ -+ "sf probe && sf update ${loadaddr} ${uboot_fspi_start} ${filesize}; " \ -+ "setenv filesize\0" \ -+ "cm_image=cm.bin\0" \ -+ "update_cm_mmc=" \ -+ "run check_ipaddr; " \ -+ "tftp ${cm_image} || exit 1; " \ -+ "itest ${filesize} > 0 || exit 1; " \ -+ "echo \"Writing CM image to mmc ${mmcdev}:${bootpart} ${mmcpath}${cm_image} ...\"; "\ -+ "save mmc ${mmcdev}:${bootpart} ${loadaddr} ${mmcpath}${cm_image} ${filesize}; " \ -+ "setenv filesize\0" \ -+ "" - - /* Link Definitions */ - #define CONFIG_LOADADDR 0x40480000 -@@ -309,7 +166,6 @@ - */ - #define CONFIG_SYS_MMC_ENV_DEV -1 /* invalid */ - #define CONFIG_SYS_MMC_ENV_PART 0 /* user area */ --#define CONFIG_SYS_MMC_IMG_LOAD_PART 1 - - /* Size of malloc() pool */ - #define CONFIG_SYS_MALLOC_LEN SZ_64M -@@ -391,17 +247,11 @@ - - #include "tqma8-shared-env.h" - --#define CONFIG_EXTRA_ENV_SETTINGS \ -+#define CONFIG_EXTRA_ENV_SETTINGS \ - TQMA8_SHARED_ENV_SETTINGS \ -- TQMA8MXML_CM_ENV_SETTINGS \ -- TQMA8MX_MODULE_ENV_SETTINGS \ -+ TQ_BOOT_ENV_SETTINGS \ -+ BOOTENV \ -+ TQMA8MX_MODULE_ENV_SETTINGS \ - BB_ENV_SETTINGS - --#ifndef CONFIG_SPL_BUILD --#define BOOT_TARGET_DEVICES(func) \ -- func(MMC, mmc, 0) \ -- func(USB, usb, 0) --#include --#endif -- - #endif /* __TQMA8MXML_H */ -diff --git a/include/environment/tq/boot.h b/include/environment/tq/boot.h -new file mode 100644 -index 000000000000..111111111111 ---- /dev/null -+++ b/include/environment/tq/boot.h -@@ -0,0 +1,21 @@ -+/* SPDX-License-Identifier: GPL-2.0-or-later */ -+/* -+ * Copyright (c) 2023 TQ-Systems GmbH , -+ * D-82229 Seefeld, Germany. -+ * Author: Matthias Schiffer -+ * -+ * Common boot helpers for TQ-Systems default environments -+ */ -+ -+#ifndef __TQ_BOOT_H -+#define __TQ_BOOT_H -+ -+#define CONFIG_SYS_AUTOLOAD "no" -+ -+#define TQ_BOOT_ENV_SETTINGS \ -+ "check_ipaddr=" \ -+ "if test \"${ipaddr}\" && test \"${serverip}\"; then exit; fi; " \ -+ "echo 'ipaddr or serverip unset, falling back to DHCP...'; " \ -+ "dhcp\0" -+ -+#endif /* __TQ_BOOT_H */ --- -Armbian - diff --git a/patch/u-boot/u-boot-tqma/0002-fix-distro-boot.patch b/patch/u-boot/u-boot-tqma/0002-fix-distro-boot.patch new file mode 100644 index 000000000..83caed275 --- /dev/null +++ b/patch/u-boot/u-boot-tqma/0002-fix-distro-boot.patch @@ -0,0 +1,81 @@ +From 1b77f2660bfa99586196e5a9a5b66e8917a21618 Mon Sep 17 00:00:00 2001 +From: Martin Schmiedel +Date: Wed, 28 May 2025 16:28:13 +0200 +Subject: [PATCH] fix distro boot + +Signed-off-by: Martin Schmiedel +--- + configs/tqma8mpxl_multi_mba8mp_ras314_defconfig | 2 +- + configs/tqma8mpxl_multi_mba8mp_ras314_ecc_defconfig | 2 +- + configs/tqma8mpxl_multi_mba8mpxl_defconfig | 2 +- + configs/tqma8mpxl_multi_mba8mpxl_ecc_defconfig | 2 +- + include/configs/tqma8mpxl.h | 1 + + 5 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/configs/tqma8mpxl_multi_mba8mp_ras314_defconfig b/configs/tqma8mpxl_multi_mba8mp_ras314_defconfig +index fe8dd13bad2..90d7a06c85f 100644 +--- a/configs/tqma8mpxl_multi_mba8mp_ras314_defconfig ++++ b/configs/tqma8mpxl_multi_mba8mp_ras314_defconfig +@@ -45,7 +45,7 @@ CONFIG_BOOTDELAY=3 + CONFIG_OF_BOARD_SETUP=y + CONFIG_OF_SYSTEM_SETUP=y + CONFIG_FDT_FIXUP_PARTITIONS=y +-CONFIG_BOOTCOMMAND="run mmcboot; run distro_bootcmd" ++CONFIG_BOOTCOMMAND="setenv boot_targets mmc${mmcdev}; run distro_bootcmd" + CONFIG_DEFAULT_FDT_FILE="imx8mp-tqma8mpql-mba8mp-ras314.dtb" + CONFIG_SYS_CBSIZE=2048 + CONFIG_SYS_PBSIZE=2074 +diff --git a/configs/tqma8mpxl_multi_mba8mp_ras314_ecc_defconfig b/configs/tqma8mpxl_multi_mba8mp_ras314_ecc_defconfig +index 6b0b867dad4..63f762b6136 100644 +--- a/configs/tqma8mpxl_multi_mba8mp_ras314_ecc_defconfig ++++ b/configs/tqma8mpxl_multi_mba8mp_ras314_ecc_defconfig +@@ -47,7 +47,7 @@ CONFIG_BOOTDELAY=3 + CONFIG_OF_BOARD_SETUP=y + CONFIG_OF_SYSTEM_SETUP=y + CONFIG_FDT_FIXUP_PARTITIONS=y +-CONFIG_BOOTCOMMAND="run mmcboot; run distro_bootcmd" ++CONFIG_BOOTCOMMAND="setenv boot_targets mmc${mmcdev}; run distro_bootcmd" + CONFIG_DEFAULT_FDT_FILE="imx8mp-tqma8mpql-mba8mp-ras314.dtb" + CONFIG_SYS_CBSIZE=2048 + CONFIG_SYS_PBSIZE=2074 +diff --git a/configs/tqma8mpxl_multi_mba8mpxl_defconfig b/configs/tqma8mpxl_multi_mba8mpxl_defconfig +index 0372118abc3..1c3056a2fc8 100644 +--- a/configs/tqma8mpxl_multi_mba8mpxl_defconfig ++++ b/configs/tqma8mpxl_multi_mba8mpxl_defconfig +@@ -44,7 +44,7 @@ CONFIG_BOOTDELAY=3 + CONFIG_OF_BOARD_SETUP=y + CONFIG_OF_SYSTEM_SETUP=y + CONFIG_FDT_FIXUP_PARTITIONS=y +-CONFIG_BOOTCOMMAND="run mmcboot; run distro_bootcmd" ++CONFIG_BOOTCOMMAND="setenv boot_targets mmc${mmcdev}; run distro_bootcmd" + CONFIG_DEFAULT_FDT_FILE="imx8mp-tqma8mpql-mba8mpxl.dtb" + CONFIG_SYS_CBSIZE=2048 + CONFIG_SYS_PBSIZE=2074 +diff --git a/configs/tqma8mpxl_multi_mba8mpxl_ecc_defconfig b/configs/tqma8mpxl_multi_mba8mpxl_ecc_defconfig +index 0ed0dfafcf2..4f768ebe19a 100644 +--- a/configs/tqma8mpxl_multi_mba8mpxl_ecc_defconfig ++++ b/configs/tqma8mpxl_multi_mba8mpxl_ecc_defconfig +@@ -46,7 +46,7 @@ CONFIG_BOOTDELAY=3 + CONFIG_OF_BOARD_SETUP=y + CONFIG_OF_SYSTEM_SETUP=y + CONFIG_FDT_FIXUP_PARTITIONS=y +-CONFIG_BOOTCOMMAND="run mmcboot; run distro_bootcmd" ++CONFIG_BOOTCOMMAND="setenv boot_targets mmc${mmcdev}; run distro_bootcmd" + CONFIG_DEFAULT_FDT_FILE="imx8mp-tqma8mpql-mba8mpxl.dtb" + CONFIG_SYS_CBSIZE=2048 + CONFIG_SYS_PBSIZE=2074 +diff --git a/include/configs/tqma8mpxl.h b/include/configs/tqma8mpxl.h +index e1cd6c398d9..c81d97e87a2 100644 +--- a/include/configs/tqma8mpxl.h ++++ b/include/configs/tqma8mpxl.h +@@ -61,6 +61,7 @@ + "pxefile_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ + "fdt_addr_r=0x43000000\0" \ + "fdtoverlay_addr_r=0x43080000\0" \ ++ "ramdisk_addr_r=0x48000000\0" \ + "initrd_addr=0x43800000\0" \ + "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ + "mmcautodetect=yes\0" \ +-- +2.43.0 + diff --git a/patch/u-boot/u-boot-tqma/0002-tqma8mpxl-enable-distro-boot.patch b/patch/u-boot/u-boot-tqma/0002-tqma8mpxl-enable-distro-boot.patch deleted file mode 100644 index ae0d50c9f..000000000 --- a/patch/u-boot/u-boot-tqma/0002-tqma8mpxl-enable-distro-boot.patch +++ /dev/null @@ -1,365 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martin Schmiedel -Date: Mon, 9 Oct 2023 09:50:48 +0200 -Subject: tqma8mpxl: enable distro boot - -Signed-off-by: Martin Schmiedel ---- - configs/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 111111111111..222222222222 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 111111111111..222222222222 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 111111111111..222222222222 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 111111111111..222222222222 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 111111111111..222222222222 100644 ---- a/include/configs/tqma8mpxl.h -+++ b/include/configs/tqma8mpxl.h -@@ -10,10 +10,12 @@ - - #include - #include --#include "imx_env.h" -+#include -+#include - - #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 --#endif -- --#define CONFIG_IMX6_PWM_PER_CLK 24000000 -- - #endif /* __TQMA8MPXL_H */ --- -Armbian - diff --git a/patch/u-boot/u-boot-tqma/0003-imx-mkimage_fit_atf_imx8mp.sh-add-script-for-imx8mp.patch b/patch/u-boot/u-boot-tqma/0003-imx-mkimage_fit_atf_imx8mp.sh-add-script-for-imx8mp.patch deleted file mode 100644 index 10d0e59a0..000000000 --- a/patch/u-boot/u-boot-tqma/0003-imx-mkimage_fit_atf_imx8mp.sh-add-script-for-imx8mp.patch +++ /dev/null @@ -1,189 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martin Schmiedel -Date: Mon, 22 Jul 2024 07:48:26 +0200 -Subject: imx: mkimage_fit_atf_imx8mp.sh: add script for imx8mp - -If Varibles can not be exported this script set default value for ATF_LOAD_ADDR - -Signed-off-by: Martin Schmiedel ---- - Makefile | 2 + - arch/arm/mach-imx/mkimage_fit_atf_imx8mp.sh | 139 ++++++++++ - board/tqc/tqma8mpxl/Kconfig | 3 + - 3 files changed, 144 insertions(+) - -diff --git a/Makefile b/Makefile -index 111111111111..222222222222 100644 ---- a/Makefile -+++ b/Makefile -@@ -1281,6 +1281,8 @@ ifneq ($(CONFIG_SPL_FIT_GENERATOR),"") - U_BOOT_ITS := u-boot.its - ifeq ($(CONFIG_SPL_FIT_GENERATOR),"arch/arm/mach-imx/mkimage_fit_atf.sh") - U_BOOT_ITS_DEPS += u-boot-nodtb.bin -+else ifeq ($(CONFIG_SPL_FIT_GENERATOR),"arch/arm/mach-imx/mkimage_fit_atf_imx8mp.sh") -+U_BOOT_ITS_DEPS += u-boot-nodtb.bin - endif - ifeq ($(CONFIG_SPL_FIT_GENERATOR),"arch/arm/mach-rockchip/make_fit_atf.py") - U_BOOT_ITS_DEPS += u-boot -diff --git a/arch/arm/mach-imx/mkimage_fit_atf_imx8mp.sh b/arch/arm/mach-imx/mkimage_fit_atf_imx8mp.sh -new file mode 100755 -index 000000000000..111111111111 ---- /dev/null -+++ b/arch/arm/mach-imx/mkimage_fit_atf_imx8mp.sh -@@ -0,0 +1,139 @@ -+#!/bin/sh -+# SPDX-License-Identifier: GPL-2.0+ -+# -+# script to generate FIT image source for i.MX8MQ boards with -+# ARM Trusted Firmware and multiple device trees (given on the command line) -+# -+# usage: $0 [ [&2 -+ exit 0 -+else -+ echo "$BL31 size: " >&2 -+ ls -lct $BL31 | awk '{print $5}' >&2 -+fi -+ -+BL32="tee.bin" -+ -+if [ ! -f $BL32 ]; then -+ BL32=/dev/null -+else -+ echo "Building with TEE support, make sure your $BL31 is compiled with spd. If you do not want tee, please delete $BL31" >&2 -+ echo "$BL32 size: " >&2 -+ ls -lct $BL32 | awk '{print $5}' >&2 -+fi -+ -+BL33="u-boot-nodtb.bin" -+ -+if [ ! -f $BL33 ]; then -+ echo "ERROR: $BL33 file NOT found" >&2 -+ exit 0 -+else -+ echo "u-boot-nodtb.bin size: " >&2 -+ ls -lct u-boot-nodtb.bin | awk '{print $5}' >&2 -+fi -+ -+for dtname in $* -+do -+ echo "$dtname size: " >&2 -+ ls -lct $dtname | awk '{print $5}' >&2 -+done -+ -+ -+cat << __HEADER_EOF -+/dts-v1/; -+ -+/ { -+ description = "Configuration to load ATF before U-Boot"; -+ -+ images { -+ uboot@1 { -+ description = "U-Boot (64-bit)"; -+ os = "u-boot"; -+ data = /incbin/("$BL33"); -+ type = "standalone"; -+ arch = "arm64"; -+ compression = "none"; -+ load = <$BL33_LOAD_ADDR>; -+ }; -+ atf@1 { -+ description = "ARM Trusted Firmware"; -+ os = "arm-trusted-firmware"; -+ data = /incbin/("$BL31"); -+ type = "firmware"; -+ arch = "arm64"; -+ compression = "none"; -+ load = <$ATF_LOAD_ADDR>; -+ entry = <$ATF_LOAD_ADDR>; -+ }; -+__HEADER_EOF -+ -+if [ -f $BL32 ]; then -+cat << __HEADER_EOF -+ tee@1 { -+ description = "TEE firmware"; -+ data = /incbin/("$BL32"); -+ type = "firmware"; -+ arch = "arm64"; -+ compression = "none"; -+ load = <$TEE_LOAD_ADDR>; -+ entry = <$TEE_LOAD_ADDR>; -+ }; -+__HEADER_EOF -+fi -+ -+cnt=1 -+for dtname in $* -+do -+ cat << __FDT_IMAGE_EOF -+ fdt@$cnt { -+ description = "$(basename $dtname .dtb)"; -+ data = /incbin/("$dtname"); -+ type = "flat_dt"; -+ compression = "none"; -+ }; -+__FDT_IMAGE_EOF -+cnt=$((cnt+1)) -+done -+ -+cat << __CONF_HEADER_EOF -+ }; -+ configurations { -+ default = "config@1"; -+ -+__CONF_HEADER_EOF -+ -+cnt=1 -+for dtname in $* -+do -+if [ -f $BL32 ]; then -+cat << __CONF_SECTION_EOF -+ config@$cnt { -+ description = "$(basename $dtname .dtb)"; -+ firmware = "uboot@1"; -+ loadables = "atf@1", "tee@1"; -+ fdt = "fdt@$cnt"; -+ }; -+__CONF_SECTION_EOF -+else -+cat << __CONF_SECTION1_EOF -+ config@$cnt { -+ description = "$(basename $dtname .dtb)"; -+ firmware = "uboot@1"; -+ loadables = "atf@1"; -+ fdt = "fdt@$cnt"; -+ }; -+__CONF_SECTION1_EOF -+fi -+cnt=$((cnt+1)) -+done -+ -+cat << __ITS_EOF -+ }; -+}; -+__ITS_EOF -diff --git a/board/tqc/tqma8mpxl/Kconfig b/board/tqc/tqma8mpxl/Kconfig -index 111111111111..222222222222 100644 ---- a/board/tqc/tqma8mpxl/Kconfig -+++ b/board/tqc/tqma8mpxl/Kconfig -@@ -15,6 +15,9 @@ config SPL_TEXT_BASE - config CSF_SIZE - default 0x2000 - -+config SPL_FIT_GENERATOR -+ default "arch/arm/mach-imx/mkimage_fit_atf_imx8mp.sh" -+ - config TQMA8MPXL_DEFAULTS - bool - default y --- -Armbian -