问题描述
使用社区2606分支构建1712版本,升级到环境之后发现BCU的SR未加载,定位发现I2C_1不通。
环境信息
重现步骤
-
使用来料自带BMC版本,BCU的SR可以正常加载,I2C_1通信正常。
-
使用社区2606版本构建1712包,升级之后BCU的SR不能加载,I2C_1通信异常,I2C_1 总线后续持续出现 [I2C-01-RT<-11|-11>]
尝试过的解决方案
回退来料自带BMC版本没有问题,排除硬件I2C通信问题。
分析结论
怀疑hwproxy 1.120.11 与新 SDK/RTOS 的 I2C 访问接口兼容性问题。
S950X00_2102315RYU10S6100094_19700101-0800.tar (22.2 MB)
答案内容由AI生成,仅供参考:
四、结论
根据现有上下文,无法直接给出唯一根因,但上述分析支持您对 hwproxy 与 SDK/RTOS 兼容性 的怀疑。同时,I2C 总线竞争、插件访问未释放、升级配置缺失(如 I2CUpgradeChip)也是需要重点排查的方向。建议结合完整日志和升级包内容,逐步确认到底是哪一层导致 I2C_1 通信失败。
点击此处查看详细分析解答
根据您提供的问题描述和上下文中的知识库信息,以下是对**“2606构建1712版本升级后 I2C_1 不通”**问题的综合分析与排查建议。
一、问题定位
您的问题现象为:使用社区 2606 分支构建 1712 版本并升级后,BCU 的 SR 无法加载,定位发现 I2C_1 通信异常,且总线持续出现 [I2C-01-RT<-11|-11>] 错误。回退到原厂自带 BMC 版本后恢复正常,这已经排除了硬件层面的故障,基本可以确定问题与升级后的新软件版本(尤其是 hwproxy、SDK/RTOS 相关组件)存在关联。
二、结合知识库的可能原因分析
1. 总线被占用或竞争导致访问超时(可能性较高)
知识库中关于 hwproxy 插件访问的说明明确指出:
插件访问时会占据总线访问通道,此时其他的访问将无法发送,可能产生超时等情况。如果插件访问时间长,需评估对总线其他器件的影响。
在升级后的运行环境中,如果某些组件(如 storage 模块、power_mgmt 等)仍在持续占用 I2C_1 总线,就会导致其他设备(例如 BCU 的 SR 加载)无法正常通信。知识库中也有类似案例:在升级过程中,storage 模块大量占用 I2C 总线,导致升级失败。虽然您的问题是升级后持续不通,但总线占用未释放的机制是相似的。
此外,内核日志中出现的 -11 与知识库日志中 i2c.lua:120: response error, i2c read fail, ret: 11 高度相似,这可能意味着 I2C 访问被拒绝或超时,属于“总线无法让出”的典型表现。
2. hwproxy 与 SDK/RTOS 的 I2C 访问接口兼容性问题
您怀疑 hwproxy 1.120.11 与新 SDK/RTOS 的 I2C 访问接口存在兼容性问题,这与知识库中的信息并不矛盾。知识库提到 I2C Bus 本身容易受到瞬时干扰和信号竞争的影响,而在固件升级或高负载操作期间,这种问题更容易暴露。如果 hwproxy 在升级后对 I2C 底层接口的调用方式发生了变化,或者与 RTOS 版本不匹配,就可能出现 I2C_1 持续访问失败的情况。
3. 升级过程中缺少必要的 I2C 配置(如 I2CUpgradeChip)
知识库中有一条重要关系:
I2CUpgradeChip 是 I2C 升级所需的属性,但未配置。
如果本次升级涉及 I2C 链路上的设备(例如 CPLD 或其他芯片)更新,但新版本代码路径中缺少 I2CUpgradeChip 配置,则可能导致升级后 I2C 相关功能异常。这需要结合您的升级包是否包含 I2C 升级步骤来判断。
4. CSR 配置或拓扑数据不完整
知识库中提到,CSR 配置主要用于配置 topo 数据,不会直接控制底层 I2C 电平高低。但如果您的新版本构建中 CSR 配置或拓扑数据与 1712 硬件不匹配,可能导致 BCU 的 SR 无法被发现,间接表现为 I2C_1 通信异常。
三、进一步排查建议
-
检查升级后的系统日志
重点查看 hwproxy 和内核日志中是否出现类似以下错误:
i2c.lua:120: response error, i2c read fail, ret: 11
PluginRequestEx 超时(例如 used time[102s])
[I2C-01-RT<-11|-11>] 持续打印
-
确认是否有组件在持续占用 I2C_1 总线
观察日志中请求来源(如 bmc.kepler.power_mgmt、storage 模块等),判断是否有后台任务长时间占用总线。可使用调试手段查看当前 I2C 总线的持有者。
-
检查 BCU SR 加载所依赖的拓扑配置
确认新版本的 CSR 配置和拓扑数据是否完整覆盖 BCU 设备,必要时对比原厂 BMC 版本的配置差异。
-
验证 I2C 升级链路相关配置
如果升级过程包含 I2C 固件更新,请确认代码路径中是否已正确配置 I2CUpgradeChip,避免因缺少该属性导致升级后功能异常。
-
尝试更换 hwproxy 版本或回退方案
由于回退原厂版本即可恢复,说明软件兼容性是核心疑点。建议在测试环境中尝试不同版本的 hwproxy 或 SDK/RTOS 组合,以定位具体不兼容的组件。
四、结论
根据现有上下文,无法直接给出唯一根因,但上述分析支持您对 hwproxy 与 SDK/RTOS 兼容性 的怀疑。同时,I2C 总线竞争、插件访问未释放、升级配置缺失(如 I2CUpgradeChip)也是需要重点排查的方向。建议结合完整日志和升级包内容,逐步确认到底是哪一层导致 I2C_1 通信失败。