联想 ThinkSystem FPGA 日志分析与故障定位

本文档专为服务器二线硬件支持与现场技术专家编写,系统讲解如何通过 Lenovo ThinkSystem(Purley / Whitley 等平台,如 SR650、SR550、SN550 等)的 FFDC 日志深度分析板载 FPGA 寄存器,精准定位主板电压故障(SysBrd Vol Fault / FQXSPPW0063M)、异常掉电(Power Fault)及CPU/内存供电故障。


1. 为什么需要分析 FPGA 日志?

在 Lenovo ThinkSystem 服务器体系中,XCC(BMC)负责宏观带外监控与上层告警,而底层硬件上电时序控制、微秒级电源保护、硬件故障锁存则由板载 FPGA / CPLD 全权接管。

  • XCC 告警局限性:当发生供电异常时,XCC 的系统事件日志(SEL/CXL)通常只报出一条泛化错误:

    Sensor SysBrd Vol Fault has transitioned to critical from a less severe state. (FQXSPPW0063M) 该报错仅表明“主板电压故障”,无法明确是 12V、5V、3.3V 还是 CPU 哪一路电压异常,盲目换主板容易导致维修失败。

  • FPGA 寄存器优势:在供电轨发生掉电、欠压、过流或短路的微秒瞬间,FPGA 会在强制关闭系统电源(Power Fault Trip)前,将第一故障现场(First Capture)永久锁存在硬件寄存器中(直到下次交流断电重置)。

2. FPGA 日志在 FFDC 中的分布路径

从服务器导出的 FFDC 服务数据包(扩展名为 .tzz,实际为 tar.gz 格式)解压后,核心 FPGA 日志位于以下路径:

2.1 首选文件:自动解码日志

  • 文件路径:tmp/ffdc_live_dbg/fpga_on_demand.log
  • 说明:FFDC 收集脚本(firetool)自动调用寄存器解码工具生成的报告,包含可读性极强的位解析(例如直接标出 PVCCIO CPU1 fault)。

2.2 备选文件:原始寄存器转储

当 fpga_on_demand.log 未生成或解码工具版本不匹配时,需查看以下原始数据:

  • 文件路径:var/volatile/log/fpga_powerfault.log 或 var/volatile/log/fpga.log
  • 说明:记录各寄存器块(Block 00 ~ Block 63)的 16 进制原始字节(Hex Dump)。

2.3 信号映射数据库(交叉查证)

  • 文件路径:tmp/dm.log
  • 说明:XCC Data Manager 信号引脚映射表,包含 PWRGD_PVCCIO_CPU0、THERMAL_CPU1_VR_PVCCIN 等信号与硬件部件的物理绑定。

3. FPGA 寄存器架构全景(Block 结构)

FPGA 内部以 Block(块,每块通常 16 字节) 为单位组织:

Block 编号名称 / 功能排障关键关注点
Block 00基础信息与固件版本Chip ID(机型平台)、FPGA Major/Minor 版本、编译日期
Block 01主板与平台标识Board ID、Platform ID
Block 02FPGA Flash 固件区主固件/恢复固件状态
Block 04电源管理与故障锁存区核心排障区!所有电压故障、开机源、关机源均在此处
Block 14RAS / CATERR 处理器致命错误CPU 内部致命错误(CATERR / IERR)、PCIe 致命错误
Block 16内存与 UEFI 引导阶段内存设备状态、UEFI POST 进度码
Block 28板载设备与 CPU 在位检测CPU0/CPU1 是否在位(SKTOCC)、Boot CPU 标识
Block 40电源管理节流与 PSU 状态PSU1/PSU2 在位与供电状态、PMBus 通信
Block 60调试寄存器GTL CPU 复位、PROCHOT 信号、PCIe 复位状态

4. Block 04 核心解码与查表速查(最关键部分)

当系统报 SysBrd Vol Fault 或开机即瞬间掉电时,必须聚焦 Block 04。

4.1 原始数据格式识别

典型的 Block 04 数据行如下:

Block 04 - 7F 00 00 00 02 00 00 00 - 00 01 07 10 80 00 20 00

各字节对应的偏移与功能:

字节序号寄存器名称正常健康值典型异常值功能含义
Byte 0 (0x040)POWER_CAPABILITY7F7F电源管理能力集支持位
Byte 1 (0x041)POWER_FAULT700非 00待机/辅助供电轨故障(5V_AUX, 1V8_PCH, Efuse 等)
Byte 2 (0x042)POWER_FAULT600非 00主板 5V/3.3V 与内存 VPP/VDDQ 供电故障
Byte 3 (0x043)POWER_FAULT500非 00内存 VDDQ/VTT 及部分平台 CPU VCCIO 供电故障
Byte 4 (0x044)POWER_FAULT400非 00CPU 核心供电故障(PVCCIN / PVCCIO / VCCSA 等)
Byte 5-8POWER_FAULT3~000非 00PCIe 扩展卡、M.2 转接板等外设供电故障
Byte 9 (0x049)BOOT_HISTORY-01FPGA 上电引导历史记录
Byte 11 (0x04B)POWER_ON_SRC-10开机来源:0x10 前面板按键,0x20 XCC 远程开机
Byte 12 (0x04C)POWER_OFF_SRC-80关机来源:0x80 明确表示硬件电源故障保护性关机!
Byte 14 (0x04E)RESET_SRC-20复位触发源:0x20 芯片组复位请求

[!TIP] > 正常情况下,POWER_FAULT0 至 POWER_FAULT7(即 Byte 1 至 Byte 8)必须全为 00。只要任意一个字节非 00,说明该字节对应的供电轨触发了保护动作。


4.2 POWER_FAULT 详细位定义查表

根据 FPGA 固件版本不同,寄存器定义有微调(以 SN550_FPGA_PowerFaults1.0 及 SR650 Cyborg 平台通用定义为例):

(1) POWER_FAULT4 (偏移 0x044 / Offset 4h) —— CPU 核心电压轨

这是最常出现故障的字节,需要将 16 进制数转换为 8 位二进制(Bit 7 ~ Bit 0):

二进制位16 进制权重信号定义 (FPGA < 4.7)信号定义 (FPGA ≥ 4.7)故障含义与定位
Bit 00x01VCCIN_CPU1_PGVCCIN_CPU2_PGCPU1 (或 CPU2) FIVR 输入主供电异常 (1.8V)
Bit 10x02VCCIN_CPU2_PG / PVCCIO_CPU1VCCSA_CPU1_PGCPU I/O 或 System Agent 供电异常
Bit 20x04VCCSA_CPU1_PGVCCSA_CPU2_PGCPU System Agent 供电异常
Bit 30x08VCCSA_CPU2_PGPCH_CPU_PWRGD_3VPCH / CPU 供电准备信号异常
Bit 40x10PVCCIN_CPU1MEZZCARD1_AUX_PWRGDCPU FIVR 主供电轨故障 (1.8V)
Bit 50x20MEZZCARD1_AUX_PWRGDMEZZCARD2_AUX_PWRGD扩展卡/夹层卡辅助供电异常
Bit 60x40MEZZCARD2_AUX_PWRGDMEZZCARD1_PWRGD扩展卡主供电异常
Bit 70x80MEZZCARD1_PWRGDMEZZCARD2_PWRGD扩展卡主供电异常
  • 实战案例对应:
  • 若寄存器值为 0x10(二进制 0001 0000):Bit 4 置 1,对应 PVCCIN CPU1 fault。
  • 若寄存器值为 0x02(二进制 0000 0010):Bit 1 置 1,对应 PVCCIO CPU1 fault。

(2) POWER_FAULT5 (偏移 0x043 / Offset 3h) —— 内存与 VCCIO

二进制位16 进制权重典型定义故障含义与定位
Bit 50x20CPU1_VCCIO_PGCPU 1 I/O 电源轨就绪信号丢失
Bit 60x40CPU2_VCCIO_PGCPU 2 I/O 电源轨就绪信号丢失
Bit 0~40x01~0x10VDDQ / VTTCPU 对应通道的 DDR4 内存供电(1.2V / 0.6V)异常

(3) POWER_FAULT6 (偏移 0x042 / Offset 2h) —— 主板主电压与 VPP

二进制位16 进制权重典型定义故障含义与定位
Bit 00x015V_PG / 3v3_PG主板 5V 或 3.3V 基础供电异常
Bit 1~40x02~0x10VPP_CPU1/2_ABC/DEF内存激活供电(2.5V VPP)异常
Bit 5~70x20~0x80VDDQ_CPU1/2内存主供电(1.2V)异常

(4) POWER_FAULT7 (偏移 0x041 / Offset 1h) —— 待机辅助与输入供电

二进制位16 进制权重典型定义故障含义与定位
Bit 00x015V_AUX_PG5V 辅助待机电压故障
Bit 40x101V8_PCH_AUX_PGPCH 待机供电故障
Bit 70x80PGD_MAIN_EFUSE (P_12V)主板 12V 电子保险丝(eFuse)熔断/保护(通常外部短路)

5. 核心判定法则:是主板故障还是 CPU 故障?

这是二线技术支持面临的最典型争议场景。排查准则如下:

flowchart TD
    A["发生 SysBrd Vol Fault (FQXSPPW0063M)"] --> B["提取 FFDC 日志,打开 Block 04"]
    B --> C{"故障在哪个字节?"}
    
    C -->|"POWER_FAULT7 (0x041)<br>或 12V EFUSE"| D["大概率主板供电或外设短路<br>(背板、Riser、风扇、电源背板)"]
    C -->|"POWER_FAULT6 (0x042)<br>3.3V / 5V"| E["主板电源芯片或板载器件短路<br>(更换主板)"]
    C -->|"POWER_FAULT4 / 5<br>(PVCCIN / PVCCIO / VCCSA)"| F["CPU 核心供电轨故障"]
    
    F --> G{"是否刚换过主板仍报相同 CPU 故障?"}
    G -->|"是 (换板前后均指向同一 CPU)"| H["100% 锁定 CPU 本身损坏或底座接触不良<br>(申请更换 CPU)"]
    G -->|"否 (首次报修)"| I["现场交叉测试方案"]
    
    I --> J["单 CPU 最小化开机测试"]
    I --> K["CPU 1 与 CPU 2 对调安装"]
    
    K --> L{"故障寄存器是否发生转移?"}
    L -->|"是 (故障随 CPU 跑到另一槽位)"| M["确定 CPU 芯片内部击穿短路<br>(换 CPU)"]
    L -->|"否 (故障始终停留在同一物理槽位)"| N["主板 VRM 调压电路损坏或底座针脚受损<br>(换主板)"]

关键经验法则

  1. 供电产生与消耗关系:
  • 主板 VRM 是电源发生器;
  • CPU 内部晶体管是电源消耗负载。
  • 当 CPU 内部核心或 I/O 平面发生雪崩击穿短路时,VRM 尝试输出电压会立即触发过流(OCP)或欠压(UVP),导致 Power Good 无法输出。
  1. 换板后故障不消失的定律:
  • 如果换了全新主板,FPGA 故障依旧报在相同的 CPU(如换板前报 CPU1 PVCCIN,换板后报 CPU1 PVCCIO),且关机源均为 0x80,可以绝对排除主板问题。因为两块主板同一供电电路同时损坏的概率极低,唯一不变的变量是沿用的旧 CPU。
  1. 物理 CPU 编号映射注意事项:
  • 在 FPGA 底层:CPU0 对应物理槽位 CPU 1(Boot CPU / Socket 0);CPU1 对应物理槽位 CPU 2(Socket 1)。
  • 现场在无法 100% 确认工具解码对应关系时,最快也是最保险的操作是拆除第二颗 CPU 进行单 CPU 最小化开机或两颗 CPU 对调验证。

6. 附录:Lenovo ThinkSystem 平台代号速查表

在 Block 00 的 0x000 寄存器可读出平台 Chip ID,用于确认机型:

Chip ID平台内部研发代号 (Codename)对应正式产品型号
0x44CyborgThinkSystem SR650 / SR550 / Halo 7100 OEM
0x41TaichiThinkSystem SR630 / SR530
0x56VenturaThinkSystem SN550(刀片服务器)
0x49PestoThinkSystem SD530(高密高节服务器)
0x48KirinThinkSystem SR850(四路服务器)
0x4AMarlonThinkSystem SR950(八路关键业务服务器)
1 次浏览 更新于 2026-11-04

同组文章Lenovo

查看本组全部 45 篇

没有找到想要的答案?

上传日志让 AI 帮你诊断,或者在控制台里直接向 AI 提问。