Issue链接
背景
为支持新机型适配需求,BMC需要支持通过I2C总线访问INA220/INA226/INA238系列器件,获取单板或板卡功率信息,用户向用户展示功率信息,健康监控,功率封顶特性对功率信息也有依赖。
INA系列器件具有 I2C或SMBUS兼容接口的电流分流器和功率监测器。该器件同时监控分流压降和总线电源电压。可编程校准值、转换时间、和均值计算,与一个内部乘法器相组合,实现电流值和功率值的直接读取。
现状:
当前BMC系统尚未支持INA系列器件的配置和管理,缺乏对这类器件的读/写能力。
解决方案
新增INA220/INA226/INA238器件的对象类配置,并为每种器件提供标准的BlockIO和BitIO访问方法,业务可以通过调用方法或配置Accessor/Scanner来读/写单板或板卡功率信息。
新增bmc.kepler.Chip.Ina接口,接口下新增属性功率修正参数PowerMultiplier和PowerDivisor,这两个系数由硬件根据不同板卡的电路配置实际测量得出。
决策点
新增以下器件对象路径:
/bmc/kepler/Chip/PowerMeter/Ina/:Id
在该路径下实现已定义接口:
-
bmc.kepler.Chip- 基础器件接口 -
bmc.kepler.Chip.BlockIO- 块操作接口 -
bmc.kepler.Chip.BitIO- 位操作接口 -
bmc.kepler.Release.TraceChip- 器件跟踪调试接口
在该路径下新增接口:
bmc.kepler.Chip.PowerMeter.Ina- INA器件接口
详细描述
新增path:/bmc/kepler/Chip/PowerMeter/Ina/:Id
新增interface:bmc.kepler.Chip.PowerMeter.Ina
新增属性PowerMultiplier,PowerDivisor,ChipModel,具体如下:
| 名称 | 变化类型 | 签名 | 读写权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 |
|---|---|---|---|---|---|---|---|
| PowerMultiplier | 新增属性 | u | R | NA | false | 功率乘数,结合功率除数修正功率结果,该参数是由硬件根据不同板卡的电路配置实际测量得出。默认值为1,表示默认不修正 | 参数来源自CSR,参数不能为0 |
| PowerDivisor | 新增属性 | u | R | NA | false | 功率除数,结合功率乘数修正功率结果,该参数是由硬件根据不同板卡的电路配置实际测量得出。默认值为1,表示默认不修正 | 参数来源自CSR,参数不能为0 |
| ChipModel | 新增属性 | s | R | NA | false | Ina系列器件型号 | 参数来源自CSR;目前仅支持“Ina238”、“Ina226”、“Ina220” |
INA器件需要支持初始化配置和校准功能,需要新增以下私有属性:
| 属性名称 | 签名 | 持久化 | 描述 | 约束 |
|---|---|---|---|---|
| ConfigurationRegister | q | NA | 配置寄存器预设值,用于设置INA器件的工作模式和测量参数 | 参数来源自CSR |
| CalibrationRegister | q | NA | 校验寄存器预设值,用于设置电流和功率测量的全量程范围和最低有效位(LSB) | 参数来源自CSR |
新增对INA器件的支持,mds配置如下:
{
"Ina": {
"package":"Ina",
"path": "/bmc/kepler/Chip/PowerMeter/Ina/:Id",
"interfaces": [
"bmc.kepler.Chip",
"bmc.kepler.Chip.BlockIO",
"bmc.kepler.Chip.BitIO",
"bmc.kepler.Chip.PowerMeter.Ina",
"bmc.kepler.Release.TraceChip"
]
}
}
评审结论
1、同意新增如下资源协作对象路径、接口和属性
path: /bmc/kepler/Chip/PowerMeter/Ina/:Id
interface:bmc.kepler.Chip.PowerMeter.Ina
属性:
- PowerMultiplier,签名为u,功率计算时的乘数,默认值为1,不发送变更通知事件
- PowerDivisor,签名为u,功率计算时的除数,默认值为1,不发送变更通知事件
- ChipModel,签名为s,器件具体型号,不发送变更通知事件
2、同意资源协作对象路径/bmc/kepler/Chip/PowerMeter/Ina/:Id实现如下已定义的接口:
bmc.kepler.Chip
bmc.kepler.Chip.BlockIO
bmc.kepler.Chip.BitIO
bmc.kepler.Release.TraceChip
遗留问题及确认结论
1、将3类合并一个Ina器件类,用ChipModel区分具体器件类型
已修改,将Ina系列器件合并为一个类,用ChipModel表示器件型号
2、CSR配置需要上hardware sig评审
已在hardware sig评审,评审通过。评审链接:【已评审】新增INA器件对象