[PATCH V4 0/4] imx: imx8m: enable DM SERIAL

From: Peng Fan peng.fan@nxp.com
V4: Rebased, update commit log Per Tim's comments
V3: Add missed Signed-off-by Rebased to only add CONFIG_DM_SERIAL, not touch other config change in defconfig
V2: Include imx8mq-evk in this patchset. For i.MX8MN/M/P, drop board level uart pinmux settings, move preloader_console_init after driver probe.
Tested on all four boards. Note i.MX8MQ-EVK not have SPL_DM, so pinmux for uart still there for spl usage.
Peng Fan (4): imx: imx8mp_evk: enable CONFIG_DM_SERIAL imx: imx8mm_evk: enable CONFIG_DM_SERIAL imx: imx8mn_evk: enable CONFIG_DM_SERIAL imx: imx8mq-evk: enable CONFIG_DM_SERIAL
arch/arm/dts/imx8mq-evk-u-boot.dtsi | 32 +++++++++++++++++++++++++ board/freescale/imx8mm_evk/spl.c | 12 ++-------- board/freescale/imx8mn_evk/spl.c | 12 ++-------- board/freescale/imx8mp_evk/imx8mp_evk.c | 8 ------- configs/imx8mm_evk_defconfig | 1 + configs/imx8mn_ddr4_evk_defconfig | 1 + configs/imx8mn_evk_defconfig | 1 - configs/imx8mp_evk_defconfig | 1 + configs/imx8mq_evk_defconfig | 1 + 9 files changed, 40 insertions(+), 29 deletions(-)

From: Peng Fan peng.fan@nxp.com
Enable CONFIG_DM_SERIAL. uart2 and its pinmux was already marked with u-boot,dm-spl.
Signed-off-by: Peng Fan peng.fan@nxp.com --- board/freescale/imx8mp_evk/imx8mp_evk.c | 8 -------- configs/imx8mp_evk_defconfig | 1 + 2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/board/freescale/imx8mp_evk/imx8mp_evk.c b/board/freescale/imx8mp_evk/imx8mp_evk.c index 62096c24fb7..fb6c61c39e7 100644 --- a/board/freescale/imx8mp_evk/imx8mp_evk.c +++ b/board/freescale/imx8mp_evk/imx8mp_evk.c @@ -20,14 +20,8 @@
DECLARE_GLOBAL_DATA_PTR;
-#define UART_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_FSEL1) #define WDOG_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_ODE | PAD_CTL_PUE | PAD_CTL_PE)
-static iomux_v3_cfg_t const uart_pads[] = { - MX8MP_PAD_UART2_RXD__UART2_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL), - MX8MP_PAD_UART2_TXD__UART2_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL), -}; - static iomux_v3_cfg_t const wdog_pads[] = { MX8MP_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), }; @@ -40,8 +34,6 @@ int board_early_init_f(void)
set_wdog_reset(wdog);
- imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads)); - return 0; }
diff --git a/configs/imx8mp_evk_defconfig b/configs/imx8mp_evk_defconfig index c64b699e105..01240e543af 100644 --- a/configs/imx8mp_evk_defconfig +++ b/configs/imx8mp_evk_defconfig @@ -91,6 +91,7 @@ CONFIG_DM_REGULATOR=y CONFIG_DM_REGULATOR_FIXED=y CONFIG_DM_REGULATOR_GPIO=y CONFIG_SPL_POWER_I2C=y +CONFIG_DM_SERIAL=y CONFIG_MXC_UART=y CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y

From: Peng Fan peng.fan@nxp.com Enable CONFIG_DM_SERIAL. uart2 and its pinmux was already marked with u-boot,dm-spl. Signed-off-by: Peng Fan peng.fan@nxp.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

From: Peng Fan peng.fan@nxp.com
Enable CONFIG_DM_SERIAL. uart2 and its pinmux was already marked with u-boot,dm-spl.
move the preloader_console_init() call after spl_early_init() to avoid board hang
Signed-off-by: Peng Fan peng.fan@nxp.com --- board/freescale/imx8mm_evk/spl.c | 12 ++---------- configs/imx8mm_evk_defconfig | 1 + 2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/board/freescale/imx8mm_evk/spl.c b/board/freescale/imx8mm_evk/spl.c index cf4882cd10c..7eeec6c485a 100644 --- a/board/freescale/imx8mm_evk/spl.c +++ b/board/freescale/imx8mm_evk/spl.c @@ -72,14 +72,8 @@ int board_fit_config_name_match(const char *name) } #endif
-#define UART_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_FSEL1) #define WDOG_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_ODE | PAD_CTL_PUE | PAD_CTL_PE)
-static iomux_v3_cfg_t const uart_pads[] = { - IMX8MM_PAD_UART2_RXD_UART2_RX | MUX_PAD_CTRL(UART_PAD_CTRL), - IMX8MM_PAD_UART2_TXD_UART2_TX | MUX_PAD_CTRL(UART_PAD_CTRL), -}; - static iomux_v3_cfg_t const wdog_pads[] = { IMX8MM_PAD_GPIO1_IO02_WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), }; @@ -92,8 +86,6 @@ int board_early_init_f(void)
set_wdog_reset(wdog);
- imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads)); - return 0; }
@@ -147,8 +139,6 @@ void board_init_f(ulong dummy)
timer_init();
- preloader_console_init(); - /* Clear the BSS. */ memset(__bss_start, 0, __bss_end - __bss_start);
@@ -166,6 +156,8 @@ void board_init_f(ulong dummy) hang(); }
+ preloader_console_init(); + enable_tzc380();
power_init_board(); diff --git a/configs/imx8mm_evk_defconfig b/configs/imx8mm_evk_defconfig index 36bf17d1ac0..9ee157c214a 100644 --- a/configs/imx8mm_evk_defconfig +++ b/configs/imx8mm_evk_defconfig @@ -79,6 +79,7 @@ CONFIG_DM_REGULATOR=y CONFIG_DM_REGULATOR_FIXED=y CONFIG_DM_REGULATOR_GPIO=y CONFIG_DM_PWM=y +CONFIG_DM_SERIAL=y CONFIG_PWM_IMX=y CONFIG_MXC_UART=y CONFIG_SYSRESET=y

From: Peng Fan peng.fan@nxp.com Enable CONFIG_DM_SERIAL. uart2 and its pinmux was already marked with u-boot,dm-spl. move the preloader_console_init() call after spl_early_init() to avoid board hang Signed-off-by: Peng Fan peng.fan@nxp.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

From: Peng Fan peng.fan@nxp.com
Enable CONFIG_DM_SERIAL. uart2 and its pinmux was already marked with u-boot,dm-spl.
move the preloader_console_init() call after spl_init() to avoid board hang
Signed-off-by: Peng Fan peng.fan@nxp.com --- board/freescale/imx8mn_evk/spl.c | 12 ++---------- configs/imx8mn_ddr4_evk_defconfig | 1 + configs/imx8mn_evk_defconfig | 1 - 3 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/board/freescale/imx8mn_evk/spl.c b/board/freescale/imx8mn_evk/spl.c index dfa81a0d652..63f335be3b0 100644 --- a/board/freescale/imx8mn_evk/spl.c +++ b/board/freescale/imx8mn_evk/spl.c @@ -115,14 +115,8 @@ int board_fit_config_name_match(const char *name) } #endif
-#define UART_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_FSEL1) #define WDOG_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_ODE | PAD_CTL_PUE | PAD_CTL_PE)
-static iomux_v3_cfg_t const uart_pads[] = { - IMX8MN_PAD_UART2_RXD__UART2_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL), - IMX8MN_PAD_UART2_TXD__UART2_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL), -}; - static iomux_v3_cfg_t const wdog_pads[] = { IMX8MN_PAD_GPIO1_IO02__WDOG1_WDOG_B | MUX_PAD_CTRL(WDOG_PAD_CTRL), }; @@ -135,8 +129,6 @@ int board_early_init_f(void)
set_wdog_reset(wdog);
- imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads)); - return 0; }
@@ -152,8 +144,6 @@ void board_init_f(ulong dummy)
timer_init();
- preloader_console_init(); - /* Clear the BSS. */ memset(__bss_start, 0, __bss_end - __bss_start);
@@ -163,6 +153,8 @@ void board_init_f(ulong dummy) hang(); }
+ preloader_console_init(); + enable_tzc380();
/* DDR initialization */ diff --git a/configs/imx8mn_ddr4_evk_defconfig b/configs/imx8mn_ddr4_evk_defconfig index 917cdb5aa9d..474d9cfa4d2 100644 --- a/configs/imx8mn_ddr4_evk_defconfig +++ b/configs/imx8mn_ddr4_evk_defconfig @@ -76,6 +76,7 @@ CONFIG_PINCTRL_IMX8M=y CONFIG_DM_REGULATOR=y CONFIG_DM_REGULATOR_FIXED=y CONFIG_DM_REGULATOR_GPIO=y +CONFIG_DM_SERIAL=y CONFIG_MXC_UART=y CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y diff --git a/configs/imx8mn_evk_defconfig b/configs/imx8mn_evk_defconfig index b2981d1e369..5bc175154ba 100644 --- a/configs/imx8mn_evk_defconfig +++ b/configs/imx8mn_evk_defconfig @@ -84,7 +84,6 @@ CONFIG_SPL_DM_REGULATOR=y CONFIG_DM_REGULATOR_FIXED=y CONFIG_DM_REGULATOR_GPIO=y CONFIG_DM_SERIAL=y -# CONFIG_SPL_DM_SERIAL is not set CONFIG_MXC_UART=y CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y

From: Peng Fan peng.fan@nxp.com Enable CONFIG_DM_SERIAL. uart2 and its pinmux was already marked with u-boot,dm-spl. move the preloader_console_init() call after spl_init() to avoid board hang Signed-off-by: Peng Fan peng.fan@nxp.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

From: Peng Fan peng.fan@nxp.com
Marked related nodes as u-boot,dm-spl for serial driver model Enable CONFIG_DM_SERIAL
Signed-off-by: Peng Fan peng.fan@nxp.com --- arch/arm/dts/imx8mq-evk-u-boot.dtsi | 32 +++++++++++++++++++++++++++++ configs/imx8mq_evk_defconfig | 1 + 2 files changed, 33 insertions(+)
diff --git a/arch/arm/dts/imx8mq-evk-u-boot.dtsi b/arch/arm/dts/imx8mq-evk-u-boot.dtsi index 6f9c81462ea..919c1f66d38 100644 --- a/arch/arm/dts/imx8mq-evk-u-boot.dtsi +++ b/arch/arm/dts/imx8mq-evk-u-boot.dtsi @@ -2,6 +2,34 @@
#include "imx8mq-u-boot.dtsi"
+&{/soc@0} { + u-boot,dm-spl; +}; + +&{/soc@0/bus@30000000} { + u-boot,dm-spl; +}; + +&{/soc@0/bus@30400000} { + u-boot,dm-spl; +}; + +&{/soc@0/bus@30800000} { + u-boot,dm-spl; +}; + +&{/soc@0/bus@32c00000} { + u-boot,dm-spl; +}; + +&iomuxc { + u-boot,dm-spl; +}; + +&pinctrl_uart1 { + u-boot,dm-spl; +}; + &usdhc1 { mmc-hs400-1_8v; }; @@ -10,3 +38,7 @@ sd-uhs-sdr104; sd-uhs-ddr50; }; + +&uart1 { + u-boot,dm-spl; +}; diff --git a/configs/imx8mq_evk_defconfig b/configs/imx8mq_evk_defconfig index df7a259f35a..780f93103c7 100644 --- a/configs/imx8mq_evk_defconfig +++ b/configs/imx8mq_evk_defconfig @@ -80,6 +80,7 @@ CONFIG_DM_REGULATOR_FIXED=y CONFIG_DM_REGULATOR_GPIO=y CONFIG_SPL_POWER_I2C=y CONFIG_DM_RESET=y +CONFIG_DM_SERIAL=y CONFIG_MXC_UART=y CONFIG_DM_THERMAL=y CONFIG_USB=y

From: Peng Fan peng.fan@nxp.com Marked related nodes as u-boot,dm-spl for serial driver model Enable CONFIG_DM_SERIAL Signed-off-by: Peng Fan peng.fan@nxp.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

Hi Peng,
On Fri, Apr 15, 2022 at 12:54 AM Peng Fan (OSS) peng.fan@oss.nxp.com wrote:
From: Peng Fan peng.fan@nxp.com
V4: Rebased, update commit log Per Tim's comments
V3: Add missed Signed-off-by Rebased to only add CONFIG_DM_SERIAL, not touch other config change in defconfig
V2: Include imx8mq-evk in this patchset. For i.MX8MN/M/P, drop board level uart pinmux settings, move preloader_console_init after driver probe.
Tested on all four boards. Note i.MX8MQ-EVK not have SPL_DM, so pinmux for uart still there for spl usage.
Peng Fan (4): imx: imx8mp_evk: enable CONFIG_DM_SERIAL imx: imx8mm_evk: enable CONFIG_DM_SERIAL imx: imx8mn_evk: enable CONFIG_DM_SERIAL imx: imx8mq-evk: enable CONFIG_DM_SERIAL
For the series:
Reviewed-by: Fabio Estevam festevam@denx.de
participants (3)
-
Fabio Estevam
-
Peng Fan (OSS)
-
sbabic@denx.de