MCU、VRD、CSR、CPLD升级与板卡管理问题指南
更新时间:2025/10/15
在Gitcode上查看源码

MCU升级

【Q1】 VRD正在升级,无法升级MCU

上电升级VRD,下电后升级MCU返回失败:

  • 当前MCU和VRD走的是一个升级通道,做了互斥限制
  • VRD作为二级电源,只能在下电情况下进行升级,在os上电时缓存升级文件,返回升级成功,下电取升级文件,开始生效

需要等VRD下电生效后升级MCU,才能返回成功。 5.2最新版本更新了错误码,在VRD生效期间升级MCU返回特殊的失败提示:

【Q2】 升级riser卡MCU升级失败

storage组件使用插件式访问调用I2C,如果没有加载raid卡,在获取不到预期信息时会长时间独占总线,导致命令阻塞

【Q3】 如何查询BCU的MCU和VRD的版本号

命令查询版本号: mcu: busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018500 7

VRD: busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018501 7 busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018502 7 busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018503 7 busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018504 7 busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018505 7 busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018506 7 busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018507 7 busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018508 7

VRD升级

【Q4】 没有找到对应的升级文件

日志打印如下:对应的bin文件规则为VRD_厂商_SKU_NO.bin 厂商和SKU如下(当前B830版本只支持00_00和01_00):

CSR升级

【Q5】 BC83PRUU(蝴蝶卡)CSR为1.17之前的版本升级出现升级失败

1.17版本CSR的port配置有问题,会导致raid卡无法正常加载,BMC会占用总线通道一直访问Raid,导致CSR升级时总线被占用,访问超时,会出现概率性升级失败的情况,需要重试几次

CPLD升级

【Q6】 获取厂商信息

下一步是获取芯片的厂商信息,根据厂商选择升级方式,在/logDump/app.log中筛选general_hardware:

大概率是ChipInfo无法获取,该Chip是挂在Jtag链路上的,有三种情况:

1、jtag链路没有切过去,在BMC中输入一下命令,看看是否可以获取到版本信息:

busctl --user set-property bmc.kepler.hwproxy /bmc/kepler/Accessor/Accessor_JtagSwitch_010101 bmc.kepler.Accessor Value t _( _ 为对应的链路,当前EXU为0,BCU为1,具体查看CSR的FirmwareRoute属性)

设置后查看信息,value是否改变:

busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Cpld/Cpld_1_0101 bmc.kepler.Chip.JtagTarget GetChipIdcode a{ss} 0(0101为EXU,010101为BCU,具体查看板卡的position)

以基础板为例子,正常获取到chip信息:

2、cpld扫链失败,输入dmesg驱动日志查看,可能是扩展板CPLD的版本问题,或者BMC测链路未通,未将CPLD和1711选通

3、jtag链路异常,测波形排查Jtag链路

【Q7】紫光CPLD的IIC升级失败(二盘背板)

在驱动日志中出现如下打印:

传输数据时出现丢失的情况,大概率是有毛刺影响,建议更换线缆

【Q8】 主板SVF格式升级成功后版本不变

  1. 查看升级的framework.log日志,发现升级时间很短就返回send data成功
  2. 查看linux_kenl日志(环境上输入dmesg),发现文件校验失败