【问题求助】2U4P机型串口日志中I2c报错,报错原因是什么,是否在正常运行范围内

// 此模板仅供参考,如果不适用可以修改

问题描述

报错如下

环境信息

  • 软件版本:OpenUBMC LTS SP1

重现步骤

BMC重启

期望结果

串口无异常日志

初步分析结论

1.I2C-03 Eeprom_PsuChip1_0101访问异常仅在启动后一段时间出现,是否为线路繁忙,属于正常现象?
2.I2C-08 对应设备Chip_UsbCc_On_0101目前环境上一直无法访问,这个设备一直访问失败

想了解下这个数据读取在usb组件中的作用,以及为何他无法访问,是否地址配置错误

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

总结建议

问题 现象 判断 排查方向
I2C-03 Eeprom_PsuChip1_0101 启动后短暂报错 可能正常 若持续出现则检查地址和硬件链路
I2C-08 Chip_UsbCc_On_0101 一直失败 异常 重点检查地址配置、硬件连接、SR拓扑

更多详细硬件错误定位方法可参考文档中心:I2C 总线介绍V3 硬件访问错误排查指南

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

根据您提供的上下文信息,针对2U4P机型串口日志中的I2C报错进行分析如下。


1. I2C-03 访问 Eeprom_PsuChip1_0101 异常(仅启动后出现)

报错原因分析

I2C通信失败通常源于以下原因(参考文档片段5中的I2C错误码表):

  • ret: 5RT<-5|5> 对应的返回码 -5,表示 tx_abort 错误,即传输被终止,从器件没有响应
  • 可能原因包括:
    1. 从设备地址错误(SlaveAddr 配置不正确)。
    2. 从设备未处于活跃状态(如启动过程中的初始化未完成、固件加载中)。
    3. 硬件链路异常(信号质量差、总线干扰、连接不良)。

启动后一段时间出现,可能是因为:

  • 在系统启动阶段,PSU 等器件尚未完全初始化,或 I2C 总线正在枚举中,短暂访问失败属于正常现象
  • 如果该报错仅在启动后几分钟内出现,且之后不再复现,通常可认为是总线繁忙或设备未就绪引起的临时性通信异常。

是否属于正常范围?

  • 若仅在启动后短暂出现(例如几分钟内)且后续不再报错,则属于预期范围内的正常现象,无需处理。
  • 若持续反复出现,则需要排查:
    • 检查 SR 配置中 Eeprom_PsuChip1_0101 的 SlaveAddr 是否正确(文档3:I2C/SMBus 配置及使用说明)。
    • 确认 PSU 硬件是否正常工作(运行状态、固件版本)。
    • 使用逻辑分析仪抓取 I2C-03 总线波形,验证信号质量。

2. I2C-08 访问 Chip_UsbCc_On_0101 一直失败

该设备的作用

根据搜索到的 CSR 配置字典(UsbLocalOMService 类)和扩展板配置指导书:

  • Chip_UsbCc_On 是**近端运维服务(USB Type-C 功能)**中的关键器件,代表挂耳上的 Type-C CC 芯片(On 厂商)。
  • BMC 通过定期扫描该芯片来获取 USB Type-C 设备接入状态,用于支持近端网络功能(如 USB 网卡、KVM 等)。
  • 若该设备无法访问,则近端运维功能(如 USB 网络接口、LED 控制等)将失效

一直访问失败的可能原因

  1. 地址配置错误

    • 在 CSR 文件中,RefCcChipOn 属性引用了 #/Chip_UsbCc_On,其 SlaveAddr 必须与实际硬件地址一致。
    • 若地址配置错误(例如 7bit 地址与 8bit 地址混淆),会导致 BMC 无法找到该设备。
    • 建议:检查 SR 文件中 Chip_UsbCc_On_0101 的 SlaveAddr 配置,并确认与硬件 datasheet 一致。
  2. 硬件链路问题

    • I2C-08 总线本身与多个设备连接(如 LM75、Eeprom 等),若其他设备可正常访问,则链路本身可能正常,但 CC 芯片本身可能存在故障、未上电或固件异常。
    • 可使用 i2ctool 直接向该地址发送读取命令,验证芯片是否响应。若完全不响应,则可能是硬件问题,需联系硬件同事排查。
  3. 拓扑配置遗漏

    • 知识图谱中 I2c_8 的拓扑并未包含 Chip_UsbCc_On 相关设备,可能当前环境的 SR 文件中未正确将该芯片挂载到 I2c_8 总线下的适当位置。
    • 需核对 SR 文件中 I2c_8 的 ManagementTopologyAnchor 配置,确保 Chip_UsbCc_On 对象已被正确添加。

是否属于正常范围?

  • 一直访问失败不属于正常现象,会导致近端运维功能不可用。
  • 需优先排查地址配置和硬件链路,参考文档片段3中的排查方法:
    • 检查 SlaveAddr 配置是否正确;
    • 确认硬件是否支持 I2C 主从切换;
    • 使用逻辑分析仪检查总线信号。

总结建议

问题 现象 判断 排查方向
I2C-03 Eeprom_PsuChip1_0101 启动后短暂报错 可能正常 若持续出现则检查地址和硬件链路
I2C-08 Chip_UsbCc_On_0101 一直失败 异常 重点检查地址配置、硬件连接、SR拓扑

更多详细硬件错误定位方法可参考文档中心:I2C 总线介绍V3 硬件访问错误排查指南

KunLun2480V2_2106186148LHS5000002_20260610-1119.tar.gz (3.7 MB)

  1. 硬件链路在设备上电后,往往需要一段时间器件才能正常工作,时间是有硬件器件特性以及单板上电控制策略等因素决定;
  2. BMC检测到该器件时若器件尚未进入工作状态,与之通信就会出现通信失败,ret =5 从器件无响应的报错,如果只是在启动阶段短时出现,通常无影;

问题中提到的Eeprom_PsuChip1_0101,短暂报错,可以观察报错是否持续,电源信息显示是否正常,综合判断,必要的可以联系硬件工程师一起诊断;

Chip_UsbCc_On_0101一直访问失败,目前看可能是器件地址配置错误,或者链路或者器件存在问题,需要联系联系硬件工程师一起诊断