2. Broadcom PHY与SerDes架构总览

在开始任何寄存器写入、固件加载或SerDes参数扫描之前,必须先建立一张清晰的“调优对象地图”。Broadcom以太网PHY芯片虽然型号众多(如BCM84891、BCM84758、BCM54616等),但内部层次划分遵循IEEE 802.3体系与Broadcom私有扩展相结合的结构。理解这些层次以及它们之间的数据流、时钟流和控制流,是后续精准定位调优点的前提。

一、从MDI到系统接口的纵向分层

一颗典型的Broadcom多速率以太网PHY,从外部看是“模拟线路侧 + 数字系统侧”两大界面。内部自下而上可划分为PMD、PMA、PCS、MAC接口(如XGMII、USXGMII、SGMII)以及管理接口(MDIO/SPI)。

  • PMD(Physical Medium Dependent):负责与双绞线、光纤或背板直接交互。包含模拟前端AFE、驱动器、均衡器前端、回波抵消器(Echo Canceller)和ADC/DAC。对于1000BASE-T/10GBASE-T,PMD还承担线路编码前的模拟混合与自适应滤波。调优对象包括发送幅度、预加重、接收均衡增益、基线漂移补偿等。
  • PMA(Physical Medium Attachment):完成串并转换(SerDes)、时钟数据恢复(CDR)、发送均衡(TX FIR)、接收均衡(RX CTLE/DFE)、眼图监视。PMA是SerDes通道的核心,也是调优最密集的区域。
  • PCS(Physical Coding Sublayer):负责64B/66B或8B/10B编解码、加扰/解扰、对齐标记插入与检测、通道绑定与去绑定、链路状态机。PCS层调优通常涉及编码模式选择、通道绑定超时、对齐标记阈值等。
  • MAC接口层:提供XGMII、USXGMII、SGMII等标准接口,连接MAC或交换芯片。该层调优主要关注接口速率、位宽、时钟域和FIFO弹性缓冲深度。

二、SerDes通道的内部信号链

SerDes通道是PHY内部最值得深入理解的部分。以一条典型的10G/25G SerDes为例,发送方向信号链为:PCS数据 → 编码/加扰 → TX FIFO → 串行器 → TX FIR均衡器 → 驱动器 → 差分输出。接收方向为:差分输入 → RX CTLE → RX DFE → CDR → 采样器 → 解串器 → 对齐/解码 → PCS。

其中TX FIR通常提供3~5个抽头(pre-cursor、main、post-cursor),通过调整抽头系数改变输出波形;RX CTLE提供高频增益补偿;DFE则通过反馈消除后游标干扰。这些参数在Broadcom SDK中通常以serdes_tx_tap、rx_ctle_boost、dfe_tap等字段暴露,是后续章节反复操作的对象。

三、固件与寄存器分层

Broadcom PHY的固件(Firmware)运行在片内微控制器上,负责链路训练、自适应均衡、温度补偿和状态机调度。固件与寄存器之间存在明确的分层:

  • 顶层配置寄存器:如PHY_CTRL、PHY_STATUS,用于使能/复位、速率选择、链路状态读取。
  • PCS/PMA寄存器:如PCS_CTRL、PMA_CTRL,控制编码模式、通道绑定、SerDes复位。
  • SerDes微码寄存器:如TX_TAP_0、RX_CTLE、DFE_CTRL,直接作用于模拟/数字均衡器。
  • 固件邮箱寄存器:用于与片内固件通信,触发自适应算法或读取训练结果。

调优时通常遵循“先读状态、再改参数、后验证”的顺序。例如,先读取PMA_RX_SIGNAL_DETECT确认信号存在,再调整RX_CTLE,最后通过PMA_RX_EYE_MARGIN或误码率计数器判断效果。

四、调优对象地图

将上述层次与调优动作对应起来,可以形成一张对象地图:PMD层对应模拟参数(幅度、均衡、回波),PMA层对应SerDes数字参数(TX FIR、RX CTLE/DFE、CDR带宽),PCS层对应编码与绑定参数,固件层对应自适应策略与训练触发。后续章节将按这张地图逐层展开。

Broadcom以太网PHY内部层次与调优对象地图 MAC接口层 XGMII / USXGMII / SGMII PCS层 64B/66B · 加扰 · 对齐 · 绑定 PMA层(SerDes) CDR · TX FIR · RX CTLE/DFE PMD层 AFE · 驱动器 · 回波抵消 · ADC/DAC 固件层 链路训练 · 自适应 · 温度补偿 接口速率 · 位宽 · 时钟域 FIFO弹性缓冲深度 编码模式 · 加扰种子 对齐标记阈值 · 绑定超时 TX FIR抽头 · RX CTLE增益 DFE抽头 · CDR带宽 · 眼图监视 发送幅度 · 预加重 接收均衡增益 · 基线漂移补偿 自适应策略 · 训练触发 固件邮箱 · 状态机调度 SerDes通道信号链 发送方向 PCS数据 → 编码/加扰 TX FIFO → 串行器 TX FIR均衡器(3~5抽头) 驱动器 → 差分输出 接收方向 差分输入 → RX CTLE RX DFE(反馈消除后游标) CDR → 采样器 解串器 → 对齐/解码 → PCS 寄存器分层(自上而下访问) 顶层配置寄存器 PCS/PMA寄存器 SerDes微码寄存器 固件邮箱寄存器

五、调优前的状态读取示例

在真正修改任何参数之前,建议先通过MDIO读取关键状态寄存器,确认当前链路处于什么阶段。以下为Broadcom SDK风格的伪代码示例,用于读取PMA层信号检测与PCS层对齐状态:

// 读取PMA接收信号检测
uint16_t pma_status;
bcm_phy_read(unit, phy_addr, PMA_RX_SIGNAL_DETECT, &pma_status);
// bit[0]=1 表示接收端检测到有效信号

// 读取PCS对齐状态
uint16_t pcs_status;
bcm_phy_read(unit, phy_addr, PCS_ALIGN_STATUS, &pcs_status);
// bit[2:0] 表示各通道对齐标记锁定情况

// 读取SerDes眼图余量(示例寄存器)
uint16_t eye_margin;
bcm_phy_read(unit, phy_addr, PMA_RX_EYE_MARGIN, &eye_margin);
// 数值越大表示眼图张开度越好,通常>0x20视为健康
提示:不同Broadcom PHY型号的寄存器地址和位定义存在差异,实际调优时应以对应型号的寄存器手册(Register Specification)为准。上述寄存器名称仅为示意,用于说明读取顺序和判断逻辑。

六、建立对象地图的意义

有了这张对象地图,后续调优就不会“盲改寄存器”。例如,当链路无法建立时,可以按PMD→PMA→PCS→MAC的顺序逐层排查:先确认PMD侧是否有信号能量,再检查PMA的CDR是否锁定,然后看PCS对齐是否成功,最后确认MAC接口时钟是否稳定。每一层都有对应的状态寄存器和可调参数,调优动作与观察点一一对应。

下一阶段将进入具体的SerDes参数调优,包括TX FIR抽头扫描、RX CTLE/DFE联合优化以及眼图监视工具的使用。在此之前,请确保你已经能够准确说出当前所用PHY型号的PMD、PMA、PCS各层对应的寄存器组和关键状态位。