读取fru显示Device not present

问题背景:
适配过程中读取fru提示打印Device not present (Destination unavailable)
该机型无挂耳,但是有ExpBoard并且eprom地址为0xAE

排查过程:
1.通过cat /var/log/app.log|grep frudata查看关键日志报错如下

frudata NOTICE: frudata_app.lua(72): frudata add object, obj.FruId = 0, frudata name = FruData_Fru0_010104, type = TianChi
frudata NOTICE: frudata_app.lua(72): frudata add object, obj.FruId = 1, frudata name = FruData_Expander_0101, type = TianChi

2.修改配置文件,将TianChi修改为Eepromv2,则不会报错Device not present (Destination unavailable),证明硬件链路是通的

        "FruData_Expander": {
            "FruId": 1,
            "FruDev": "#/Eeprom_EXU",
            "EepromWp": "#/Accessor_EXUWP.Value",
            "BoardSerialNumber": "",
            "StorageType": "TianChi" -->修改为Eepromv2
        },


3.附带app.log日志
app.log.1.txt (2.1 MB)

问题:
1.出现该问题的原因是什么呢?
2.eeprom内应该是为空,会是这个导致天池加载错误报错吗?报错的代码指向为闭源,无法进一步分析代码
3.能否通过软件的方式直接为空eeprom写入符合天池架构的信息(csr,uid,fru)
4.os下执行dmidecode -t 2 回显的主板序列号,产品名称,这些信息是bmc主动通过smbios传输给bios,还是bios通过ipmi向bmc获取的呢?方便说明一下这个链路吗?

1、StorageType不同bmc会按照不同的公式解析Fru的内容,天池规范每个域对应的寻址方式和偏移和非天池规范不一样;
2、csr、fru都是存在eep里的,如果eep是空没有csr,bmc带外都不会识别这个组件,没理解你是什么意思;
3、可以,天池和非天池主要区别就是eep里的天池头;
4、dmidecode不走带外,从bios拿的信息

显示 Device not present主要因为未配置对应的SMC

问一下,非天池架构的eeprom,我这边也配置成eepromv2了,显示Device not present,你那边的解决方案需要配置对应的SMC,具体是指的什么? 谢谢。

当时配置的时候没有配 Smc_ExpBoardSMC 这个对象导致的,报错这个更多的可能是链路配置不对