> Subject: [RFC PATCH] imx: imx8mm-evk/imx8mn-evk: enable sysreset driver > for SPL >
NAK, this will not work on i.MX8MM/N. Currently sysreset psci is enabled, however psci will not work for SPL, because SPL boots before BL31. Regards, Peng. > Hi, > > I have only tested compiling, but if the reset in the SPL on i.MX8MM and > i.MX8MN still works with this patch applied, then we don't need board > specific 'do_reset' function and special configurations flags for this case. > > I currently don't have access to the hardware to test this. > > regards, > Claudius > > -- >8 -- > Subject: [RFC PATCH] imx: imx8mm-evk/imx8mn-evk: enable sysreset driver > for SPL > > Instead of implementing a custom reset function for the SPL, it can directly > use the sysreset DM driver. > > Signed-off-by: Claudius Heine <[email protected]> > --- > arch/arm/mach-imx/imx8m/soc.c | 19 ------------------- > board/freescale/imx8mm_evk/spl.c | 9 --------- > board/freescale/imx8mn_evk/spl.c | 9 --------- > configs/imx8mm_evk_defconfig | 1 + > configs/imx8mn_ddr4_evk_defconfig | 1 + > 5 files changed, 2 insertions(+), 37 deletions(-) > > diff --git a/arch/arm/mach-imx/imx8m/soc.c > b/arch/arm/mach-imx/imx8m/soc.c index 5ce5a180e8..519108d4c9 100644 > --- a/arch/arm/mach-imx/imx8m/soc.c > +++ b/arch/arm/mach-imx/imx8m/soc.c > @@ -378,22 +378,3 @@ int ft_system_setup(void *blob, bd_t *bd) > return 0; > } > #endif > - > -#if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SYSRESET) -void > reset_cpu(ulong addr) -{ > - struct watchdog_regs *wdog = (struct watchdog_regs *)addr; > - > - if (!addr) > - wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR; > - > - /* Clear WDA to trigger WDOG_B immediately */ > - writew((WCR_WDE | WCR_SRS), &wdog->wcr); > - > - while (1) { > - /* > - * spin for .5 seconds before reset > - */ > - } > -} > -#endif > diff --git a/board/freescale/imx8mm_evk/spl.c > b/board/freescale/imx8mm_evk/spl.c > index 2d08f9a563..e8dec452ea 100644 > --- a/board/freescale/imx8mm_evk/spl.c > +++ b/board/freescale/imx8mm_evk/spl.c > @@ -159,12 +159,3 @@ void board_init_f(ulong dummy) > > board_init_r(NULL, 0); > } > - > -int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ > - puts ("resetting ...\n"); > - > - reset_cpu(WDOG1_BASE_ADDR); > - > - return 0; > -} > diff --git a/board/freescale/imx8mn_evk/spl.c > b/board/freescale/imx8mn_evk/spl.c > index cbde9f6b3c..0c70fbb155 100644 > --- a/board/freescale/imx8mn_evk/spl.c > +++ b/board/freescale/imx8mn_evk/spl.c > @@ -112,12 +112,3 @@ void board_init_f(ulong dummy) > > board_init_r(NULL, 0); > } > - > -int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ > - puts("resetting ...\n"); > - > - reset_cpu(WDOG1_BASE_ADDR); > - > - return 0; > -} > diff --git a/configs/imx8mm_evk_defconfig b/configs/imx8mm_evk_defconfig > index 87560ef989..c07f4104f9 100644 > --- a/configs/imx8mm_evk_defconfig > +++ b/configs/imx8mm_evk_defconfig > @@ -83,5 +83,6 @@ CONFIG_DM_REGULATOR_FIXED=y > CONFIG_DM_REGULATOR_GPIO=y CONFIG_MXC_UART=y > CONFIG_SYSRESET=y > +CONFIG_SPL_SYSRESET=y > CONFIG_SYSRESET_PSCI=y > CONFIG_DM_THERMAL=y > diff --git a/configs/imx8mn_ddr4_evk_defconfig > b/configs/imx8mn_ddr4_evk_defconfig > index 50b03d0763..c55998da4c 100644 > --- a/configs/imx8mn_ddr4_evk_defconfig > +++ b/configs/imx8mn_ddr4_evk_defconfig > @@ -75,5 +75,6 @@ CONFIG_DM_REGULATOR_FIXED=y > CONFIG_DM_REGULATOR_GPIO=y CONFIG_MXC_UART=y > CONFIG_SYSRESET=y > +CONFIG_SPL_SYSRESET=y > CONFIG_SYSRESET_PSCI=y > CONFIG_DM_THERMAL=y > -- > 2.24.1

