// 此模板仅供参考,如果不适用可以修改
问题描述
PCIe卡概率出现LinkWidthAbility、LinkWidth、LinkSpeed、LinkSpeedCapability值为NA
环境信息
- 软件版本:OpenUBMC LTS SP1
数据源来自imu,求助是否有类似问题
// 此模板仅供参考,如果不适用可以修改
PCIe卡概率出现LinkWidthAbility、LinkWidth、LinkSpeed、LinkSpeedCapability值为NA
数据源来自imu,求助是否有类似问题
答案内容由AI生成,仅供参考:
当前问题主要归因于 PCIe BDF 映射异常 与 CSR/pcie_device 初始化流程不完整,导致链路能力字段未能正确读取。虽然设备已识别(FirmwareVersion、Model 正常),但动态性能属性缺失。
建议优先修复 BDF 地址异常问题,并核查 CSR 中关于 LinkWidth 和 MaxLinkRate 的配置完整性。
如有需要,可提供完整日志供进一步分析。
根据您提供的问题描述和上下文信息,部分 PCIe 网络适配器(如 Broadcom BCM957508-P2100G)在特定条件下出现 LinkWidth、LinkSpeed、LinkSpeedCapability、LinkWidthCapability、MaxPCIeType 等关键属性值为 "N/A" 的现象。该问题可能影响系统对硬件链路状态的监控、带宽告警判断及拓扑管理。
异常字段:
LinkWidth = "N/A"LinkSpeed = "N/A"LinkSpeedAbility = "N/A"LinkWidthAbility = "N/A"LinkSpeedCapability = "N/A"MaxPCIeType = "N/A"涉及设备:
BCM957508-P2100G(即 NetXtreme-E Dual-port 100G QSFP56 Ethernet PCIe4.0 x16 Adapter)PCIeRiser1 连接CPU10000:41:00.0,实际 RootBDF 显示为 0000:0f:00.0数据来源:IMU 提供 PCIe 设备信息
软件版本:OpenUBMC LTS SP1
结合知识图谱信息与文档内容,导致上述字段为 "N/A" 的主要原因可能包括以下几点:
BCM957508-P2100G PCIe卡在BMC升级或重启后,其Bus Number异常地显示为
0xf (15)而非预期的0x40。
0000:0f:00.0,不符合系统预期地址 0000:41:00.0。PSR、CSR 和 Topology 建立失败。pcie_device 是 OpenUBMC 中负责管理 PCIe 拓扑、链路信息的核心模块。pcie_device 服务未能正常启动或与 BIOS/IPMI 通信异常,则无法获取链路能力信息。
pcie_device reported a failure while initializing the PCIe card.
pcie_device plays a role in discovery, configuration, and initialization of PCIe devices.
pcie_device 无法从 BIOS 成功读取拓扑信息时,系统将默认填充 "N/A"。“BCM957508-P2100G 是 newly adapted network card model that may not be fully supported by the current Smart Provisioning software.”
PcieAddrInfo 对象未正确配置;Connector 的 ID 和 AuxID 未通过四元组(VendorID + DeviceID + SubVendorID + SubDeviceID)正确设置;BusinessConnector 中缺少 LinkWidth 和 MaxLinkRate 定义。
特别说明:PCIe 卡(尤其是 OCP/标卡)需通过 IdentifyMode=2 加载方式,由 BMC 查询 IMU 获取 BDF 四元组信息,并动态填充
Connector.ID和Connector.AuxID。若此流程中断,将导致后续链路信息无法加载。
# 在 OS 层使用 lspci 命令验证设备真实 BDF
lspci | grep -i broadcom
# 正常应显示类似:41:00.0 Ethernet controller: Broadcom BCM57508
若显示为 0f:00.0,则说明:
登录 BMC 查看 pcie_device 是否正常运行:
systemctl status pcie_device
# 或检查日志:
journalctl -u pcie_device --since "1 hour ago"
查看是否存在以下错误:
failed to initialize PCIe cardtimeout reading topology informationBDF mismatch detected请确认以下 CSR 对象已正确配置:
PcieAddrInfo 配置示例:"PcieAddrInfo_BCM957508": {
"SlotID": "PCIeRiser1",
"RootBDF": "0000:41:00.0",
"FunctionTypes": ["Net Card"]
}
PCIeCard 与 PCIeDevice 配置:"PCIeDevice_1": {
"DeviceName": "BCM957508-P2100G",
"FunctionClass": 2,
"DeviceType": "PCIe Card",
"SlotType": "x16"
}
BusinessConnector 设置链路能力:"Connector_PCIE_Riser1": {
"Name": "PCIeRiser1",
"Direction": "Downstream",
"Slot": 1,
"LinkWidth": "X16",
"MaxLinkRate": "PCIe 4.0",
"ConnectorType": "PCIe CEM"
}
必须确保
LinkWidth和MaxLinkRate明确设置,否则系统无法填充LinkWidthCapability等字段。
由于数据源来自 IMU,请确认以下接口返回值是否完整:
# 示例:查询 PCIe 设备函数信息
GET /redfish/v1/Systems/1/FabricAdapter/PCIeCard1/PCIeFunction
预期输出中不应包含 "N/A",而应为:
"LinkSpeed": "16.0GT/s",
"LinkWidth": "x16",
"MaxPCIeType": "GEN4"
如果仍为 "N/A",需进一步确认:
在知识图谱中,zybwh(openUBMC 核心维护者)曾建议:
“verify visibility of Connector_PCIE_6 in hwdiscovery resource tree”
“analyze system logs to resolve errors”
建议执行命令检查硬件自发现树:
dbus-send --print-reply --system --dest=org.openbmc.DeviceInventory /bmc/kepler/pcie_device org.freedesktop.DBus.Properties.Get string:org.openbmc.pcie_device string:DeviceInfo
| 措施 | 说明 |
|---|---|
升级 BIOS 或调整 UEFI 设置,确保 BCM957508-P2100G 分配到正确的 Bus 0x40 及 BDF 41:00.0 |
|
补全 PcieAddrInfo、BusinessConnector.LinkWidth、MaxLinkRate 等字段 |
|
| 清除异常状态,重新触发设备枚举 | |
| 使用支持 BCM957508-P2100G 的新版 Provisioning 工具进行适配 | |
在 pcie_device 中启用 debug 模式,跟踪 getLinkSpeed()、getLinkWidth() 流程 |
当前问题主要归因于 PCIe BDF 映射异常 与 CSR/pcie_device 初始化流程不完整,导致链路能力字段未能正确读取。虽然设备已识别(FirmwareVersion、Model 正常),但动态性能属性缺失。
建议优先修复 BDF 地址异常问题,并核查 CSR 中关于 LinkWidth 和 MaxLinkRate 的配置完整性。
如有需要,可提供完整日志供进一步分析。
可以在pcie_device组件中找get_pcie_lang_info函数,在里面将debug日志级别调整为notice以上,看一下获取imu的返回,确实imu是否能读通以进一步判断