2280v3机型使用bmc_network 1.81.7 无法识别到riser卡

2280v3机型使用bmc_network 1.81.7 出现无法识别到riser卡,重启后可以识别,但是又会识别不到i24链路中其他器件

回退到 1.81.6版本正常

日志信息如下:

hwdiscovery ERROR: hwcomponent.lua(185): position: 0101030B, get component sr failed, error: read eeprom header failed, err: Device access failed, BMC.Error.Unknow: ./opt/bmc/libmc/lualib/mc/context.lua:197: ./opt/bmc/libmc/lualib/sd_bus/object.lua:314: ./opt/bmc/apps/hwproxy/lualib/hwproxy_objects/app_bus.lua:104: …bmc/apps/hwproxy/lualib/hwproxy_objects/work_objects.lua:117: chip: Eeprom_3_11_010103, bus: I2c_4, read failed: i2c.lua:117: response error, i2c write fail, ret: 5, input:{“rw_type”:0,“smc_target”:1,“buffer”:"06 AF 20 00 03 00 00 1C ",“offsetWidth”:1,“offset”:48,“addr”:96,“len”:8}, status: 1, count: 1

riser卡信息

日志文件上传报错

答案内容由AI生成,仅供参考:

:pushpin: 结论

bmc_network 1.81.7 极有可能因修改了 I²C 总线访问逻辑或资源管理策略,导致对 Riser 卡 EEPROM 的读取失败,从而引发其无法识别,并进一步影响同 I²C 链路上的其他器件。
此问题属于 软件版本兼容性缺陷,非硬件故障。

点击此处查看详细分析解答

关于2280v3机型使用 bmc_network 1.81.7 无法识别 Riser 卡的问题分析

根据您提供的日志信息和描述,结合知识库内容,以下是针对 2280v3机型使用 bmc_network 1.81.7 导致无法识别 Riser 卡,且重启后影响 I²C 链路上其他器件识别 的深入分析与解决方案建议。


:magnifying_glass_tilted_left: 问题现象总结

  • 机型:KunLun 2280v3(2280v3)
  • 问题版本bmc_network 1.81.7
  • 表现
    • 无法识别 Riser 卡。
    • 重启后可暂时识别 Riser 卡。
    • 随后导致 i24 链路中其他器件也无法识别
  • 回退验证:降级至 bmc_network 1.81.6 后问题消失,功能正常。
  • 关键日志
    read failed: i2c.lua:117: response error, i2c write fail, ret: 5,
    input:{"rw_type":0,"smc_target":1,"buffer":"06 AF 20 00 03 00 00 1C ",
           "offsetWidth":1,"offset":48,"addr":96,"len":8},
    status: 1, count: 2
    chip: Eeprom_3_11_010103, bus: I2c_4
    

:puzzle_piece: 根本原因分析

1. I²C 通信失败直接导致 Riser 卡识别异常

  • 日志中明确显示对芯片 Eeprom_3_11_010103(位于 I2c_4 总线)的读取失败。
  • Riser 卡通常通过 EEPROM 存储其 UID、型号、版本等 FRU 信息,BMC 依赖 I²C 接口读取这些数据以完成设备自发现与加载。
  • 当 I²C 读取失败时,BMC 无法获取 Riser 卡的在位信息,导致其 被判定为“未插入”或“加载失败”

:white_check_mark: 知识库支持:

  • 文档 #2《Riser卡无法识别定位步骤》指出:“日志报错为 Eeprom 读取失败,直接原因为 Eeprom 访问失败,导致 Riser 卡加载失败。”
  • 实体 Riser Card 描述中提到:“接口与 I2C,包含多个多路复用器(multiplexer),以及 onboard MCU”。

2. 故障发生在 bmc_network 组件升级后 → 指向软件版本引入的兼容性问题

  • 现象集中于 bmc_network 1.81.7 版本,而 1.81.6 正常 → 明确为 该版本引入了潜在缺陷
  • bmc_network 组件负责管理网络适配器和相关 I/O 子系统的初始化和运行时行为,可能涉及:
    • I²C 总线资源调度
    • 设备初始化顺序
    • 多路复用器(如 PCA9545)控制逻辑
    • 电源或时序控制影响
  • 若新版 bmc_network 改变了 I²C 总线控制策略、抢占总线时间过长或配置错误,可能造成 总线冲突或锁死,进而影响同总线上的其他设备(如 Riser 卡、温度传感器等)。

:white_check_mark: 知识库支持:

  • bmc_network app.lua 用于处理 BMC 重启时的网络准备事项。
  • 类似事件曾在其他版本中发生:bmc_network/1.26.57hw.ibm.release/rc 被认为是旧版可能导致 Link_Down 误报。

3. “重启后可识别但随后失效” —— 表明状态不稳定,疑似资源竞争或缓存污染

  • 初次上电时设备可能成功枚举(EEPROM 读取成功)。
  • 但在系统运行一段时间后,由于:
    • bmc_network 启动后修改了 I²C 驱动行为
    • 多线程/异步任务并发访问同一 I²C 总线导致冲突
    • 总线未正确释放或驱动层未处理重试机制
  • 导致后续访问失败,表现为 间歇性识别、链路崩溃扩散至其他器件(如 i24 链路)

:books: 相关知识关联

实体 关联说明
Riser Card 依赖 I²C 总线进行 UID 和配置读取,EEPROM 是其关键组成部分。
BMC_NETWORK 监控 Network Adapter,也可能间接影响共用 I²C 或资源调度。
I2c_6, Chip_Temp_01010C0301 显示 I²C 通信失败案例存在于知识库,证明 I²C 问题是常见故障点。
Firmware_Mgmt 管理固件升级过程中的依赖与状态,但本次问题更可能属于 bmc_network 自身逻辑缺陷。
UID Riser Card 的唯一标识来源于 EEPROM,若读取失败则 UID 不可达,导致无法匹配 CSR 包。

:hammer_and_wrench: 解决方案建议

:white_check_mark: 1. 临时对策:回退至稳定版本 bmc_network 1.81.6

  • 已验证有效,是当前最稳妥的应对方式。
  • 建议将此版本设为生产环境的标准基线,暂停 1.81.7 的部署。

:white_check_mark: 2. 根因排查:对比 1.81.61.81.7 差异

  • 分析 bmc_network 在两个版本间的变更:
    • 是否修改了 I²C 访问逻辑?
    • 是否增加了对特定 MUX(如 PCA9545)的操作?
    • 是否调整了设备初始化时序?
  • 查阅 app.logframework.loghwproxy 模块的行为变化。

:white_check_mark: 3. 增强 I²C 错误处理机制

  • 在 I²C 访问失败时增加 重试机制超时保护
  • 添加总线恢复逻辑(如发送 dummy write 尝试唤醒设备)。
  • lualib/i2c.lua 层面对 ret: 5(I/O error)做专项处理。

:white_check_mark: 4. 验证与测试建议

  • 压力测试:频繁上下电,观察 Riser 卡识别稳定性。
  • I²C 扫描监控:使用工具定期扫描 I2c_4 总线上的设备存在状态。
  • 日志增强:在 hwproxy_objects/work_objects.lua 中增加调试日志,记录每次 I²C 操作前后上下文。
  • 交叉验证:更换 Riser 卡或主板,排除硬件个体差异。

:pushpin: 结论

bmc_network 1.81.7 极有可能因修改了 I²C 总线访问逻辑或资源管理策略,导致对 Riser 卡 EEPROM 的读取失败,从而引发其无法识别,并进一步影响同 I²C 链路上的其他器件。
此问题属于 软件版本兼容性缺陷,非硬件故障。


:loudspeaker: 建议下一步行动

  1. 冻结 bmc_network 1.81.7 的发布计划,提交问题单至研发团队。
  2. 提取 1.81.7 相较于 1.81.6 的代码变更清单,重点关注 i2c.luaapp_bus.luawork_objects.lua 模块。
  3. 复现问题并抓取完整日志包(包括 app.log, framework.log, dmesg)供深入分析。
  4. 推动修复版本发布,例如 bmc_network 1.81.8,修复 I²C 访问稳定性。

如有更多日志或 CSR 配置文件,可进一步协助分析具体配置冲突点。

你好,请提供一键收集日志到wangxin570@huawei.com