
Dear Wolfgang Denk,
Am Donnerstag, 22. Juli 2010, 09:09:12 schrieb Wolfgang Denk:
Well, my problem is, that CONFIG_SYS_WDTC_WDMR_VAL is used to program the internal watchdog. But this watchdog can only be programmed once until a reset occurs. So there is no possibility for linux to reprogram it.
This is normal. Any watchdog that is worth the name will behave similar.
Well, I encountered several watchdog which start only after the first trigger.
So, if CONFIG_SYS_WDTC_WDMR_VAL is not defined and the watchdog is not programed using my patch, the watchdog still runs with default settings (timeout of 16s). So a user may choose to trigger the watchdog from u-boot (define CONFIG_AT91SAM9_WATCHDOG and CONFIG_HW_WATCHDOG) or let it run silently. To summarize, CONFIG_SYS_WDTC_WDMR_VAL is not needed to use CONFIG_AT91SAM9_WATCHDOG and CONFIG_HW_WATCHDOG.
Then the subject is misleading - it suggests you do not initialize / let run the watchdog at all if CONFIG_SYS_WDTC_WDMR_VAL is undefined.
Ok, maybe the subject need some rework.
I think we should make sure that everything is in a sane and consistent state - if CONFIG_HW_WATCHDOG (and CONFIG_AT91SAM9_WATCHDOG) are set, this indicates that U-Boot is supposed to use the watchdog, which in turn means they should initialize it.
Of course, if CONFIG_HW_WATCHDOG and CONFIG_AT91SAM9_WATCHDOG is set, u-boot should use/trigger the watchdog. But (re-)programming the watchdog on AT91 is not _always_ necessary. Without programming (using CONFIG_SYS_WDTC_WDMR_VAL), the watchdog just runs with default settings, allowing e.g. Linux to reprogram it later. This patch allows to program the watchdog from u-boot, if wanted, but also allows to reprogram it later from Linux. While triggering the watchdog from u- boot itself does still work, wrt. the default watchdog settings.
Best regards, Alexander Stein