代码仓
中
CSR配置字典之PCIeSlotOccupant类
更新时间: 2026/10/20
在AtomGit上查看源码

📋 文档信息 ​

项目内容
文档标题PCIeSlotOccupant类配置字典
版本openUBMC 26.12
创建日期2026-10-20
最后更新2026-10-20
维护状态✅ 活跃维护

📋 变更历史记录 ​

文档变更记录 ​

版本发布日期变更类型变更内容影响范围维护人员
openUBMC 26.122026-10-20新增创建PCIeSlotOccupant类配置字典全新文档系统管理员

🎯 类概览 ​

PCIeSlotOccupant 类 ​

属性值
类名称PCIeSlotOccupant
功能描述声明PCIe标卡槽位的占用者,用于在PCIe枚举失败告警检测时豁免对应槽位,避免对物理槽位占用/非纳管设备产生误告警
所属SIG组hardware
所属组件pcie_device
责任人PCIe设备管理组
最后更新2026-10-20
状态🟢 正常运行

⚠️ 配置互斥说明

PCIeSlotOccupant对象用于声明非纳管设备 / 物理槽位占用者。PCIe标卡、OCP卡、NVMe盘等会被纳管为PCIeDevice对象的设备,均不应配置PCIeSlotOccupant对象;即PCIeSlotOccupant对象与PCIeDevice对象互斥,同一槽位/设备二者不可同时配置。


📊 属性定义详表 ​

必选属性 ​

无必选属性,SlotId与Type均为可选属性。


可选属性 ​

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotIdU82550-255(255表示无效值,即未配置具体槽位号)-该占用者对应的PCIe标卡槽位号;建议不要配置,让软件通过连接器关联的槽位自动赋值;未配置时默认为无效值255,运行期按对象position从PcieAddrInfo同步枚举失败告警占用豁免2CSR配置软件
TypeString""""、"PhysicalSlotOccupant"、"Unmanaged"-占用者类型:""表示等同未声明,"PhysicalSlotOccupant"表示物理槽位占用,"Unmanaged"表示不作为PCIe设备管理的设备;仅用于说明占用者类型,不影响是否豁免告警声明槽位占用者身份"PhysicalSlotOccupant"CSR配置软件

🔗 动态关联机制 ​

语法规范 ​

PCIeSlotOccupant类属性均为静态配置属性,无CSR动态关联语法。


关联说明 ​

  • 无动态关联:SlotId、Type均通过CSR配置直接赋值,不依赖Scanner、Accessor或Component关联
  • 运行期槽位号同步:当SlotId为无效值255时,pcie_device组件在对象上树后按对象position从PcieAddrInfo读取SlotID并回写SlotId;未取到有效值时按固定间隔重试(最多120次),超过上限则记录日志并放弃

📂 分类标准 ​

硬件属性 ​

  • 无硬件属性:PCIeSlotOccupant类不含直接从硬件获取或控制硬件的参数

软件属性 ​

  • 定义:用于软件层面的PCIe槽位占用声明与枚举失败告警豁免
  • 特点:通过CSR声明槽位占用者,运行期可按position同步槽位号
  • 示例:SlotId, Type

📝 配置示例 ​

PCIeSlotOccupant仅适用于占用槽位的非PCIeDevice设备(物理槽位占用 / 非纳管设备),一个CSR中只需配置一个实例;PCIe标卡、OCP卡、NVMe盘等会被纳管为PCIeDevice的设备均不用配置。

以下示例均不配置SlotId,由软件通过连接器关联的槽位自动赋值。

物理槽位占用 ​

json
{
  "PCIeSlotOccupant_1": {
    "Type": "PhysicalSlotOccupant"
  }
}

非纳管设备 ​

json
{
  "PCIeSlotOccupant_1": {
    "Type": "Unmanaged"
  }
}

🔧 使用指南 ​

配置步骤 ​

  1. 设置槽位号:SlotId建议不要配置,让软件通过连接器关联的槽位自动赋值(未配置时默认为无效值255,运行期按对象position从PcieAddrInfo同步);确有特殊场景需手动指定时才配置具体槽位号
  2. 声明占用者类型:配置Type说明占用者类型(物理槽位占用/非纳管设备)
  3. 加载CSR:将对象配置入CSR并由硬件自发现加载,对象上树后生效

注意事项 ​

  • 仅对PCIe标卡槽位空间生效:占用豁免仅作用于PCIe标卡槽位空间
  • 与PCIeDevice对象互斥:PCIe标卡、OCP卡、NVMe盘等会被纳管为PCIeDevice的设备均不应配置PCIeSlotOccupant对象;PCIeSlotOccupant仅用于声明非纳管设备 / 物理槽位占用者,同一槽位/设备二者不可同时配置
  • 配置在占用PCIe槽位的卡上:PCIeSlotOccupant配置在占用PCIe槽位的卡上,不应配置在IEU/SEU/EXU等提供槽位的硬件上
  • 依赖对象存在:CSR未加载、资源树上无PCIeSlotOccupant对象时,对应槽位不豁免,仍会产生枚举失败告警(fail-safe,优先保证告警不漏报)
  • 建议不配置SlotId:SlotId建议不要配置,让软件通过连接器关联的槽位自动赋值,避免手工配置的槽位号与实际槽位不一致
  • Type不影响豁免结果:是否豁免仅取决于对象声明的槽位是否命中抑制名单,Type取值仅用于说明占用者类型
  • 对象只读:PCIeSlotOccupant对象对外只读(privilege为ReadOnly),仅由CSR配置驱动,且不涉及北向接口

枚举失败告警豁免说明 ​

场景是否配置PCIeSlotOccupant是否豁免枚举失败告警
占用槽位的非PCIeDevice设备(物理槽位占用 / 非纳管)是(需要配置)是(SlotId有效时命中抑制名单)
PCIe标卡(纳管为PCIeDevice)否(不用配置)否(按原逻辑检测)

PCIeSlotOccupant仅适用于占用槽位的非PCIeDevice设备;PCIe标卡等会被纳管为PCIeDevice的设备均不用配置。占用豁免仅对PCIe标卡槽位空间生效。