On Monday 16 August 2021 15:19:39 Marek Behún wrote: > When booting over UART, sending U-Boot proper may take too much time and > MCU watchdog will reset the board before U-Boot proper is loaded. > > Better disable MCU watchdog in SPL when booting over UART. > > Signed-off-by: Marek Behún <[email protected]>
Reviewed-by: Pali Rohár <[email protected]> > --- > board/CZ.NIC/turris_omnia/turris_omnia.c | 17 ++++++++++++++++- > configs/turris_omnia_defconfig | 1 + > 2 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c > b/board/CZ.NIC/turris_omnia/turris_omnia.c > index a84a409f43..b0391c973d 100644 > --- a/board/CZ.NIC/turris_omnia/turris_omnia.c > +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c > @@ -419,12 +419,27 @@ int board_early_init_f(void) > return 0; > } > > +void spl_board_init(void) > +{ > + /* > + * If booting from UART, disable MCU watchdog in SPL, since uploading > + * U-Boot proper can take too much time and trigger it. > + */ > + if (get_boot_device() == BOOT_DEVICE_UART) > + disable_mcu_watchdog(); > +} > + > int board_init(void) > { > /* address of boot parameters */ > gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100; > > - disable_mcu_watchdog(); > + /* > + * If not booting from UART, MCU watchdog was not disabled in SPL, > + * disable it now. > + */ > + if (get_boot_device() != BOOT_DEVICE_UART) > + disable_mcu_watchdog(); > > return 0; > } > diff --git a/configs/turris_omnia_defconfig b/configs/turris_omnia_defconfig > index cd443ceb30..67f8bdadaf 100644 > --- a/configs/turris_omnia_defconfig > +++ b/configs/turris_omnia_defconfig > @@ -33,6 +33,7 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y > # CONFIG_DISPLAY_BOARDINFO is not set > CONFIG_DISPLAY_BOARDINFO_LATE=y > CONFIG_MISC_INIT_R=y > +CONFIG_SPL_BOARD_INIT=y > CONFIG_SPL_I2C=y > CONFIG_CMD_MEMTEST=y > CONFIG_SYS_ALT_MEMTEST=y > -- > 2.31.1 >

