
On 10/04/2009 01:29 AM, Wolfgang Denk wrote:
No, not an exception, but the reference implementation. I cannot help it that most other architectures / SoCs don;t care much.
Well, if such an uncommon side-effect is expected of a function with a well-known name it should at least be prominently documented. I like Mike's suggestion to have a central udelay() implementation for that; I'm gonna try to whip up a patch tomorrow.
I'm using an Atmel AT91-based custom board, and the udelay() function can be found in cpu/arm926ejs/at91/timer.c. Unfortunately there's no central udelay() implementation in lib_arm.
Guess nobody attempted to use a WD on such a system before.
You hardly have a choice: After reset the AT91's watchdog timer runs at maximum period (15 seconds), and the control register is one-time writable. If you disable the watchdog in u-boot there's no way to re-enable it later in the OS.
Regards, Ingo