lwmon5: enable hardware watchdog
Some boards (e.g. lwmon5) may use rather small watchdog intervals, so causing it to reboot the board if U-Boot does a long busy-wait with udelay(). Thus, for these boards we have to restart WD more frequently. This patch splits the busy-wait udelay() into smaller, predefined, intervals, so that the watchdog timer may be resetted with the configurable (CONFIG_WD_PERIOD) interval. Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
This commit is contained in:
parent
bc77881247
commit
2e721094a7
|
@ -366,12 +366,11 @@
|
||||||
#define CFG_PCI_SUBSYS_VENDORID 0x10e8 /* AMCC */
|
#define CFG_PCI_SUBSYS_VENDORID 0x10e8 /* AMCC */
|
||||||
#define CFG_PCI_SUBSYS_ID 0xcafe /* Whatever */
|
#define CFG_PCI_SUBSYS_ID 0xcafe /* Whatever */
|
||||||
|
|
||||||
#if 0
|
|
||||||
/*
|
/*
|
||||||
* ToDo: Watchdog is not test fully, so exclude it for now
|
* ToDo: Watchdog is not test fully, so exclude it for now
|
||||||
*/
|
*/
|
||||||
#define CONFIG_HW_WATCHDOG 1 /* Use external HW-Watchdog */
|
#define CONFIG_HW_WATCHDOG 1 /* Use external HW-Watchdog */
|
||||||
#endif
|
#define CONFIG_WD_PERIOD 40000 /* in usec */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For booting Linux, the board info and command line data
|
* For booting Linux, the board info and command line data
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
|
||||||
|
#ifndef CONFIG_WD_PERIOD
|
||||||
|
# define CONFIG_WD_PERIOD (10 * 1000 * 1000) /* 10 seconds default*/
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
@ -53,9 +56,14 @@ unsigned long usec2ticks(unsigned long usec)
|
||||||
*/
|
*/
|
||||||
void udelay(unsigned long usec)
|
void udelay(unsigned long usec)
|
||||||
{
|
{
|
||||||
ulong ticks = usec2ticks (usec);
|
ulong ticks, kv;
|
||||||
|
|
||||||
wait_ticks (ticks);
|
do {
|
||||||
|
kv = usec > CONFIG_WD_PERIOD ? CONFIG_WD_PERIOD : usec;
|
||||||
|
ticks = usec2ticks (kv);
|
||||||
|
wait_ticks (ticks);
|
||||||
|
usec -= kv;
|
||||||
|
} while(usec);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
|
|
Loading…
Reference in New Issue