对于linux 以太网来讲,硬件结构如下:

一般由3部分组成,soc内部的mac控制器,对于不同的soc采用的ip是不一样的,如国产黑芝麻bsta1000b平台,采用的是gmac,nvidia的jetson orin使用的是ether_linux,qcom sa515m,采用的是stmmac,现在以 nvidia的jetson orin为例,来分析 soc内部的mac控制器驱动的大体实现:
文件:"nvidia/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c"
首先,mac控制器驱动,一般来讲基本上都是platform_driver
在设备树种,对mac控制器进行相关的属性设置:
jetson orin上 dts文件如下:
hardware/nvidia/soc/t23x/kernel-dts/tegra234-soc/tegra234-soc-mgbe.dtsi +52

在gmac驱动中,会匹配这两种的 设备:
本文主要分析了NVIDIA Jetson Orin平台上以太网驱动ether_linux.c的实现。针对不同SOC,MAC控制器的IP可能不同,例如Jetson Orin采用ether_linux,而其他平台如黑芝麻BSTA1000B使用gmac,Qcom SA515M则使用stmmac。通过查看jetson orin的dts文件,了解MAC控制器在设备树中的配置,并探讨了驱动的初始化过程及其支持的PHY模式。
订阅专栏 解锁全文

1万+

被折叠的 条评论
为什么被折叠?



