2. Layerscape SoC与网络子系统

Layerscape 系列是 NXP 面向网络与嵌入式基础设施的 64 位 ARM SoC 家族,其网络子系统的设计思路高度一致:由 SerDes 提供高速串行通道,经以太网控制器(EC / DPAA 前端)形成 MAC 层,再通过接口类型与外部 PHY 或光模块连接,最后由时钟与复位体系保证各域同步启动与稳定运行。理解这一条链路,是后续学习报文解析、分发与转发的前提。

典型型号与网络能力定位

LS1043A、LS1046A、LS1088A、LX2160A 是课程中最常出现的四个代表。它们共享 DPAA(Data Path Acceleration Architecture)思想,但规模与定位差异明显。

型号CPU 核心典型以太网能力SerDes 规模定位
LS1043A4×Cortex-A53最多 5 个 1G + 1 个 10G4 lane,最高 10G入门级边缘网关、工业路由
LS1046A4×Cortex-A72最多 8 个 1G/2.5G + 2 个 10G8 lane,最高 10G中端交换/安全网关
LS1088A8×Cortex-A53最多 8 个 1G/10G 组合8 lane,最高 10G多口汇聚、vCPE
LX2160A16×Cortex-A72最多 16 个 25G/100G 组合24 lane,最高 25G高端核心、5G UPF、数据中心

表中“最多”指芯片可配置上限,实际可用数量取决于 SerDes 通道分配、封装引脚与板级设计。例如 LS1046A 的 8 条 SerDes lane 可拆分为 8×1G、2×10G+4×1G 等多种组合,一旦在 RCW(Reset Configuration Word)中确定协议分配,就不能在运行时随意更改。

SerDes 与以太网 MAC 的关系

SerDes(Serializer/Deserializer)是物理层的高速串行收发器,负责并串转换、时钟恢复与均衡。它本身不解析以太网帧,只提供“管道”。以太网 MAC 控制器位于 SerDes 之上,负责帧的成帧/解帧、CRC 校验、流控、地址过滤,并通过 MII/GMII/XGMII 等内部接口与 SerDes 侧的 PCS/PMA 对接。

在 Layerscape 中,MAC 通常由 DPAA 的 EC(Ethernet Controller)或 mEMAC 实现,每个 MAC 对应一个网络接口(如 eth0、eth1)。MAC 与 SerDes 的绑定关系由设备树(Device Tree)描述,典型节点包含 phy-handle、phy-mode、fixed-link 等属性。例如:

ethernet@1 {
    compatible = "fsl,ls1046a-dpaa2-mac";
    reg = <0x1 0x0 0x10000>;
    phy-mode = "xgmii";
    phy-handle = <&phy0>;
    fixed-link {
        speed = <10000>;
        full-duplex;
    };
};

其中 phy-mode 决定 MAC 与 PHY 之间的接口类型,常见取值包括 rgmii、sgmii、xgmii、usxgmii、2500base-x 等。选择错误会导致链路无法 up 或出现大量 CRC 错误。

网络接口与 PHY 连接方式

Layerscape 的网络接口连接分为三类:

  • MAC 直连 PHY:最常见,MAC 通过 RGMII/SGMII 连接外部 PHY 芯片(如 Marvell 88E1512、TI DP83867),PHY 再驱动 RJ45 或光模块。此时需配置 MDIO 总线,由 MAC 通过 MDIO 读写 PHY 寄存器。
  • MAC 直连光模块/SFP:10G 及以上常用 SGMII+/XFI 直接连接 SFP+ 笼子,无独立 PHY,链路状态通过 I2C 读取 SFP EEPROM 获取。
  • MAC 背靠背或固定链路:芯片间互联或板内固定速率场景,使用 fixed-link 描述,不经过 PHY 协商。

MDIO 是管理接口,不是数据通道。它由 MDC 时钟和 MDIO 数据线组成,MAC 作为主设备,PHY 作为从设备,通过 5 位 PHY 地址和 5 位寄存器地址访问。设备树中通常这样描述:

mdio {
    #address-cells = <1>;
    #size-cells = <0>;
    phy0: ethernet-phy@0 {
        reg = <0>;
        reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
    };
};

PHY 复位通常由 GPIO 控制,复位时序要求:复位拉低至少 10ms,释放后等待 PHY 内部 PLL 锁定(典型 100ms 内),再开始 MDIO 访问。若忽略该时序,可能出现 PHY ID 读取为 0xffff 或链路不稳定。

时钟与复位体系

Layerscape 的时钟体系分为参考时钟、SerDes 时钟和内核时钟三部分。SerDes 参考时钟通常由外部晶振或时钟芯片提供,频率为 100MHz 或 125MHz,具体取决于协议:

  • 1G SGMII/RGMII:125MHz 参考
  • 10G XFI/SFI:156.25MHz 或 161.1328125MHz
  • 25G:156.25MHz 参考,经内部 PLL 倍频

参考时钟的抖动(jitter)直接影响 SerDes 误码率。工程上要求 RMS 抖动小于 1ps(10G 以上),因此需选用低抖动时钟源,并在 PCB 上做好差分走线阻抗控制(100Ω±10%)。

复位体系包括上电复位(POR)、系统复位、模块复位三级。POR 由外部复位芯片或 PMIC 产生,释放后芯片读取 RCW 配置字,确定 SerDes 协议、启动模式、时钟分频等。RCW 通常存储在 NOR Flash 或 SD 卡中,由硬件引脚选择启动源。模块复位则通过 CCSR 寄存器或设备树中的 resets 属性控制,例如:

resets = <&reset 0 2>;  /* 复位控制器 0,索引 2 */

调试时若网络接口不出现,应首先确认:RCW 中 SerDes 协议是否与板级一致、参考时钟是否起振、PHY 复位是否释放、MDIO 是否能读到 PHY ID。这四步是排查链路问题的基本顺序。

Layerscape 网络子系统信号链与时钟复位关系 参考时钟源 100/125/156.25MHz 复位源 POR / PMIC / GPIO RCW 配置字 SerDes 协议分配 Layerscape SoC SerDes 并串转换 / 均衡 PCS / PMA 以太网 MAC EC / mEMAC CRC / 流控 / 过滤 DPAA 数据路径加速 帧解析 / 分发 / 队列管理 MDIO 管理 MDC / MDIO 复位控制 模块复位寄存器 外部 PHY / SFP 88E1512 / SFP+ RJ45 / 光模块 参考时钟 复位释放 协议配置 XGMII SGMII/XFI 帧数据 MDIO 读写 PHY 寄存器 PHY 复位 排查顺序:① RCW 协议与板级一致 → ② 参考时钟起振 → ③ PHY 复位释放 → ④ MDIO 读到有效 PHY ID → ⑤ 链路 up 且无 CRC 错误 注:SerDes lane 分配在 RCW 中固定,运行时不可更改;MDIO 仅用于管理,不承载业务帧。

上图把 SerDes、MAC、DPAA、PHY 以及时钟复位的关系放在同一视图中。可以看到,参考时钟同时影响 SerDes 和 PHY,复位信号则分别作用于 SoC 内部模块和外部 PHY。MDIO 是跨域的慢速管理通道,与高速数据路径分离。实际调试时,若链路不通,按图中底部顺序逐级确认,通常能快速定位问题域。

在设备树中,phy-mode 必须与硬件实际连接一致。例如板级使用 SGMII 却写成 rgmii,内核会按 RGMII 时序驱动,导致链路无法建立。可通过 ethtool eth0 查看当前协商速率与双工模式,与预期对比。

最后需要强调,Layerscape 的网络子系统不是孤立模块,它与 DPAA 的帧队列、缓冲区管理、硬件解析器紧密耦合。SerDes 和 MAC 只解决“帧进出”的问题,而“帧往哪里去、如何加速”由 DPAA 完成。下一阶段学习报文分发时,应始终把本节建立的信号链作为底层参照。