各位好,我是 openUBMC 新手,想做一个小实验:让 BMC 通过 NCSI over MCTP/PLDM 管理 Mellanox ConnectX-4 网卡。
设备是个人购买的 MCX454A-FCAT(如有部件号理解错误请指正)。
目标
- 在不依赖厂商私有命令的前提下,验证 标准协议链路(MCTP + PLDM / NCSI) 能否正常打通并做基础管理(发现、FRU/监控、链路状态等)。
环境
-
BMC:openUBMC
-
网卡:MCX454A-FCAT
-
总线/链路:PCIE
我在查资料时看到,这款网卡支持 MCTP over PCIe 和 MCTP over SMBus,固件版本也符合要求。
目前我尝试做适配,小白的角度主要是参考 CX6/CX4 的 CSR 文件,把配置复制并稍作修改后,PCIe 信息已经能正常显示。
但接下来不知道具体还要做哪些步骤。希望能了解一份从零开始完整、清晰的“自购网卡适配流程”,
尤其是针对个人环境,而不是企业预配套的那种。(因为看社区教程资料还是有点懵)
目前我也是以个人角度去玩一玩,所以需要的是个人思路角度,通过各种手段适配。具体细节都没学过,初步接触openUBMC,有点小兴趣。
hi,其实看这个并不能满足我的疑问。
{
“FormatVersion”: “3.00”,
“DataVersion”: “3.00”,
“Unit”: {
“Type”: “PCIeCard”,
“Name”: “PCIeCard_1”
},
“ManagementTopology”: {
“Anchor”: {
“Buses”: [
“I2cMux_Chan”
]
},
“I2cMux_Chan”: {
“Chips”: [
“Chip_TempChip”
]
}
},比如sr开头这个。以及
这种
我的疑问是如何实现mctp over pcie或者mctp over smbus适配,看样子是通过sr进行适配,适配后有类似openbmc那种工具进行探测吗,有没有工具提供探测比如kernel或者其他功能。以及上面I2CMUX_那些信息如何理解, “I2cMux_Chan”: { “Chips”: [ “Pca9555_PCIe” ] } },
这种又如何理解
硬件自描述文件(CSR) | 文档中心 | openUBMC
这里的“I2cMux_Chan”其实就是上一层传下来的链路,依赖的其实是上一层,这里应该随便叫什么名字都可以,比如上一层传下来是i2c2,那它这个哪怕起名叫i2c5实际操作起来也是i2c2。不过这里叫I2cMux_Chan是因为他是pca9545多路复用下的一个通道。
具体你可以搜索"Bom": “14140130” ,你可以在其他sr文件里看到类似这样的,下面这个其实就是你这个网卡sr的上一层了。
"Connector_PCIE_1": {
"Bom": "14140130",
"Slot": 1,
"Position": 1,
"Presence": 0,
"Id": "",
"AuxId": "",
"Buses": ["I2cMux_Pca9545_PCA9545_1"],
"SystemId": "${SystemId}",
"ManagerId": "${ManagerId}",
"ChassisId": "${ChassisId}",
"SilkText": "PCIE_SLOT1",
"IdentifyMode": 2,
"Container": "",
"Type": "PCIe"
},
这个要去看network_adapter这个仓库,里面有个hardware_config的目录,下面会存放不同型号卡的相关协议。