【已评审】新增资源协作接口及属性,获取准确的BMC复位类型

背景

当前很多业务需要判断上次BMC复位原因是否为掉电复位(AC),然后执行一系列工作。包括bmc_soc事件上报,firmware_mgmt生效任务,fructrl执行通电开机策略,ipmi_core首次设置pcie bar为8M等等。
上述组件判断BMC复位原因有两种手段。
1、持久化标志位。
2、通过SDK提供为框架的接口,然后框架提供为业务组件。
经过分析,这两个方法无法满足所有场景,在不同条件下都会产生重大问题

关联ISSUE

整体方案

新增资源协作接口bmc.kepler.Managers.BmcReset,在其下新增ResetType 属性,bmc_soc在BmcHardResetFlag为0时去写该属性为0(代表硬复位),然后fructrl执行通电开机策略

评审点

  • 评审点1:新增资源协作接口bmc.kepler.Managers.BmcReset

详细描述

评审点1:新增资源协作接口bmc.kepler.Managers.BmcReset

资源path:/bmc/kepler/Managers/:ManagerId/BmcReset
资源interface:bmc.kepler.Managers.BmcReset
变化类型: 新增资源协作接口路径、接口、属性

新增属性:

属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 易变属性
ResetType y False False bmc_soc在BmcHardResetFlag为0时修改该属性为0(代表硬复位),然后fructrl执行通电开机策略 RW 内部设置 无需持久化 false

评审结论

评审不通过,理由:

  1. 需要整体梳理fructrl与bmc_soc组件的依赖关系;
  2. 复位类型需要作为公共属性来考虑,避免后续其他特性又需要新增添加类似属性。