> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 调试常见系统问题

一些常见的系统问题包括看门狗（WD）超时、总线挂起、超时错误和硬件复位。以下章节提供了有关如何识别和调试此类系统问题的信息。

## **调试看门狗超时问题**

WD 是一种固定长度的计数器，使系统能够从意外的硬件或软件灾难中恢复。除非系统定期喂 WD 定时器，否则它会假定发生了灾难，并根据触发的 WD 复位子系统或整个系统。

以下是不同类型的 WD 实现：

> * 硬件 WD
> * 软件 WD
> * Bark
> * Bite

下表总结了不同类型的 WD 实现。

**表：看门狗实现**

|  **看门狗类型**  | **超时时长（秒）** |    **所有者**   |            **超时时**           |           **结果**          |
| :---------: | :---------: | :----------: | :--------------------------: | :-----------------------: |
| 非安全 WD bark |      11     |     HLOS     |     向 Qualcomm TEE 发送 IRQ    |      HLOS 进入 `Panic`      |
| 非安全 WD bite |      12     |     HLOS     | 向 Qualcomm TEE 发送快速中断请求（FIQ） | Qualcomm TEE 置位 `PS_HOLD` |
|  安全 WD bark |      6      | Qualcomm TEE |     向 Qualcomm TEE 发送 FIQ    |    Qualcomm TEE 仅喂安全 WD   |
|  安全 WD bite |      22     | Qualcomm TEE |         置位 `PS_HOLD`         |     电源管理 IC（PMIC）复位系统     |

系统同时使用硬件和软件看门狗。例如，调制解调器 DSP（mDSP）同时实现了软件和硬件看门狗。硬件 WD 模块确保处理器处于活动状态，它包含一个从预定值开始倒计数的定时器。如果对应的 CPU 核心不重置该定时器，它最终会计数到 0（零）并触发 WD 超时。

### **应用处理器 CPU 的 WD**

**非安全硬件看门狗**

* HLOS 每 10 秒触发一次定时器事件来喂非安全硬件 WD。如果 HLOS 在 11 秒内未喂非安全 WD，则会触发非安全 WD bark，HLOS 必须处理它。如果 HLOS 无法处理，HLOS 会进入 panic。
* 如果 HLOS 无法处理非安全 WD bark，则会触发非安全 WD bite 并将其发送到 Qualcomm TEE，导致 Qualcomm TEE 进入致命错误状态。
* 在 Qualcomm Linux 中，上游 WD 驱动位于 `drivers/watchdog/qcom-wdt.c` 路径。以下是 WD 配置文件：
  ```text theme={null}
  /# mount -o remount,rw /usr/
  /# cat /usr/lib/systemd/system.conf.d/00-systemd-conf.conf
  ```
  您可以使用以下值修改配置文件：
  ```text theme={null}
  RuntimeWatchdogSec=30
  ShutdownWatchdogSec=10
  ```

有关配置文件值的更多信息，请参阅以下内容：

* [系统和会话服务管理器配置文件](https://manpages.debian.org/jessie/systemd/systemd-system.conf.5.en.html)
* [Linux 看门狗驱动 API](https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html)

**安全硬件看门狗**

* Qualcomm TEE 每 6 秒触发一次安全 WD bark，作为快速中断请求（FIQ）。Qualcomm TEE 中的 FIQ 处理程序会喂安全硬件 WD。这不是错误或致命问题。
* 如果 Qualcomm TEE 在 22 秒内无法处理安全 WD bark，则安全 WD bite 到期。然后，PMIC 置位 `PS_HOLD` 引脚，最终整个系统被复位。

此功能的完整能力仅面向拥有授权访问权限的许可开发者。有关调试 WD 问题的更多信息，请参阅 [Qualcomm Linux Debug Guide - Addendum.](https://docs.qualcomm.com/bundle/resource/topics/80-80021-12A/general_system_debugging.html#watchdog_timeout)

## **调试总线挂起和超时问题**

SNoC、CNoC、xPU、TBU 和 AHB 是设备上的系统基础设施组件，负责如下操作：

* 总线事务
* 地址转换
* 内存保护

这些组件上的某些故障或超时可能导致系统错误，系统会将这些错误报告给 Qualcomm TEE。

此功能仅面向拥有授权访问权限的许可开发者。有关调试总线挂起和超时错误的更多信息，请参阅 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-80021-12A/general_system_debugging.html#erroneous_transaction_on_bus_error_and_timeout)。

## **确定硬件复位的原因**

安全看门狗、温度传感器（TSENS）或 PMIC 问题都可能导致硬件复位。硬件复位问题的调试方法取决于硬件复位的原因。因此，确定硬件复位的原因至关重要。

此功能仅面向拥有授权访问权限的许可开发者。有关调试硬件复位问题的更多信息，请参阅 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-80021-12A/general_system_debugging.html#reset_hardware)。
