CSR配置字典之Connector类
更新时间:2025/7/22
在Gitcode上查看源码

📋 文档信息

项目内容
文档标题Connector类配置字典
版本v1.0
创建日期2025-01-27
最后更新2025-01-27
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02025-01-27初始版本创建Connector类配置字典全新文档系统管理员

🎯 类概览

Connector 类

属性
类名称Connector
功能描述连接器配置和下级组件管理
所属SIG组hardware
所属组件系统管理
责任人硬件架构组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotU321--槽位号
给下级组件分配的槽位信息
Slot属性是硬件配置中物理位置与逻辑资源的唯一映射标识1CSR配置硬件
PositionU321--为保证SR定义对象名称全局唯一,需要对每个(SR)硬件组件中自描述对象进行重命名
重命名后的对象名称由SR定义的对象名+_${Position}后缀组成
需保证同一csr里connector的position不重复1CSR配置硬件
IdentifyModeU831,2,3-下级组件识别方式
1、3对应下级组件识别方式为天池标准类型组件
2、2对应下级组件识别方式为BoardId不可读(上报)类型组件
3、1对应下级组件识别方式为BoardId可读类型组件
加载csr3CSR配置硬件
BusesString[]["I2c_2","I2c_4"]--下级csr中会用到的总线加载csr["I2c_2","I2c_4"]CSR配置硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
BomString"14140130"--下级组件的BOM ID
硬件物料编码的字符串化表示,用于唯一表示Connector后端连接的硬件模块类型,
加载csr"14140130"CSR配置硬件
PresenceU810或1-在位状态
只有为1时,才会加载此Connector连接的下一级sr
天池标准组件类型需要指定在位状态获取方式,一般通过同步属性语法通过硬件代理读取指定器件寄存器数据,例如SMC
加载csr1对象同步/组件设置硬件
IdString"10000017"--下级组件Board id
1、天池标准组件:BoardId通过Chip属性关联的器件对象,调用对应的读写接口获取Eeprom数据中的Board Id信息
2、BoardId不可读类型组件:由多样化硬件上报设置,无需配置(不生效)
3、BoardId可读类型组件:BoardId可读类型需要指定board id获取方式,一般通过引用属性语法通过硬件代理读取指定器件寄存器数据
加载csr"10000017"CSR配置/硬件读取/组件设置硬件
AuxIdString"10009440"--下级组件的额外id信息,用于加载csr加载csr"10009440"CSR配置硬件
SystemIdString"${SystemId}"--host ID
单host场景下配置1(鲲鹏主板当前为单host),多host场景下会有多个配置
单host或多host"${SystemId}""1"CSR配置硬件
ManagerIdString"${ManagerId}"--BMC ID
单BMC管理场景下配置1,多BMC场景下会有多个配置
单BMC或多BMC"${ManagerId}""1"CSR配置硬件
ChassisIdString"${ChassisId}"--机框ID
单机框配置1,多个机框有多个不同的ID
单机框或多机框"${ChassisId}""1"CSR配置硬件
SilkTextString"SEU"--丝印信息部件身份标识和故障诊断"SEU"CSR配置硬件
TypeString"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"
  }
}

🔧 使用指南

配置步骤

  1. 分配槽位和位置:设置Slot和Position确保唯一性
  2. 选择识别模式:根据组件类型配置IdentifyMode
  3. 配置总线连接:通过Buses指定下级组件使用的总线
  4. 设置在位检测:配置Presence获取组件在位状态
  5. 配置ID信息:根据识别模式设置Id和AuxId
  6. 设置系统信息:配置SystemId、ManagerId、ChassisId
  7. 可选信息:根据需要配置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: 丝印信息主要用于物理标识和维护,帮助技术人员识别具体的硬件组件