问题描述
我最近在openubmc上做一款CRPS电源的适配,目前在看固件的升级流程,有以下疑问,请帮忙指导一下:
1 电源固件应该要通过ComponentID进行匹配,ComponentID是多少?
2 CRPS电源的升级流程,是不是要做power_mgmt上做适配,是在include\device_tree\adapters\power_mgmt\protocol\upgrade目录下新增新的升级流程么?
3 电源固件的升级是通过什么流程触发?
环境信息
-
操作系统:[如 Ubuntu 24.04]
-
软件版本:openubmc26.03
-
硬件配置:
重现步骤
-
[第一步]
-
[第二步]
-
[第三步]
期望结果
期望实现CRPS电源升级
实际结果
[实际发生了什么,包含错误信息]
尝试过的解决方案
[列出您已经尝试过的解决方案及结果]
分析结论
[详细总结您对此问题的分析结论]
是的,在power_mgmt适配,如果include\device_tree\adapters\power_mgmt\protocol\upgrade下的升级流程不适配的话,需要新增对应的流程,触发是在src/lualib/power_upgrade.lua文件下的处理的升级信号,三个阶段都做了固件类型等校验:
signal.register_callback('upgrade_prepare_callback', nil, prepare_upgrade)
signal.register_callback('upgrade_process_callback', nil, process_upgrade)
signal.register_callback('upgrade_finish_callback', nil, finish_upgrade)
目前看起来是要修改upgrade里的升级流程
platform.sr中电源相关配置如下
“FirmwareComponentInfo_Power”: {
“ComponentID”: 23,
“ComponentIDEx”: 4294967295,
“Name”: “Power”,
“RevisionNumber”: 0
},
应该componentid=23代表电源固件升级