背景
对于电源框数量、液冷门在位等机柜配置,需要将其固化在电源框背板的Eeprom上(与机柜绑定),以避免管理板换插或更换备件时机柜配置丢失。同时,由于存在无电源框、电源框Eeprom故障场景,因此也需要将配置固化到管理板Eeprom,无电源框时管理板Eeprom承载机柜配置,有电源框时管理板Eeprom作为电源框背板Eeprom备份。
决策点
新增私有对象RackConfigStorage,包含私有属性StorageLocation,RefEeprom,WriteProtection,StartOffset,AreaSizeBytes,用于关联Eeprom以读写机柜配置。
整体架构/方案
存储机柜配置的Eeprom使用的是非天池规范的标准电子标签结构(EepromV2),此结构下的Eeprom存在一块预留空间(0x17a8~0x2fff,6232字节大小)。不同的配置项依次写入到这块空间的特定偏移地址,各配置项的偏移地址和数据比特位含义在产业组件中定义。
详细描述
1、新增私有对象RackConfigStorage
变化类型:新增私有对象
应用场景:用于关联Eeprom以读写机柜配置,分别在电源框背板和BMC扩展板的CSR上各配置一个对象,例如:
"RackConfigStorage_xxx": {
"StorageLocation": 0,
"RefEeprom": "#/Eeprom_xxx",
"WriteProtection": "#/Accessor_xxx.Value",
"StartOffset": 6056,
"AreaSizeBytes": 6232
}
持久化类型:不持久化
操作权限:ReadOnly
属性详细描述:
| 属性名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 |
|---|---|---|---|---|---|---|---|
| StorageLocation | 新增属性 | y | 只读。R: ReadOnly | 不持久化 | 否 | 存储机柜配置的Eeprom位置: 0: 机柜; 1: 单板 | U8,默认值0,取值范围:0~1 |
| RefEeprom | 新增属性 | ay | 只读。R: ReadOnly | 不持久化 | 否 | 用于存储机柜配置的Eeprom,关联到Eeprom对象 | U8[ ] |
| WriteProtection | 新增属性 | y | 只读。R: ReadOnly | 不持久化 | 否 | Eeprom写保护,关联到Accessor.Value,写0关闭写保护,写1打开写保护 | U8,取值范围:0~1 |
| StartOffset | 新增属性 | u | 只读。R: ReadOnly | 不持久化 | 否 | 机柜配置数据在Eeprom中的起始偏移 | U32,默认值6056(0x17a8,即EepromV2结构的预留空间起始偏移) |
| AreaSizeBytes | 新增属性 | u | 只读。R: ReadOnly | 不持久化 | 否 | 机柜配置数据的占用空间大小 | U32,默认值6232(即EepromV2结构的预留空间大小) |
评审结论
同意新增私有对象RackConfigStorage,包含私有属性StorageLocation,RefEeprom,WriteProtection,StartOffset,AreaSizeBytes。