升级VRD失败问题分析
更新时间: 2026/05/28
在Gitcode上查看源码

问题背景

- 单板类型:NA;
- 软件版本:NA;
- 涉及功能:升级VRD;
- 触发条件: 多次升级VRD,查询升级状态返回异常。
- 业务表现:预期正常升级,日志中显示正常的升级状态,升级之后版本号正常;实际VRD升级过程中,有一个出现查询VRD升级状态返回75,导致升级之后版本成为32.29.29.32.32.32.32.32.。

问题复现步骤

升级VRD,通过日志观察VRD的升级状态,升级结束后查询VRD的版本

关键日志信息

查看日志,确认报错如下:

定位过程

  1. 查看日志,确认查询VRD升级状态返回75, 看开源代码是通过std_smbus发送请求返的:
  2. 定界为mcu出现问题,联系mcu继续分析问题。

问题原因

已知的概率性问题,GD mcu读版本概率返回有问题。

读取VRD版本号:

text
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x0018501 7

从 18501-18508,对应8个VRD

异常码包括: 25 33 75 88,其中 33 表示版本过低。

解决方案

BMC通过二值一致防抖策略来处理这次异常状态。