调试看门狗超时问题
WD 是一个固定长度的计数器,使系统能够从意外的硬件或软件灾难中恢复。除非系统定期喂 WD 定时器,否则它会假定发生了灾难,并根据触发的 WD 复位子系统或整个系统。 以下是不同类型的 WD 实现:下表总结了不同类型的 WD 实现。 表:看门狗实现
- 硬件 WD
- 软件 WD
- Bark
- Bite
系统同时使用硬件和软件看门狗。例如,调制解调器 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引脚,最终整个系统被复位。
调试总线挂起和超时问题
SNoC、CNoC、xPU、TBU 和 AHB 是设备上的系统基础设施组件,负责以下操作:- 总线事务
- 地址转换
- 内存保护

