背景
当前固件管理新增固件升级或生效类型、错误类型等均需要修改闭源组件firmware_mgmt的代码,作为升级框架扩展性差。
当前现状以及差距
现状和差距
当前允许生效的固件类型是维护在firmware_mgmt代码内,需要增加固件生效对象需要修改闭源组件firmware_mgmt代码
当前升级失败时,显示错误需要下层升级组件返回错误码至firmware_mgmt再由 firmware_mgmt根据错误码转换成错误引擎并更新至task任务内,增加错误码必须通过修改firmware_mgmt代码
整体方案
新增固件生效CSR对象,用于判断固件管理允许生效的固件类型
新增升级错误类型CSR对象,用于固件管理将错误码转换成对应错误引擎
评审点
评审点1 新增固件生效对象ActiveComponentInfo
示例:
"ActiveComponentInfo_VRD": {
"Name": "VRD",
"ComponentInitTime": 600
}
详细描述
- 变化类型:新增CSR对象和CSR属性
- 应用场景:用于判断固件管理允许生效的固件类型
- 所属组件:firmware_mgmt
- 详细描述:
| 属性名称 | 属性类型 | 说明 | 约束 |
|---|---|---|---|
| Name | String | 固件名 | 主键 固件名需要和下层接收生效信号的固件名称相符 |
| ComponentInitTime | Integer | 固件生效初始化时间,到达准备时间后才触发生效 | 默认值:0 |
评审点2 新增升级错误类型对象UpgradeErrorCode
示例:
"UpgradeErrorCode_1": {
"Code": 35,
"MessageId": "FirmwareRevoked"
}
详细描述
- 变化类型:新增CSR对象和CSR属性
- 应用场景:用于固件管理将错误码转换成对应错误引擎
- 所属组件:firmware_mgmt
- 详细描述:
| 属性名称 | 属性类型 | 说明 | 约束 |
|---|---|---|---|
| Code | Integer | 下层升级组件之间传给固件管理的错误码 | 唯一 |
| MessageId | String | 错误引擎对应的MessageId | 无其他约束 |