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 | stmmac_main.o stmmac_mdio.o dwmac_lib.o mmc_core.o |
CONFIG_STMMAC_FULL=y 时额外链接:
1 | ring_mode.o chain_mode.o dwmac1000_core.o dwmac1000_dma.o |
可选:
CONFIG_STMMAC_ETHTOOL→stmmac_ethtool.oCONFIG_STMMAC_SELFTESTS→stmmac_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_device、napi_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.dtsi 中 gmac0/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 |
正在加载留言…