STMMAC 源码目录与模块索引

STMMAC 源码目录与模块索引

源码根目录:rk3588/kernel-6.1/drivers/net/ethernet/stmicro/stmmac/

1. 编译产物(Makefile)

内核模块 对象文件 Kconfig
stmmac.ko 核心驱动 CONFIG_STMMAC_ETH
stmmac-platform.ko 平台总线框架 CONFIG_STMMAC_PLATFORM
dwmac-rockchip.ko Rockchip glue CONFIG_DWMAC_ROCKCHIP
stmmac-pci.ko PCI 入口 CONFIG_STMMAC_PCI

stmmac.ko 组成

1
2
3
stmmac_main.o stmmac_mdio.o dwmac_lib.o mmc_core.o
stmmac_hwtstamp.o stmmac_ptp.o dwmac4_descs.o dwmac4_dma.o
dwmac4_lib.o dwmac4_core.o hwif.o stmmac_tc.o stmmac_xdp.o

CONFIG_STMMAC_FULL=y 时额外链接:

1
2
3
ring_mode.o chain_mode.o dwmac1000_core.o dwmac1000_dma.o
dwmac100_core.o dwmac100_dma.o enh_desc.o norm_desc.o
dwmac5.o dwxgmac2_core.o dwxgmac2_dma.o dwxgmac2_descs.o

可选:

  • CONFIG_STMMAC_ETHTOOLstmmac_ethtool.o
  • CONFIG_STMMAC_SELFTESTSstmmac_selftests.o

2. 文件分类索引

2.1 核心与公共头文件

文件 行数级 职责
stmmac_main.c ~8360 probe/open/stop/xmit/rx/NAPI/IRQ/phylink/EEE
stmmac.h ~410 stmmac_priv、队列结构、对外 API
common.h ~580 统计结构、mac_device_info、版本常量
hwif.h / hwif.c ~640 / ~350 ops 定义与 HW 版本匹配
descs.h / descs_com.h 描述符位域定义

2.2 GMAC4(RK3588 主要路径)

文件 职责
dwmac4.h GMAC4 寄存器偏移与常量
dwmac4_core.c MAC 层:过滤、VLAN、RSS、MTL 队列
dwmac4_dma.c DMA 通道启停、IRQ、ring 指针
dwmac4_descs.c GMAC4 描述符 prepare/status
dwmac4_lib.c 公共辅助函数
dwmac5.c / dwmac5.h DWMAC 5.x 扩展(FPE、safety 等)

2.3 Legacy GMAC / XGMAC

文件 适用 Core
dwmac100_core.c / dwmac100_dma.c DWMAC100
dwmac1000_core.c / dwmac1000_dma.c DWMAC1000 (GMAC)
norm_desc.c / enh_desc.c GMAC3 普通/增强描述符
dwxgmac2_core.c / dwxgmac2_dma.c / dwxgmac2_descs.c DWXGMAC 2.5G/10G
dwxlgmac2.h + setup DWXLGMAC 25G+

2.4 Ring 模式

文件 职责
ring_mode.c 环形 descriptor 链表
chain_mode.c 链式 descriptor(sun8i 等强制)
dwmac_lib.c 跨版本 DMA 公共例程

2.5 功能模块

文件 职责
stmmac_mdio.c MDIO/MII 总线、Clause 45
stmmac_ptp.c ptp_clock 注册、频率/时间调整
stmmac_hwtstamp.c ioctl 时间戳配置、PTP 寄存器 ops
stmmac_ptp.h PTP 寄存器操作表
stmmac_tc.c TC offload(CBS/TAPRIO/flower)
stmmac_xdp.c / stmmac_xdp.h XDP/AF_XDP 控制面
stmmac_ethtool.c ethtool 全量接口
mmc_core.c / mmc.h MMC 硬件计数器读写
stmmac_selftests.c ethtool 自测
stmmac_uio.c UIO 接口(DPDK)
stmmac_pcs.h PCS 内联辅助
altr_tse_pcs.c Altera PCS

2.6 Platform Glue

文件 SoC/平台
stmmac_platform.c 通用 DT 解析、stmmac_probe_config_dt
stmmac_platform.h 平台 API
dwmac-rk.c Rockchip 全系列含 RK3588
dwmac-rk-tool.c RK 环回测试 sysfs
dwmac-generic.c 无特殊逻辑通用平台
dwmac-imx.c NXP i.MX
dwmac-qcom-ethqos.c Qualcomm
dwmac-intel.c / dwmac-intel-plat.c Intel
dwmac-stm32.c / dwmac-sti.c ST
dwmac-meson.c / dwmac-sunxi.c 其它 SoC
stmmac_pci.c PCI 探测

3. 外部头文件依赖

头文件 用途
include/linux/stmmac.h plat_stmmacenet_data、DMA/队列配置
include/linux/netdevice.h net_devicenapi_struct
include/linux/phylink.h 链路抽象
include/linux/ptp_clock_kernel.h PTP 时钟
include/net/page_pool.h RX 页池
include/net/xdp_sock_drv.h AF_XDP

4. RK3588 相关文件清单

类型 路径
驱动 dwmac-rk.c, dwmac-rk-tool.c
Kconfig CONFIG_DWMAC_ROCKCHIP, CONFIG_DWMAC_ROCKCHIP_TOOL
DTS rk3588.dtsigmac0/gmac1 节点
公共 API include/linux/stmmac.h

5. 关键符号速查

符号 文件
stmmac_dvr_probe stmmac_main.c
stmmac_hwif_init hwif.c
stmmac_hw[] hwif.c(版本表)
stmmac_netdev_ops stmmac_main.c
dwmac4_ops / dwmac410_dma_ops dwmac4_core.c / dwmac4_dma.c
rk_gmac_probe dwmac-rk.c
rk3588_ops dwmac-rk.c
stmmac_set_ethtool_ops stmmac_ethtool.c

文章互动

阅读 --

留言

0 条留言

正在加载留言…