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

调试看门狗超时问题

WD 是一个固定长度的计数器,使系统能够从意外的硬件或软件灾难中恢复。除非系统定期喂 WD 定时器,否则它会假定发生了灾难,并根据触发的 WD 复位子系统或整个系统。 以下是不同类型的 WD 实现:
  • 硬件 WD
  • 软件 WD
  • Bark
  • Bite
下表总结了不同类型的 WD 实现。 表:看门狗实现 系统同时使用硬件和软件看门狗。例如,调制解调器 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 配置文件:
    您可以使用以下值修改配置文件:
有关配置文件值的更多信息,请参阅以下内容: 安全硬件看门狗
  • Qualcomm TEE 每 6 秒以快速中断请求(FIQ)的形式触发一次安全 WD bark。Qualcomm TEE 中的 FIQ 处理程序会喂安全硬件 WD。这不是错误或致命问题。
  • 如果 Qualcomm TEE 在 22 秒内无法处理安全 WD bark,则安全 WD bite 到期。然后,PMIC 断言 PS_HOLD 引脚,最终整个系统被复位。
此功能的完整功能仅供具有授权访问权限的许可开发者使用。有关调试 WD 问题的更多信息,请参阅 Qualcomm Linux 调试指南 - 补充文档。

调试总线挂起和超时问题

SNoC、CNoC、xPU、TBU 和 AHB 是设备上的系统基础设施组件,负责以下操作:
  • 总线事务
  • 地址转换
  • 内存保护
这些组件上的某些故障或超时可能导致系统错误,系统会将这些错误报告给 Qualcomm TEE。 此功能仅供具有授权访问权限的许可开发者使用。有关调试总线挂起和超时错误的更多信息,请参阅 Qualcomm Linux 调试指南 - 补充文档

识别硬件复位的原因

安全看门狗、温度传感器(TSENS)或 PMIC 问题都可能导致硬件复位。硬件复位问题的调试方法取决于硬件复位的原因。因此,识别硬件复位的原因至关重要。 此功能仅供具有授权访问权限的许可开发者使用。有关调试硬件复位问题的更多信息,请参阅 Qualcomm Linux 调试指南 - 补充文档