
Hello Ran,
Am 26.08.2015 um 10:57 schrieb Ran Shalit:
On Wed, Aug 26, 2015 at 10:05 AM, Heiko Schocher hs@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 hs@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