SmcDfxInfo类与Scanner的关系

扩展板有一个Scanner配置如下:


测试发现4869的Offset实际无法访问
image
但是mdbctl查询Scanner发现状态和读值都是正常的,想知道该Scanner的值是从哪里获取的

查询同文件的SmcDfxInfo_EXU发现有:
image
猜测Scanner的值是从SmcDfxInfo_EXU同步获取的,但是社区没有相关资料

SmcDfxInfo可以将读出来的多个字节的数据解析后同步到Scanner

有个疑问,Scanner_ECUSys12V1的数据是从SmcDfxInfo_EXU来的,那Scanner_ECUSys12V1种的offset 4869 是随意定义的吗?

我这里的4869是之前版本的SMC命令字定义的,如果你的Scanner没有对应的SMC命令字,而Chip、Offset又是必填字段,那我理解offset可以随便填个0之类的,反正不会用上

1 个赞

我之前有问过华为的兄弟,说是dfx不生效的时候会用Scanner的配置
dfx服务起来后,Scanner那个就被dfx替代了。

1 个赞

试了下,offset填0,读取scanner value也可以拿到正确的数据。

这样的话,Offset、type、size、mask还是填写正确值好一些,可以避免dfx服务起来之前scanner拿到错误的数据,这就又产生了一个疑问,如果要拿比如第27字节的数据,mask该怎么定义? dfx服务起来之后 原有的scanner的任务会被取消掉?

你的第一个问题是不是和我这个一样? Scanner如何解析多字节的长数据 - 交流互助区 - openUBMC 论坛

至于“dfx服务起来之后 原有的scanner的任务会被取消掉?” 这个问题,我也不太清楚,具体你可以重新开一个帖子咨询华为。

有点相似,smc定义的32字节,实际上sr里边可以定义type为1按照block读取,只读取2字节,掩码是0xffff,只不过没有看到有定义从哪个字节开始读取;如果sr可以定义从哪个字节开始读取的话,不使用dfx也没有问题;只是从设计上来讲用smc一次性读取32字节,要比定义16个scanner每个scanner读取2字节效率上更优吧。

可以在hardware-sig组提一个议题,让他们加一个字节偏移的选项,感觉挺有必要的

可以,我申请个议题讨论下。看了下 下次议题是8月18日16:00-17:30;

先新建了一个讨论贴讨论一下,后续再看是否申请议题讨论。
sr定义smc长字节 block读取偏移需求讨论 - 交流互助区 - openUBMC 论坛