pcie网卡配置问题

问题描述

需要适配两张网卡,分别是Intel I350 和 Intel x710,两张网卡都没有和bmc在物理链路上有任何连接。网卡位置不固定,在Slot1-Slot7位置可选插。


已经在sr中按照上图进行了配置,始终未收到bios 发送的网卡bdf信息,请看下是什么原因。

环境信息

  • 软件版本:OpenUBMC2512 LTS SP1
    关键配置如下:
    “PcieAddrInfo_NIC_1”: {
    “Segment”: 0,
    “GroupID”: 1,
    “SlotID”: 1,
    “SocketID”: 0,
    “PortID”: 0,
    “Bus”: 4,
    “Device”: 24,
    “Function”: 0,
    “Location”: “CpuBoard${Slot}”,
    “ComponentType”: 8,
    “ContainerSlot”: “${Slot}”,
    “ControllerIndex”: 0,
    “ControllerType”: 1,
    “ContainerUID”: “00000001020302064399”,
    “ContainerUnitType”: “BCU”,
    “GroupPosition”: “PcieAddrInfo_NIC_1_${GroupPosition}”
    },
    “PcieAddrInfo_NIC_2”: {
    “Segment”: 0,
    “GroupID”: 1,
    “SlotID”: 2,
    “SocketID”: 0,
    “PortID”: 0,
    “Bus”: 4,
    “Device”: 16,
    “Function”: 0,
    “Location”: “CpuBoard${Slot}”,
    “ComponentType”: 8,
    “ContainerSlot”: “${Slot}”,
    “ControllerIndex”: 0,
    “ControllerType”: 1,
    “ContainerUID”: “00000001020302064399”,
    “ContainerUnitType”: “BCU”,
    “GroupPosition”: “PcieAddrInfo_NIC_2_${GroupPosition}”
    },
    “PcieAddrInfo_NIC_3”: {
    “Segment”: 0,
    “GroupID”: 1,
    “SlotID”: 3,
    “SocketID”: 0,
    “PortID”: 0,
    “Bus”: 0,
    “Device”: 8,
    “Function”: 0,
    “Location”: “CpuBoard${Slot}”,
    “ComponentType”: 8,
    “ContainerSlot”: “${Slot}”,
    “ControllerIndex”: 0,
    “ControllerType”: 1,
    “ContainerUID”: “00000001020302064399”,
    “ContainerUnitType”: “BCU”,
    “GroupPosition”: “PcieAddrInfo_NIC_3_${GroupPosition}”
    },
    “PcieAddrInfo_NIC_4”: {
    “Segment”: 0,
    “GroupID”: 1,
    “SlotID”: 4,
    “SocketID”: 0,
    “PortID”: 0,
    “Bus”: 0,
    “Device”: 12,
    “Function”: 0,
    “Location”: “CpuBoard${Slot}”,
    “ComponentType”: 8,
    “ContainerSlot”: “${Slot}”,
    “ControllerIndex”: 0,
    “ControllerType”: 1,
    “ContainerUID”: “00000001020302064399”,
    “ContainerUnitType”: “BCU”,
    “GroupPosition”: “PcieAddrInfo_NIC_4_${GroupPosition}”
    },
    “PcieAddrInfo_NIC_5”: {
    “Segment”: 0,
    “GroupID”: 1,
    “SlotID”: 5,
    “SocketID”: 0,
    “PortID”: 0,
    “Bus”: 4,
    “Device”: 28,
    “Function”: 0,
    “Location”: “CpuBoard${Slot}”,
    “ComponentType”: 8,
    “ContainerSlot”: “${Slot}”,
    “ControllerIndex”: 0,
    “ControllerType”: 1,
    “ContainerUID”: “00000001020302064399”,
    “ContainerUnitType”: “BCU”,
    “GroupPosition”: “PcieAddrInfo_NIC_5_${GroupPosition}”
    },
    “PcieAddrInfo_NIC_6”: {
    “Segment”: 0,
    “GroupID”: 1,
    “SlotID”: 6,
    “SocketID”: 0,
    “PortID”: 0,
    “Bus”: 4,
    “Device”: 20,
    “Function”: 0,
    “Location”: “CpuBoard${Slot}”,
    “ComponentType”: 8,
    “ContainerSlot”: “${Slot}”,
    “ControllerIndex”: 0,
    “ControllerType”: 1,
    “ContainerUID”: “00000001020302064399”,
    “ContainerUnitType”: “BCU”,
    “GroupPosition”: “PcieAddrInfo_NIC_6_${GroupPosition}”
    },
    “PcieAddrInfo_NIC_7”: {
    “Segment”: 0,
    “GroupID”: 1,
    “SlotID”: 7,
    “SocketID”: 0,
    “PortID”: 0,
    “Bus”: 0,
    “Device”: 4,
    “Function”: 0,
    “Location”: “CpuBoard${Slot}”,
    “ComponentType”: 8,
    “ContainerSlot”: “${Slot}”,
    “ControllerIndex”: 0,
    “ControllerType”: 1,
    “ContainerUID”: “00000001020302064399”,
    “ContainerUnitType”: “BCU”,
    “GroupPosition”: “PcieAddrInfo_NIC_7_${GroupPosition}”
    },
    14060876_BCU_0.zip (9.8 KB)

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

总结

项目 当前配置 正确配置 结果影响
ComponentType 8 (PCIe设备) 13 (NIC) :cross_mark: 无法触发BDF上报 → :white_check_mark: 正确识别网卡
ControllerType 1 1 :check_mark: 正确
连接方式 无BMC物理连接 支持(带内IPMI) :check_mark: 合法场景

结论:您的硬件架构可行,只要确保PcieAddrInfoComponentType=13,BIOS即可通过带内IPMI通道正常上报BDF信息。

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

PCIe网卡配置问题分析报告

问题概述

在OpenUBMC 2512 LTS SP1环境下,适配Intel I350和Intel x710网卡时出现无法接收到BIOS发送的网卡BDF信息的问题。网卡可插入Slot1-Slot7任意位置,但当前SR配置中始终未收到BIOS上报的BDF信息。


根核原因分析

根据提供的上下文信息和技术文档分析,核心问题出在**ComponentType配置错误**,导致BIOS无法正确识别网卡类型并上报BDF信息。

关键错误点

在您提供的SR配置中,所有PcieAddrInfo_NIC_x对象的ComponentType均被设置为 8(PCIe设备):

"ComponentType": 8, // 错误!

但根据OpenUBMC规范,板载或标准PCIe网卡应设置为 ComponentType = 13


解决方案

:white_check_mark: 正确配置方法

将所有PcieAddrInfo_NIC_x对象中的ComponentType8 修改为 13

"PcieAddrInfo_NIC_1": {
    ...
    "ComponentType": 13,  // 修正为13(NIC类型)
    "ControllerType": 1,
    "ControllerIndex": 0,
    ...
}

注意:需要对 PcieAddrInfo_NIC_1PcieAddrInfo_NIC_7 所有实例都进行此修改。


技术依据

1. ComponentType 类型定义(来自知识库)

类型 说明
8 PCIe设备 通用PCIe卡(如GPU、NVMe等)
13 NIC 网络接口控制器(网卡)
83 OCP OCP标准网卡

相关依据:bios组件中基于ComponentType为13的PcieAddrInfo对象生成NICSilk(网卡丝印)

2. BIOS丝印上报机制

  • BIOS通过读取BMC的silkconfig.json文件获取PcieAddrInfo配置。
  • 只有当ComponentType == 13时,BIOS才会将该设备识别为板载网卡(NICSilk),并调用WritePcieCardBdfToBmc命令上报BDF。
  • 若类型不匹配(如设为8),BIOS会忽略该设备,导致BMC无法获取BDF信息。

3. 日志验证线索

在您的环境版本(2512)日志中:

creating mctp transport and endpoint with bdf=3:0.0

说明系统已检测到设备存在,但未完成MCTP端点注册。这通常是因为缺少正确的BDF上报流程,而根本原因正是丝印配置不正确。


排查建议补充

:white_check_mark: 验证步骤清单

  1. 修改SR配置

    • 更新所有PcieAddrInfo_NIC_xComponentType13
    • 重新生成并刷写SR文件
  2. 检查BIOS端配置

    • 确保BIOS中开启“openUBMC开关”(位于:高级 → IPMI BMC配置)
    • 否则BIOS无法与BMC通信
  3. 日志验证

    • 重启系统后,检查BIOS日志中是否有:
      bios_write_bdf_to_bmc: sht bios_write_bdf_data_to_bmc max_frame
      write_one_frame: pcie bdf reported
      
    • 这表明BDF已正常上报
  4. Redfish验证

    • 访问 Redfish API 确认设备是否加载成功:
      /redfish/v1/Chassis/1/PCIeDevices/
      

总结

项目 当前配置 正确配置 结果影响
ComponentType 8 (PCIe设备) 13 (NIC) :cross_mark: 无法触发BDF上报 → :white_check_mark: 正确识别网卡
ControllerType 1 1 :check_mark: 正确
连接方式 无BMC物理连接 支持(带内IPMI) :check_mark: 合法场景

结论:您的硬件架构可行,只要确保PcieAddrInfoComponentType=13,BIOS即可通过带内IPMI通道正常上报BDF信息。


参考资料

  • 官方PCIe配置文档
  • search_result[5]:丝印上报总结分享
  • search_result[9]:BIOS实现和带内交互介绍

请按上述方案调整后验证,问题应可解决。

问题已找到,PcieAddrInfo中PortID没有配置正确,另外UnitConfiguration配置中Device的配置会影响bios获取丝印中RootPortDeviceId数值。