修改psr后,raid卡报错0x08000045

问题描述

为解决线缆告警问题,我们在psr里修改了线缆配置,升级后raid卡出现告警,升级前不存在:

psr中总共修改了两处:

1.UnitConfiguration_IEU1新增riser卡的线缆配置,raid卡就插在槽位3

1.UnitConfiguration_SEU1_1修改背板的线缆配置

环境信息

  • 软件版本:iBMC 5.11.12.18

  • 硬件配置:920bs

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

:white_check_mark: 总结

项目 结论
告警原因 PSR 中 UnitConfiguration 配置错误导致 I²C 路径异常,无法读取 RAID 卡 EEPROM
关键错误 Slot 数组长度与 SrcPortName 不匹配、Index=0 非法
深层问题 当前 openUBMC 不支持 RAID 卡的线缆告警,强行配置易引发异常
解决方案 修正数组长度、调整 Index、移除非支持设备配置
最终建议 不要为非华为原生 Riser/RAID 卡配置线缆检测功能

建议配置完成后通过 fru show 和 Web 界面双重验证 PCIe 设备状态是否正常。

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

修改PSR后RAID卡报错 0x08000045 的问题分析与解决方案

根据您提供的信息,系统在修改 PSR 配置并升级后,出现了 严重告警

事件码:0x08000045
事件描述: The PCIe card 3 (SP686C-M-16I 2G) EEPROM is fault.
相关组件: PCIe Card 3(型号为 SP686C-M-16I 2G 的 RAID 卡)

以下将结合上下文对问题进行详细分析和定位。


:magnifying_glass_tilted_left: 问题概述

  • 触发动作: 修改了 PSR 中的 UnitConfiguration_IEU1UnitConfiguration_SEU1_1,以支持线缆检测(cable detection)功能。
  • 预期目标: 实现 RAID 卡或 Riser 卡的线缆连接状态检测,用于生成插错告警。
  • 实际结果:
    • 改动后,RAID 卡(SP686C-M-16I 2G)未能正常识别,抛出 EEPROM 故障告警(0x08000045)
    • 该告警升级前不存在,说明 PSR 配置变更直接导致了问题

:puzzle_piece: 根因分析

:white_check_mark: 1. 0x08000045 告警的含义

此告警表示:

PCIe 扩展卡的 EEPROM 出现读取失败或校验错误。

  • EEPROM(电子标签) 存储了 PCIe 卡的 FRU 信息(序列号、厂商、型号等),是 BMC 进行硬件识别与管理的关键。
  • 当 BMC 尝试通过 I²C 总线读取该卡的 EEPROM 时失败,就会触发此告警。
  • 常见原因包括:
    • 线路不通(物理连接问题)
    • I²C 地址冲突
    • MUX 路径未正确配置
    • PSR 配置错误导致拓扑不匹配,影响设备初始化流程

:warning: 2. PSR 修改引入的问题点分析

(1)UnitConfiguration_IEU1 配置异常

您修改前后的配置如下:

"Slot": [1, 2, 3]
"SrcPortName": ["A1a", "A1c"]
"TargetPortID": [33, 49]
  • 问题点:数组长度不匹配!
    • SrcPortName 只有两个端口(A1a, A1c)
    • TargetPortID 有两个 ID(33, 49)
    • Slot 却定义了 三个槽位(1, 2, 3)

:white_check_mark: 正确规则(根据 openUBMC 社区规范):

SrcPortName, TargetPortID, Slot 必须一一对应,数量要完全一致!

:backhand_index_pointing_right: 潜在后果:

  • 系统在解析此配置时会产生错误的 PCIe 拓扑映射。
  • 第 3 个 slot(即插有 RAID 卡的位置)可能被错误地关联到不存在的物理路径,导致其 I²C 路径未建立。
  • 无法访问 RAID 卡的 EEPROM → 触发 0x08000045 告警。

(2)UnitConfiguration_SEU1_1Index: 0 非法

"Index": 0
  • 在 openUBMC 的 UnitConfiguration 规范中,Index 是索引字段,通常从 1 开始编号
  • 使用 Index: 0 可能导致:
    • 配置被忽略
    • 或解析为无效配置项
    • 或触发默认行为冲突

:cross_mark: 建议:所有 Index 字段应 ≥ 1。


:warning: 3. RAID 卡线缆检测本身不受支持

根据您的搜索结果中多位专家(如“王祝炜”)明确指出:

:bell: 当前 openUBMC 平台仅支持华为自研 Riser 卡和硬盘背板的 UBC 高速线缆检测。
:red_circle: 不支持第三方 RAID 卡(如 Broadcom/PMC)的线缆检测功能

来源:【9500-8i的port A B线缆交叉不产生告警】

  • RAID 卡本身不主动上报接线状态
  • 没有标准机制让 RAID 卡参与线缆白名单比对
  • 强行在 PSR 中为其配置 UnitConfiguration 会导致 误匹配、误识别

:backhand_index_pointing_right: 结论:为 RAID 卡所在 Riser 卡配置线缆检测属于“超范围配置”,系统行为不可预测。


:hammer_and_wrench: 解决方案

:white_check_mark: 步骤一:修正 UnitConfiguration_IEU1 数组长度不一致问题

确保 SrcPortName, TargetPortID, Slot 三项长度一致。

:white_check_mark: 若只连接两个下行端口,则应改为:

"UnitConfiguration_IEU1": {
    "Configurations": [
        {
            "UID": "0000001040302044498",
            "Index": 1,
            "Default": true,
            "SrcPortName": ["A1a", "A1c"],
            "TargetPortID": [33, 49],
            "Slot": [1, 2],
            "Device": []
        }
    ],
    "Port1LinkInfo": ""
}

:memo: 若需支持 Slot 3,请确认硬件上是否有真实连接,并补充相应的 SrcPortNameTargetPortID


:white_check_mark: 步骤二:修改 UnitConfiguration_SEU1_1Index 为合法值

"Index": 1  // 而非 0

:white_check_mark: 步骤三:移除对非支持设备的线缆检测配置

:cross_mark: 删除对 RAID 卡所插 Riser 卡的 UnitConfiguration 中不必要的线缆白名单设置。

如果您使用的是标准 RAID 卡(如 SP686C-M-16I),建议:

  • 不配置线缆检测
  • 或仅在 华为自研 Riser 卡 + 支持线缆检测的场景 下开启该功能

:white_check_mark: 步骤四:验证并刷新配置

  1. 重新打包 PSR 文件,确保版本号递增(如 DataVersion: 1.011.02
  2. 升级 PSR 配置:
    bmccfg restore -t psr -f new_psr.bin
    
  3. 重启 BMC 或触发 hwdiscovery 重新发现硬件:
    systemctl restart hwdiscovery
    
  4. 检查 EEPROM 是否恢复正常读取:
    fru show  # 查看 PCIe Card 3 是否显示 FRU 信息
    

:white_check_mark: 预防建议

建议 说明
严格遵循数组一致性原则 SrcPortName, TargetPortID, Slot 数量必须相同
避免为不支持设备配置线缆检测 目前仅支持华为原生 Riser/背板
使用 CSR 工具辅助配置 推荐使用 BMC Studio 图形化工具生成 PSR,避免手写错误
测试前备份原配置 防止升级失败无法回退

:books: 相关参考文档

  1. 整机PSR配置指导书 – 明确 UnitConfiguration 配置方法
  2. PCIe配置 – 线缆检测原理与流程说明
  3. 【PSR】UnitConfiguration_IEU1里面的Slot怎么配置 – 官方社区答疑:Slot 配置规范
  4. 【9500-8i的port A B线缆交叉不产生告警】 – 明确 RAID 卡线缆告警不可用

:white_check_mark: 总结

项目 结论
告警原因 PSR 中 UnitConfiguration 配置错误导致 I²C 路径异常,无法读取 RAID 卡 EEPROM
关键错误 Slot 数组长度与 SrcPortName 不匹配、Index=0 非法
深层问题 当前 openUBMC 不支持 RAID 卡的线缆告警,强行配置易引发异常
解决方案 修正数组长度、调整 Index、移除非支持设备配置
最终建议 不要为非华为原生 Riser/RAID 卡配置线缆检测功能

建议配置完成后通过 fru show 和 Web 界面双重验证 PCIe 设备状态是否正常。

回退PSR 告警会消失吗 这个Scanner的Status为1会触发该告警

        "Scanner_Eeprom_Raid": {
            "Chip": "#/Eeprom_Raid",
            "Size": 1,
            "Offset": 0,
            "Mask": 255,
            "Period": 1000,
            "Type": 0,
            "Debounce": "None"
        },

在appdump/hwproxy/snapshot.csv里找到这个Scanner看K列的Error记录了错误原因