社区最新版本是否已支持DPU卡 通过 mctp over smbus的方式和dpu进行通信?

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

问题描述

1、需要适配nvidia Bluefield3的dpu卡,需要在dpu下电的时候仍然能获取到dpu的温度,信息。想确认下社区最新版本是否已支持该DPU卡 通过 mctp over smbus的方式和dpu进行通信?

2、如果已支持该通信方式,是否能提供个支持的sr文件,我们参照修改。

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:社区版本8月31日的版本

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

期望结果

1、确定ubmc社区版本是否已支持和dpu使用mctp over smbus的通信方式进行通信

2、如果支持,需要进行什么配置

2、如果支持,提供个支持该通信的sr文件,便于参考。

实际结果

~ ~ # grep -nE ‘Chip_SmbusChip_0101010F02|Chip_TempChip_0101010F02’ /var/log/framework.log | tail -10
8448:2026-09-16 15:11:16.968461 unknown_service ERROR: smbus_write_read_service.lua(126): smbus oem response byte count is invalid, chip: Chip_SmbusChip_0101010F02, byte count: 255.

尝试过的解决方案

使用社区版本,以及修改了个sr进行适配,但是仍然提示smbus不通。

{
    "FormatVersion": "3.00",
    "DataVersion": "3.02",
    "Unit": {
        "Type": "PCIeCard",
        "Name": "PCIeCard_1"
    },
    "ManagementTopology": {
        "Anchor": {
            "Buses": [
                "I2cMux_Chan"
            ]
        },
        "I2cMux_Chan": {
            "Chips": [
                "Chip_TempChip",
                "Eeprom_BF3",
                "Chip_SmbusChip"
            ]
        }
    },
    "Objects": {
        "Eeprom_BF3": {
            "AddrWidth": 1,
            "Address": 160,
            "HealthStatus": 0,
            "OffsetWidth": 2,
            "ReadTmout": 100,
            "RwBlockSize": 32,
            "WriteInterval": 20,
            "WriteTmout": 100
        },
        "Chip_TempChip": {
            "Address": 62,
            "AddrWidth": 1,
            "OffsetWidth": 1,
            "WriteTmout": 100,
            "ReadTmout": 100,
            "HealthStatus": 0
        },
        "Chip_SmbusChip": {
            "Address": 100,
            "AddrWidth": 1,
            "OffsetWidth": 1,
            "WriteTmout": 100,
            "ReadTmout": 100,
            "HealthStatus": 0,
            "DrvWriteDelay": 200
        },
        "MctpBinding_1": {
            "BmcSMBusEid": 8,
            "BmcSMBusPhyAddr": 16
        },
        "Endpoint_1": {
            "TargetEid": "${Slot} |> expr($1 + 8)",
            "TargetPhyAddr": 50,
            "MessageType": 2,
            "MediumType": 128,
            "RefChip": "#/Chip_SmbusChip"
        },
        "Scanner_NICTemp": {
            "Chip": "#/Chip_TempChip",
            "Size": 1,
            "Offset": 1,
            "Mask": 65535,
            "Period": 1000,
            "Type": 0,
            "ScanEnabled": "<=/::FruCtrl_1_0.PowerState |> string.cmp($1, 'ON') |> expr($1 ? 1 : 0)",
            "@Default": {
                "ScanEnabled": 0
            },
            "Debounce": "#/MidAvg_NICTemp"
        },
        "MidAvg_NICTemp": {
            "WindowSize": 4,
            "DefaultValue": 20,
            "IsSigned": true
        },
        "FruData_BF3": {
            "FruId": 1,
            "FruDev": "#/Eeprom_BF3",
            "EepromWp": 1,
            "StorageType": "EepromStandard"
        },
        "Fru_BF3": {
            "PcbId": 0,
            "PcbVersion": ".A",
            "PowerState": 1,
            "Health": 0,
            "FruId": 1,
            "FruName": "900-9D3B6-00SC-EA0",
            "EepStatus": "<=/Eeprom_BF3.HealthStatus",
            "Type": 8,
            "FruDataId": "#/FruData_BF3",
            "ConnectorGroupId": "${GroupId}"
        },
        "Entity_PCIeCard": {
            "Id": 11,
            "Name": "PCIeCard",
            "Instance": 101,
            "PowerState": 1,
            "Presence": 1
        },
        "Component_DPUCard": {
            "FruId": "<=/FruData_BF3.FruId",
            "Instance": "<=/PCIeDevice_1.SlotID",
            "Type": 8,
            "BoardId": 65535,
            "Name": "<=/PCIeDevice_1.DeviceName",
            "Location": "<=/PCIeDevice_1.Position",
            "Manufacturer": "Nvidia",
            "PartNumber": "<=/FruData_BF3.BoardPartNumber",
            "UniqueId": "N/A",
            "Presence": 1,
            "Health": 0,
            "Function": "PCIe device(BlueField-3)",
            "GroupId": 1,
            "PowerState": 1,
            "ReplaceFlag": 0,
            "SerialNumber": "<=/FruData_BF3.BoardSerialNumber",
            "NodeId": "<=/PCIeDevice_1.SlotID"
        },
        "BoardPCIeCard_1": {
            "Slot": "<=/PCIeDevice_1.SlotID",
            "UID": "",
            "Name": "",
            "Manufacturer": "Nvidia",
            "Type": "PCIeCard",
            "Description": "2*100GE",
            "PartNumber": "900-9D3B6-00SC-EA0",
            "LogicVersion": "",
            "SRVersion": "",
            "BoardID": 65535,
            "BoardType": "BoardPCIeCard",
            "Number": 1,
            "DeviceName": "<=/PCIeDevice_1.DeviceName",
            "Position": "<=/PCIeDevice_1.Position",
            "LinkWidthCapability": "N/A",
            "LinkSpeedCapability": "N/A",
            "LinkWidth": "N/A",
            "LinkSpeed": "N/A",
            "AssociatedResource": "<=/NetworkAdapter_1.AssociatedResource",
            "BoardNodeId": "<=/PCIeDevice_1.DeviceName",
            "FruID": "<=/Component_DPUCard.FruId"
        },
        "PCIeDevice_1": {
            "DeviceName": "PCIe Card $ (MT43244 BlueField-3)",
            "FunctionClass": 2,
            "Position": "",
            "DiagnosticFault": 0,
            "PredictiveFault": 0,
            "LinkSpeedReduced": 0,
            "DeviceType": 8,
            "CorrectableError": 0,
            "UncorrectableError": 0,
            "FatalError": 0,
            "GroupPosition": "PCIeDevice_${GroupPosition}",
            "Container": "${Container}",
            "SlotType": "FullLength",
            "FunctionProtocol": "PCIe",
            "FunctionType": "Physical",
            "PCIeDeviceType": "MultiFunction"
        },
        "DPUCard_1": {
            "Model": "BF3",
            "BoardID": 65535,
            "BoardName": "MT43244 BlueField-3",
            "Name": "BlueField-3",
            "Description": "MT43244 BlueField-3 integrated ConnectX-7 network controller",
            "FunctionClass": 11,
            "Architecture": "BlueField_DPU",
            "TotalCores": 16,
            "PcbVersion": "",
            "SlotID": "<=/PCIeDevice_1.SlotID",
            "NodeID": "<=/PCIeDevice_1.SlotID |> string.format('PCIeCard%s',$1)",
            "Manufacturer": "Nvidia",
            "HeartBeatLoss": 0,
            "RefFrudata": "#/FruData_BF3",
            "LinkWidth": "N/A",
            "LinkWidthAbility": "N/A",
            "LinkSpeed": "N/A",
            "LinkSpeedCapability": "N/A",
            "VendorID": 5555,
            "DeviceID": 41692,
            "SubVendorID": 5555,
            "SubDeviceID": 53,
            "Position": "<=/PCIeDevice_1.Position",
            "LaneOwner": "<=/PCIeDevice_1.SocketID",
            "DeviceName": "<=/PCIeDevice_1.DeviceName",
            "PartNumber": "<=/FruData_BF3.BoardPartNumber",
            "SerialNumber": "<=/FruData_BF3.BoardSerialNumber",
            "FirmwareVersion": "<=/NetworkAdapter_1.FirmwareVersion",
            "RefComponent": "#/Component_DPUCard",
            "ManagerType": "BMC",
            "SRVersion": "${DataVersion}",
            "PostStart": 0,
            "BiosPostSuccess": 0,
            "SocPostSuccess": 0,
            "BiosPostFail": 0,
            "SocPostFail": 0,
            "PostPhase": 0
        },
        "DiscreteSensor_DPU_FW_Progress": {
            "OwnerId": 32,
            "OwnerLun": 0,
            "EntityId": "<=/Entity_PCIeCard.Id",
            "EntityInstance": "<=/Entity_PCIeCard.Instance",
            "Initialization": 99,
            "Capabilities": 192,
            "SensorType": 15,
            "ReadingType": 111,
            "SensorName": "DPU_FW_Progress",
            "AssertMask": 4,
            "DeassertMask": 0,
            "DiscreteMask": 4,
            "Unit": 192,
            "BaseUnit": 0,
            "ModifierUnit": 0,
            "DiscreteType": 0,
            "RecordSharing": 1,
            "Reading": "<=/DPUCard_1.PostPhase",
            "SensorNumber": 255
        },
        "DiscreteEvent_DPU_PostStart": {
            "Property": 0,
            "ListenType": 1,
            "EventData1": 2,
            "EventData2": 26,
            "EventData3": 255,
            "EventDir": "<=/DPUCard_1.PostStart",
            "Conversion": 0,
            "SensorObject": "#/DiscreteSensor_DPU_FW_Progress"
        },
        "DiscreteEvent_DPU_BiosPostFail": {
            "Property": 0,
            "ListenType": 1,
            "EventData1": 2,
            "EventData2": 27,
            "EventData3": 255,
            "EventDir": "<=/DPUCard_1.BiosPostFail",
            "Conversion": 0,
            "SensorObject": "#/DiscreteSensor_DPU_FW_Progress"
        },
        "DiscreteEvent_DPU_BiosPostSuccess": {
            "Property": 0,
            "ListenType": 1,
            "EventData1": 2,
            "EventData2": 28,
            "EventData3": 255,
            "EventDir": "<=/DPUCard_1.BiosPostSuccess",
            "Conversion": 0,
            "SensorObject": "#/DiscreteSensor_DPU_FW_Progress"
        },
        "NetworkAdapter_1": {
            "SystemID": 1,
            "SlotNumber": "<=/PCIeDevice_1.SlotID",
            "Name": "900-9D3B6-00SC-EA0",
            "Manufacturer": "Nvidia",
            "Description": "2*100GE",
            "Position": "<=/PCIeDevice_1.Position",
            "DeviceLocator": "<=/PCIeDevice_1.DeviceName",
            "Type": 3,
            "Model": "BF3",
            "ModelDescription": "2*100GE",
            "ChipVendor": "Nvidia",
            "ChipManufacturer": "<=/DPUCard_1.Manufacturer",
            "NetworkPortCount": 2,
            "BoardName": "MT43244 BlueField-3",
            "VendorID": "0x15b3",
            "DeviceID": "0xa2dc",
            "SubsystemVendorID": "0x15b3",
            "SubsystemDeviceID": "0x0035",
            "ComponentUniqueID": "",
            "PCBVersion": "<=/DPUCard_1.PcbVersion",
            "FruId": "<=/Fru_BF3.FruId",
            "SupportedMctp": true,
            "HotPluggable": false,
            "ReadyToRemove": false,
            "AttentionHotPlugState": 255,
            "SocketId": "<=/PCIeDevice_1.SocketID",
            "Bus": "<=/PCIeDevice_1.Bus",
            "Device": "<=/PCIeDevice_1.Device",
            "Function": "<=/PCIeDevice_1.Function",
            "DevBus": "<=/PCIeDevice_1.DevBus",
            "DevDevice": "<=/PCIeDevice_1.DevDevice",
            "DevFunction": "<=/PCIeDevice_1.DevFunction",
            "LinkSpeed": "",
            "LinkSpeedCapability": "Gen5 (32.0GT/s)",
            "LinkWidth": "",
            "LinkWidthCapability": "X16",
            "TemperatureCelsius": 0,
            "TemperatureStatus": 0,
            "BandwidthThresholdPercent": 100,
            "ParentCardSlotId": "<=/PCIeDevice_1.SlotID",
            "Health": "<=/Component_DPUCard.Health",
            "SerialNumber": "<=/DPUCard_1.SerialNumber"
        },
        "Component_Port1": {
            "FruId": 255,
            "Instance": 1,
            "Type": 41,
            "Name": "Port1",
            "Presence": 1,
            "Health": 0,
            "PowerState": 1
        },
        "Component_Port2": {
            "FruId": 255,
            "Instance": 2,
            "Type": 41,
            "Name": "Port2",
            "Presence": 1,
            "Health": 0,
            "PowerState": 1
        },
        "NetworkPort_1": {
            "@Parent": "NetworkAdapter_1",
            "SystemID": 1,
            "PortID": 0,
            "NetDevFuncType": 1,
            "MediumType": "FiberOptic",
            "SupportedLinkCapability": "100GE"
        },
        "NetworkPort_2": {
            "@Parent": "NetworkAdapter_1",
            "SystemID": 1,
            "PortID": 1,
            "NetDevFuncType": 1,
            "MediumType": "FiberOptic",
            "SupportedLinkCapability": "100GE"
        },
        "OpticalModule_1": {
            "@Parent": "NetworkPort_1",
            "TemperatureCelsius": 65535,
            "PowerState": 0,
            "Presence": 0,
            "IsSupportedType": 0,
            "Temp_UpperThresholdCritical": 125,
            "FaultState": 0,
            "SupplyVoltage": 0
        },
        "OpticalModule_2": {
            "@Parent": "NetworkPort_2",
            "TemperatureCelsius": 65535,
            "PowerState": 0,
            "Presence": 0,
            "IsSupportedType": 0,
            "Temp_UpperThresholdCritical": 125,
            "FaultState": 0,
            "SupplyVoltage": 0
        },
        "ThresholdSensor_Temp": {
            "OwnerId": 32,
            "OwnerLun": 0,
            "EntityId": "<=/Entity_PCIeCard.Id",
            "EntityInstance": "<=/Entity_PCIeCard.Instance",
            "Initialization": 127,
            "Capabilities": 232,
            "SensorType": 1,
            "ReadingType": 1,
            "SensorName": "<=/PCIeDevice_1.SlotID |> string.format('PCIe NIC%s Temp',$1)",
            "Unit": 128,
            "BaseUnit": 1,
            "ModifierUnit": 0,
            "Analog": 1,
            "NominalReading": 25,
            "NormalMaximum": 0,
            "NormalMinimum": 0,
            "MaximumReading": 127,
            "MinimumReading": 128,
            "AssertMask": 128,
            "DeassertMask": 28800,
            "ReadingMask": 2056,
            "Linearization": 0,
            "M": 100,
            "RBExp": 224,
            "UpperNoncritical": 95,
            "PositiveHysteresis": 2,
            "NegativeHysteresis": 2,
            "Reading": "<=/Scanner_NICTemp.Value",
            "ReadingStatus": "<=/Scanner_NICTemp.Status"
        },
        "ThresholdSensor_OpticalModuleTemp": {
            "OwnerId": 32,
            "OwnerLun": 0,
            "EntityId": "<=/Entity_PCIeCard.Id",
            "EntityInstance": "<=/Entity_PCIeCard.Instance",
            "Initialization": 127,
            "Capabilities": 232,
            "SensorType": 1,
            "ReadingType": 1,
            "SensorName": "<=/PCIeDevice_1.SlotID |> string.format('PCIe%s OP1 Temp', $1)",
            "Unit": 128,
            "BaseUnit": 1,
            "ModifierUnit": 0,
            "Analog": 1,
            "NominalReading": 25,
            "NormalMaximum": 0,
            "NormalMinimum": 0,
            "MaximumReading": 127,
            "MinimumReading": 128,
            "AssertMask": 128,
            "DeassertMask": 28800,
            "ReadingMask": 2056,
            "Linearization": 0,
            "M": 1,
            "UpperNoncritical": 75,
            "PositiveHysteresis": 2,
            "NegativeHysteresis": 2,
            "Reading": "<=/OpticalModule_1.TemperatureCelsius;<=/OpticalModule_2.TemperatureCelsius |> expr($1 > $2 ? $1 : $2) |> expr($1 >= 0 ? $1 : ($1 + 256))",
            "ReadingStatus": "<=/OpticalModule_1.TemperatureCelsius;<=/OpticalModule_2.TemperatureCelsius;<=/OpticalModule_1.Presence;<=/OpticalModule_2.Presence |> expr(($3 == 0 && $4 == 0) ? 32768 : ($1 > $2 ? $1 : $2)) |> expr($1 > 255 ? 3 : 0)"
        },
        "CoolingRequirement_1_52": {
            "RequirementId": "${Slot} |> expr((52 << 8) | $1)",
            "Description": "BF3网卡芯片调速",
            "MonitoringStatus": "<=/Scanner_NICTemp.Status",
            "MonitoringValue": "<=/Scanner_NICTemp.Value",
            "FailedValue": 80,
            "TargetTemperatureCelsius": 82,
            "MaxAllowedTemperatureCelsius": 90,
            "TargetTemperatureRangeCelsius": [],
            "SmartCoolingTargetTemperature": [],
            "CustomSupported": false,
            "ActiveInStandby": true,
            "CustomTargetTemperatureCelsius": 255,
            "Enabled": "<=/CoolingRequirement_1_55.MonitoringStatus |> expr($1 == 0 ? true : false)",
            "SensorName": "#/ThresholdSensor_Temp.SensorName"
        },
        "CoolingRequirement_1_54": {
            "RequirementId": "${Slot} |> expr((54 << 8) | $1)",
            "Description": "BF3网卡网卡芯片调速(光模块异常)",
            "MonitoringStatus": "<=/Scanner_NICTemp.Status",
            "MonitoringValue": "<=/Scanner_NICTemp.Value",
            "FailedValue": 80,
            "TargetTemperatureCelsius": 75,
            "MaxAllowedTemperatureCelsius": 90,
            "TargetTemperatureRangeCelsius": [],
            "SmartCoolingTargetTemperature": [],
            "CustomSupported": false,
            "CustomTargetTemperatureCelsius": 255,
            "Enabled": "<=/CoolingRequirement_1_55.MonitoringStatus |> expr($1 ~= 0 ? true : false)",
            "SensorName": "#/ThresholdSensor_Temp.SensorName"
        },
        "CoolingRequirement_1_55": {
            "RequirementId": "${Slot} |> expr((55 << 8) | $1)",
            "Description": "BF3网卡光模块温度调速",
            "MonitoringStatus": "<=/OpticalModule_1.TemperatureCelsius; <=/OpticalModule_2.TemperatureCelsius |> expr($1 == 32768 || $2 == 32768 ? 1 : 0)",
            "MonitoringValue": "<=/OpticalModule_1.TemperatureCelsius; <=/OpticalModule_2.TemperatureCelsius  |> expr(($1 >= 255 ? 0 : $1) >= ($2 >= 255 ? 0 : $2) ? ($1 >= 255 ? 0 : $1) : ($2 >= 255 ? 0 : $2))",
            "TargetTemperatureCelsius": 60,
            "MaxAllowedTemperatureCelsius": 75,
            "FailedValue": 0,
            "TargetTemperatureRangeCelsius": [],
            "SmartCoolingTargetTemperature": [60, 55, 65],
            "CustomSupported": false,
            "CustomTargetTemperatureCelsius": 255,
            "Enabled": "<=/OpticalModule_1.Presence; <=/OpticalModule_2.Presence |> expr(($1 == 1 || $2 == 1) ? true : false)",
            "SensorName": "#/ThresholdSensor_OpticalModuleTemp.SensorName"
        },
        "Event_OverTemp": {
            "EventKeyId": "PCIeCard.PCIeCardOverTemp",
            "Condition": "<=/ThresholdSensor_Temp.UpperNoncritical",
            "Hysteresis": "<=/ThresholdSensor_Temp.PositiveHysteresis",
            "Reading": "<=/Scanner_NICTemp.Value |> expr(($1 >= 128) ? ($1 - 256) : $1)",
            "@Default": {
                "Condition": 95
            },
            "OperatorId": 4,
            "Enabled": true,
            "Component": "#/Component_DPUCard",
            "AdditionalInfo": "1",
            "DescArg2": "#/Component_DPUCard.Name",
            "DescArg4": "#/Event_OverTemp.Reading",
            "DescArg5": "#/ThresholdSensor_Temp.UpperNoncritical"
        },
        "Event_TempFail": {
            "EventKeyId": "PcieCard.PCIeCardTempFail",
            "Condition": 1,
            "Reading": "<=/NetworkAdapter_1.TemperatureStatus",
            "OperatorId": 5,
            "Enabled": true,
            "Component": "#/Component_DPUCard",
            "AdditionalInfo": "2",
            "DescArg2": "#/Component_DPUCard.Name"
        },
        "Event_OM0OverTempInfo": {
            "EventKeyId": "PcieCard.PCIeCardOMOverTemp",
            "Condition": 75,
            "LedFaultCode": "q$$",
            "Reading": "<=/OpticalModule_1.TemperatureCelsius |> expr(($1 >= 255) ? 30 : ($1 & 255))",
            "OperatorId": 4,
            "Enabled": true,
            "DescArg2": "#/DPUCard_1.DeviceName",
            "DescArg3": "1",
            "DescArg4": "#/OpticalModule_1.TemperatureCelsius",
            "DescArg5": "75",
            "AdditionalInfo": "2,3",
            "Hysteresis": 2,
            "Component": "#/Component_DPUCard"
        },
        "Event_OM1OverTempInfo": {
            "EventKeyId": "PcieCard.PCIeCardOMOverTemp",
            "Condition": 75,
            "LedFaultCode": "q$$",
            "Reading": "<=/OpticalModule_2.TemperatureCelsius |> expr(($1 >= 255) ? 30 : ($1 & 255))",
            "OperatorId": 4,
            "Enabled": true,
            "DescArg2": "#/DPUCard_1.DeviceName",
            "DescArg3": "2",
            "DescArg4": "#/OpticalModule_2.TemperatureCelsius",
            "DescArg5": "75",
            "AdditionalInfo": "2,3",
            "Hysteresis": 2,
            "Component": "#/Component_DPUCard"
        },
        "Event_PcieCardReplaceMntr": {
            "EventKeyId": "PcieCard.PcieCardReplace",
            "Condition": 1,
            "Reading": "<=/Component_DPUCard.ReplaceFlag",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "1",
            "DescArg1": "#/Component_DPUCard.Name",
            "DescArg2": "#/Component_DPUCard.PreviousSN",
            "DescArg3": "#/Component_DPUCard.SerialNumber",
            "Component": "#/Component_DPUCard"
        },
        "Event_PCIeBandWidth": {
            "EventKeyId": "PCIeCard.PCIeCardBandWidthDecreased",
            "Condition": 1,
            "Reading": "<=/PCIeDevice_1.BandwidthReduction",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "2",
            "DescArg2": "#/PCIeDevice_1.SlotID",
            "DescArg3": "(B3220)",
            "Component": "#/Component_DPUCard"
        },
        "Event_PCIeLinkSpeed": {
            "EventKeyId": "PCIeCard.PCIeCardLinkSpeedReduced",
            "Condition": 1,
            "Reading": "<=/PCIeDevice_1.LinkSpeedReduced",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "2",
            "DescArg2": "#/PCIeDevice_1.SlotID",
            "DescArg3": "(B3220)",
            "Component": "#/Component_DPUCard"
        },
        "Event_PCIeCardUCE": {
            "EventKeyId": "PCIeCard.PCIeCardUncorrectableErr",
            "Condition": 1,
            "LedFaultCode": "q$$",
            "Reading": "<=/PCIeDevice_1.DiagnosticFault;<=/PCIeDevice_1.UCEByBIOS |> expr(($1 + $2) == 0 ? 0 : 1)",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "2",
            "DescArg2": "#/Component_DPUCard.Name",
            "DescArg4": "NA",
            "Component": "#/Component_DPUCard"
        },
        "Event_PCIeCardCE": {
            "EventKeyId": "PCIeCard.PCIeCardCEHardFailure",
            "Condition": 1,
            "LedFaultCode": "q$$",
            "Reading": "<=/PCIeDevice_1.PredictiveFault",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "2",
            "DescArg2": "#/Component_DPUCard.Name",
            "Component": "#/Component_DPUCard"
        },
        "Event_Port1LinkDown": {
            "EventKeyId": "Port.PortDisconnected",
            "Condition": 0,
            "Reading": "<=/NetworkPort_1.LinkStatusNumeric",
            "@Default": {
                "Reading": 255
            },
            "OperatorId": 8,
            "Enabled": true,
            "AdditionalInfo": "1,3",
            "DescArg1": "#/DPUCard_1.DeviceName",
            "DescArg3": "Port 1",
            "Component": "#/Component_Port1"
        },
        "Event_OM1VAMntr": {
            "EventKeyId": "Port.PortOpticalModuleVoltageAlarm",
            "Condition": 1,
            "Reading": "<=/OpticalModule_1.FaultState;<=/OpticalModule_1.SupplyVoltage;<=/OpticalModule_1.VoltageLowerThresholdCritical;<=/OpticalModule_1.VoltageUpperThresholdCritical |> expr((($1 & 16 != 0) && ($2 != 65535) && ($3 != 65535) && ($2 < $3)) || (($1 & 32 != 0) && ($2 != 65535) && ($4 != 65535) && ($2 > $4)))",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "1,3",
            "DescArg1": "#/Component_DPUCard.Name",
            "DescArg3": "Port 1",
            "DescArg4": "#/OpticalModule_1.SupplyVoltage",
            "Component": "#/Component_Port1"
        },
        "Event_OM1PowerAlarm": {
            "EventKeyId": "Port.PortOpticalModulePowerAlarm",
            "Condition": 1,
            "LedFaultCode": "q$$",
            "Reading": "<=/OpticalModule_1.PowerState",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "1,3",
            "DescArg1": "#/Component_DPUCard.Name",
            "DescArg3": "Port 1",
            "Component": "#/Component_Port1"
        },
        "Event_OM1SpeedMatch": {
            "EventKeyId": "Port.PortOpticalModuleSpeedMismatch",
            "Condition": 1,
            "LedFaultCode": "q$$",
            "Reading": "<=/OpticalModule_1.IsSupportedType",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "1,3",
            "DescArg1": "#/Component_DPUCard.Name",
            "DescArg3": "Port 1",
            "Component": "#/Component_Port1"
        },
        "Event_Port1BWUsageMntr": {
            "EventKeyId": "NICCard.SystemNetworkBandwidthUsageHigh",
            "Condition": "<=/NetworkAdapter_1.BandwidthThresholdPercent",
            "Reading": "<=/NetworkPort_1.BandwidthUsagePercent",
            "@Default": {
                "Condition": 100
            },
            "OperatorId": 4,
            "Enabled": true,
            "Component": "#/Component_DPUCard",
            "AdditionalInfo": "1,3",
            "DescArg1": "#/PCIeDevice_1.DeviceName",
            "DescArg3": "Port 1",
            "DescArg4": "#/Event_Port1BWUsageMntr.Reading",
            "DescArg5": "#/Event_Port1BWUsageMntr.Condition"
        },
        "Event_Port2LinkDown": {
            "EventKeyId": "Port.PortDisconnected",
            "Condition": 0,
            "Reading": "<=/NetworkPort_2.LinkStatusNumeric",
            "@Default": {
                "Reading": 255
            },
            "OperatorId": 8,
            "Enabled": true,
            "AdditionalInfo": "1,3",
            "DescArg1": "#/DPUCard_1.DeviceName",
            "DescArg3": "Port 2",
            "Component": "#/Component_Port2"
        },
        "Event_OM2VAMntr": {
            "EventKeyId": "Port.PortOpticalModuleVoltageAlarm",
            "Condition": 1,
            "Reading": "<=/OpticalModule_2.FaultState;<=/OpticalModule_2.SupplyVoltage;<=/OpticalModule_2.VoltageLowerThresholdCritical;<=/OpticalModule_2.VoltageUpperThresholdCritical |> expr((($1 & 16 != 0) && ($2 != 65535) && ($3 != 65535) && ($2 < $3)) || (($1 & 32 != 0) && ($2 != 65535) && ($4 != 65535) && ($2 > $4)))",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "1,3",
            "DescArg1": "#/Component_DPUCard.Name",
            "DescArg3": "Port 2",
            "DescArg4": "#/OpticalModule_2.SupplyVoltage",
            "Component": "#/Component_Port2"
        },
        "Event_OM2PowerAlarm": {
            "EventKeyId": "Port.PortOpticalModulePowerAlarm",
            "Condition": 1,
            "LedFaultCode": "q$$",
            "Reading": "<=/OpticalModule_2.PowerState",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "1,3",
            "DescArg1": "#/Component_DPUCard.Name",
            "DescArg3": "Port 2",
            "Component": "#/Component_Port2"
        },
        "Event_OM2SpeedMatch": {
            "EventKeyId": "Port.PortOpticalModuleSpeedMismatch",
            "Condition": 1,
            "LedFaultCode": "q$$",
            "Reading": "<=/OpticalModule_2.IsSupportedType",
            "OperatorId": 5,
            "Enabled": true,
            "AdditionalInfo": "1,3",
            "DescArg1": "#/Component_DPUCard.Name",
            "DescArg3": "Port 2",
            "Component": "#/Component_Port2"
        },
        "Event_Port2BWUsageMntr": {
            "EventKeyId": "NICCard.SystemNetworkBandwidthUsageHigh",
            "Condition": "<=/NetworkAdapter_1.BandwidthThresholdPercent",
            "Reading": "<=/NetworkPort_2.BandwidthUsagePercent",
            "@Default": {
                "Condition": 100
            },
            "OperatorId": 4,
            "Enabled": true,
            "Component": "#/Component_DPUCard",
            "AdditionalInfo": "1,3",
            "DescArg1": "#/PCIeDevice_1.DeviceName",
            "DescArg3": "Port 2",
            "DescArg4": "#/Event_Port2BWUsageMntr.Reading",
            "DescArg5": "#/Event_Port2BWUsageMntr.Condition"
        }
    }
}

答案内容由AI生成,仅供参考:

4. 总结

  • 社区版本:具备MCTP over SMBus的基础协议支持,但针对BF3(D)PU卡存在特定的通信建立失败问题,且您的环境复现了该问题。
  • 配置参考:由于上下文未提供社区官方针对BF3的成功SR配置样例,无法直接给出可用的完整参考文件。建议您重点关注主从切换配置和SMBus响应数据格式(byte count错误提示响应解析异常)。
  • 替代验证:知识库提到NVMe SMBus MCTP可成功建链,可作为验证SMBus物理通路是否正常的参考手段。
点击此处查看详细分析解答

根据您提供的上下文信息,关于社区最新版本是否支持DPU卡通过MCTP over SMBus方式进行通信,以及相关的配置问题,以下是综合分析与结论:

1. 关于社区版本是否支持该通信方式

结论:社区具备支持MCTP over SMBus协议的能力,但针对BF3(BlueField-3)网卡存在已知的通信建立失败问题。

具体依据如下:

  • 协议支持层面:社区文档MCTP over SMBus明确描述了该协议用于BMC与外围设备(如网络控制器、RAID卡)之间的带外管理通信。知识库中也存在BF3 MCTP over SMBus这一方法,表明该通信路径在架构上是受支持的。
  • 实际案例层面:然而,根据搜索结果第9条标题 “BF3网卡的mctp over smbus无法建立通信链路”(reference_id: 9),以及知识库中关于BF3 Net Card的描述 —— “BF3 Net Card is a network interface card that fails to establish an MCTP over SMBUS communication link” —— 明确指出了BF3型号在此协议上存在无法建立链路的实际案例。

此外,搜索结果第4条 “MCTP over SMBus主从切换情况下无法建立通信链路”(reference_id: 4)也表明,在需要主从切换的场景下(这与您的SR配置可能相关),通信建立会遇到障碍,报错示例包括 “fails to read data through the SMBUS protocol” 和 “ioctl(I2C_CMD_SLAVE_CACHE_RD) failed”。

2. 关于您的SR配置与报错分析

您提供的日志报错为:smbus oem response byte count is invalid, chip: Chip_SmbusChip_0101010F02, byte count: 255。

这与知识库中描述的现象高度吻合:

  • 知识库中BF3 MCTP over SMBus关系描述为:“用于与NVIDIA BlueField-3卡通信但未能建立连接”。
  • 同时,NVMe SMBus MCTP关系描述为:“成功建立与NVIDIA BlueField-3卡的链路,确认SMBus连通性”。这表明SMBus物理链路本身可能是通的,但MCTP层未能正确响应。

根据“主从切换”案例的初步定位(reference_id: 4),可能存在BMC地址寻址失败(NACK) 的问题,导致卡侧没有继续发送数据,或响应数据格式异常(如byte count为255)。

3. 配置建议与排查方向(基于上下文)

基于现有信息,建议您从以下方面排查(注意:上下文内容有限,此分析仅基于提供材料):

  • 检查SMBus物理连接与地址:确认您的Chip_SmbusChip地址(100)是否正确,以及是否有经过I2cMux多路复用器(知识库中提及I2cMux_Pca9545_PCA9545_2用于访问NVIDIA BlueField-3卡)。
  • 确认MCTP绑定配置:检查MctpBinding_1中的BmcSMBusEid和BmcSMBusPhyAddr是否与BMC实际配置一致(知识库中存在bmc.kepler.Systems.Mctp.MctpBinding.SMBus这一配置路径)。
  • 关注主从切换需求:如果该卡通信需要主从切换(如搜索结果第4条所述),需要确认SR配置中是否包含了相关设置,因为知识库中I2C/SMBus主从切换功能是独立配置的(WriteReadByProtocol接口)。

4. 总结

  • 社区版本:具备MCTP over SMBus的基础协议支持,但针对BF3(D)PU卡存在特定的通信建立失败问题,且您的环境复现了该问题。
  • 配置参考:由于上下文未提供社区官方针对BF3的成功SR配置样例,无法直接给出可用的完整参考文件。建议您重点关注主从切换配置和SMBus响应数据格式(byte count错误提示响应解析异常)。
  • 替代验证:知识库提到NVMe SMBus MCTP可成功建链,可作为验证SMBus物理通路是否正常的参考手段。

注意:以上分析完全基于所提供的知识库和搜索结果,关于特定硬件(如是否必须主从切换)、固件版本支持等细节,可能需查阅更具体的社区文档或硬件手册。

在framework.log中出下以下关于smbus错误

2026-09-20 15:33:25.345731 hwdiscovery NOTICE: hwcomponent.lua(313): [self-discovery] name: Connector_PCIE_SLOT2_0101010F, position: 0101010F02, current: 1, previous: 0,uptime: 143 s
2026-09-20 15:33:25.493350 hwdiscovery NOTICE: init.lua(201): position: 0101010F02, get csr data from /opt/bmc/sr/14140130_15b3a2dc_15b30035.sr, format version: 3.00, data version: 3.02
2026-09-20 15:33:25.505548 hwdiscovery NOTICE: hwcomponent.lua(209): position: 0101010F02, load sr data successfully, uptime: 143 s, cost: 30ms
2026-09-20 15:33:25.507721 hwdiscovery NOTICE: hwcomponent.lua(230): position: 0101010F02, start to process sr data, source: /opt/bmc/sr/14140130_15b3a2dc_15b30035.sr, format version: 3.00, data version: 3.02, uptime: 143 s
2026-09-20 15:33:25.684789 hwdiscovery NOTICE: sdr.lua(76): position: 0101010F02, get objects, count: 49
2026-09-20 15:33:25.766923 hwdiscovery NOTICE: parser_work.lua(76): position: 0101010F02, process sr data successfully, uptime: 143 s, cost: 230ms
2026-09-20 15:33:25.975520 hwdiscovery NOTICE: component.lua(271): position: 0101010F02, setup resource tree successfully, uptime: 143 s
2026-09-20 15:33:25.995659 mctpd NOTICE: object_manage.lua(312): start to add objects, path: /bmc/kepler/ObjectGroup/0101010F02, life cycle id: 1, count: 2, uptime: 143 s
2026-09-20 15:33:26.027988 hwproxy NOTICE: object_manage.lua(312): start to add objects, path: /bmc/kepler/ObjectGroup/0101010F02, life cycle id: 1, count: 5, uptime: 144 s
2026-09-20 15:33:26.043204 mctpd NOTICE: init.lua(89): [System1]mctp_endpoints: create endpoint, phy_addr=0, eid=0, msg_type=0, medium_type=128
2026-09-20 15:33:26.134344 hwproxy NOTICE: object_manage.lua(332): add objects callback, path: /bmc/kepler/ObjectGroup/0101010F02, life cycle id: 1, count: 5, took 110ms, uptime: 144 s
2026-09-20 15:33:26.301127 hwproxy NOTICE: dispatch.lua(254): position: 0101010F02, start to process objs in pre_type: Mux, topo_data[I2cMux_Pca9545_PCA9545_2_0101010F], objs nums: 3
2026-09-20 15:33:26.323434 hwproxy NOTICE: object_manage.lua(342): add objects completely, path: /bmc/kepler/ObjectGroup/0101010F02, life cycle id: 1, took 190ms, uptime: 144 s
2026-09-20 15:33:26.334700 hwproxy NOTICE: dispatch.lua(254): position: 0101010F02, start to process objs in pre_type: Mux, topo_data[I2cMux_Pca9545_PCA9545_2_0101010F], objs nums: 3
2026-09-20 15:33:27.070010 hwproxy NOTICE: init.lua(18): [smbus_plugins] ctor
2026-09-20 15:33:27.712635 unknown_service ERROR: smbus_write_read_service.lua(199): smbus oem response byte count is invalid, chip: Chip_SmbusChip_0101010F02, byte count: 255.
2026-09-20 15:33:33.994490 mctpd NOTICE: mctp_eid_table.lua(83): [System1]mctp_eid_table: add eid info, module_name=network_adapter,msg_src_eid=9,phy_addr=96,msg_type=2, medium_type=15, ep_status=1
2026-09-20 15:33:33.995152 mctpd NOTICE: init.lua(89): [System1]mctp_endpoints: create endpoint, phy_addr=96, eid=9, msg_type=2, medium_type=15
2026-09-20 15:33:37.595944 hwdiscovery WARNING: harbor_client.lua(367): shm reply failed, path: /bmc/kepler/ObjectGroup/01010117, interface: bmc.kepler.ObjectGroup, member: GetBinaryObjects, ret: message_queue push back: data size too large
2026-09-20 15:33:41.045632 mctpd ERROR: mctp_engine.lua(414): [System1]mctp_engine: request timeout
2026-09-20 15:33:41.051232 mctpd NOTICE: init.lua(79): register to bus for mctpd, error name: kepler.mctpd.MctpRequestTimeout
2026-09-20 15:33:41.053447 mctpd NOTICE: object_manage.lua(332): add objects callback, path: /bmc/kepler/ObjectGroup/0101010F02, life cycle id: 1, count: 2, took 15060ms, uptime: 159 s
2026-09-20 15:33:41.053984 mctpd NOTICE: object_manage.lua(342): add objects completely, path: /bmc/kepler/ObjectGroup/0101010F02, life cycle id: 1, took 0ms, uptime: 159 s
2026-09-20 15:33:48.010307 unknown_service ERROR: smbus_write_read_service.lua(126): process smbus request failed. chip name: Chip_SSD_0101020C01, err: ./opt/bmc/apps/hwproxy/lualib/chip.lua:696: response error, chip internal error, SMC completion code: 4
2026-09-20 15:33:48.011656 mctpd NOTICE: mctp_engine.lua(340): [System1]mctp_engine: set smbus_bmc_eid=0, smbus_bmc_phy_addr=0
2026-09-20 15:33:48.479079 unknown_service ERROR: smbus_write_read_service.lua(126): process smbus request failed. chip name: Chip_SSD_0101020101, err: no return data
2026-09-20 15:33:48.480400 mctpd NOTICE: mctp_engine.lua(340): [System1]mctp_engine: set smbus_bmc_eid=8, smbus_bmc_phy_addr=16
2026-09-20 15:33:49.064240 unknown_service ERROR: smbus_write_read_service.lua(199): smbus oem response byte count is invalid, chip: Chip_SmbusChip_0101010F02, byte count: 255.
2026-09-20 15:33:53.273895 hwdiscovery WARNING: harbor_client.lua(367): shm reply failed, path: /bmc/kepler/ObjectGroup/01010117, interface: bmc.kepler.ObjectGroup, member: GetBinaryObjects, ret: message_queue push back: data size too large

nvidia即mlx的网卡我记得有可以直接通过i2c访问的温度传感器吧,通过温感获取温度就好了。

dpu的地址不能用普通的i2c的方式访问,且需求要用smbus

报文能打印出来吗,看着是内容不符合预期。
还有就是mctp over smbus的MediumType应该是2,128是smbus oem的