RK3588 MAC控制器 IP核

​​stmmac-platform​​:是​​通用层​​,负责处理所有使用Synopsys DWMAC IP核的芯片的共性操作。
​​dwmac-rockchip​​:是​​平台特定层​​(也叫“胶水层”),负责处理Rockchip芯片独有的硬件特性。

stmmac-platform- 通用平台驱动

  • ​​角色​​:这是一个​​通用驱动​​,并非Rockchip独有。
  • ​​作用​​:它为所有集成Synopsys ​​DesignWare MAC (DWMAC)​​ IP核的SoC提供了一个标准化的平台适配层。它负责:
  • 解析设备树(Device Tree)中的​​通用属性​​,例如寄存器地址、中断号、时钟等。
  • 执行DWMAC IP核所需的​​通用初始化序列​​。
  • 提供标准的probe(探测)、remove(移除)等函数,作为连接真正核心驱动(stmmac)和具体平台驱动(如dwmac-rockchip)的桥梁。
  • ​​依赖关系​​:它直接依赖于最核心的 ​​stmmac(或stmmac-core)驱动​​,该驱动实现了MAC层的所有通用操作(数据包收发、DMA控制、设备管理等)。

​​可以把它想象成一个“通用适配器”​​,一头连接标准接口(stmmac-core),另一头准备连接各种具体的平台(如Rockchip、STMicroelectronics、Amlogic等)。

dwmac-rockchip - Rockchip平台驱动

  • 角色​​:这是一个​​平台特定驱动​​,是Rockchip为其自家SoC(如RK3288, RK3328, RK3399, RK3588等)编写的“胶水层”(Glue Layer)。
  • 作用​​:它负责处理Rockchip芯片上与​​集成和配置​​DWMAC IP核相关的所有​​独有硬件特性​​。具体包括:
  • ​​时钟管理​​:配置Rockchip特有的GRF(General Register File)寄存器,以设置正确的PHY接口时钟(如RGMII、RMII、SGMII等)。
  • ​​电源管理​​:控制以太网控制器的供电域。
  • ​​引脚复用​​:通过Rockchip的Pinctrl系统,将SoC的引脚设置为以太网功能。
  • 硬件初始化​​:执行只有Rockchip芯片才需要的特殊初始化步骤,例如调整信号驱动强度、延迟值等,以确保物理信号的稳定性。
  • 处理平台特定数据​​:解析设备树中Rockchip特有的属性(例如 phy-mode = "rgmii", clock_in_out = "input")。
  • 依赖关系​​:它依赖于 stmmac-platform驱动,并向其​​注册​​自己提供的平台特定操作。

可以把它想象成“Rockchip专用转接头”​​,它插在“通用适配器”(stmmac-platform)上,告诉通用层如何在Rockchip这块主板上正确工作。

总结

驱动名称 性质 职责 源代码文件 (通常位于)
​​dwmac-rockchip​ ​​平台专用​​ 处理Rockchip芯片特有的硬件设置 drivers/net/ethernet/stmicro/stmmac/dwmac-rockchip.c
​​stmmac-platform​​ ​​通用适配​ ​ 处理所有DWMAC IP核的通用初始化流程 drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
​​stmmac(core)​​ ​ ​核心功能​​ 实现MAC的所有通用操作和数据流处理 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

使用的RK3588芯片,其内部的千兆以太网控制器是通过授权集成​​Synopsys的DesignWare Ethernet MAC IP​​而来的。而Linux内核中的stmmac驱动,正是为操作这个IP核而编写的通用软件接口。

posted @ 2025-09-09 11:18  潇汀  阅读(33)  评论(1)    收藏  举报