DDI0270 (4) 2 (1).pdf
I am hereby attaching the watchdog timer driver architecture document -ARM SBSA watchdog. I had clarification regarding watchdog timer driver sbsa_gwdt.c in linux kernel 5.4.25.As there are two stages for watchdog,we are using sbsa_gwdt driver from ARM.
* * SBSA GWDT: * if action is 1 (the two stages mode): * |--------WOR-------WS0--------WOR-------WS1 * |----timeout-----(panic)----timeout-----reset * * if action is 0 (the single stage mode): * |------WOR-----WS0(ignored)-----WOR------WS1 * |--------------timeout-------------------reset
As per the driver ,it is currently supporting single stage watchdog, as value of action is zero.wanted to ask few queries as shown below :
1) Does our hardware for watchdog timer supports Pretimeout ? Double stage watchdog timer have a panic ,which is like a warning ,which gets triggered before the actual timeout or reset.Is (panic)this related to Pretimeout feature of watchdog? As I checkout the driver does not have pretimeout functionality (function pointer defined)
2) As for adding support as an IOCTL for PRETIMEOUT ,we need to add in watchdog_info structure static const struct watchdog_info sbsa_gwdt_info = { .identity = WATCHDOG_NAME, .options = WDIOF_SETTIMEOUT |#ifdef CONFIG_SOC_ENSEMBLE WDIOF_PRETIMEOUT |#endif WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE |
If the hardware doesnt support Pretimeout should I add through software like this?
Is there any reference code (for baremetal) for supporting PRETIMEOUT feature