背景
时钟芯片新增场景
- 配置失败后需要产生告警,当前没有失败状态的获取途径
- 兼容多个同芯片类型、同通信链路类型的芯片
- 兼容未来不需要写上电锁的场景(其他部件)
原始方案评审贴:【已评审】支持主板上时钟芯片配置,新增私有对象ClockChipFirmware
关联ISSUE
整体方案
- 新增属性
Id作为PrimaryKey,用于同芯片类型、同通信链路类型的时钟配置。原primaryKey为ChipType与Protocol的联合主键,上述场景会不兼容。 - 新增属性
ConfigEnabled,指示当前是否允许配置,可关联上下电状态,部件Ready状态,兼容非fru0上下电的场景。监听该值变化,若该值为true且处于未配置状态则允许配置 - 变更属性
ConfigSuccessFlag→ConfigStatus,指示当前配置状态,可为各机型配置告警、限制部件上电等场景使用。由于当前时钟芯片方案暂未上库,未有任何机型使用,无兼容性问题。 - 新增属性
ConfigPowerOnLock,指示配置时是否设置fru0的上电锁
评审点:
- 是否统一新增和变更属性
变更属性
| 属性名称 | 类型 | 默认值 | 持久化 | 属性说明 |
|---|---|---|---|---|
| ClockChipFirmware.Id | U8 | - | / | 对象唯一标识,主键 |
| ClockChipFirmware.ChipType | U8 | - | / | 芯片类型,CSR 写入 uint8;0 表示适用厂商代号 HY |
| ClockChipFirmware.Protocol | String | I2C | / | 通信协议,当前仅允许 I2C |
| ClockChipFirmware.RefChip | U8[] | - | / | 关联芯片引用(refInterface: bmc.kepler.Chip.BlockIO) |
| ClockChipFirmware.ConfigFileName | String | - | / | 配置文件完整路径 |
| ClockChipFirmware.ConfigEnabled | Boolean | false | / | 当前状态是否允许配置,由使用方通过 CSR 提供或关联 |
| ClockChipFirmware.ConfigStatus | U8 | 0 | protect_reset(ResetPer 语义) | 配置状态,BMC 复位保留、AC 掉电清除;0:未配置,1:配置成功,2:配置失败 |
| ClockChipFirmware.ConfigPowerOnLock | Boolean | false | / | CSR 开关;是否在实际配置期间配置fru0上电锁,成功或失败结束均释放 |
配置示例
{
"ClockChipFirmware": {
"Id": 0,
"ChipType": 0,
"Protocol": "I2C",
"RefChip": "#/Chip_PLL",
"ConfigFileName": "/opt/bmc/conf/clock/pll.cfg",
"ConfigEnabled": true,
"ConfigStatus": 0,
"ConfigPowerOnLock": true
}
}