背景
适配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数组长度相等 |