MLK-16773 imx8m: spl: implement wdog reset
authorPeng Fan <peng.fan@nxp.com>
Tue, 7 Nov 2017 08:57:56 +0000 (16:57 +0800)
committerPeng Fan <peng.fan@nxp.com>
Wed, 8 Nov 2017 12:29:49 +0000 (20:29 +0800)
Implement wdog reset in SPL stage.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/cpu/armv8/imx8m/soc.c
board/freescale/imx8mq_evk/imx8m_evk.c
include/configs/imx8mq_evk.h

index 645fb03..bb0a932 100644 (file)
@@ -148,15 +148,6 @@ void set_wdog_reset(struct wdog_regs *wdog)
        writew(reg, &wdog->wcr);
 }
 
-#ifdef CONFIG_SPL_BUILD
-void reset_cpu(ulong addr)
-{
-       /* TODO */
-       printf("%s\n", __func__);
-       while (1);
-}
-#endif
-
 static struct mm_region imx8m_mem_map[] = {
        {
                .virt = 0x0UL,
index ab329f1..ed71d42 100644 (file)
@@ -67,6 +67,12 @@ static iomux_v3_cfg_t const uart_pads[] = {
 
 int board_early_init_f(void)
 {
+       struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;
+
+       imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads));
+
+       set_wdog_reset(wdog);
+
        imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
 
        return 0;
@@ -223,12 +229,6 @@ int board_mmc_get_env_dev(int devno)
 
 int board_late_init(void)
 {
-       struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;
-
-       imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads));
-
-       set_wdog_reset(wdog);
-
 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
        setenv("board_name", "EVK");
        setenv("board_rev", "iMX8MQ");
index 0504993..baaf77e 100644 (file)
@@ -20,6 +20,7 @@
 
 #ifdef CONFIG_SPL_BUILD
 /*#define CONFIG_ENABLE_DDR_TRAINING_DEBUG*/
+#define CONFIG_SPL_WATCHDOG_SUPPORT
 #define CONFIG_SPL_POWER_SUPPORT
 #define CONFIG_SPL_I2C_SUPPORT
 #define CONFIG_SPL_BOARD_INIT