支持新增 IPMB 通信通道配置指导

IPMB (Intelligent Platform Management Bus)是一种基于 I2C/SMBus 的通信协议,属于 IPMI 架构的核心组成部分。

  • 它主要用于 BMC 与 系统内嵌入式管理控制器 之间的硬件级通信
  • 典型应用场景包括:
    • 与 FRU(Field Replaceable Unit)通信获取板卡信息
    • 接收来自电源模块、风扇、扩展板的事件通知
    • 与智能网卡、RAID 卡、NPU 等设备进行状态监控与控制

openUBMC 已支持基于 IPMB 通道的通信,此处针对需要新增 IPMB 通信通道的场景提供 csr 配置指导。

  • IPMIChannel

    属性名称 说明
    ChanType IPMI 通道类型,当前常用的通道类型如下
     IPMBETH: 0
     IPMB: 1
     HOST: 3
     LAN: 4
     EDMA: 9
    Instance 基于 IPMI 通道类型的通道实例
    ChannelID IPMI 通道标识,参考 IPMI 2.0 规范 6.3 章节
    ChanPro IPMI 通道协议,参考 IPMI 2.0 规范 6.4 章节
    MedType IPMI 媒介类型,参考 IPMI 2.0 规范 6.5 章节
    SrcAddr IPMI 通道源地址
    DestAddr IPMI 通道目的地址
  • IPMB

    属性名称 说明
    ChannelID IPMI 通道标识 ,参考 IPMI 2.0 规范 6.3 章节
    SlaveAddr IPMB 通道从地址,默认为 BMC 地址 0x20
    BusID IPMB 通道总线标识,若支持 4 路总线,则配置范围为 0~3
    Instances 关联的 IPMI 通道实例

配置示例及说明

  • 配置示例一

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

    基于以上配置,可支持如下图所示的通信

  • 配置示例二

    "IPMIChannel_ME_1": {
    	"ChanType": 1,
    	"Instance": 0,
    	"ChannelID": 6,
    	"ChanPro": 1,
    	"MedType": 1,
    	"DestAddr": 44,
    	"SrcAddr": 0
    },
    "IPMIChannel_ME_2": {
    	"ChanType": 1,
    	"Instance": 1,
    	"ChannelID": 6,
    	"ChanPro": 1,
    	"MedType": 1,
    	"DestAddr": 45,
    	"SrcAddr": 0
    },
    "IPMB_1": {
      "ChannelID": 6,
      "BusID": 0,
      "Instances": [0],
      "SlaveAddr": 32
    },
    "IPMB_2": {
      "ChannelID": 6,
      "BusID": 2,
      "Instances": [1],
      "SlaveAddr": 32
    }
    

    基于以上配置,可支持如下图所示的通信

1 个赞