CSR配置字典之PCIeSlotOccupant类
更新时间: 2026/10/20
在AtomGit上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | PCIeSlotOccupant类配置字典 |
| 版本 | openUBMC 26.12 |
| 创建日期 | 2026-10-20 |
| 最后更新 | 2026-10-20 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| openUBMC 26.12 | 2026-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均为可选属性。
可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
SlotId | U8 | 255 | 0-255(255表示无效值,即未配置具体槽位号) | - | 该占用者对应的PCIe标卡槽位号;建议不要配置,让软件通过连接器关联的槽位自动赋值;未配置时默认为无效值255,运行期按对象position从PcieAddrInfo同步 | 枚举失败告警占用豁免 | 2 | CSR配置 | 软件 |
Type | String | "" | ""、"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"
}
}🔧 使用指南
配置步骤
- 设置槽位号:
SlotId建议不要配置,让软件通过连接器关联的槽位自动赋值(未配置时默认为无效值255,运行期按对象position从PcieAddrInfo同步);确有特殊场景需手动指定时才配置具体槽位号 - 声明占用者类型:配置
Type说明占用者类型(物理槽位占用/非纳管设备) - 加载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标卡槽位空间生效。