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