# Debug watchdog timeout issues

A watchdog (WD) is a fixed-length counter that allows a system to recover from an unexpected hardware or software catastrophe. Unless the system periodically pets the watchdog timer, it assumes a catastrophe and resets the subsystem or the entire system depending on the triggered watchdog.

The following are the different types of watchdog implementations:

> 
> 
> - Hardware watchdog
> - Software watchdog
> - Bark
> - Bite

The following table summarizes different types of watchdog implementation.

Table: Watchdog implementations

| Types of watchdogs | Timeout duration (in seconds) | Owner | When expired | Result |
| --- | --- | --- | --- | --- |
| Nonsecure WD bark | 11 | HLOS | IRQ to Qualcomm TEE | HLOS falls to Panic |
| Nonsecure WD bite | 12 | HLOS | Fast interrupt request (FIQ) to Qualcomm TEE | Qualcomm TEE asserts PS\_HOLD |
| Secure WD bark | 6 | Qualcomm TEE | FIQ to Qualcomm TEE | Qualcomm TEE just pets secure WD |
| Secure WD bite | 22 | Qualcomm TEE | Asserting PS\_HOLD | PMIC resets the system |

The system uses both hardware and software watchdogs. For example, modem DSP (mDSP) implements both software and hardware watchdogs. The hardware watchdog module ensures that the processor is active and consists of a timer that counts down from a predetermined value. If the corresponding CPU core doesn't reset the timer, it eventually counts to 0 (zero) and triggers a watchdog timeout.

## Watchdog for application processor CPU

**Nonsecure hardware watchdog**

- Every 10 seconds, the HLOS triggers a timer event to pet the nonsecure hardware watchdog. If the HLOS doesn't pet the nonsecure watchdog for 11 seconds, the nonsecure watchdog bark fires and the HLOS must handle it. If the HLOS can't handle it, the HLOS falls into panic.
- If the HLOS is unable to handle nonsecure watchdog bark, it triggers a nonsecure watchdog bite and sends it to Qualcomm TEE, causing the Qualcomm TEE to fall into a fatal error.
- In Qualcomm Linux, upstream watchdog driver is located at the `drivers/watchdog/qcom-wdt.c` path. The following is the watchdog configuration file:

/# mount -o remount,rw /usr/
        
        /# cat /usr/lib/systemd/system.conf.d/00-systemd-conf.conf
        Copy to clipboard

    You can modify the configuration file with the following values:

RuntimeWatchdogSec=30
        
        ShutdownWatchdogSec=10
        Copy to clipboard

For more information about the configuration file values, see the following:

- [System and session service manager configuration file](https://manpages.debian.org/jessie/systemd/systemd-system.conf.5.en.html)
- [Linux watchdog driver API](https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html)

**Secure hardware watchdog**

- Every 6 seconds, Qualcomm TEE triggers a secure watchdog bark as a fast interrupt request (FIQ). The FIQ handler in the Qualcomm TEE pets the secure hardware Watchdog. This issue isn't an error or fatal issue.
- If Qualcomm TEE can't handle the secure watchdog bark for 22 seconds, the secure watchdog bite expires. Then, the PMIC asserts the PS\_HOLD pin, and eventually, the entire system is reset.

The complete functionality of this feature is available to licensed developers with authorized access. For more information about debugging watchdog issues, see [Qualcomm Linux Debug Guide -
Addendum.](https://docs.qualcomm.com/bundle/resource/topics/80-70023-12A/general_system_debugging.html#watchdog_timeout)

Last Published: Feb 12, 2026