背景:
适配一张DPU卡,客户要求S5独立供电,且能支持整卡上下电操作。
操作:
使用UID为“00000001040302023942”的riser卡,插入standby电源,支持S5独立供电。
问题:
支持standby独立供电的riser卡,如何控制pcie槽位上下电?
通过Pca9555寄存器控制还是扩展板CPLD控制?
背景:
适配一张DPU卡,客户要求S5独立供电,且能支持整卡上下电操作。
操作:
使用UID为“00000001040302023942”的riser卡,插入standby电源,支持S5独立供电。
问题:
支持standby独立供电的riser卡,如何控制pcie槽位上下电?
通过Pca9555寄存器控制还是扩展板CPLD控制?
答案内容由AI生成,仅供参考:
根据提供的背景与文档信息,针对支持 S5 独立供电的 Riser 卡(UID: 00000001040302023942),实现对 PCIe 槽位的独立上下电控制,其控制方式和实现机制如下。
PCIeSlot 对象新增 PowerControl 方法实现,不依赖 Pca9555 寄存器或 CPLD 直接控制bmc.kepler.Systems.PCIeSlot根据文档 【已评审】新增资源协作接口管理PCIe卡热插拔 中的说明:
“新增方法 PowerControl,通过参数控制槽位上下电状态。”
这意味着:
PCIeSlot.PowerControl(On | Off)。PCIeSlot 对象的 PowerControl 方法来触发底层硬件动作。{
"接口": "bmc.kepler.Systems.PCIeSlot",
"方法": "PowerControl",
"参数": "On / Off",
"说明": "设置槽位电源状态。On:供电;Off:断电"
}
虽然 Riser 卡上常集成 Pca9555 作为 GPIO 扩展器,但根据上下文分析:
Pca9555主要用于 I/O 信号监测和控制(如写保护、板 ID 读取、电压告警),不具备主电源通断控制能力。
Pca9555 被描述为 GPIO 扩展芯片,用于数字输入/输出控制(I²C I/O expander)。Accessor_PcbID)Event_Riser3V3Event)Accessor_IEUWP)Pca9555 可直接驱动大电流电源通断。0x4c 和功能定位为信号管理,非电源开关控制器。此过程可通过 PowerControl 方法调用实现,由 BMC 内部模块(如 hwproxy)转发至 CPLD。
硬件识别:
RiserCard CSR 配置对象(如 RiserCard_SEU1)。PCIe Slot 映射:
PCIeSlot 对象绑定物理槽位(Slot = 1)与 DPU 卡(DPUCard_1)。调用控制接口:
POST /redfish/v1/Chassis/1/PCIeSlots/1/PowerControl
Body: {"State": "Off"}
bmc.kepler.Systems.PCIeSlot.PowerControl 方法。底层执行:
状态同步:
PowerState 属性更新为 Off。Event_PowerState 事件记录电源变更。| 问题 | 回答 |
|---|---|
| 如何控制 PCIe 槽位上下电? | 通过标准资源协作接口 bmc.kepler.Systems.PCIeSlot.PowerControl(On/Off) 实现。 |
| 是否通过 Pca9555 寄存器控制? | 否。Pca9555 仅用于 GPIO 信号管理(如 ID 读取、告警监控),不具备电源开关控制功能。 |
| 是否通过扩展板 CPLD 控制? | 极有可能是。CPLD 是实现 Standby 供电下电源通断的合理硬件载体,由 BMC 下发指令后执行。 |
推荐实践:在系统配置中为
PCIeSlot对象启用PowerControl方法,并确保底层驱动支持对指定槽位的独立电源管理,即可满足客户对 DPU 卡 S5 独立供电与可控上下电的需求。
相关链接:
您好,通过Pca9555控制,关联Accessor在这个对象属性上:
【已评审】新增私有属性,实现riser卡具体槽位电源状态控制 - Hardware SIG / Hardware评审 - openUBMC 论坛
具体属性配置可参考:
“Accessor_XXX”: {
“Chip”: “#/Pca9555_IO”,
“Offset”: 0,
“Size”: 1,
“Mask”: 1,
“Type”: 0,
“Value”: 0
},
setprop set 只是一个图层,不会真实操作硬件,建议你直接写Accessor验证
补充信息:我们手里的riser卡的uid是:00000001040302023942,
dpu接在slot5,中间x16的槽位。您给出的pca9555的寄存器的地址和偏移,关联之后上电状态下,读出来的值是0,这个应该是不对的。麻烦再确认下我们这款riser卡的寄存器关联。
你这里依旧是setprop set 呀,并不会实际操作硬件
调用寄存器的write方法去写,或者使用 setprop modify