东辉哥,明浩哥,伙伴[需求]: 新增支持YMTC PE511 NVMe硬盘AtomGit | GitCode - 全球开发者的开源社区,开源代码托管平台
已自测完成,现已提起PR,还请帮忙检视合入,感谢。
涉及到storage仓
和vpd仓
东辉哥,明浩哥,伙伴[需求]: 新增支持YMTC PE511 NVMe硬盘AtomGit | GitCode - 全球开发者的开源社区,开源代码托管平台
已自测完成,现已提起PR,还请帮忙检视合入,感谢。
涉及到storage仓
和vpd仓
答案内容由AI生成,仅供参考:
总结:
新增 YMTC PE511 NVMe 硬盘支持,技术路径清晰,主要工作集中在 vpd 的 SR 文件配置 和 storage 的设备识别扩展。当前 openUBMC 架构已支持同类设备接入,建议尽快提交 PR 并推动合入。
根据您提出的“新增支持YMTC PE511 NVMe硬盘”需求,结合 openUBMC 系统架构及相关组件信息,现提供以下综合分析与实现建议。
本需求旨在将新型 YMTC PE511 NVMe 硬盘 集成到 openUBMC 系统中,确保 BMC 能够正确识别、管理并监控该型号硬盘的运行状态(如温度、寿命、健康状态等),同时保证其在 WebUI、IPMI、Redfish 等接口中正常展示和可控。
该功能涉及两个核心代码仓:
storage 组件:负责 NVMe 设备的探测、监控与管理。vpd 组件:负责设备的 Vital Product Data(关键产品数据)描述与映射。storage 组件storage 是 openUBMC 中负责存储设备管理的核心模块,主要职责包括:
相关能力已在近期版本增强:
GetNvmeInfo IPMI 命令获取 NVMe 信息(KG 实体:GetNvmeInfo)。
因此,storage 框架已具备扩展新 NVMe 型号的能力,只需适配 YMTC PE511 的设备 PID/VID 或协议特性即可。
vpd 组件vpd(Vital Product Data)组件用于描述硬件设备的元数据,包括设备型号、厂商 ID、协议类型等,用于 BMC 进行设备识别与配置加载。
关键文件路径:
vpd/mds/service.json:定义设备模型与 SR 文件绑定关系。.sr 文件(如 14100513_00000001020330323030_0.sr):描述具体设备的属性、寄存器地址、通信协议等。
参考文档:
用户“Aaeon”曾在 GitCode 社区通过修改
vpd/mds/service.json并添加.sr文件成功集成新硬件(见 Document Chunk #3)。
因此,为支持 YMTC PE511,需要:
.sr 描述文件。platform.sr 或设备映射表中注册其 Product ID 和 Vendor ID。service.json 版本号并构建。获取 YMTC PE511 的以下信息:
可通过
lspci -vvv或设备手册获取。
判断是否需定制协议处理:
.sr 文件。storage 中扩展驱动逻辑。vpd 仓库# 克隆 vpd 仓库
git clone https://gitcode.com/openUBMC/vpd.git
创建 SR 文件模板
{
"Nvme_1": {
"Slot": "${Slot}",
"TemperatureCelsius": "<=/Scanner_Temp.Value",
"MediaType": 1,
"Protocol": 6,
"PredictedMediaLifeLeftPercent": "<=/Scanner_Remtime.Value",
"Failure": "<=/Scanner_SSD_Fault.Value",
"PredictiveFailure": "<=/Scanner_SSD_Pre_Fault.Value",
"VPDChip": "#/Chip_Virtual_SSD",
"SSDChip": "#/Chip_SSD"
}
}
保存为 YMTC_PE511_PROTOCOL_0.sr。
更新 service.json
{
"Version": "1.80.56", // 可酌情递增
"Objects": {
"YMTC_PE511": {
"Bom": "1410...", // 对应 YMTC PE511 的 BOM 编码
"SrFile": "YMTC_PE511_PROTOCOL_0.sr"
}
}
}
提交 PR 到 vpd 仓库
storage 仓库git clone https://gitcode.com/openUBMC/storage.git
检查设备识别逻辑
storage 中 nvme.lua 或 scanner.lua 文件是否根据 VID/DID 进行匹配。0x1d1d),需添加:if vid == 0x1d1d and did == 0x... then
return "YMTC_PE511"
end
支持 SMART/NVMe-MI 读取
GetNvmeInfo 命令能否正确返回数据(IPMI Cmd: 0x38, 0x13)。c_nvme 对象加载机制。提交 PR 到 storage 仓库
功能测试
ipmitool raw 0x38 0x13 是否返回有效数据。/redfish/v1/Systems/1/Storage/1/Drives/1 是否返回正确信息。兼容性测试
日志排查
app.log 中 firmware_mgmt、storage、devmon 是否有报错。/var/log/app.log由于您已标注 @dli_bmc_vigaq 和 @yelmh_kno07,建议:
storage 和 vpd 仓库分别创建 PR。
参考案例:用户“百敖_蒋超”曾遇到 GitCode 地址失效问题,通过创建 issue 跟进解决(见 Document Chunk #6)。
vpd 仓库地址:https://gitcode.com/openUBMC/vpdstorage 仓库地址:https://gitcode.com/openUBMC/storage
总结:
新增 YMTC PE511 NVMe 硬盘支持,技术路径清晰,主要工作集中在 vpd 的 SR 文件配置 和 storage 的设备识别扩展。当前 openUBMC 架构已支持同类设备接入,建议尽快提交 PR 并推动合入。
@caiyesheng_b48v3 业胜哥也帮忙看下,感谢
收到,正在组织检视中。
已检视合入