【待评审】新增私有对象,支持RAID卡动态配置最大启动盘数量的CSR配置

背景

适配YX4颗粒的1880 RAID;同时RAID FW固件版本由1.x更新至2.x,固件升级带来的影响就是启动盘规格的变更,1.x版本支持1个启动盘配置,2.x版本支持5个启动盘配置。
因此通过新增CSR配置和私有对象,来存储固件版本与启动盘数量配置的映射关系。

关联ISSUE

https://gitcode.com/openUBMC/storage/issues/295

整体方案

1、sm_lib库新增get_ctrl_fw_type方法,实现读取Raid卡的固件类型fw_type
2、新增私有对象:Controller新增私有对象BootDeviceCountTable,通过CSR获取映射表存入对象
3、按读取的fw_type,根据映射关系获取到最大启动盘数量

评审点:

在已有对象Controller中新增私有对象BootDeviceCountTable,标识固件版本与启动盘数量配置的映射关系

详细描述

私有属性格式:

    "Controller": {
        "properties": {
            "BootDeviceCountTable": {
                "usage": [
                    "CSR"
                ],
                "readOnly": true,
                "baseType": "Struct",
                "$ref": "types.json#/defs/BootDeviceCountConf"
            }
        }
    }

格式:

{
    "defs": {
        "BootDeviceCountConf": {
            "ControllerFwType": {
                "baseType": "U8[]"
            },
            "BootDeviceCount": {
                "baseType": "U8[]"
            }
        }
    }
}

变化类型:1880raid卡sr中私有对象Controller下新增私有属性
举例:

"Objects": {
        "Controller_1": {
            "BootDeviceCountTable": {
                "ControllerFwType": [0, 1],
                "BootDeviceCount": [2, 5]
            }
        },
    }

应用场景:用于RAID卡动态配置最大启动盘数量

持久化类型:不持久化

操作权限:ReadOnly

属性名称 变化类型 签名 读写&权限 持久化 变化通知 属性说明 属性约束
BootDeviceCountTable 新增属性 asay 只读 R:ReadOnly 不持久化 false 用于获取当前RAID卡固件版本所支持的最大启动盘数量
ControllerFwType 新增属性 ay 只读 R:ReadOnly 不持久化 false RAID卡固件版本 与BootDeviceCount数组长度相等
BootDeviceCount 新增属性 ay 只读 R:ReadOnly 不持久化 false 支持的最大启动盘数量 与ControllerFwType数组长度相等

评审结论

遗留问题