On 05/23/2015 01:27 PM, Timur Tabi wrote:
Guenter Roeck wrote:
However, the pretimeout concept assumes that there are two timers which can be set independently. As you had pointed out earlier, and as the specification seems to confirm, that is not the case here. As such, I don't really understand why and how the pretimeout / timeout concept would add any value here and not just make things more complicated than necessary. Maybe I am just missing something.
It might be possible to load a new value into the WOR register after the WS0 interrupt occurs. That is, in the interrupt handler, we can do something like this:
if (status & SBSA_GWDT_WCS_WS0) // write new WOR value, // then ping watchdog so that it's loaded
I'm not convinced that it's worth it, however. It would require interrupts to still be working when WS0 times out, which somewhat defeats the purpose of a watchdog.
If I understand the specification correctly, reloading the register would result in another WS0, not in WS1. That isn't really what we would want to happen.
Reloading the register would normally be done in the crashdump kernel, if it is loaded, to give it time to actually take the crashdump. But that is post-restart, not pre-restart.
Thanks, Guenter