背景
当前很多业务需要判断上次 BMC 复位类型是否为掉电恢复(AC),然后执行一系列工作。如 bmc_soc 事件上报,firmware_mgmt 生效任务,fructrl 执行通电开机策略,ipmi_core 首次设置 pcie bar 为 8M 等。
需要提供一个公共属性承载准确的 BMC 复位类型,为“仅 BMC 复位” 还是 “AC 恢复”。
关联ISSUE
在进行AC Cycle测试时获取到的 ResetType 错误导致通电开机出现问题
整体方案
新增全局变量 BmcResetType,由 bmc_soc 组件启动读取到本组件的 BmcHardResetFlag 属性值后同步至全局变量 BmcResetType。
评审点
新增全局变量 BmcResetType
详细描述
| 作用 | 使用范围 | 全局变量名称 | 英文 | 更新者 | 持久化类型 | 数据类型 | 取值范围 | 默认值 | 使用场景 |
|---|---|---|---|---|---|---|---|---|---|
| 通用 | 所有APP、所有CSR | BMC复位类型 | BmcResetType | bmc_soc | 不持久化 | uint8_t | 0xff - 默认值,表示暂未获取到准确的复位类型 0 - AC 恢复 1 - BMC 复位 |
0xff | BMC 启动后需要根据 BMC 复位类型执行相应的处理流程。如 fructrl 需要判断 BMC 复位类型是否为 AC 恢复以执行通电开机策略 |
是否准备好AI预审
是
评审结论
遗留问题
1、需要补充全局变量对应的 interface
结论: