CSR配置字典之M2TransferCard类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | M2TransferCard类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建M2TransferCard类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
M2TransferCard 类
属性 | 值 |
---|---|
类名称 | M2TransferCard |
功能描述 | M.2转接卡管理对象,提供M.2转接卡的基本信息、版本管理、状态监控和M.2盘在位检测功能 |
所属SIG组 | storage |
所属组件 | M.2转接卡管理 |
责任人 | 存储管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Slot | U8 | 0 | U8 | - | 槽位号 | BMC接口展示 | "${Slot}" | 硬件提供 | 硬件 |
UID | String | - | String | - | 单板UID vendor(00000001)+单板类型(02)+单板编码(0302031825) | BMC接口展示 | "00000001030302023954" | 硬件提供 | 硬件 |
Name | String | - | String | - | 固件名称 | BMC接口展示 | "BC83MSMA" | 固定配置,根据具体单板 | 硬件 |
Manufacturer | String | - | String | - | 固件厂商 | BMC接口展示 | `"<=/FruData_SEU.BoardManufacturer | > expr($1 == '' ? 'Huawei' : $1)"` | 厂商 |
Type | String | - | String | - | 单板类型 | BMC接口展示 | "SEU" | 单板类型配置 | 硬件 |
Description | String | - | String | - | 单板描述 | BMC接口展示 | "M.2 Transform card, 2*PCIE interface" | 单板描述 | 硬件 |
PartNumber | String | - | String | - | 部件编号,支持BMC接口写入 | BMC接口展示 | "<=/FruData_SEU.BoardPartNumber" | 部件编号 | 硬件 |
PcbID | String | - | String | Scanner_PcbID | PcbID | PcbVersion属性会使用 | "#/Scanner_PcbID.Value" | 硬件提供 | 硬件 |
SRVersion | String | - | String | - | CSR版本 | BMC接口展示 | "${DataVersion}" | SR版本 | 软件 |
BoardID | U16 | 65535 | U16 | - | 单板ID | BMC接口展示 | 65535 | CSR配置 | 软件 |
BoardType | String | - | String | - | 单板类型 | BMC接口展示 | "HddBackplane" | CSR配置 | 软件 |
DeviceName | String | - | String | - | 板卡丝印信息 | BMC接口展示 | "M2TransferCard${Slot}" | CSR配置 | 软件 |
Position | String | - | String | - | 单板位置 | BMC接口展示 | "chassis" | CSR配置 | 软件 |
NodeId | String | - | String | - | 容器信息Position和设备丝印名称DeviceName拼接而成 | BMC接口展示 | "chassisM2TransferCard${Slot}" | CSR配置 | 软件 |
FruID | String | - | String | Fru_SEU | 单板FRUID | BMC接口展示 | "<=/Fru_SEU.FruId" | CSR配置 | 软件 |
SerialNumber | String | "" | String | FruData_SEU | 序列号 | BMC接口展示 | "<=/FruData_SEU.BoardSerialNumber" | BMC内部设置 | 软件 |
StartSlot | U8 | 0 | U8 | - | 硬盘起始槽位号 | BMC接口展示 | 50 | 根据前后置类型配置 | 软件 |
M2SlotPresence | U8 | 0 | U8 | Drive_1,Drive_2 | M.2盘在位情况 每个bit表示一个槽位 bit0表示SSD1在位,bit1表示SSD2在位 | BMC接口展示 | `"<=/Drive_1.Presence;<=/Drive_2.Presence | > expr($2 << 1 | $1)"` |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
PcbVersion | String | "" | String | - | PCB版本,BMC获取到PcbID就会进行转换 | BMC接口展示 | "" | PcbID转换 | 软件 |
LogicVersion | String | "N/A" | String | - | CPLD版本 | BMC接口展示 | "N/A" | CPLD版本 | 硬件 |
MCUVersion | String | "" | String | - | MCU的版本信息,不需要配置,自动获取 | BMC接口展示 | "" | BMC内部设置 | 软件 |
Number | U8 | - | U8 | - | 根据整机配置更新逻辑编号,目前仅背板使用,使用SlotConfigs配置属性 | 根据整机配置更新逻辑编号 | 1 | BMC内部设置 | 软件 |
RefMCUChip | String | - | String | Chip_MCU1 | 关联单板对应MCU,启动检查运行状态 | 启动检查运行状态 | "#/Chip_MCU1" | 关联单板对应MCU | 硬件 |
RefComponent | String | - | String | Component_M2TransferCard | 当前未使用 | NA | "#/Component_M2TransferCard" | CSR配置 | 软件 |
CpldStatus | U8 | 0 | U8 | - | CPLD自检失败次数 | CPLD自检告警使用 | 0 | CPLD自检状态 | 软件 |
🔗 动态关联机制
语法规范
使用多种动态关联语法:
yaml
# 基础信息配置
Slot: "${Slot}"
UID: "00000001030302023954"
Name: "BC83MSMA"
Type: "SEU"
Description: "M.2 Transform card, 2*PCIE interface"
# 动态关联配置
Manufacturer: "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)"
PartNumber: "<=/FruData_SEU.BoardPartNumber"
PcbID: "#/Scanner_PcbID.Value"
SerialNumber: "<=/FruData_SEU.BoardSerialNumber"
# 版本信息
SRVersion: "${DataVersion}"
LogicVersion: "N/A"
MCUVersion: ""
# 芯片关联
RefMCUChip: "#/Chip_MCU1"
# M.2盘在位检测
M2SlotPresence: "<=/Drive_1.Presence;<=/Drive_2.Presence |> expr($2 << 1 | $1)"
# 动态生成属性
DeviceName: "M2TransferCard${Slot}"
Position: "chassis"
NodeId: "chassisM2TransferCard${Slot}"
关联说明
- FRU数据关联: Manufacturer、PartNumber、SerialNumber通过FruData对象获取
- Scanner关联: PcbID通过Scanner对象获取
- Drive关联: M2SlotPresence通过Drive对象获取M.2盘在位状态
- 芯片关联: RefMCUChip关联到对应的MCU芯片对象
- 动态生成: DeviceName、NodeId基于Slot动态生成
📂 分类标准
硬件属性
- 定义:与M.2转接卡硬件特性和物理信息直接相关的参数
- 特点:槽位信息、UID、硬件版本、M.2盘在位检测等物理特性
- 示例:
Slot
,UID
,Name
,Manufacturer
,Type
,Description
,PartNumber
,PcbID
,M2SlotPresence
,LogicVersion
,RefMCUChip
软件属性
- 定义:由软件管理和维护的转接卡参数
- 特点:版本信息、状态监控、配置管理和接口展示
- 示例:
SRVersion
,BoardID
,BoardType
,DeviceName
,Position
,NodeId
,FruID
,SerialNumber
,StartSlot
,PcbVersion
,MCUVersion
,Number
,RefComponent
,CpldStatus
📝 配置示例
基础M.2转接卡配置
json
{
"M2TransferCard_1": {
"Slot": "${Slot}",
"UID": "00000001030302023954",
"Name": "BC83MSMA",
"Manufacturer": "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)",
"Type": "SEU",
"Description": "M.2 Transform card, 2*PCIE interface",
"PartNumber": "<=/FruData_SEU.BoardPartNumber",
"PcbID": "#/Scanner_PcbID.Value",
"SRVersion": "${DataVersion}",
"BoardID": 65535,
"BoardType": "HddBackplane",
"DeviceName": "M2TransferCard${Slot}",
"Position": "chassis",
"NodeId": "chassisM2TransferCard${Slot}",
"FruID": "<=/Fru_SEU.FruId",
"SerialNumber": "<=/FruData_SEU.BoardSerialNumber",
"StartSlot": 50,
"M2SlotPresence": "<=/Drive_1.Presence;<=/Drive_2.Presence |> expr($2 << 1 | $1)"
}
}
完整M.2转接卡配置(含可选属性)
json
{
"M2TransferCard_Full": {
"Slot": "${Slot}",
"UID": "00000001030302023954",
"Name": "BC83MSMA",
"Manufacturer": "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)",
"Type": "SEU",
"Description": "M.2 Transform card, 2*PCIE interface",
"PartNumber": "<=/FruData_SEU.BoardPartNumber",
"PcbID": "#/Scanner_PcbID.Value",
"PcbVersion": "",
"LogicVersion": "N/A",
"SRVersion": "${DataVersion}",
"MCUVersion": "",
"BoardID": 65535,
"BoardType": "HddBackplane",
"Number": 1,
"DeviceName": "M2TransferCard${Slot}",
"Position": "chassis",
"NodeId": "chassisM2TransferCard${Slot}",
"RefMCUChip": "#/Chip_MCU1",
"FruID": "<=/Fru_SEU.FruId",
"RefComponent": "#/Component_M2TransferCard",
"SerialNumber": "<=/FruData_SEU.BoardSerialNumber",
"StartSlot": 50,
"CpldStatus": 0,
"M2SlotPresence": "<=/Drive_1.Presence;<=/Drive_2.Presence |> expr($2 << 1 | $1)"
}
}
双槽位M.2转接卡配置
json
{
"M2TransferCard_Dual": {
"Slot": 1,
"UID": "00000001030302023954",
"Name": "BC83MSMA",
"Manufacturer": "<=/FruData_SEU.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)",
"Type": "SEU",
"Description": "M.2 Transform card, 2*PCIE interface",
"PartNumber": "<=/FruData_SEU.BoardPartNumber",
"PcbID": "#/Scanner_PcbID.Value",
"SRVersion": "${DataVersion}",
"BoardID": 65535,
"BoardType": "HddBackplane",
"DeviceName": "M2TransferCard1",
"Position": "chassis",
"NodeId": "chassisM2TransferCard1",
"FruID": "<=/Fru_SEU.FruId",
"SerialNumber": "<=/FruData_SEU.BoardSerialNumber",
"StartSlot": 50,
"M2SlotPresence": "<=/Drive_50.Presence;<=/Drive_51.Presence |> expr($2 << 1 | $1)",
"RefMCUChip": "#/Chip_MCU1",
"CpldStatus": 0
}
}
多接口M.2转接卡配置
json
{
"M2TransferCard_Multi": {
"Slot": 2,
"UID": "00000001030302023955",
"Name": "BC83MSMA",
"Manufacturer": "<=/FruData_SEU2.BoardManufacturer|> expr($1 == '' ? 'Huawei' : $1)",
"Type": "SEU",
"Description": "M.2 Transform card, 4*PCIE interface",
"PartNumber": "<=/FruData_SEU2.BoardPartNumber",
"PcbID": "#/Scanner_PcbID2.Value",
"SRVersion": "${DataVersion}",
"BoardID": 65535,
"BoardType": "HddBackplane",
"DeviceName": "M2TransferCard2",
"Position": "chassis",
"NodeId": "chassisM2TransferCard2",
"FruID": "<=/Fru_SEU2.FruId",
"SerialNumber": "<=/FruData_SEU2.BoardSerialNumber",
"StartSlot": 52,
"M2SlotPresence": "<=/Drive_52.Presence;<=/Drive_53.Presence;<=/Drive_54.Presence;<=/Drive_55.Presence |> expr($4 << 3 | $3 << 2 | $2 << 1 | $1)",
"RefMCUChip": "#/Chip_MCU2",
"LogicVersion": "1.0.0",
"CpldStatus": 0
}
}
🔧 使用指南
配置步骤
- 基础信息配置:设置Slot、UID、Name、Type等基本信息
- 厂商信息配置:配置Manufacturer、PartNumber、Description等厂商信息
- 硬件关联配置:设置PcbID、RefMCUChip等硬件关联
- 版本管理配置:配置SRVersion、LogicVersion、MCUVersion等版本信息
- 接口展示配置:设置DeviceName、Position、NodeId等展示信息
- M.2盘检测配置:配置M2SlotPresence检测M.2盘在位状态
- 槽位配置:配置StartSlot定义M.2盘起始槽位号
UID编码规范
- Vendor ID: 固定为00000001(华为)
- 单板类型: 2位十六进制,如03表示SEU
- 单板编码: 10位十六进制,唯一标识单板
- 完整格式: vendor(8位) + 单板类型(2位) + 单板编码(10位)
M.2盘在位检测
- M2SlotPresence: 使用位图表示M.2盘在位状态
- bit0: 表示SSD1在位状态
- bit1: 表示SSD2在位状态
- 表达式:
<=/Drive_1.Presence;<=/Drive_2.Presence |> expr($2 << 1 | $1)
单板类型说明
- SEU: 存储扩展单元(Storage Expansion Unit)
- M.2转接卡: 专门用于M.2 SSD的转接卡
- PCIe接口: 支持多个PCIe接口连接
动态属性生成
- DeviceName: 格式为"M2TransferCard${Slot}",如M2TransferCard1
- Position: 通常设置为"chassis"
- NodeId: 格式为"chassisM2TransferCard${Slot}",如chassisM2TransferCard1
注意事项
- 槽位唯一性: 确保每个M.2转接卡的Slot在系统中唯一
- UID唯一性: 确保每个M.2转接卡的UID唯一
- StartSlot配置: 确保StartSlot配置正确,避免与其他存储设备冲突
- M.2盘关联: 确保M2SlotPresence正确关联到对应的Drive对象
故障排除
信息获取失败:
- 检查FruData对象是否存在且正确配置
- 验证Scanner对象是否正确关联
- 确认硬件连接是否正常
M.2盘检测异常:
- 检查Drive对象是否存在且正确配置
- 确认M2SlotPresence表达式计算是否正确
- 验证M.2盘硬件连接是否正常
版本信息异常:
- 检查PcbID读取是否正常
- 确认LogicVersion、MCUVersion是否正确获取
- 验证版本信息来源是否可靠
性能优化
- 信息缓存: 合理缓存FRU数据,减少重复读取
- 状态监控: 优化M.2盘在位检测频率和机制
- 版本管理: 优化版本信息获取和更新机制