On 29.6.2018 23:51, Shreenidhi Shedi wrote: > Signed-off-by: Shreenidhi Shedi <yessh...@gmail.com> > --- > > Changes in v1: None > > .../microblaze-generic/microblaze-generic.c | 43 +++++++++++++++++-- > 1 file changed, 39 insertions(+), 4 deletions(-) > > diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c > b/board/xilinx/microblaze-generic/microblaze-generic.c > index 7d8f247fa9..1d48bfb20e 100644 > --- a/board/xilinx/microblaze-generic/microblaze-generic.c > +++ b/board/xilinx/microblaze-generic/microblaze-generic.c > @@ -17,6 +17,7 @@ > #include <asm/microblaze_intc.h> > #include <asm/asm.h> > #include <asm/gpio.h> > +#include <dm/uclass.h> > > DECLARE_GLOBAL_DATA_PTR; > > @@ -24,6 +25,12 @@ DECLARE_GLOBAL_DATA_PTR; > static int reset_pin = -1; > #endif > > +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_XILINX_TB_WATCHDOG)
CONFIG_WDT here because it doesn't need to be just XILINX_TB. > +#include <wdt.h> Please move this header out of if - it is not needed. > + > +static struct udevice *watchdog_dev; > +#endif /* !CONFIG_SPL_BUILD && CONFIG_XILINX_TB_WATCHDOG */ > + > ulong ram_base; > > int dram_init_banksize(void) > @@ -68,10 +75,6 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * > const argv[]) > if (reset_pin != -1) > gpio_direction_output(reset_pin, 1); > #endif > - > -#ifdef CONFIG_XILINX_TB_WATCHDOG > - hw_watchdog_disable(); > -#endif > #endif > puts("Resetting board\n"); > __asm__ __volatile__ (" mts rmsr, r0;" \ > @@ -91,9 +94,41 @@ static int gpio_init(void) > return 0; > } > > +#ifdef CONFIG_XILINX_TB_WATCHDOG CONFIG_WATCHDOG here. > +/* Called by macro WATCHDOG_RESET */ > +void watchdog_reset(void) > +{ > +#if !defined(CONFIG_SPL_BUILD) > + ulong now; > + static ulong next_reset; > + > + if (!watchdog_dev) > + return; > + > + now = timer_get_us(); > + > + /* Do not reset the watchdog too often */ > + if (now > next_reset) { > + wdt_reset(watchdog_dev); > + next_reset = now + 1000; > + } > +#endif /* !CONFIG_SPL_BUILD */ > +} > +#endif /* CONFIG_XILINX_TB_WATCHDOG */ > + > int board_late_init(void) > { > gpio_init(); > > +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_XILINX_TB_WATCHDOG) CONFIG_WDT here. > + watchdog_dev = NULL; > + if (uclass_get_device(UCLASS_WDT, 0, &watchdog_dev)) { > + puts("Watchdog: Not found!\n"); > + } else { > + wdt_start(watchdog_dev, 0, 0); > + puts("Watchdog: Started\n"); > + } I have sent today update on this code for zynq and zynqmp. And I hope that this will be accepted to get this code to work properly. https://lists.denx.de/pipermail/u-boot/2018-July/334227.html if (uclass_get_device_by_seq(UCLASS_WDT, 0, &watchdog_dev)) { debug("Watchdog: Not found by seq!\n"); if (uclass_get_device(UCLASS_WDT, 0, &watchdog_dev)) { puts("Watchdog: Not found!\n"); return 0; } } wdt_start(watchdog_dev, 0, 0); puts("Watchdog: Started\n"); > +#endif /* !CONFIG_SPL_BUILD && CONFIG_XILINX_TB_WATCHDOG */ > + > return 0; > } > Thanks, Michal _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot