NanoPC-T2 以太网分析(1)

目的:友善之臂的NanoPC-T2的uboot是没有对网络进行初始化的,而在Linux kernel中进行初始化,现在要分析在Linux中对应的网卡驱动程序,移植到uboot上,以实现从远程使用tftp下载linux kernel镜像文件,而NFS网络文件系统是在linux kernel网卡进行初始化后才启用的,友善之臂提供的代码不会影响NFS的使用。


1、由于S5P4418 SOC自带了网络Mac,所以在外部只是挂载了PHY。在执行make nanopi2_linux_defconfig生成.config后,通过对.config进行分析后发现对于SOC MAC初始化的控制由CONFIG_NXPMAC_ETH这个宏进行控制(很奇怪为什么这里定义的是NXP MAC,难道是三星使用了NXP的IP核?),通过CONFIG_REALTEK_PHY这个宏对PHY初始化进行控制


在Linux kernel顶层目录执行 grep "CONFIG_NXPMAC_ETH" * "-nR"后,发现如下代码中用到了此宏:

arch/arm/plat-s5p4418/nanopi2/device.c:200:#if defined(CONFIG_NXPMAC_ETH)
arch/arm/plat-s5p4418/nanopi2/device.c:303:#endif /* CONFIG_NXPMAC_ETH */

arch/arm/plat-s5p4418/nanopi2/device.c:1742:#if defined(CONFIG_NXPMAC_ETH)


drivers/net/ethernet/nexell/nxpmac/Makefile:1:obj-$(CONFIG_NXPMAC_ETH) += nxpmac.o
drivers/net/ethernet/nexell/Makefile:5:obj-$(CONFIG_NXPMAC_ETH) += nxpmac/


在分析device.c以及nxpmac目录下的源代码发现大量的stmmac字符串,我怀疑这些代码都是从stm32系列单片机那里移植过来。


在device.c中向kernel注册以太网设备,注册了一些寄存器开始地址,以及中断号等;而具体的驱动是在nxpmac目录下。


nxpmac目录下的分析会在下一章节介绍



猜你喜欢

转载自blog.csdn.net/ma111000522/article/details/50868541
今日推荐