PMU和IMU交互的log如何查看

基于2512_LTS构建的BMC

碰到一个问题:一个OCP网卡的BDF bios正常返回了:
img_v3_0210u_4938cb42-9a1e-4f57-ac53-26baa80d271g

但是BMC却没有加载这个卡,从log中看到应该是卡的四元组获取有问题:
image

所以想请教一下有没有查看PMU和IMU交互log的方法。

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

要查看 PMU与IMU交互日志,应重点关注以下两个日志源:

  1. mctpd 日志:验证MCTP通信是否正常建立,IMU是否在线。
  2. pcie_deviceapp.log 日志:搜索 Get id from PMU,确认是否成功获取OCP卡的四元组信息。

:triangular_flag: 您的问题大概率出在:IMU未正确响应BMC的查询请求,或PMU未返回有效的四元组数据,导致BMC无法匹配到正确的CSR文件,最终加载失败。

建议下一步:

  • 使用 journalctl -u mctpdgrep -i "Get id from PMU" /var/log/app.log 联合分析;
  • 确保IMU固件与BMC版本兼容;
  • 检查OCP卡对应的 Bom_id_auxid.sr 配置文件是否存在且命名正确(依据四元组生成)。

如有需要,可提供 mctpdapp.log 的相关片段进行进一步分析。

点击此处查看详细分析解答

PMU与IMU交互日志的查看方法(基于2512_LTS构建的BMC)

根据您提供的问题描述,您遇到的情况是:BIOS已通过IPMI命令WriteOcpCardBdfToBmc正确上报了OCP网卡的BDF地址,但BMC端未能成功加载该卡,初步怀疑是通过PMU获取PCIe设备四元组(Vendor ID, Device ID, SubVendor ID, SubDevice ID)时出现问题。这通常涉及BMC、IMU、PMU之间的通信流程。

以下是针对基于2512_LTS版本的openUBMC系统中,查看PMU与IMU交互日志的详细方法和排查建议。


:magnifying_glass_tilted_left: 问题定位:为什么OCP卡未加载?

您提供的日志片段表明:

[BizTopoloader] Connector is detected, Slot=13...
load-Id-AuxId=ffffffff-ffffffff

其中 Id-AuxId=80880103-8088c01 是BMC期望的标识,而 load-Id-AuxId=ffffffff-ffffffff 表示实际从硬件获取到的信息为无效值(全F),说明 BMC未能从PMU/IMU处成功读取该OCP卡的四元组信息

根本原因通常出在 BMC → IMU → PMU 的通信链路上。


:scroll: 如何查看PMU和IMU的交互日志?

在基于2512_LTS的openUBMC系统中,PMU(Platform Management Unit) 实际上常指 IMU(Integrated Management Unit) 或其管理的服务模块。BMC通过 MCTP over SMBus 与IMU通信,IMU再与CPU侧的PMU代理交互以获取PCIe设备信息。

:white_check_mark: 推荐的日志查看方法:

1. 查看 mctpd 服务日志 —— 核心入口

mctpd(MCTP Daemon)是BMC上负责MCTP协议通信的核心守护进程,管理与IMU的连接和消息收发。

命令:

# 实时查看日志
journalctl -u mctpd -f

# 或搜索关键字
journalctl | grep -i "mctp\|pmu\|imu"

关键日志特征:

  • IMU上电状态通知:

    mctp_mdb_mgmt.lua(267): mctp_mdb_mgmt: pmu status change to 1, OS Power ON
    

    这表示IMU已上电并启动MCTP通信。

  • Endpoint发现过程:

    mctpd: Received discovery response from EID=55
    

    其中 EID=55 是某个设备(如OCP卡)在MCTP网络中的终点ID。您需要确认OCP卡对应EID是否出现。

  • MCTP路由表缺失警告:
    若无路由信息,会出现类似:

    No route to EID=55
    

    表示MCTP路由表未正确加载。


2. 查看 pcie_device 组件日志 —— 设备加载流程

该组件负责通过IMU从PMU查询PCIe设备的四元组信息。

命令:

journalctl -u pcie_device.service -f
# 或直接搜索app.log
grep -i "pcie_device.*Get id from PMU" /var/log/app.log

关键日志示例:

pcie_device NOTICE: device_loader.lua(130): [BizTopoLoader] Get id from PMU, vid:6629, did:55298, sub_vid:6629, sub_did:16384

:white_check_mark: 如果看到此日志,则说明成功从PMU获取了四元组
:cross_mark: 如果未看到或返回 vid:ffff, did:ffff...,则说明 PMU未返回有效数据


3. 查看IMU健康与通信状态

可通过Redfish或IPMI查看IMU状态,或检查其版本信息:

IPMI命令(调试用):

ipmitool raw 0x30 0x90 0x22 0xf0  # 查询IMU状态

Redfish接口:

GET /redfish/v1/Systems/system/LogServices/IMUHealth

4. 验证PcieAddrInfo配置是否正确

BMC根据 PcieAddrInfo 对象定义的BDF查找设备。请确认您的OCP卡对应对象(如 PcieAddrInfo_OCP_1)中 Bus/Device/Function 是否与BIOS上报的一致。

查询路径:

# 检查CSR配置是否匹配
cat /etc/bmc/CSR/OCPCard_1.json

确保其中的 SlotIDBus 等字段与物理槽位和BDF对应。


:hammer_and_wrench: 排查建议流程

步骤 操作 目的
1 确认IMU是否上电 查看 mctpd 日志是否有 OS Power ON
2 确认MCTP通信是否建立 查看是否收到IMU的Discovery响应
3 检查MCTP路由表 使用 mctp-route show 查看是否有到目标EID的路由
4 查看 pcie_device 是否调用PMU 搜索 Get id from PMU 日志
5 确认返回的四元组是否有效 是否为全F(无效)
6 检查CSR文件名是否匹配四元组 Bom_id_auxid.sr 文件是否存在且命名正确
7 确认BIOS已发送正确IPMI命令 在BMC端抓包或查看IPMI接收日志

:paperclip: 相关文档与资源


:white_check_mark: 总结

要查看 PMU与IMU交互日志,应重点关注以下两个日志源:

  1. mctpd 日志:验证MCTP通信是否正常建立,IMU是否在线。
  2. pcie_deviceapp.log 日志:搜索 Get id from PMU,确认是否成功获取OCP卡的四元组信息。

:triangular_flag: 您的问题大概率出在:IMU未正确响应BMC的查询请求,或PMU未返回有效的四元组数据,导致BMC无法匹配到正确的CSR文件,最终加载失败。

建议下一步:

  • 使用 journalctl -u mctpdgrep -i "Get id from PMU" /var/log/app.log 联合分析;
  • 确保IMU固件与BMC版本兼容;
  • 检查OCP卡对应的 Bom_id_auxid.sr 配置文件是否存在且命名正确(依据四元组生成)。

如有需要,可提供 mctpdapp.log 的相关片段进行进一步分析。

  1. 代码里在imu调用的地方加打印
  2. 使用trace功能
    BMC trace

1)首先执行 maint_debug_cli进入debug模式

2)attach ipmi

  1. trace ch=X netfn=Y cmd=Z

X 表示要抓取的消息通道;ipmbeth是与HMM、交换板通信通道;bt是与BIOS通信;ipmb是与ME通信;rmcp+是LAN/LANPLUS通信; edma是带内的PCIe虚拟网络

Y表示要过滤的功能码

Z表示要过滤的命令字