【已评审】新增对象,支持SMC全量寄存器信息收集

背景

当前一键日志会收集SmcDfxInfo信息,但收集内容不全,维护述求收集全量Smc寄存器信息,原有的SmcDfxInfo可拓展性不足,理由为:
1、dfx为汇聚性扫描,有长度限制
2、新增dfx需要消耗逻辑额外的资源
且当前无合适对象承载收集范围,故新增SmcCmdList对象,用于承载各个板卡寄存器收集范围

关联ISSUE

暂无

整体方案

在CSR中新增对象SmcCmdList,并在该对象中新增属性Chip、Type、Slot、Config(字典,包含SMC命令的细节Function、Command、MS、RW、Parameter)、Length、Collected ,用于保存全量SMC命令字

评审点

是否能在CSR中新增对象SmcCmdList

详细描述

变化类型:CSR中新增对象

应用场景:用于支持BMC能获取全量SMC寄存器,并根据软硬件接口文档补齐基础板、扩展板、背板、风扇板全量SMC命令字日志

持久化类型: 不持久化

操作权限:ReadOnly

示例:

"SmcCmdList_BCU": {
  "Chip": "#/Smc_CpuBrdSMC",
  "Type": "BCU",
  "Slot": 1,
  "Config": {
    "1": {
      "Function": 0, "Command": 1, "MS": 0, "RW": 1, "Parameter": 0, "Length": 1, "Collected": 1
    },
    "2": {
      "Function": 1, "Command": 1, "MS": 0, "RW": 1, "Parameter": 0, "Length": 1, "Collected": 0
    }
  }
}

详细描述:

属性名称 变化类型 签名 读写&权限 持久化 变化通知 接口说明 接口约束
SmcCmdList 新增对象 - - - - 用于支持BMC获取全量SMC寄存器信息 无
Chip 新增属性 ay 只读 R:ReadOnly 不持久化 false 板关联的SMC对象 无
Type 新增属性 s 只读 R:ReadOnly 不持久化 false 板类型 无
Slot 新增属性 y 只读 R:ReadOnly 不持久化 false 板的槽位号 无
Config 新增属性 a{sa{sy}} 只读 R:ReadOnly 不持久化 false SMC命令列表 无
Function 新增属性 y 只读 R:ReadOnly 不持久化 false SMC命令的功能 无
Command 新增属性 y 只读 R:ReadOnly 不持久化 false SMC命令的命令字 无
MS 新增属性 y 只读 R:ReadOnly 不持久化 false SMC命令的读取类型,0为多个读取,1为单个读取 无
RW 新增属性 y 只读 R:ReadOnly 不持久化 false SMC命令的读或写,0为读取,1为写入 无
Parameter 新增属性 y 只读 R:ReadOnly 不持久化 false SMC命令的设备号,0~N,代表N+1个设备信息 无
Length 新增属性 y 只读 R:ReadOnly 不持久化 false SMC命令的每个设备的读取长度 无
Collected 新增属性 y 只读 R:ReadOnly 不持久化 false SMC命令是否收集,0为不收集,1为要收集 无

遗留问题

1、对象命名建议改为SmcCmdList
已修改闭环
2、CSR SEG建议Enabled属性修改为Collected,含义修改为‘SMC命令是否收集’,含义更明确不产生歧义
已修改闭环
3、Config为字典,Collected属性签名为y而非布尔值,需修复
取值已修复为0或1,0为不收集,1为要收集