12 Legacy GMAC 与 XGMAC 扩展

12 Legacy GMAC 与 XGMAC 扩展

源码:GMAC3 系列、DWMAC5、DWXGMAC2、DWXLGMAC2
编译:依赖 CONFIG_STMMAC_FULL

1. 概述

除 RK3588 主要使用的 GMAC4 (Core 4.10+) 外,STMMAC 仍保留对老 IP 与高端 IP 的支持。这些实现通过 hwif.cstmmac_hw[] 表挂接,核心数据路径逻辑复用 stmmac_main.c

2. Legacy GMAC3 系列

2.1 DWMAC100 / DWMAC1000

文件 Core 说明
dwmac100_core.c 10/100 最老 IP,无 MTL
dwmac100_dma.c 简单 DMA
dwmac1000_core.c 10/100/1000 GMAC 经典 GMAC
dwmac1000_dma.c 单队列 DMA

版本寄存器:GMAC_VERSION(非 GMAC4_VERSION)。

平台标志:plat->has_gmac = true

2.2 描述符变体

文件 类型
norm_desc.c 普通 descriptor(ndesc_ops
enh_desc.c 增强 descriptor(enh_desc_ops

stmmac_dwmac1_quirks() 根据 plat->enh_desc 和 Core ≥ 3.50 选择,决定是否 extend_desc

2.3 Ring / Chain 模式

文件 说明
ring_mode.c 环形 desc3
chain_mode.c 链式 desc3

模块参数 chain_modehas_sun8i 强制 chain。
GMAC4 使用 dwmac4_ring_mode_ops(独立实现)。

3. DWMAC4 早期版本

Core ID ops 说明
0x40 dwmac4_ops 首个 GMAC4
0x41+ dwmac410_ops 4.10,RK3588 类

差异主要在 MTL 特性、filter 数量、TC 支持。

4. DWMAC5 扩展

文件dwmac5.cdwmac5.h

Core ID:0x50、0x51、0x52

新增能力:

特性 说明
FPE Frame Preemption(802.1Qbu),fpe_configure
Safety ECC/parity,safety_feat_*
EST Enhanced Scheduled Traffic(TAPRIO 硬件)
TBS Time-Based Scheduling descriptor
DCHE Descriptor cache / HW prefetch(≥ 5.20)

stmmac_main.c 中 FPE 使用独立 workqueue fpe_wq 处理握手。

5. DWXGMAC(2.5G / 10G)

文件

  • dwxgmac2_core.c
  • dwxgmac2_dma.c
  • dwxgmac2_descs.c
  • dwxgmac2.h

匹配has_xgmac=true,Synopsys ID 0x21,dev_id 0x76(DWXGMAC_ID)

特点:

  • 10G 速率掩码(mac_link.xgmii
  • 独立 MDIO 格式(MII_XGMAC_*
  • XPCS 集成常见
  • dwxgmac210_desc_ops 扩展描述符

6. DWXLGMAC(25G+)

文件dwxlgmac2.h + dwxlgmac2_setup()

匹配:min_id 0x20,dev_id 0x27(DWXLGMAC_ID)

  • mac_device_info.xlgmac = true
  • 支持 25G/40G/50G/100G 链路掩码(mac_link.xlgmii
  • 复用 XGMAC DMA/desc ops

7. 版本选择逻辑小结

plat->has_xgmac?读 GMAC4_VERSION + dev_idplat->has_gmac4?读 GMAC4_VERSION读 GMAC_VERSION legacystmmac_hw[] 匹配

8. RK3588 与 FULL 配置

Rockchip defconfig 通常:

1
2
3
CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_FULL=y
CONFIG_DWMAC_ROCKCHIP=y

FULL 使内核包含全部 IP 变体代码,运行时仍按实际 Core ID 只绑定一套 ops。
CONFIG_STMMAC_FULL=n,仅保留 GMAC4.10 最小集,减小镜像体积。

9. 何时阅读这些模块

场景 阅读
RK3588 千兆以太 04 + 11 文档即可
移植老 SoC(GMAC3) dwmac1000_* + norm/enh_desc
2.5G/10G Rockchip 新芯片 dwxgmac2_*
TAS/FPE 工业网络 dwmac5 + stmmac_tc

10. 相关文档

文章互动

阅读 --

留言

0 条留言

正在加载留言…