对于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