【已评审】支持通过Eeprom读写机柜配置,新增私有对象

背景

对于电源框数量、液冷门在位等机柜配置,需要将其固化在电源框背板的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。

遗留问题