TPSU&PSU模块管理特性说明书
更新时间: 2025/09/18
在Gitcode上查看源码本文旨在介绍TPSU&PSU模块管理特性,重点说明电源基础管理、电源设备树管理、电源升级管理等管理特性。
1. TPSU&PSU电源识别加载流程
- 自发现识别加载CSR
- 自发现上树
ObejctGroup对象 - 组件框架发送
InterfaceAdd信号给各个组件 - 各个组件向自发现请求MDS对象
- 组件框架创建资源树对象
- 组件框架将自发现解析出来的属性赋值给对象
- 组件框架从持久化恢复数据到对象上
- 组件框架把对象注册上树
- 调用各个组件的
addobject回调 - 执行组件设备树的差异性适配
- 执行
orm初始化回调,对象初始化完成
2. TPSU&PSU电源设备树管理
电源设备树主要涉及的对象有OnePower、PsuSlot、Monitor、Protocol,各对象定义和作用如下:
OnePower
设备树加载通用模型,与通用逻辑不一致的需要自行在对应的CSR目录下补充adapter,通用OnePower在init阶段关联上一级position的同槽位PsuSlot对象,并刷新Fru信息。
PsuSlot
PsuSlot所在不同的单板,需要独立配置一份adapter。框架在获取到PsuSlot对象后,会根据所属的CSR,拉起不同的adapter。
PsuSlot主要函数逻辑(适配新adapter需要实现):
fetch_power_supply_info注册对应的协议(如pmbus,canbus),并刷新Fru数据power_monitor_start拉起属性轮询任务psm_monitor_stop停止电源轮询任务
Monitor
不同协议的电源在属性查询、轮询周期等实现上有所不同,所以需要对fetch_power_supply_info和power_monitor_start的实现函数提取,不同的任务调度提取出来作为monitor。
Monitor主要函数逻辑(适配新adapter需要实现):
fetch_power_supply_info获取并刷新Fru数据power_monitor_start启动电源信息监控stop_monitor_tasks停止电源信息监控
Protocol
电源协议,根据不同的电源类型实现,对外屏蔽命令字和逻辑功能实现,接口功能和名称保持一致。
主要包含:
- 电源功率信息、状态信息、Fru信息的查询;
- 电源黑匣子数据获取;
- 电源模式设置(主备、深度休眠);
- 电源风扇转速设置;
- 电源升级处理。
3. TPSU&PSU电源固件升级管理
- 获取协议和升级包匹配的电源
- 检验电源数是否为0
- 电源模式切换,防止整机掉电
- 电源升级顺序排序,按照电源健康度进行排序
- 按照排序顺序遍历每个电源电源
- 校验环境是否支持升级
- 停止电源数据监控
- 升级单个电源
- 恢复数据监控并刷新电源固件信息
- 返回电源升级结果
主要函数逻辑
power_upgrade
is_support_upgrade(psu_obj)
校验电源是否支持升级(电源状态、模式、数量校验)
PsuSlot
power_upgrade(upgrade_path, upgrade_process)
升级前后处理(电源监控任务的停止、拉起和电源状态的刷新)及protocol升级处理的调用
Protocol
upgrade(upgrade_path, upgrade_process)
电源升级处理