问题描述
BMC如何通过CPLD间接读写EEPROM和管理电源?如果有两个BMC呢?
如果希望SMC对标PMBus实现一套电源管理接口,是否需要在power_mgmt实现SMC协议接口的开发: power_mgmt/include/device_tree/adapters/power_mgmt/protocol/smc.lua · openUBMC/power_mgmt - AtomGit | GitCode
如果只是简单的电源某个信息的读取,可以直接sr配置scanner或accessor实现,复杂的类似黑匣子数据获取这种,就需要进行代码适配了
也就是scanner/accessor只能实现简单的查询,设置类操作、复杂功能都需要代码适配?
从OnePower_1的UnsupportedProperties属性看起来这种适配方式是有约束的。
还有OnePower_1的Protocol属性是i2c怎么理解,代码里有这个类型的协议适配吗?
power_mgmt/include/device_tree/adapters/power_mgmt/protocol · openUBMC/power_mgmt - AtomGit | GitCode
UnsupportedProperties属性组件最新代码里已经没有使用了,当前代码没有i2c的适配,这个电源是通过sr配置来刷新属性的,可以看下这个文档:电源适配指导
好的,那EEPROM管理呢,是否能通过CPLD进行FRU读写?
设置操作如何处理呢,多个BMC同时设置电源是不合适的
@xuhaijun 海军哥,有老师可以解答下吗
@fumingquan 请问通过SMC forward I2C能实现这些管理需求吗?
读取EEPROM应该是可以的,当前还没有适配过多BMC同时管理电源的场景,若需要支持相关场景可以联系PAE提出相应诉求
单BMC通过SMC forward I2C管理电源可以吗?电源还是配置PMBus协议
对外显示协议可以是pmbus,这种管理方式BMC发送的是smc命令吗?smc命令就不要配置pmbus了,用于在组件代码侧进行适配
也就是SMC forward现在只能透传I2C,不能透传PMBus吗?
应该是走smc再转pmbus吧
应该是吧,配置思路如下:
SMC forward配置
"I2c_1": {
"Chips": [
"Smc_abc"
]
},
"Smc_abc": {
"Buses": [
"I2cMux_SMC_0",
"I2cMux_SMC_1"
]
},
"I2cMux_SMC_0":{
"Connectors": [
"Connector_PowerSupply_1"
]
},
PSU配置
"OnePower_0": {
"Protocol": "pmbus",
"PhysicalInterface": "pmbus",
......
}
这样是否可行,BMC - CPLD这条I2C上是什么样的协议封装,BMC当前已经支持了吗?
BMC和CPLD之间的通信使用的应该是SMC协议,是否支持应该是看逻辑是否支持
BMC需要把PMBus帧封装到SMC帧中,再由CPLD解包后将PMBus帧向下一级传递,当前BMC可以支持这种封装吗?
得看pmbus和i2c协议上对于数据的封装和发送方式有没有区别,目前实现的总线协议里是没有单独实现pmbus的
好的,总结下结论:
1 SMC forward可以支持这种场景的EEPROM管理
2 不确定是否支持PMBus的透传