NanoPC-T2 以太网分析(1)
2016-03-13 00:14
501 查看
目的:友善之臂的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目录下的分析会在下一章节介绍
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目录下的分析会在下一章节介绍
相关文章推荐
- OPENCV图像处理基础(四)用滑动条做一个按钮
- Ubuntu中如何将Tomcat端口改为80
- 关闭Apache显示文件列表
- apache文件服务安装,脚本下载
- Centos7安装Samba 共享文件夹
- Sping控制反转(IOC)和面向切面(AOP)
- lamp环境搭建
- centos chrome flash
- 如何成为一名java架构师
- Linux 下 netns 间设备互联
- 转载centos6.5安装gitlab
- There is no getter for property named 'username'
- 14.Linux之搜索命令
- Corosync+Pacemaker+Isici实现MySQL的高可用
- Nginx(一):基础与配置文件简介
- MyEclipse下配置Tomcat7
- 6.Linux的文件权限与目录配置
- linux高级IO之readv/writev
- 基于wakeup_source的linux内核睡眠机制
- A little bottlepy example with uwsgi and nginx