BMC是否可以通过I2C升级CPLD

CPLD升级现状:
从代码已有的配置看,BMC升级CPLD都是通过jtag通道。
问题:
我们自研的switch背板,硬件上只能通过I2C升级CPLD。
诉求:
请问bmc是否支持通过I2C升级CPLD,应该如何实现?

当前支持通过I2C升级CPLD,具体代码位置如下,在开源组件general_hardware中。

大致实现:根据升级文件hpm包中的配置文件,可以配置升级的链路,并且通过实际的拓扑关系配置sr文件后,即可支持走I2C升级CPLD

1 个赞

1.能不能再进一步指点一下SR的配置。针对I2C升级,下图中的route要怎么配置?Location代表什么含义?
2.cpld打包hpm的cfg文件是不是也需要做更改?

1、Location代表的是逻辑位号,是固定配置的。会在后台进行转换,在接口查询时展示为Uxx
2、Routes属性关联的寄存器,会在升级cpld前切换至预期的升级通道,与FirmwareRoute属性相匹配

相关cpld升级实现在社区有源码,在general_hardware仓,代码实现可以与对象匹配