CSR配置字典之Connector类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | Connector类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建Connector类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
Connector 类
属性 | 值 |
---|---|
类名称 | Connector |
功能描述 | 连接器配置和下级组件管理 |
所属SIG组 | hardware |
所属组件 | 系统管理 |
责任人 | 硬件架构组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Slot | U32 | 1 | - | - | 槽位号 给下级组件分配的槽位信息 | Slot属性是硬件配置中物理位置与逻辑资源的唯一映射标识 | 1 | CSR配置 | 硬件 |
Position | U32 | 1 | - | - | 为保证SR定义对象名称全局唯一,需要对每个(SR)硬件组件中自描述对象进行重命名 重命名后的对象名称由SR定义的对象名+_${Position}后缀组成 | 需保证同一csr里connector的position不重复 | 1 | CSR配置 | 硬件 |
IdentifyMode | U8 | 3 | 1,2,3 | - | 下级组件识别方式 1、3对应下级组件识别方式为天池标准类型组件 2、2对应下级组件识别方式为BoardId不可读(上报)类型组件 3、1对应下级组件识别方式为BoardId可读类型组件 | 加载csr | 3 | CSR配置 | 硬件 |
Buses | String[] | ["I2c_2","I2c_4"] | - | - | 下级csr中会用到的总线 | 加载csr | ["I2c_2","I2c_4"] | CSR配置 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Bom | String | "14140130" | - | - | 下级组件的BOM ID 硬件物料编码的字符串化表示,用于唯一表示Connector后端连接的硬件模块类型, | 加载csr | "14140130" | CSR配置 | 硬件 |
Presence | U8 | 1 | 0或1 | - | 在位状态 只有为1时,才会加载此Connector连接的下一级sr 天池标准组件类型需要指定在位状态获取方式,一般通过同步属性语法通过硬件代理读取指定器件寄存器数据,例如SMC | 加载csr | 1 | 对象同步/组件设置 | 硬件 |
Id | String | "10000017" | - | - | 下级组件Board id 1、天池标准组件:BoardId通过Chip属性关联的器件对象,调用对应的读写接口获取Eeprom数据中的Board Id信息 2、BoardId不可读类型组件:由多样化硬件上报设置,无需配置(不生效) 3、BoardId可读类型组件:BoardId可读类型需要指定board id获取方式,一般通过引用属性语法通过硬件代理读取指定器件寄存器数据 | 加载csr | "10000017" | CSR配置/硬件读取/组件设置 | 硬件 |
AuxId | String | "10009440" | - | - | 下级组件的额外id信息,用于加载csr | 加载csr | "10009440" | CSR配置 | 硬件 |
SystemId | String | "${SystemId}" | - | - | host ID 单host场景下配置1(鲲鹏主板当前为单host),多host场景下会有多个配置 | 单host或多host | "${SystemId}" 、"1" | CSR配置 | 硬件 |
ManagerId | String | "${ManagerId}" | - | - | BMC ID 单BMC管理场景下配置1,多BMC场景下会有多个配置 | 单BMC或多BMC | "${ManagerId}" 、"1" | CSR配置 | 硬件 |
ChassisId | String | "${ChassisId}" | - | - | 机框ID 单机框配置1,多个机框有多个不同的ID | 单机框或多机框 | "${ChassisId}" 、"1" | CSR配置 | 硬件 |
SilkText | String | "SEU" | - | - | 丝印信息 | 部件身份标识和故障诊断 | "SEU" | CSR配置 | 硬件 |
Type | String | "DiskBackplane" | - | - | 连接器后端设备类型 如PCIeSlot,PCIeRiser,NVMe,PSU,BCU,SEU等 | 不是必须配置项,但在以下场景必须显示配置;FRU ID动态生成场景、PCIe设备加载场景、硬件类型区分场景。缺少配置可能会导致BMC无法筛选目标Connector的问题 | "DiskBackplane" | CSR配置 | 硬件 |
🔗 动态关联机制
语法规范
使用 #/xxx
格式实现属性间的动态关联:
yaml
# 语法格式
属性名: "#/目标类.属性名"
# 实际示例
Presence: "#/Scanner_BoardPresence.Value" # 关联在位状态扫描器
Id: "#/Accessor_BoardId.Value" # 关联BoardId访问器
Buses: ["#/I2c_2", "#/I2c_4"] # 关联总线对象
关联说明
- Presence: 可关联Scanner或Accessor对象获取实时在位状态
- Id: 根据IdentifyMode配置关联不同的ID获取方式
- Buses: 关联系统中的总线对象,为下级组件提供通信通道
📂 分类标准
硬件属性
- 定义:与物理硬件连接和组件管理直接相关的参数
- 特点:所有属性均为硬件相关,涉及物理连接、总线配置和组件识别
- 示例:
Bom
,Slot
,Position
,IdentifyMode
,Presence
,Id
,AuxId
,Buses
,SystemId
,ManagerId
,ChassisId
,SilkText
,Type
📝 配置示例
天池标准组件配置
json
{
"Connector": {
"Bom": "14140130",
"Slot": 1,
"Position": 1,
"IdentifyMode": 3,
"Presence": 1,
"Id": "10000017",
"AuxId": "10009440",
"Buses": ["I2c_2", "I2c_4"],
"SystemId": "${SystemId}",
"ManagerId": "${ManagerId}",
"ChassisId": "${ChassisId}",
"SilkText": "SEU",
"Type": "DiskBackplane"
}
}
BoardId可读组件配置
json
{
"Connector": {
"Bom": "14140131",
"Slot": 2,
"Position": 2,
"IdentifyMode": 1,
"Presence": "#/Scanner_BoardPresence.Value",
"Id": "#/Accessor_BoardId.Value",
"Buses": ["I2c_1", "I2c_3"],
"SystemId": "1",
"ManagerId": "1",
"ChassisId": "1",
"Type": "PCIeSlot"
}
}
BoardId不可读组件配置
json
{
"Connector": {
"Bom": "14140132",
"Slot": 3,
"Position": 3,
"IdentifyMode": 2,
"Presence": 1,
"Buses": ["I2c_5"],
"SystemId": "1",
"ManagerId": "1",
"ChassisId": "1",
"Type": "PSU"
}
}
多host场景配置
json
{
"Connector": {
"Bom": "14140133",
"Slot": 1,
"Position": 1,
"IdentifyMode": 3,
"Presence": 1,
"Id": "10000018",
"Buses": ["I2c_2", "I2c_4"],
"SystemId": "2",
"ManagerId": "1",
"ChassisId": "1",
"Type": "NVMe"
}
}
🔧 使用指南
配置步骤
- 分配槽位和位置:设置Slot和Position确保唯一性
- 选择识别模式:根据组件类型配置IdentifyMode
- 配置总线连接:通过Buses指定下级组件使用的总线
- 设置在位检测:配置Presence获取组件在位状态
- 配置ID信息:根据识别模式设置Id和AuxId
- 设置系统信息:配置SystemId、ManagerId、ChassisId
- 可选信息:根据需要配置Type、SilkText等
注意事项
- Position唯一性:同一CSR中所有Connector的Position必须唯一
- 识别模式匹配:IdentifyMode必须与实际组件类型匹配
- 总线有效性:Buses中的总线必须在系统中存在
- 在位状态:Presence为1时才会加载下级SR
- ID配置规则:根据IdentifyMode选择合适的ID获取方式
- 多场景配置:多host/BMC/机框场景需要正确配置相应ID
性能建议
- 按需加载:合理配置Presence避免不必要的SR加载
- 总线优化:选择合适的总线避免冲突和性能问题
- ID缓存:对于频繁访问的ID信息考虑缓存机制
- 分组管理:相同类型的Connector可以统一管理
识别模式详解
- IdentifyMode=1(BoardId可读):
- 组件支持BoardId读取
- 需要配置Id获取方式
- 通过硬件代理读取寄存器数据
- IdentifyMode=2(BoardId不可读):
- 组件不支持BoardId读取
- 由多样化硬件上报设置
- Id配置不生效
- IdentifyMode=3(天池标准):
- 天池标准类型组件
- 通过Chip属性关联器件对象
- 从Eeprom数据获取Board Id
系统ID配置规则
- SystemId:
- 单host场景配置为"1"
- 多host场景按主机编号递增
- ManagerId:
- 单BMC场景配置为"1"
- 多BMC场景按BMC编号递增
- ChassisId:
- 单机框场景配置为"1"
- 多机框场景按机框编号递增
常见问题
- Q: Position是否可以随意配置?
- A: 不可以,Position必须在同一CSR中保持唯一性,建议按实际物理位置递增配置
- Q: 为什么只有部分Connector配置了Type?
- A: Type属性是可选的,主要用于标识连接器后端设备类型,根据实际需求配置
- Q: 多host/BMC/机框场景如何配置ID?
- A: 按照系统架构规划,为每个host/BMC/机框分配唯一的数字ID
- Q: 丝印信息主要用在哪里?
- A: 丝印信息主要用于物理标识和维护,帮助技术人员识别具体的硬件组件