summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2026-01-17 22:29:24 -0600
committerTom Rini <[email protected]>2026-01-17 22:29:24 -0600
commit6b2d05748cf3cd6ba417a96c00602b0122e10af6 (patch)
treed9254fc44c249c7416b6dd2830ff5abb3c8771a8
parentfeb62582bf2e81189dc397a328f3c127dca817c0 (diff)
parente13f2a92491fa050685b5a32ffdd51a8b2c20ee8 (diff)
Merge tag 'u-boot-imx-master-20260117' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/29031 - Fix interrupt storms in Linux on the imx93_frdm board. - Defconfig update for tqma6 board. - Miscellaneous cleanups/improvements for imx93_evk. - Allow booting from both USB controlles on i.MX6 DHSOM. - Handle third MAC address for SMARC i.MX95
-rw-r--r--arch/arm/include/asm/mach-imx/ele_api.h4
-rw-r--r--board/freescale/imx91_evk/imx91_evk.c2
-rw-r--r--board/freescale/imx91_evk/spl.c28
-rw-r--r--board/freescale/imx93_evk/imx93_evk.c46
-rw-r--r--board/freescale/imx93_evk/spl.c35
-rw-r--r--board/freescale/imx93_frdm/imx93_frdm.c59
-rw-r--r--board/freescale/imx93_qsb/imx93_qsb.c2
-rw-r--r--board/freescale/imx93_qsb/spl.c33
-rw-r--r--board/freescale/imx94_evk/imx94_evk.c6
-rw-r--r--board/freescale/imx94_evk/spl.c11
-rw-r--r--board/freescale/imx95_evk/imx95_evk.c2
-rw-r--r--board/freescale/imx95_evk/spl.c9
-rw-r--r--board/toradex/common/tdx-common.c12
-rw-r--r--board/tq/tqma6/Kconfig8
-rw-r--r--board/tq/tqma6/tqma6dl.cfg8
-rw-r--r--board/tq/tqma6/tqma6q.cfg37
-rw-r--r--board/tq/tqma6/tqma6s.cfg25
-rw-r--r--configs/imx93_11x11_evk_defconfig2
-rw-r--r--configs/tqma6_mba6_common.defconfig79
-rw-r--r--configs/tqma6_mba6_mmc.defconfig3
-rw-r--r--configs/tqma6_mba6_spi.defconfig6
-rw-r--r--configs/tqma6dl_mba6_mmc_defconfig74
-rw-r--r--configs/tqma6dl_mba6_spi_defconfig77
-rw-r--r--configs/tqma6q_mba6_mmc_defconfig73
-rw-r--r--configs/tqma6q_mba6_spi_defconfig77
-rw-r--r--configs/tqma6s_mba6_mmc_defconfig73
-rw-r--r--configs/tqma6s_mba6_spi_defconfig77
-rw-r--r--drivers/misc/imx_ele/ele_api.c50
-rw-r--r--include/configs/dh_imx6.h1
-rw-r--r--tools/imx8image.c2
30 files changed, 318 insertions, 603 deletions
diff --git a/arch/arm/include/asm/mach-imx/ele_api.h b/arch/arm/include/asm/mach-imx/ele_api.h
index 64b243dcaaa..4e1afc42bd8 100644
--- a/arch/arm/include/asm/mach-imx/ele_api.h
+++ b/arch/arm/include/asm/mach-imx/ele_api.h
@@ -14,6 +14,8 @@
#define ELE_PING_REQ (0x01)
#define ELE_FW_AUTH_REQ (0x02)
#define ELE_RESTART_RST_TIMER_REQ (0x04)
+#define ELE_VOLT_CHANGE_START_REQ (0x12)
+#define ELE_VOLT_CHANGE_FINISH_REQ (0x13)
#define ELE_DUMP_DEBUG_BUFFER_REQ (0x21)
#define ELE_OEM_CNTN_AUTH_REQ (0x87)
#define ELE_VERIFY_IMAGE_REQ (0x88)
@@ -160,4 +162,6 @@ int ele_return_lifecycle_update(ulong signed_msg_blk, u32 *response);
int ele_start_rng(void);
int ele_write_shadow_fuse(u32 fuse_id, u32 fuse_val, u32 *response);
int ele_read_shadow_fuse(u32 fuse_id, u32 *fuse_val, u32 *response);
+int ele_volt_change_start_req(void);
+int ele_volt_change_finish_req(void);
#endif
diff --git a/board/freescale/imx91_evk/imx91_evk.c b/board/freescale/imx91_evk/imx91_evk.c
index cbd0a72bf4b..fca2521081b 100644
--- a/board/freescale/imx91_evk/imx91_evk.c
+++ b/board/freescale/imx91_evk/imx91_evk.c
@@ -5,8 +5,6 @@
#include <env.h>
#include <init.h>
-#include <miiphy.h>
-#include <netdev.h>
#include <asm/arch/sys_proto.h>
int board_late_init(void)
diff --git a/board/freescale/imx91_evk/spl.c b/board/freescale/imx91_evk/spl.c
index 46bde93fe3b..2aa63a61b74 100644
--- a/board/freescale/imx91_evk/spl.c
+++ b/board/freescale/imx91_evk/spl.c
@@ -3,35 +3,19 @@
* Copyright 2024 NXP
*/
-#include <command.h>
-#include <cpu_func.h>
-#include <hang.h>
-#include <image.h>
#include <init.h>
-#include <log.h>
+#include <power/pmic.h>
+#include <power/pca9450.h>
#include <spl.h>
#include <asm/global_data.h>
-#include <asm/io.h>
-#include <asm/arch/mu.h>
-#include <asm/arch/clock.h>
-#include <asm/arch/sys_proto.h>
-#include <asm/mach-imx/boot_mode.h>
-#include <asm/mach-imx/mxc_i2c.h>
-#include <asm/arch-mx7ulp/gpio.h>
-#include <asm/mach-imx/ele_api.h>
-#include <asm/mach-imx/syscounter.h>
#include <asm/sections.h>
-#include <dm/uclass.h>
-#include <dm/device.h>
-#include <dm/uclass-internal.h>
-#include <dm/device-internal.h>
-#include <linux/delay.h>
#include <asm/arch/clock.h>
-#include <asm/arch/ccm_regs.h>
#include <asm/arch/ddr.h>
-#include <power/pmic.h>
-#include <power/pca9450.h>
+#include <asm/arch/mu.h>
+#include <asm/arch/sys_proto.h>
#include <asm/arch/trdc.h>
+#include <asm/mach-imx/boot_mode.h>
+#include <asm/mach-imx/ele_api.h>
DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/imx93_evk/imx93_evk.c b/board/freescale/imx93_evk/imx93_evk.c
index d62f94dc418..70b07fa3c6f 100644
--- a/board/freescale/imx93_evk/imx93_evk.c
+++ b/board/freescale/imx93_evk/imx93_evk.c
@@ -6,25 +6,7 @@
#include <env.h>
#include <efi_loader.h>
#include <init.h>
-#include <miiphy.h>
-#include <netdev.h>
-#include <asm/global_data.h>
-#include <asm/arch-imx9/ccm_regs.h>
#include <asm/arch/sys_proto.h>
-#include <asm/arch-imx9/imx93_pins.h>
-#include <asm/arch/clock.h>
-#include <dm/device.h>
-#include <dm/uclass.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#define UART_PAD_CTRL (PAD_CTL_DSE(6) | PAD_CTL_FSEL2)
-#define WDOG_PAD_CTRL (PAD_CTL_DSE(6) | PAD_CTL_ODE | PAD_CTL_PUE | PAD_CTL_PE)
-
-static iomux_v3_cfg_t const uart_pads[] = {
- MX93_PAD_UART1_RXD__LPUART1_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
- MX93_PAD_UART1_TXD__LPUART1_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
-};
#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT)
#define IMX_BOOT_IMAGE_GUID \
@@ -46,34 +28,6 @@ struct efi_capsule_update_info update_info = {
};
#endif /* EFI_HAVE_CAPSULE_SUPPORT */
-int board_early_init_f(void)
-{
- imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
-
- return 0;
-}
-
-static int setup_fec(void)
-{
- return set_clk_enet(ENET_125MHZ);
-}
-
-int board_phy_config(struct phy_device *phydev)
-{
- if (phydev->drv->config)
- phydev->drv->config(phydev);
-
- return 0;
-}
-
-int board_init(void)
-{
- if (IS_ENABLED(CONFIG_FEC_MXC))
- setup_fec();
-
- return 0;
-}
-
int board_late_init(void)
{
#if CONFIG_IS_ENABLED(ENV_IS_IN_MMC) || CONFIG_IS_ENABLED(ENV_IS_NOWHERE)
diff --git a/board/freescale/imx93_evk/spl.c b/board/freescale/imx93_evk/spl.c
index 67a10bbb05b..176d25a74a6 100644
--- a/board/freescale/imx93_evk/spl.c
+++ b/board/freescale/imx93_evk/spl.c
@@ -3,36 +3,19 @@
* Copyright 2022 NXP
*/
-#include <command.h>
-#include <cpu_func.h>
-#include <hang.h>
-#include <image.h>
#include <init.h>
-#include <log.h>
+#include <power/pmic.h>
+#include <power/pca9450.h>
#include <spl.h>
#include <asm/global_data.h>
-#include <asm/io.h>
-#include <asm/arch/imx93_pins.h>
-#include <asm/arch/mu.h>
-#include <asm/arch/clock.h>
-#include <asm/arch/sys_proto.h>
-#include <asm/mach-imx/boot_mode.h>
-#include <asm/mach-imx/mxc_i2c.h>
-#include <asm/arch-mx7ulp/gpio.h>
-#include <asm/mach-imx/ele_api.h>
-#include <asm/mach-imx/syscounter.h>
#include <asm/sections.h>
-#include <dm/uclass.h>
-#include <dm/device.h>
-#include <dm/uclass-internal.h>
-#include <dm/device-internal.h>
-#include <linux/delay.h>
#include <asm/arch/clock.h>
-#include <asm/arch/ccm_regs.h>
#include <asm/arch/ddr.h>
-#include <power/pmic.h>
-#include <power/pca9450.h>
+#include <asm/arch/mu.h>
+#include <asm/arch/sys_proto.h>
#include <asm/arch/trdc.h>
+#include <asm/mach-imx/boot_mode.h>
+#include <asm/mach-imx/ele_api.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -102,6 +85,8 @@ int power_init_board(void)
printf("PMIC: Over Drive Voltage Mode\n");
}
+ ele_volt_change_start_req();
+
if (val & PCA9450_REG_PWRCTRL_TOFF_DEB) {
pmic_reg_write(dev, PCA9450_BUCK1OUT_DVS0, buck_val);
pmic_reg_write(dev, PCA9450_BUCK3OUT_DVS0, buck_val);
@@ -110,6 +95,8 @@ int power_init_board(void)
pmic_reg_write(dev, PCA9450_BUCK3OUT_DVS0, buck_val + 0x4);
}
+ ele_volt_change_finish_req();
+
/* set standby voltage to 0.65v */
if (val & PCA9450_REG_PWRCTRL_TOFF_DEB)
pmic_reg_write(dev, PCA9450_BUCK1OUT_DVS1, 0x0);
@@ -133,8 +120,6 @@ void board_init_f(ulong dummy)
arch_cpu_init();
- board_early_init_f();
-
spl_early_init();
preloader_console_init();
diff --git a/board/freescale/imx93_frdm/imx93_frdm.c b/board/freescale/imx93_frdm/imx93_frdm.c
index c436ac6aa47..cfbcde2e1a5 100644
--- a/board/freescale/imx93_frdm/imx93_frdm.c
+++ b/board/freescale/imx93_frdm/imx93_frdm.c
@@ -5,6 +5,7 @@
#include <env.h>
#include <efi_loader.h>
+#include <i2c.h>
#include <init.h>
#include <asm/global_data.h>
#include <asm/arch/sys_proto.h>
@@ -36,6 +37,62 @@ struct efi_capsule_update_info update_info = {
};
#endif /* EFI_HAVE_CAPSULE_SUPPORT */
+#define TCPC_ALERT 0x10
+#define TCPC_ALERT_MASK 0x12
+#define TCPC_FAULT_STATUS_MASK 0x15
+
+#define TCPC1_I2C_BUS 2
+#define TCPC1_I2C_ADDR 0x50
+
+/*
+ * Mask all interrupts and clear alert status for the PTN5110 TCPC USB Power
+ * Delivery controller. This is required to avoid an interrupt storm on OS
+ * startup, since the interrupt line for the PTN5110 is shared also by the
+ * PCAL6524 I/O expander.
+ */
+static int clear_pd_alert(void)
+{
+ struct udevice *bus;
+ struct udevice *i2c_dev = NULL;
+ int ret;
+ u8 buffer_0[2] = {0, 0};
+ u8 buffer_1[2] = {0xff, 0xff};
+
+ ret = uclass_get_device_by_seq(UCLASS_I2C, TCPC1_I2C_BUS, &bus);
+ if (ret) {
+ printf("Failed to get I2C bus %d\n", TCPC1_I2C_BUS);
+ return ret;
+ }
+
+ ret = dm_i2c_probe(bus, TCPC1_I2C_ADDR, 0, &i2c_dev);
+ if (ret) {
+ printf("Can't find USB PD device at 0x%02x\n", TCPC1_I2C_ADDR);
+ return ret;
+ }
+
+ /* Mask all alert status*/
+ ret = dm_i2c_write(i2c_dev, TCPC_ALERT_MASK, buffer_0, 2);
+ if (ret) {
+ printf("%s dm_i2c_write failed: %d\n", __func__, ret);
+ return ret;
+ }
+
+ ret = dm_i2c_write(i2c_dev, TCPC_FAULT_STATUS_MASK, buffer_0, 2);
+ if (ret) {
+ printf("%s dm_i2c_write failed: %d\n", __func__, ret);
+ return ret;
+ }
+
+ /* Clear active alerts */
+ ret = dm_i2c_write(i2c_dev, TCPC_ALERT, buffer_1, 2);
+ if (ret) {
+ printf("%s dm_i2c_write failed: %d\n", __func__, ret);
+ return ret;
+ }
+
+ return 0;
+}
+
int board_early_init_f(void)
{
return 0;
@@ -61,5 +118,7 @@ int board_late_init(void)
env_set_ulong("dofastboot", 1);
}
+ clear_pd_alert();
+
return 0;
}
diff --git a/board/freescale/imx93_qsb/imx93_qsb.c b/board/freescale/imx93_qsb/imx93_qsb.c
index 503a8667245..9de91758aa7 100644
--- a/board/freescale/imx93_qsb/imx93_qsb.c
+++ b/board/freescale/imx93_qsb/imx93_qsb.c
@@ -5,8 +5,6 @@
#include <env.h>
#include <init.h>
-#include <miiphy.h>
-#include <netdev.h>
#include <asm/arch/sys_proto.h>
int board_late_init(void)
diff --git a/board/freescale/imx93_qsb/spl.c b/board/freescale/imx93_qsb/spl.c
index 6d1ab60eda0..9e64714521b 100644
--- a/board/freescale/imx93_qsb/spl.c
+++ b/board/freescale/imx93_qsb/spl.c
@@ -3,36 +3,19 @@
* Copyright 2024 NXP
*/
-#include <command.h>
-#include <cpu_func.h>
-#include <hang.h>
-#include <image.h>
#include <init.h>
-#include <log.h>
+#include <power/pmic.h>
+#include <power/pca9450.h>
#include <spl.h>
#include <asm/global_data.h>
-#include <asm/io.h>
-#include <asm/arch/imx93_pins.h>
-#include <asm/arch/mu.h>
-#include <asm/arch/clock.h>
-#include <asm/arch/sys_proto.h>
-#include <asm/mach-imx/boot_mode.h>
-#include <asm/mach-imx/mxc_i2c.h>
-#include <asm/arch-mx7ulp/gpio.h>
-#include <asm/mach-imx/ele_api.h>
-#include <asm/mach-imx/syscounter.h>
#include <asm/sections.h>
-#include <dm/uclass.h>
-#include <dm/device.h>
-#include <dm/uclass-internal.h>
-#include <dm/device-internal.h>
-#include <linux/delay.h>
#include <asm/arch/clock.h>
-#include <asm/arch/ccm_regs.h>
#include <asm/arch/ddr.h>
-#include <power/pmic.h>
-#include <power/pca9450.h>
+#include <asm/arch/mu.h>
+#include <asm/arch/sys_proto.h>
#include <asm/arch/trdc.h>
+#include <asm/mach-imx/boot_mode.h>
+#include <asm/mach-imx/ele_api.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -98,6 +81,8 @@ int power_init_board(void)
printf("PMIC: Over Drive Voltage Mode\n");
}
+ ele_volt_change_start_req();
+
if (val & PCA9450_REG_PWRCTRL_TOFF_DEB) {
pmic_reg_write(dev, PCA9450_BUCK1OUT_DVS0, buck_val);
pmic_reg_write(dev, PCA9450_BUCK3OUT_DVS0, buck_val);
@@ -106,6 +91,8 @@ int power_init_board(void)
pmic_reg_write(dev, PCA9450_BUCK3OUT_DVS0, buck_val + 0x4);
}
+ ele_volt_change_finish_req();
+
/* set standby voltage to 0.65v */
if (val & PCA9450_REG_PWRCTRL_TOFF_DEB)
pmic_reg_write(dev, PCA9450_BUCK1OUT_DVS1, 0x0);
diff --git a/board/freescale/imx94_evk/imx94_evk.c b/board/freescale/imx94_evk/imx94_evk.c
index 28d512ac5f3..588aa7548d4 100644
--- a/board/freescale/imx94_evk/imx94_evk.c
+++ b/board/freescale/imx94_evk/imx94_evk.c
@@ -3,11 +3,11 @@
* Copyright 2025 NXP
*/
-#include <asm/arch/clock.h>
-#include <asm/gpio.h>
-#include <asm/mach-imx/sys_proto.h>
#include <env.h>
#include <fdt_support.h>
+#include <asm/gpio.h>
+#include <asm/arch/clock.h>
+#include <asm/mach-imx/sys_proto.h>
int board_early_init_f(void)
{
diff --git a/board/freescale/imx94_evk/spl.c b/board/freescale/imx94_evk/spl.c
index 341b165b3c8..797806a8d4d 100644
--- a/board/freescale/imx94_evk/spl.c
+++ b/board/freescale/imx94_evk/spl.c
@@ -3,16 +3,17 @@
* Copyright 2025 NXP
*/
+#include <hang.h>
+#include <init.h>
+#include <spl.h>
+#include <asm/gpio.h>
+#include <asm/global_data.h>
+#include <asm/sections.h>
#include <asm/arch/clock.h>
#include <asm/arch/mu.h>
#include <asm/arch/sys_proto.h>
-#include <asm/gpio.h>
#include <asm/mach-imx/boot_mode.h>
#include <asm/mach-imx/ele_api.h>
-#include <asm/sections.h>
-#include <hang.h>
-#include <init.h>
-#include <spl.h>
DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/freescale/imx95_evk/imx95_evk.c b/board/freescale/imx95_evk/imx95_evk.c
index fe0111be508..ca1d916deab 100644
--- a/board/freescale/imx95_evk/imx95_evk.c
+++ b/board/freescale/imx95_evk/imx95_evk.c
@@ -3,8 +3,8 @@
* Copyright 2025 NXP
*/
-#include <asm/arch/clock.h>
#include <asm/gpio.h>
+#include <asm/arch/clock.h>
#include <asm/mach-imx/sys_proto.h>
int board_early_init_f(void)
diff --git a/board/freescale/imx95_evk/spl.c b/board/freescale/imx95_evk/spl.c
index 48b47d2aed9..752d7f916b6 100644
--- a/board/freescale/imx95_evk/spl.c
+++ b/board/freescale/imx95_evk/spl.c
@@ -3,15 +3,16 @@
* Copyright 2025 NXP
*/
+#include <hang.h>
+#include <init.h>
+#include <spl.h>
+#include <asm/global_data.h>
+#include <asm/sections.h>
#include <asm/arch/clock.h>
#include <asm/arch/mu.h>
#include <asm/arch/sys_proto.h>
#include <asm/mach-imx/boot_mode.h>
#include <asm/mach-imx/ele_api.h>
-#include <asm/sections.h>
-#include <hang.h>
-#include <init.h>
-#include <spl.h>
DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c
index f01fb369b4b..81f7fa09002 100644
--- a/board/toradex/common/tdx-common.c
+++ b/board/toradex/common/tdx-common.c
@@ -179,6 +179,18 @@ static int settings_r(void)
eth_env_set_enetaddr("eth1addr", ethaddr);
}
+ if (IS_ENABLED(CONFIG_TARGET_TORADEX_SMARC_IMX95) &&
+ !eth_env_get_enetaddr("eth2addr", ethaddr)) {
+ /*
+ * Third MAC address is allocated from block
+ * 0x100000 higher then the first MAC address.
+ * The same as the default for the secondary MAC.
+ */
+ memcpy(ethaddr, &tdx_eth_addr, 6);
+ ethaddr[3] += 0x10;
+ eth_env_set_enetaddr("eth2addr", ethaddr);
+ }
+
return 0;
}
EVENT_SPY_SIMPLE(EVT_SETTINGS_R, settings_r);
diff --git a/board/tq/tqma6/Kconfig b/board/tq/tqma6/Kconfig
index 599b3a72f70..e62228d73d0 100644
--- a/board/tq/tqma6/Kconfig
+++ b/board/tq/tqma6/Kconfig
@@ -11,7 +11,9 @@ config SYS_CONFIG_NAME
choice
prompt "TQMa6 SoC variant"
- default TQMA6Q
+ default TQMA6DL if MX6DL
+ default TQMA6Q if MX6Q
+ default TQMA6S if MX6S
help
select the TQMa6 module variant. The variants only differ in the used
i.MX6 CPU type and DRAM
@@ -79,6 +81,10 @@ config MBA6
select PHY_MICREL_KSZ90X1
select MXC_UART
imply OF_UPSTREAM
+ imply DM_I2C
+ imply DM_MMC
+ imply DM_SPI
+ imply DM_GPIO
help
Select the MBa6 starterkit. This features a GigE Phy, USB, SD-Card
etc.
diff --git a/board/tq/tqma6/tqma6dl.cfg b/board/tq/tqma6/tqma6dl.cfg
index f7289adb40a..17a3d010517 100644
--- a/board/tq/tqma6/tqma6dl.cfg
+++ b/board/tq/tqma6/tqma6dl.cfg
@@ -29,7 +29,7 @@ BOOT_FROM spi
#include "asm/arch/iomux.h"
#include "asm/arch/crm_regs.h"
-/* TQMa6DL DDR config Rev. 0100E */
+/* TQMa6DL DDR config Rev. 0300D */
/* IOMUX configuration */
DATA 4, MX6_IOM_GRP_DDR_TYPE, 0x000C0000
DATA 4, MX6_IOM_GRP_DDRPKE, 0x00000000
@@ -38,7 +38,7 @@ DATA 4, MX6_IOM_DRAM_SDCLK_1, 0x00008030
DATA 4, MX6_IOM_DRAM_CAS, 0x00008030
DATA 4, MX6_IOM_DRAM_RAS, 0x00008030
DATA 4, MX6_IOM_GRP_ADDDS, 0x00000030
-DATA 4, MX6_IOM_DRAM_RESET, 0x000C3030
+DATA 4, MX6_IOM_DRAM_RESET, 0x00000030
DATA 4, MX6_IOM_DRAM_SDCKE0, 0x00003000
DATA 4, MX6_IOM_DRAM_SDCKE1, 0x00000000
DATA 4, MX6_IOM_DRAM_SDBA2, 0x00000000
@@ -104,7 +104,7 @@ DATA 4, MX6_MMDC_P0_MDOTC, 0x00333030
DATA 4, MX6_MMDC_P0_MDCFG0, 0x3F435333
DATA 4, MX6_MMDC_P0_MDCFG1, 0xB68E8B63
DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
-DATA 4, MX6_MMDC_P0_MDMISC, 0x00001740
+DATA 4, MX6_MMDC_P0_MDMISC, 0x00011740
DATA 4, MX6_MMDC_P0_MDSCR, 0x00008000
DATA 4, MX6_MMDC_P0_MDRWD, 0x000026D2
DATA 4, MX6_MMDC_P0_MDOR, 0x00431023
@@ -113,7 +113,7 @@ DATA 4, MX6_MMDC_P0_MDCTL, 0x831A0000
DATA 4, MX6_MMDC_P0_MDSCR, 0x00408032
DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
DATA 4, MX6_MMDC_P0_MDSCR, 0x00048031
-DATA 4, MX6_MMDC_P0_MDSCR, 0x05208030
+DATA 4, MX6_MMDC_P0_MDSCR, 0x15208030
DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
DATA 4, MX6_MMDC_P0_MDREF, 0x00007800
DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00022222
diff --git a/board/tq/tqma6/tqma6q.cfg b/board/tq/tqma6/tqma6q.cfg
index ad862535c50..673482b543c 100644
--- a/board/tq/tqma6/tqma6q.cfg
+++ b/board/tq/tqma6/tqma6q.cfg
@@ -29,7 +29,7 @@ BOOT_FROM spi
#include "asm/arch/iomux.h"
#include "asm/arch/crm_regs.h"
-/* TQMa6Q/D DDR config Rev. 0100B */
+/* TQMa6Q/D DDR config Rev. 0300D */
/* IOMUX configuration */
DATA 4, MX6_IOM_GRP_DDR_TYPE, 0x000C0000
DATA 4, MX6_IOM_GRP_DDRPKE, 0x00000000
@@ -38,7 +38,7 @@ DATA 4, MX6_IOM_DRAM_SDCLK_1, 0x00008030
DATA 4, MX6_IOM_DRAM_CAS, 0x00008030
DATA 4, MX6_IOM_DRAM_RAS, 0x00008030
DATA 4, MX6_IOM_GRP_ADDDS, 0x00000030
-DATA 4, MX6_IOM_DRAM_RESET, 0x00003030
+DATA 4, MX6_IOM_DRAM_RESET, 0x00000030
DATA 4, MX6_IOM_DRAM_SDCKE0, 0x00003000
DATA 4, MX6_IOM_DRAM_SDCKE1, 0x00000000
DATA 4, MX6_IOM_DRAM_SDBA2, 0x00000000
@@ -75,18 +75,18 @@ DATA 4, MX6_IOM_DRAM_DQM7, 0x00000030
/* memory interface calibration values */
DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xA1390003
DATA 4, MX6_MMDC_P1_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x001B0013
-DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x0018001B
-DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x001B0016
-DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x0012001C
-DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x43400350
-DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x023E032C
-DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x43400348
-DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x03300304
-DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x3C323436
-DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x38383242
-DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x3E3C4440
-DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x4236483E
+DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x00180016
+DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x001F0018
+DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x00130023
+DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x00040018
+DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x43500364
+DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x034C0344
+DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x43580364
+DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x033C031C
+DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x3C323438
+DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x383A3040
+DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x3A3E4440
+DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x4834483A
DATA 4, MX6_MMDC_P0_MPRDDQBY0DL, 0x33333333
DATA 4, MX6_MMDC_P0_MPRDDQBY1DL, 0x33333333
DATA 4, MX6_MMDC_P0_MPRDDQBY2DL, 0x33333333
@@ -104,18 +104,19 @@ DATA 4, MX6_MMDC_P0_MDOTC, 0x09444040
DATA 4, MX6_MMDC_P0_MDCFG0, 0x545A79B4
DATA 4, MX6_MMDC_P0_MDCFG1, 0xDB538F64
DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
-DATA 4, MX6_MMDC_P0_MDMISC, 0x00001740
+DATA 4, MX6_MMDC_P0_MDMISC, 0x00011740
DATA 4, MX6_MMDC_P0_MDSCR, 0x00008000
DATA 4, MX6_MMDC_P0_MDRWD, 0x000026D2
DATA 4, MX6_MMDC_P0_MDOR, 0x005A1023
DATA 4, MX6_MMDC_P0_MDASP, 0x00000027
DATA 4, MX6_MMDC_P0_MDCTL, 0x831A0000
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00088032
+
+DATA 4, MX6_MMDC_P0_MDSCR, 0x00488032
DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
DATA 4, MX6_MMDC_P0_MDSCR, 0x00048031
-DATA 4, MX6_MMDC_P0_MDSCR, 0x09308030
+DATA 4, MX6_MMDC_P0_MDSCR, 0x19308030
DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
-DATA 4, MX6_MMDC_P0_MDREF, 0x00005800
+DATA 4, MX6_MMDC_P0_MDREF, 0x00007800
DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00022222
DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00022222
DATA 4, MX6_MMDC_P0_MDPDC, 0x00025536
diff --git a/board/tq/tqma6/tqma6s.cfg b/board/tq/tqma6/tqma6s.cfg
index e50fe3f57d7..a5057689d64 100644
--- a/board/tq/tqma6/tqma6s.cfg
+++ b/board/tq/tqma6/tqma6s.cfg
@@ -29,7 +29,7 @@ BOOT_FROM spi
#include "asm/arch/iomux.h"
#include "asm/arch/crm_regs.h"
-/* TQMa6S DDR config Rev. 0100B */
+/* TQMa6S DDR config Rev. 0300D */
/* IOMUX configuration */
DATA 4, MX6_IOM_GRP_DDR_TYPE, 0x000C0000
DATA 4, MX6_IOM_GRP_DDRPKE, 0x00000000
@@ -38,7 +38,7 @@ DATA 4, MX6_IOM_DRAM_SDCLK_1, 0x00008030
DATA 4, MX6_IOM_DRAM_CAS, 0x00008030
DATA 4, MX6_IOM_DRAM_RAS, 0x00008030
DATA 4, MX6_IOM_GRP_ADDDS, 0x00000030
-DATA 4, MX6_IOM_DRAM_RESET, 0x000C3030
+DATA 4, MX6_IOM_DRAM_RESET, 0x00000030
DATA 4, MX6_IOM_DRAM_SDCKE0, 0x00003000
DATA 4, MX6_IOM_DRAM_SDCKE1, 0x00000000
DATA 4, MX6_IOM_DRAM_SDBA2, 0x00000000
@@ -75,17 +75,17 @@ DATA 4, MX6_IOM_DRAM_DQM7, 0x00000000
/* memory interface calibration values */
DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xA1390003
DATA 4, MX6_MMDC_P1_MPZQHWCTRL, 0xA1380000
-DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x0014000E
-DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x00120014
+DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x004C004A
+DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x003F0048
DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x00000000
DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x00000000
-DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x0240023C
-DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x0228022C
+DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x42440240
+DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x022C022C
DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x00000000
DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x00000000
-DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x4A4A4E4A
+DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x484A504C
DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x00000000
-DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x36362A32
+DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x34322832
DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x00000000
DATA 4, MX6_MMDC_P0_MPRDDQBY0DL, 0x33333333
DATA 4, MX6_MMDC_P0_MPRDDQBY1DL, 0x33333333
@@ -104,18 +104,19 @@ DATA 4, MX6_MMDC_P0_MDOTC, 0x00333030
DATA 4, MX6_MMDC_P0_MDCFG0, 0x3F435333
DATA 4, MX6_MMDC_P0_MDCFG1, 0xB68E8B63
DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
-DATA 4, MX6_MMDC_P0_MDMISC, 0x00001740
+DATA 4, MX6_MMDC_P0_MDMISC, 0x00011740
DATA 4, MX6_MMDC_P0_MDSCR, 0x00008000
DATA 4, MX6_MMDC_P0_MDRWD, 0x000026D2
DATA 4, MX6_MMDC_P0_MDOR, 0x00431023
DATA 4, MX6_MMDC_P0_MDASP, 0x00000017
DATA 4, MX6_MMDC_P0_MDCTL, 0x83190000
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00008032
+
+DATA 4, MX6_MMDC_P0_MDSCR, 0x00408032
DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
DATA 4, MX6_MMDC_P0_MDSCR, 0x00048031
-DATA 4, MX6_MMDC_P0_MDSCR, 0x05208030
+DATA 4, MX6_MMDC_P0_MDSCR, 0x15208030
DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
-DATA 4, MX6_MMDC_P0_MDREF, 0x00005800
+DATA 4, MX6_MMDC_P0_MDREF, 0x00007800
DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00022222
DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00000000
DATA 4, MX6_MMDC_P0_MDPDC, 0x0002552D
diff --git a/configs/imx93_11x11_evk_defconfig b/configs/imx93_11x11_evk_defconfig
index 7d3463a57ea..39a7962d7ca 100644
--- a/configs/imx93_11x11_evk_defconfig
+++ b/configs/imx93_11x11_evk_defconfig
@@ -36,7 +36,7 @@ CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx93-11x11-evk.dtb"
CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074
-CONFIG_BOARD_EARLY_INIT_F=y
+# CONFIG_BOARD_INIT is not set
CONFIG_BOARD_LATE_INIT=y
CONFIG_SPL_MAX_SIZE=0x26000
CONFIG_SPL_BOARD_INIT=y
diff --git a/configs/tqma6_mba6_common.defconfig b/configs/tqma6_mba6_common.defconfig
new file mode 100644
index 00000000000..6865d3b2641
--- /dev/null
+++ b/configs/tqma6_mba6_common.defconfig
@@ -0,0 +1,79 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_SYS_MALLOC_LEN=0x202000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SF_DEFAULT_SPEED=50000000
+CONFIG_ENV_SIZE=0x2000
+CONFIG_TARGET_TQMA6=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SUPPORT_RAW_INITRD=y
+CONFIG_BOOTDELAY=3
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_FDT_FIXUP_PARTITIONS=y
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="run mmcboot"
+CONFIG_SYS_PBSIZE=532
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_MAXARGS=32
+CONFIG_CMD_BOOTZ=y
+CONFIG_CRC32_VERIFY=y
+CONFIG_CMD_EEPROM=y
+CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
+CONFIG_CMD_MD5SUM=y
+CONFIG_MD5SUM_VERIFY=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_SPI=y
+CONFIG_CMD_TEMPERATURE=y
+CONFIG_CMD_NFS=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_RELOC_GD_ENV_ADDR=y
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_ARP_TIMEOUT=200
+CONFIG_USE_ROOTPATH=y
+CONFIG_ROOTPATH="/srv/nfs"
+CONFIG_BOUNCE_BUFFER=y
+CONFIG_BUTTON=y
+CONFIG_BUTTON_GPIO=y
+CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
+CONFIG_SYS_I2C_MXC=y
+CONFIG_LED=y
+CONFIG_LED_GPIO=y
+CONFIG_SYS_I2C_EEPROM_ADDR=0x50
+CONFIG_SUPPORT_EMMC_BOOT=y
+CONFIG_FSL_USDHC=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_PHY_ANEG_TIMEOUT=8000
+CONFIG_DM_MDIO=y
+CONFIG_DM_ETH_PHY=y
+CONFIG_FEC_MXC=y
+CONFIG_RGMII=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PFUZE100=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_PFUZE100=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_DM_SERIAL=y
+CONFIG_SYSRESET=y
+CONFIG_SYSRESET_WATCHDOG=y
+CONFIG_DM_THERMAL=y
+CONFIG_IMX_THERMAL=y
+CONFIG_IMX_WATCHDOG=y
diff --git a/configs/tqma6_mba6_mmc.defconfig b/configs/tqma6_mba6_mmc.defconfig
new file mode 100644
index 00000000000..a25184378e0
--- /dev/null
+++ b/configs/tqma6_mba6_mmc.defconfig
@@ -0,0 +1,3 @@
+CONFIG_ENV_OFFSET=0x100000
+CONFIG_ENV_IS_IN_MMC=y
+# CONFIG_DISPLAY_BOARDINFO is not set
diff --git a/configs/tqma6_mba6_spi.defconfig b/configs/tqma6_mba6_spi.defconfig
new file mode 100644
index 00000000000..5e161b1e16c
--- /dev/null
+++ b/configs/tqma6_mba6_spi.defconfig
@@ -0,0 +1,6 @@
+CONFIG_ENV_OFFSET=0x80000
+CONFIG_ENV_SECT_SIZE=0x10000
+CONFIG_TQMA6X_SPI_BOOT=y
+CONFIG_ENV_OFFSET_REDUND=0x90000
+CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_ENV_REDUNDANT=y
diff --git a/configs/tqma6dl_mba6_mmc_defconfig b/configs/tqma6dl_mba6_mmc_defconfig
index e2fd022cc38..06166cb7da5 100644
--- a/configs/tqma6dl_mba6_mmc_defconfig
+++ b/configs/tqma6dl_mba6_mmc_defconfig
@@ -1,73 +1,5 @@
-CONFIG_ARM=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_MALLOC_LEN=0x202000
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SF_DEFAULT_SPEED=50000000
-CONFIG_ENV_SIZE=0x2000
-CONFIG_ENV_OFFSET=0x100000
+#include <configs/tqma6_mba6_common.defconfig>
+#include <configs/tqma6_mba6_mmc.defconfig>
+
CONFIG_MX6DL=y
-CONFIG_TARGET_TQMA6=y
CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6dl-mba6b"
-CONFIG_FIT=y
-CONFIG_FIT_VERBOSE=y
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_BOOTDELAY=3
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="run mmcboot; run netboot; run panicboot"
-CONFIG_DEFAULT_FDT_FILE="imx6dl-mba6x.dtb"
-CONFIG_SYS_PBSIZE=532
-# CONFIG_DISPLAY_BOARDINFO is not set
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_MAXARGS=32
-CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_EEPROM=y
-CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_SPI=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_OF_CONTROL=y
-CONFIG_ENV_OVERWRITE=y
-CONFIG_ENV_IS_IN_MMC=y
-CONFIG_ENV_RELOC_GD_ENV_ADDR=y
-CONFIG_USE_ETHPRIME=y
-CONFIG_ETHPRIME="FEC"
-CONFIG_ARP_TIMEOUT=200
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
-CONFIG_SYS_I2C_MXC=y
-CONFIG_SYS_I2C_EEPROM_ADDR=0x50
-CONFIG_FSL_USDHC=y
-CONFIG_SPI_FLASH_SPANSION=y
-CONFIG_SPI_FLASH_STMICRO=y
-CONFIG_SPI_FLASH_WINBOND=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_DM_MDIO=y
-CONFIG_DM_ETH_PHY=y
-CONFIG_FEC_MXC=y
-CONFIG_RGMII=y
-CONFIG_MII=y
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX6=y
-CONFIG_DM_PMIC=y
-CONFIG_DM_PMIC_PFUZE100=y
-CONFIG_DM_REGULATOR=y
-CONFIG_DM_REGULATOR_PFUZE100=y
-CONFIG_DM_REGULATOR_FIXED=y
-CONFIG_DM_REGULATOR_GPIO=y
-CONFIG_DM_SERIAL=y
-CONFIG_SYSRESET=y
-CONFIG_SYSRESET_WATCHDOG=y
-CONFIG_DM_THERMAL=y
-CONFIG_IMX_THERMAL=y
-CONFIG_IMX_WATCHDOG=y
diff --git a/configs/tqma6dl_mba6_spi_defconfig b/configs/tqma6dl_mba6_spi_defconfig
index f98775f1ae3..f22ea543042 100644
--- a/configs/tqma6dl_mba6_spi_defconfig
+++ b/configs/tqma6dl_mba6_spi_defconfig
@@ -1,76 +1,5 @@
-CONFIG_ARM=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_MALLOC_LEN=0x202000
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SF_DEFAULT_SPEED=50000000
-CONFIG_ENV_SIZE=0x2000
-CONFIG_ENV_OFFSET=0x80000
-CONFIG_ENV_SECT_SIZE=0x10000
+#include <configs/tqma6_mba6_common.defconfig>
+#include <configs/tqma6_mba6_spi.defconfig>
+
CONFIG_MX6DL=y
-CONFIG_TARGET_TQMA6=y
-CONFIG_TQMA6X_SPI_BOOT=y
CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6dl-mba6b"
-CONFIG_ENV_OFFSET_REDUND=0x90000
-CONFIG_FIT=y
-CONFIG_FIT_VERBOSE=y
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_BOOTDELAY=3
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="sf probe; run mmcboot; run netboot; run panicboot"
-CONFIG_DEFAULT_FDT_FILE="imx6dl-mba6x.dtb"
-CONFIG_SYS_PBSIZE=532
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_MAXARGS=32
-CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_EEPROM=y
-CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_SPI=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_OF_CONTROL=y
-CONFIG_ENV_OVERWRITE=y
-CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_ENV_REDUNDANT=y
-CONFIG_ENV_RELOC_GD_ENV_ADDR=y
-CONFIG_USE_ETHPRIME=y
-CONFIG_ETHPRIME="FEC"
-CONFIG_ARP_TIMEOUT=200
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
-CONFIG_SYS_I2C_MXC=y
-CONFIG_SYS_I2C_EEPROM_ADDR=0x50
-CONFIG_FSL_USDHC=y
-CONFIG_SPI_FLASH_SPANSION=y
-CONFIG_SPI_FLASH_STMICRO=y
-CONFIG_SPI_FLASH_WINBOND=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_DM_MDIO=y
-CONFIG_DM_ETH_PHY=y
-CONFIG_FEC_MXC=y
-CONFIG_RGMII=y
-CONFIG_MII=y
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX6=y
-CONFIG_DM_PMIC=y
-CONFIG_DM_PMIC_PFUZE100=y
-CONFIG_DM_REGULATOR=y
-CONFIG_DM_REGULATOR_PFUZE100=y
-CONFIG_DM_REGULATOR_FIXED=y
-CONFIG_DM_REGULATOR_GPIO=y
-CONFIG_DM_SERIAL=y
-CONFIG_SYSRESET=y
-CONFIG_SYSRESET_WATCHDOG=y
-CONFIG_DM_THERMAL=y
-CONFIG_IMX_THERMAL=y
-CONFIG_IMX_WATCHDOG=y
diff --git a/configs/tqma6q_mba6_mmc_defconfig b/configs/tqma6q_mba6_mmc_defconfig
index de5a732463f..2d3fcbccc14 100644
--- a/configs/tqma6q_mba6_mmc_defconfig
+++ b/configs/tqma6q_mba6_mmc_defconfig
@@ -1,72 +1,5 @@
-CONFIG_ARM=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_MALLOC_LEN=0x202000
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SF_DEFAULT_SPEED=50000000
-CONFIG_ENV_SIZE=0x2000
-CONFIG_ENV_OFFSET=0x100000
+#include <configs/tqma6_mba6_common.defconfig>
+#include <configs/tqma6_mba6_mmc.defconfig>
+
CONFIG_MX6Q=y
-CONFIG_TARGET_TQMA6=y
CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6q-mba6b"
-CONFIG_FIT=y
-CONFIG_FIT_VERBOSE=y
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_BOOTDELAY=3
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="run mmcboot; run netboot; run panicboot"
-CONFIG_DEFAULT_FDT_FILE="imx6q-mba6x.dtb"
-CONFIG_SYS_PBSIZE=532
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_MAXARGS=32
-CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_EEPROM=y
-CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_SPI=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_OF_CONTROL=y
-CONFIG_ENV_OVERWRITE=y
-CONFIG_ENV_IS_IN_MMC=y
-CONFIG_ENV_RELOC_GD_ENV_ADDR=y
-CONFIG_USE_ETHPRIME=y
-CONFIG_ETHPRIME="FEC"
-CONFIG_ARP_TIMEOUT=200
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
-CONFIG_SYS_I2C_MXC=y
-CONFIG_SYS_I2C_EEPROM_ADDR=0x50
-CONFIG_FSL_USDHC=y
-CONFIG_SPI_FLASH_SPANSION=y
-CONFIG_SPI_FLASH_STMICRO=y
-CONFIG_SPI_FLASH_WINBOND=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_DM_MDIO=y
-CONFIG_DM_ETH_PHY=y
-CONFIG_FEC_MXC=y
-CONFIG_RGMII=y
-CONFIG_MII=y
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX6=y
-CONFIG_DM_PMIC=y
-CONFIG_DM_PMIC_PFUZE100=y
-CONFIG_DM_REGULATOR=y
-CONFIG_DM_REGULATOR_PFUZE100=y
-CONFIG_DM_REGULATOR_FIXED=y
-CONFIG_DM_REGULATOR_GPIO=y
-CONFIG_DM_SERIAL=y
-CONFIG_SYSRESET=y
-CONFIG_SYSRESET_WATCHDOG=y
-CONFIG_DM_THERMAL=y
-CONFIG_IMX_THERMAL=y
-CONFIG_IMX_WATCHDOG=y
diff --git a/configs/tqma6q_mba6_spi_defconfig b/configs/tqma6q_mba6_spi_defconfig
index 291c1f2fa33..5d61d097eec 100644
--- a/configs/tqma6q_mba6_spi_defconfig
+++ b/configs/tqma6q_mba6_spi_defconfig
@@ -1,76 +1,5 @@
-CONFIG_ARM=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_MALLOC_LEN=0x202000
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SF_DEFAULT_SPEED=50000000
-CONFIG_ENV_SIZE=0x2000
-CONFIG_ENV_OFFSET=0x80000
-CONFIG_ENV_SECT_SIZE=0x10000
+#include <configs/tqma6_mba6_common.defconfig>
+#include <configs/tqma6_mba6_spi.defconfig>
+
CONFIG_MX6Q=y
-CONFIG_TARGET_TQMA6=y
-CONFIG_TQMA6X_SPI_BOOT=y
CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6q-mba6b"
-CONFIG_ENV_OFFSET_REDUND=0x90000
-CONFIG_FIT=y
-CONFIG_FIT_VERBOSE=y
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_BOOTDELAY=3
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="sf probe; run mmcboot; run netboot; run panicboot"
-CONFIG_DEFAULT_FDT_FILE="nxp/imx/imx6q-mba6x.dtb"
-CONFIG_SYS_PBSIZE=532
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_MAXARGS=32
-CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_EEPROM=y
-CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_SPI=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_OF_CONTROL=y
-CONFIG_ENV_OVERWRITE=y
-CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_ENV_REDUNDANT=y
-CONFIG_ENV_RELOC_GD_ENV_ADDR=y
-CONFIG_USE_ETHPRIME=y
-CONFIG_ETHPRIME="FEC"
-CONFIG_ARP_TIMEOUT=200
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
-CONFIG_SYS_I2C_MXC=y
-CONFIG_SYS_I2C_EEPROM_ADDR=0x50
-CONFIG_FSL_USDHC=y
-CONFIG_SPI_FLASH_SPANSION=y
-CONFIG_SPI_FLASH_STMICRO=y
-CONFIG_SPI_FLASH_WINBOND=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_DM_MDIO=y
-CONFIG_DM_ETH_PHY=y
-CONFIG_FEC_MXC=y
-CONFIG_RGMII=y
-CONFIG_MII=y
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX6=y
-CONFIG_DM_PMIC=y
-CONFIG_DM_PMIC_PFUZE100=y
-CONFIG_DM_REGULATOR=y
-CONFIG_DM_REGULATOR_PFUZE100=y
-CONFIG_DM_REGULATOR_FIXED=y
-CONFIG_DM_REGULATOR_GPIO=y
-CONFIG_DM_SERIAL=y
-CONFIG_SYSRESET=y
-CONFIG_SYSRESET_WATCHDOG=y
-CONFIG_DM_THERMAL=y
-CONFIG_IMX_THERMAL=y
-CONFIG_IMX_WATCHDOG=y
diff --git a/configs/tqma6s_mba6_mmc_defconfig b/configs/tqma6s_mba6_mmc_defconfig
index 8e6935a3c48..323f582e874 100644
--- a/configs/tqma6s_mba6_mmc_defconfig
+++ b/configs/tqma6s_mba6_mmc_defconfig
@@ -1,72 +1,5 @@
-CONFIG_ARM=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_MALLOC_LEN=0x202000
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SF_DEFAULT_SPEED=50000000
-CONFIG_ENV_SIZE=0x2000
-CONFIG_ENV_OFFSET=0x100000
+#include <configs/tqma6_mba6_common.defconfig>
+#include <configs/tqma6_mba6_mmc.defconfig>
+
CONFIG_MX6S=y
-CONFIG_TARGET_TQMA6=y
CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6dl-mba6b"
-CONFIG_FIT=y
-CONFIG_FIT_VERBOSE=y
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_BOOTDELAY=3
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="run mmcboot; run netboot; run panicboot"
-CONFIG_DEFAULT_FDT_FILE="imx6dl-mba6x.dtb"
-CONFIG_SYS_PBSIZE=532
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_MAXARGS=32
-CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_EEPROM=y
-CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_SPI=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_OF_CONTROL=y
-CONFIG_ENV_OVERWRITE=y
-CONFIG_ENV_IS_IN_MMC=y
-CONFIG_ENV_RELOC_GD_ENV_ADDR=y
-CONFIG_USE_ETHPRIME=y
-CONFIG_ETHPRIME="FEC"
-CONFIG_ARP_TIMEOUT=200
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
-CONFIG_SYS_I2C_MXC=y
-CONFIG_SYS_I2C_EEPROM_ADDR=0x50
-CONFIG_FSL_USDHC=y
-CONFIG_SPI_FLASH_SPANSION=y
-CONFIG_SPI_FLASH_STMICRO=y
-CONFIG_SPI_FLASH_WINBOND=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_DM_MDIO=y
-CONFIG_DM_ETH_PHY=y
-CONFIG_FEC_MXC=y
-CONFIG_RGMII=y
-CONFIG_MII=y
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX6=y
-CONFIG_DM_PMIC=y
-CONFIG_DM_PMIC_PFUZE100=y
-CONFIG_DM_REGULATOR=y
-CONFIG_DM_REGULATOR_PFUZE100=y
-CONFIG_DM_REGULATOR_FIXED=y
-CONFIG_DM_REGULATOR_GPIO=y
-CONFIG_DM_SERIAL=y
-CONFIG_SYSRESET=y
-CONFIG_SYSRESET_WATCHDOG=y
-CONFIG_DM_THERMAL=y
-CONFIG_IMX_THERMAL=y
-CONFIG_IMX_WATCHDOG=y
diff --git a/configs/tqma6s_mba6_spi_defconfig b/configs/tqma6s_mba6_spi_defconfig
index 7c499077d0d..9701d35cfb8 100644
--- a/configs/tqma6s_mba6_spi_defconfig
+++ b/configs/tqma6s_mba6_spi_defconfig
@@ -1,76 +1,5 @@
-CONFIG_ARM=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_MALLOC_LEN=0x202000
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SF_DEFAULT_SPEED=50000000
-CONFIG_ENV_SIZE=0x2000
-CONFIG_ENV_OFFSET=0x80000
-CONFIG_ENV_SECT_SIZE=0x10000
+#include <configs/tqma6_mba6_common.defconfig>
+#include <configs/tqma6_mba6_spi.defconfig>
+
CONFIG_MX6S=y
-CONFIG_TARGET_TQMA6=y
-CONFIG_TQMA6X_SPI_BOOT=y
CONFIG_DEFAULT_DEVICE_TREE="nxp/imx/imx6dl-mba6b"
-CONFIG_ENV_OFFSET_REDUND=0x90000
-CONFIG_FIT=y
-CONFIG_FIT_VERBOSE=y
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_BOOTDELAY=3
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="sf probe; run mmcboot; run netboot; run panicboot"
-CONFIG_DEFAULT_FDT_FILE="imx6dl-mba6x.dtb"
-CONFIG_SYS_PBSIZE=532
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_MAXARGS=32
-CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_EEPROM=y
-CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_SPI=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_EXT4_WRITE=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_OF_CONTROL=y
-CONFIG_ENV_OVERWRITE=y
-CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_ENV_REDUNDANT=y
-CONFIG_ENV_RELOC_GD_ENV_ADDR=y
-CONFIG_USE_ETHPRIME=y
-CONFIG_ETHPRIME="FEC"
-CONFIG_ARP_TIMEOUT=200
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
-CONFIG_SYS_I2C_MXC=y
-CONFIG_SYS_I2C_EEPROM_ADDR=0x50
-CONFIG_FSL_USDHC=y
-CONFIG_SPI_FLASH_SPANSION=y
-CONFIG_SPI_FLASH_STMICRO=y
-CONFIG_SPI_FLASH_WINBOND=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_DM_MDIO=y
-CONFIG_DM_ETH_PHY=y
-CONFIG_FEC_MXC=y
-CONFIG_RGMII=y
-CONFIG_MII=y
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX6=y
-CONFIG_DM_PMIC=y
-CONFIG_DM_PMIC_PFUZE100=y
-CONFIG_DM_REGULATOR=y
-CONFIG_DM_REGULATOR_PFUZE100=y
-CONFIG_DM_REGULATOR_FIXED=y
-CONFIG_DM_REGULATOR_GPIO=y
-CONFIG_DM_SERIAL=y
-CONFIG_SYSRESET=y
-CONFIG_SYSRESET_WATCHDOG=y
-CONFIG_DM_THERMAL=y
-CONFIG_IMX_THERMAL=y
-CONFIG_IMX_WATCHDOG=y
diff --git a/drivers/misc/imx_ele/ele_api.c b/drivers/misc/imx_ele/ele_api.c
index 661f70cf870..e7aee0fcef1 100644
--- a/drivers/misc/imx_ele/ele_api.c
+++ b/drivers/misc/imx_ele/ele_api.c
@@ -794,3 +794,53 @@ int ele_generate_dek_blob(u32 key_id, u32 src_paddr, u32 dst_paddr, u32 max_outp
return ret;
}
+
+int ele_volt_change_start_req(void)
+{
+ struct udevice *dev = gd->arch.ele_dev;
+ int size = sizeof(struct ele_msg);
+ struct ele_msg msg = {};
+ int ret;
+
+ if (!dev) {
+ printf("ele dev is not initialized\n");
+ return -ENODEV;
+ }
+
+ msg.version = ELE_VERSION;
+ msg.tag = ELE_CMD_TAG;
+ msg.size = 1;
+ msg.command = ELE_VOLT_CHANGE_START_REQ;
+
+ ret = misc_call(dev, false, &msg, size, &msg, size);
+ if (ret)
+ printf("Error: %s: ret %d, response 0x%x\n",
+ __func__, ret, msg.data[0]);
+
+ return ret;
+}
+
+int ele_volt_change_finish_req(void)
+{
+ struct udevice *dev = gd->arch.ele_dev;
+ int size = sizeof(struct ele_msg);
+ struct ele_msg msg = {};
+ int ret;
+
+ if (!dev) {
+ printf("ele dev is not initialized\n");
+ return -ENODEV;
+ }
+
+ msg.version = ELE_VERSION;
+ msg.tag = ELE_CMD_TAG;
+ msg.size = 1;
+ msg.command = ELE_VOLT_CHANGE_FINISH_REQ;
+
+ ret = misc_call(dev, false, &msg, size, &msg, size);
+ if (ret)
+ printf("Error: %s: ret %d, response 0x%x\n",
+ __func__, ret, msg.data[0]);
+
+ return ret;
+}
diff --git a/include/configs/dh_imx6.h b/include/configs/dh_imx6.h
index d849cb544be..4041e7e424a 100644
--- a/include/configs/dh_imx6.h
+++ b/include/configs/dh_imx6.h
@@ -54,6 +54,7 @@
func(MMC, mmc, 0) \
func(MMC, mmc, 1) \
func(MMC, mmc, 2) \
+ func(USB, usb, 0) \
func(USB, usb, 1) \
func(SATA, sata, 0) \
func(DHCP, dhcp, na)
diff --git a/tools/imx8image.c b/tools/imx8image.c
index 3cea536b8e8..84f46bcaf37 100644
--- a/tools/imx8image.c
+++ b/tools/imx8image.c
@@ -815,7 +815,7 @@ static int get_container_image_start_pos(image_t *image_stack, uint32_t align, u
p = calloc(1, size);
if (!p) {
- fprintf(stderr, "Fail to alloc %lx memory\n", size);
+ fprintf(stderr, "Fail to alloc %zx memory\n", size);
exit(EXIT_FAILURE);
}