问题描述
openUBMC 2609版本使用1712芯片,环境出现Tpcm相关告警
3 |2026-10-22 06:51:50 |Minor |0x2C0000A5 |The security coprocessor heartbeat is lost, and the operational status is abnormal.
环境信息
-
软件版本:[OpenUBMC2609]
-
硬件配置:[Hi1712 KP950]
期望结果
无TPCM相关告警
实际结果
出现以下告警
3 |2026-10-22 06:51:50 |Minor |0x2C0000A5 |The security coprocessor heartbeat is lost, and the operational status is abnormal.
分析结论
第 1 步:建立核间通道(每次 BMC 启动都重做)
coprocessor_init(79): [TPMC][COPRO] linx enabled, start linx helpers ← 启动 Linx 收发 helper
log_handler_init(410): [Coprocessor] log sync task started ← 协处理器日志同步任务
linx_listener_start(134): [Linx] linx msg listener is start ← 消息监听
linx_recive_msg(85): linx_recive_msg: enter linx msg task ← 接收任务
第 2 步:与安全核握手(A55 ready)—— 这一步就失败了
notify_a55_ready(33): [TPCM][COPRO] waiting for a55 ready resp ← 向安全核(Cortex-A55)发 ready 询问
a55_send_msg_to_linx(61): Get data rsp failed: -1 ← 无应答(-1 = Linx 收发失败)
↑ 每 11 秒重试一次:07:18:28 / 39 / 50、07:19:01 / 12 / 23 / 34
notify_a55_ready(37): [TPCM][COPRO] waiting for a55 ready resp failed ← 重试耗尽(07:19:44.85)
安全核从未回过 ready(整份 dump 累计:发送失败 40 次、等待 44 次、成功 0 次)。但 tpcm 不会因此中止,继续起心跳任务。
第 3 步:心跳任务与「心跳丢失」判定
linx_heartbeat_start(185): [TPCM][COPRO] coprocessor heartbeat task started ← 07:19:44.85
heartbeat_process(134): heartbeat error, ret=-1, rsp=0, last:0, current:0 ← 07:19:45.87 首跳即失败
heartbeat_process(134): heartbeat error, ret=-1, rsp=0, last:0, current:2 ← 07:20:46.92 current 升到 2,判定丢失
heartbeat_loss(147): coprocessor heartbeat loss, save registers info, try reset coprocessor
- 每跳间隔约 61 秒;
ret=-1= Linx 收发失败,rsp=0= 没收到安全核响应 current由 0 升到 2 的那一拍触发判定(首跳current:0只报错、不判定)- 判定后按设计做两件事:保存安全核寄存器转储(落到
LogDump/coprocessor/dfx.log,每次丢失新增一段)+ 尝试复位协处理器(日志未见复位成功,随后心跳依旧失败) - 进入丢失状态后,后续每跳固定打印
last:2, current:2(状态已锁存),不再重复判定,直到 BMC 下次启动
第 4 步:上报告警
do_add_event(138): [TPCM] Call add event success
add_event(150): [TPCM] is_repeat = 0, Add event the 1 time successfully.
add_event(159): [TPCM] Add Coprocessor event repeatly finished successfully.