AIC SSD卡适配问题

背景
因为客户需求,我们要在2509 openUBMC上适配AIC SSD盘,该盘的样子是PCIe标卡,插在PCIe插槽上,获取信息的方式应该是MCTP。

问题
请问这样的盘是作为PCIe卡适配么?web上信息显示是显示在PCIe卡处还是存储管理处?

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

问题 回答
AIC SSD是否作为PCIe卡适配? :white_check_mark: 是,必须通过CSR文件进行PCIe级适配
Web上显示在哪里? 默认在 系统信息 → 其他 → PCIe卡
能否在“存储管理”中显示? :cross_mark: 否,除非额外开发NVMe/MCTP集成模块
是否推荐启用MCTP? :white_check_mark: 强烈推荐,用于远程健康监控与带外管理

如需进一步推动“存储管理”集成,请提交功能需求至 GitCode 平台,并引用 OpenUBMC 25.09bmc.dev.NVMe.Management 接口能力。

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

AIC SSD卡在OpenUBMC 25.09上的适配指导

根据您提出的关于在OpenUBMC 25.09平台上适配AIC SSD卡的问题,结合现有知识库和社区实践,现提供以下权威解答与技术指导。


:pushpin: 核心结论

  • :white_check_mark: 是的,AIC SSD卡应作为PCIe卡进行适配。
  • :magnifying_glass_tilted_left: 该设备的信息将主要显示在 Web 界面的 系统信息 → 其他 → PCIe卡 路径下
  • :light_bulb: 若需在“存储管理”中识别并展示为存储设备,需额外配置逻辑以支持NVMe协议栈及MCTP管理通信。

:wrench: 详细分析与技术依据

1. AIC SSD的本质是PCIe设备

AIC(Add-In Card)形态的SSD本质上是一块以PCIE总线连接、遵循NVMe协议的扩展卡,其物理接口与GPU、网卡等无异。因此,在OpenUBMC系统中,它被视为标准的PCIeCard对象进行识别与管理。

:books: 知识库支持:

  • PCIeCard 是一种物理扩展卡,通过PCIe总线连接,支持NVMe存储控制器等功能(见KG实体描述)。
  • 系统通过 Fru_PCIeCard 对象来表示此类设备,并采集其PCB ID、FRU信息、传感器数据等。

2. Web界面默认显示位置:PCIe卡列表

在未做特殊协议适配的情况下,只要完成基本的CSR文件配置,AIC SSD会出现在Web界面的:

系统信息 → 其他 → PCIe卡

这是因为在OpenUBMC中:

  • 所有插入PCIe插槽的设备(无论功能为何)都由 pcie_device 模块统一发现和加载。
  • 设备能否出现在此列表,取决于是否存在匹配的四元组(Vendor ID, Device ID, SubVendor ID, SubDevice ID)对应的 .sr 配置文件。

:white_check_mark: 参考案例:
类似Riser卡、GPU卡、NPU卡均在此路径下显示(见Search Result #2, #3, #5)。


3. 是否能在“存储管理”中显示?

目前 OpenUBMC 的“存储管理”模块主要识别以下两类设备:

  • 直接连接的SATA/SAS硬盘
  • RAID控制器管理下的逻辑盘

AIC SSD 若基于 NVMe 协议并通过 MCTP 实现带外管理,则需满足以下条件才能在存储管理中被识别:

:white_check_mark: 必要条件:

  1. 启用 MCTP over PCIe 支持

    • 使用接口:bmc.dev.NVMe.Management
    • 该接口用于获取NVMe磁盘的管理属性,如健康状态、SMART信息等。
  2. 设备支持 SupportedMctpOverPcie = true

    • 表示设备可通过MCTP协议进行带外通信。
    • BMC可借助此通道读取SSD内部数据(如温度、寿命、错误计数)。
  3. 正确配置StorageType与FRU数据源

    • StorageType 若设置为 EepromV2TianChi,可用于存储SSD的VPD信息。
    • 需配置相应的FRU数据读取路径。

:warning: 注意:
目前“存储管理”不会自动将PCIe NVMe设备列为可用磁盘,除非有专门的适配代码将其映射为存储资源。否则仍归类为通用PCIe设备。


:hammer_and_wrench: 推荐适配方案

步骤一:创建CSR配置文件

/opt/bmc/sr/ 目录下创建名为:

<vendor_id>_<device_id>_<subvendor_id>_<subdevice_id>.sr

示例(假设四元组为 1d1d f100 1d1d 0001):

{
  "PCIeCard_1": {
    "Name": "AIC NVMe SSD",
    "Model": "AIC-SSD-1TB",
    "Manufacturer": "ACME Inc.",
    "PartNumber": "AIC-NVMe-1T",
    "FunctionClass": 4,  // 存储卡
    "DeviceType": 0,
    "VendorID": "1d1d",
    "DeviceID": "f100",
    "SubVendorID": "1d1d",
    "SubDeviceID": "0001",
    "Position": "chassis",
    "GroupPosition": "Slot1"
  }
}

:magnifying_glass_tilted_left: FunctionClass = 4 表示“存储卡(SSD卡/M.2卡)”,有助于后续分类(见KG文档与Search Result #5)。


步骤二:确保MCTP通信可用

配置MCTP endpoint发现机制:

  • 确认设备支持 MCTP over PCIe 协议。
  • 使用 bmc.dev.NVMe.Management 接口检查 SupportedMctpOverPcie 属性。
  • 可参考 0x02_0x9700_mctp.json 文件结构模拟MCTP消息交互(见KG中相关实体)。

检查传感器与健康数据读取:

  • 通过Redfish或busctl查看是否有如下路径暴露:
    /xyz/openbmc_project/sensors/nvme_temp/...
    /xyz/openbmc_project/inventory/item/nvme_slot1
    

步骤三:决定Web展示策略

展示目标 实现方式
:white_check_mark: 显示设备存在、型号、序列号 完成CSR配置即可
:white_check_mark: 显示温度、健康状态等传感器 启用MCTP通信,配置传感器注册
:white_check_mark: 在“存储管理”中可见 需开发桥接模块,将PCIe NVMe设备挂载为虚拟存储单元,并集成至storage服务

:light_bulb: 建议初期先实现在“PCIe卡”中完整展示,再评估是否需要升级至“存储管理”。


:paperclip: 参考资料与链接

  • :link: OpenUBMC 25.09 官方页面
  • :blue_book: 《PCIe设备适配指南》 → GitCode - pcie_device
  • :blue_book: 《GPU卡适配指导》→ 提供标准CSR模板(Search Result #3
  • :blue_book: 《网卡开发指南》→ 说明了IdentifyMode=2的加载流程,适用于AIC设备

:white_check_mark: 总结

问题 回答
AIC SSD是否作为PCIe卡适配? :white_check_mark: 是,必须通过CSR文件进行PCIe级适配
Web上显示在哪里? 默认在 系统信息 → 其他 → PCIe卡
能否在“存储管理”中显示? :cross_mark: 否,除非额外开发NVMe/MCTP集成模块
是否推荐启用MCTP? :white_check_mark: 强烈推荐,用于远程健康监控与带外管理

如需进一步推动“存储管理”集成,请提交功能需求至 GitCode 平台,并引用 OpenUBMC 25.09bmc.dev.NVMe.Management 接口能力。

作为nvme盘适配,web上不会显示在PCIE卡处,会显示在存储管理处

你好,如果我要把某个PCIe槽位配置为AIC盘槽位,那么这个槽位就只能接AIC盘,不能再接PCIe卡了是么?按照如下改动:

该盘插不了硬盘背板吗,硬盘背板也有可以插NVMe盘的

插不了 这个盘是pcie标卡的样子,像这样: