Exynos4412——网卡移植和NFS启动

CSDN仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。
本博文对应地址: https://hceng.cn/2017/10/31/Exynos4412——网卡移植和NFS启动/#more

为Exynos 4412移植好网卡驱动,并采用NFS挂载根文件系统启动。

玩Exynos4412的第一个目标是想弄下LCD驱动。
在开始流畅的写驱动前,前期的准备工作又多又繁琐。

上次移植好了内核,内核和根文件系统都是在RAM进行进行加载的,后面写驱动的时候,肯定不方便。
就以往的经验来看,uboot、kernel都应该在SD卡或者eMMC上,这样断电才不会丢失。根文件系统在调试驱动的时候应该是nfs挂载,调试完成了再烧写到SD卡或者eMMC上。

因此,写驱动前至少还要移植好SD卡驱动、网卡驱动。eMMC可暂时不管。

本次就先移植好网卡驱动,并尝试NFS挂载根文件系统。

1.硬件结构

JZ2440中的网卡芯片是DM9000,采用的是内存接口。

Tiny4412的网卡芯片是DM9621,采用的是USB接口。
而且该芯片并没有直接接在SOC的USB上,而是接在USB4604这个HUB芯片上。
USB4604通过HSIC接口(XuhostSTROBE1和XuhostDATA1)接在SOC上。
框架如下:

因此,需要重点关注USB4604和DM9621。查看这两块的原理图:

USB4604:

DM9621:

发现USB4604的一些功能并没有使用,如外接SPI/I2C设备等。除了数据端口,还能控制的就是复位引脚。

DM9621的驱动在本内核的drivers/net/usb/dm9601.c已经实现,但为了支持识别bootargs中的mac地址的功能,需要稍微修改dm9601.c,添加解析mac地址的功能,并且还需要将解析到的有效的mac地址设置到dm9621中,否则网络不能用。

USB4604的驱动在本内核的drivers/usb/misc/usb4604.c已经实现,但由于没有外接SPI/I2C,需要删除一些,可以参考drivers/usb/misc/usb3503.c或者博客里的代码。我直接用的博客里面的代码。

此外,还需在设备树使能将要用到的外设:hsi、ehci、otg等。

2.移植网卡驱动

目前需要修改的文件有:
(1)设备树文件:arch/arm/boot/dts/exynos4412-tiny4412.dts;
(2)DM9621驱动:drivers/net/usb/dm9601.c;
(3)USB4604驱动:drivers/usb/misc/usb4604.c;
(4)USB4604驱动头文件:include/linux/platform_data/usb4604.h(新建);
(5)设备树头文件:include/dt-bindings/usb4640/usb4604.h(新建);
(6)DM9621驱动加入内核;
(7)USB4604驱动加入内核;

2.1 修改设备树文件

主要添加了usb-hub的复位引脚信息和使能了一些外设。
{% codeblock lang:c%}
— /work/tools/linux-4.13.9/arch/arm/boot/dts/exynos4412-tiny4412.dts 2017-10-21 08:55:07.000000000 -0700
+++ /work/linux-4.13.9/arch/arm/boot/dts/exynos4412-tiny4412.dts 2017-10-30 02:34:10.363297869 -0700
@@ -14,6 +14,7 @@
/dts-v1/;
#include “exynos4412.dtsi”
#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/usb4604/usb4604.h>

/ {
model = “FriendlyARM TINY4412 board based on Exynos4412”;
@@ -21,6 +22,7 @@

chosen {
	stdout-path = &serial_0;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值