On Wed, Aug 26, 2015 at 12:29 PM, Heiko Schocher <h...@denx.de> wrote: > Hello Ran, > > > Am 26.08.2015 um 10:57 schrieb Ran Shalit: >> >> On Wed, Aug 26, 2015 at 10:05 AM, Heiko Schocher <h...@denx.de> wrote: >>> >>> Hello Ran, >>> >>> >>> Am 26.08.2015 um 08:09 schrieb Ran Shalit: >>>> >>>> >>>> On Wed, Aug 26, 2015 at 7:45 AM, Heiko Schocher <h...@denx.de> wrote: >>>>> >>>>> >>>>> Hello Ran, >>>>> >>>>> Am 25.08.2015 um 22:03 schrieb Ran Shalit: >>>>>> >>>>>> >>>>>> >>>>>> Hello, >>>>>> >>>>>> I need to do some periodic very simple task during u-boot prompt >>>>>> (while u-boot wais for commands). The task is very simple, just >>>>>> writing into a watchdog refresh register. >>>>>> But it seems that it's very difficult to "hack" u-boot with such >>>>>> periodic >>>>>> task. >>>>>> I see that main loop is waiting in loop for characters in a call to >>>>>> getc, which is a blocking command. If it was non-blocking, it might >>>>>> have help me. I'm not sure if there is a way to replace the getc with >>>>>> a non-blocking call. >>>>>> >>>>>> Does anyone have any idea if there is some simple way to do periodic >>>>>> task in u-boot ? >>>>> >>>>> >>>>> >>>>> >>>>> As you want to trigger a watchdog, have a look at >>>>> u-boot:/drivers/watchdog >>>>> and grep the U-Boot code for >>>>> CONFIG_WATCHDOG >>>>> CONFIG_HW_WATCHDOG >>>>> >>>>> bye, >>>>> Heiko >>>>> -- >>>> >>>> >>>> >>>> >>>> Hi Heiko, >>>> >>>> That's a great suggestion. >>>> I can understand from this, that there is timer interrupt in the >>>> background for the watchdog refresh activity. >>> >>> >>> >>> I do not know anything about your hw ... but timer interrupt is not >>> necessary. >>> >>> WATCHDOG_RESET is called from the U-Boot code .. >>> see definition in include/watchdog.h >>> >>> >>> bye, >>> Heiko >>> -- >> >> >> >> Hi Heiko, >> >> I am using PPC mpc8349 freescale. >> In the arch/powerpc/lib/board.c file it does the following: >> .... >> for (;;) { >> WATCHDOG_RESET(); >> main_loop(); >> } >> >> There is something in the concept of u-boot flow that I don't uunderstand. >> How is it that main_loop will perdiocally return to WATCHDOG_RESET if >> it waits for keyboard activity with getc() blocking function. > > > Look into the serial driver: drivers/serial/ns16550.c > NS16550_getc() triggers periodically the watchdog ... > > > bye, > Heiko > --
Hi Heiko, Thaks for the pointers. I think I start to understand the general idea. it seems that WATCHDOG_RESET is triggered wherever possible in the code flow. Thanks very much, Ran _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot