使用1712的IPMB控制器是否可以下面通过9545切换

// 此模板仅供参考,如果不适用可以修改

问题描述

参考资料:

当前我们有个需求场景,硬件拓扑如下:

             I2C9(支持IPMB)---------- 9545 -----------chan0-------I2C Message----[Pcie卡]
                                        |
                                        |------------- chan1-------I2C Message----[Pcie卡]
                                        |
                                        |--------------chan2------IPMB Message-----[DPU卡]         

问题是,

1、这种情况下面的 DPU 卡要走IPMB协议,SR怎么配置

2、我这种情况,如果用IPMB,也要用I2C,是不是要来回切换模式吗?例如我访问chan0的时候切换成I2C,访问DPU的时候切换成IPMB

         "IPMB_1": {
            "ChannelID": 6,
            "Instances": [0],
            "SlaveAddr": 32,
            "BusID": 6
        },
        "IPMIChannel_SYS": {
            "ChanType": 3,
            "Instance": 0,
            "ChanPro": 8,
            "ChannelID": 15,
            "DestAddr": 32,
            "SrcAddr": 0,
            "MedType": 12
        },

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC 0630]

  • 硬件配置:[如 CPU、内存等]

重现步骤

NA

期望结果

SR配置方法

实际结果

不知道如何配置SR

尝试过的解决方案

无

分析结论

无

答案内容由AI生成,仅供参考:
根据您提供的场景和上下文信息,您的问题是关于在硬件拓扑中通过9545切换器连接DPU卡并使用IPMB协议时,SR(System Resource)配置文件应如何设置。结合知识库中的信息,以下是详细分析和配置建议。

核心问题分析

您的硬件拓扑是:

I2C9(支持IPMB)→ 9545切换器 → chan0(I2C到PCIe卡)
                              → chan1(I2C到PCIe卡)
                              → chan2(IPMB到DPU卡)

关键点:知识库明确指出,IPMB配置中的一个核心要求是IPMB对象与IPMIChannel对象的ChannelID必须保持一致。从您的配置示例来看,IPMB_1的ChannelID为6,但IPMIChannel_SYS的ChannelID为15,这是不匹配的。

SR配置要点

根据知识库中的配置指导,正确的SR配置应遵循以下原则:

1. ChannelID必须统一

知识库原文:“IPMB和IPMIChannel和ChannelID作为IPMB都要配成6”(来自《ipmb init失败问题分析》)。

您当前的IPMB_1 ChannelID为6,但IPMIChannel_SYS的ChannelID为15,这会导致IPMB初始化失败。应将IPMIChannel_SYS的ChannelID也改为6。

2. ChanType应设置为1

知识库提到:“ChanType必须设置为1才能实现预期的IPMB配置”。您配置中的ChanType为3,需要调整为1。

3. IPMB_1与IPMIChannel的关联

根据知识库,IPMB的Instances属性必须对应IPMIChannel中的Instance值:

  • IPMB_1的Instances为[0]
  • IPMIChannel_SYS的Instance为0

这两者目前是一致的。

4. BusID与硬件实际的对应关系

知识库说明:“IPMB.BusID取值0-3对应IIC 0-3,即Hi3093的IPMB0-3”。您的BusID为6,这超出了标准范围。考虑到您使用的是I2C9,可能需要根据实际硬件手册确认BusID的正确映射。

推荐的SR配置示例

基于上述分析,建议您将配置调整为:

"IPMB_1": {
    "ChannelID": 6,
    "Instances": [0],
    "SlaveAddr": 32,
    "BusID": 6
},
"IPMIChannel_SYS": {
    "ChanType": 1,
    "Instance": 0,
    "ChanPro": 1,
    "ChannelID": 6,
    "DestAddr": 32,
    "SrcAddr": 0,
    "MedType": 1
}

其中MedType也建议改为1(对应知识库中提到的标准IPMB通信介质类型)。

关于9545切换器的特殊说明

知识库中提到过Pca9545类,但没有明确说明如何通过9545切换IPMB通道。从已有信息推断,9545主要用作I2C总线扩展,而IPMB是运行在I2C物理层之上的协议。因此,您的拓扑中9545的chan2需要能够正确传导IPMB信号。

如知识库所述(来自duzhou13_51cdj的回答),“要想BMC访问IPMB设备,就需要配置对端IPMB的相关信息才行。若当前不支持则联系开发实现功能”。9545通道切换后IPMB信号的完整性可能需要硬件层面的支持或额外配置,这一点建议您联系开发确认。

验证方法

配置完成后,您可以使用知识库中提到的命令进行验证:

./devmemx --ipmb show ipmb0

通过该命令可以检查IPMB通道的寄存器状态,确认通信是否正常。