【已评审】新增INA220/INA226/INA238器件对象

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器件对象

1、路径和接口分别调整为/bmc/kepler/Chip/PowerMeter/Ina_xxx和bmc.kepler.Chip.PowerMeter.Ina

2、ChipModel属性应当调整为资源协作接口属性,用于标志器件的类型

3、私有属性CfgRegParam建议调整为对应参数作用的描述,而不是寄存器配置的描述;同时所有的CSR配置参数都应当上CSR会议评审。