基于smart210内核移植(二)DM9000和NFS
dm9000和nfs的移植
标题本篇接着进行dm9000和nfs的移植
在 arch/arm/mach-s5pv210/mach-smdkv210.c 中已经配置了 DM9000 的平台设备相关的数据,我们只
需要修改就行了。
在 arch/arm/mach-s5pv210/include/mach/map.h 中只定义了 S5PV210_PA_SROM_BANK5 的基地址,
smart210 开发板的 DM9000 接在 BANK1,因此我们需要在这个文件中定义 S5PV210_PA_SROM_BANK1 的基
地址
然后修改 arch/arm/mach-s5pv210/mach-smdkv210.c 中的 DM9000 配置
注意:smart210 开发板的 DM9000 使用外部中断7
另外,在 smdkv210_machine_init 函数中调用了
smdkv210_dm9000_init 函数,这个函数进行 SROM 控制器的初始化,由于我在 u-boot 中已经初始化
了,所以把它屏蔽掉
然后配置内核支持网络,由于现在还没移植 NAND FLASH,因此只有使用网络文件系统来启动开发
板,所以需要配置内核支持网络文件系统(NFS)
[email protected]:~/smart210/linux-3.10.46$ make menuconfig
[] Networking support —>
Networking options —>
<> Packet socket
<> Packet: sockets monitoring interface
<> Unix domain sockets
<> UNIX: socket monitoring interface
[] TCP/IP networking
[] IP: multicasting
[] IP: advanced router
[] IP: kernel level autoconfiguration
[] IP: DHCP support
[] IP: BOOTP support
[] IP: RARP support
Device Drivers —>
[] Network device support —>
[] Ethernet driver support (NEW) —>
<*> DM9000 support
将其他的设备全部去掉,只保留 DM9000
File systems —>
[] Network File Systems (NEW) —>
<> NFS client support
[*] Root file system on NFS
执行 make uImage 编译,再次生成 uImage
由于我已经制作过了文件系统,所以当我再次将新生成的uImage通过tftp服务器下载到板子的内存,并启动发现启动成功
发现有个小问题: dm9000 dm9000: read wrong id 0x01010101
其实这是一个小错误,并不影响启动,这是 dm9000 驱动在读取 ID 时的错误,驱动中会连续读取 8 次,这里第一次读取错误,我们可以在
第一次读取之前加上一个延时,就可以解决这个错误。
通过find命令找到dm9000.c文件
打开文件并加上一个延时
启动成功