【已评审】新增INA器件对象

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描述