本文主要是介绍OK6410编译U_BOOT,使之支持DM9000AE(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
步骤如下:
#tar zxf uboot1.26_FORLINX_6410.tgz –C /home/FOLINX_SHARE/uboot1.1.6_256M 解压,解压到/home/FOLINX_SHARE/uboot1.1.6_256M目录下
#cd /home/FOLINX_SHARE/uboot1.1.6_256M 进入/home/FOLINX_SHARE/uboot1.1.6_256M目录
移植的原因:
由于OK6410所用的网卡是DM9000AE的,而飞凌提供的U_BOOT的网卡驱动是CS8900,所以在U_BOOT中要改。
修改的方法参见:http://bbs.witech.com.cn/thread-4704-1-1.html
ok6410 u-boot dm9000 驱动补丁 patch
解压ok6410 或 ok6410b 对应的u-boot源代码
下载附件,覆盖u-boot源文件里面的同名文件,然后
打开文件 include/configs/smdk6410.h
找到
#ifdef CONFIG_DRIVER_SMC911X
#undef CONFIG_DRIVER_CS8900
#define CONFIG_DRIVER_SMC911X_BASE 0x18800300
#else
#define CONFIG_DRIVER_CS8900 0 /* wehave a CS8900 on-board */
#define CS8900_BASE 0x18800300
#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */
#endif
替换为
#define CONFIG_DRIVER_DM9000AE 1
#define CONFIG_DRIVER_DM9000 1
#define CONFIG_DM9000_BASE (0x18000000)
#define DM9000_IO (CONFIG_DM9000_BASE)
#define DM9000_DATA (CONFIG_DM9000_BASE+0x4)
//#define CONFIG_DM9000_DEBUG 1
#define CONFIG_DM9000_USE_16BIT 1
make smdk6410_config 配置
make 编译,把编好的u-boot.bin写到开发板里面就可以用网卡了
附件:D:\嵌入式学习资料\ARM11 u-boot-dm9000-patch
u_boot.bin下载到开发板的方法:
参见OK6410-A开发板LINUX2.6.28用户手册 制作用于一键烧写LINUX的SD卡的方法。
OK6410编译U_BOOT,使之支持DM9000AE 并支持NFS(二)
由于项目中的需要,之前使用的linux2.6.28的OK6410交叉环境破坏了,重新烧写linux2.6.36,使之支持QT4.7的。
后来要修改回来,使之支持NFS挂载,那么就要修改u_boot.bin,使之支持DM9000AE的。按照以前的方法,出现如下错误:
进入linux系统(2.6.36)以后发现:一大片s3c-nand: ECC uncorrectable error detected 提示。
请问:原因是什么? 如何解决?
s3c-nand: ECC uncorrectable error detected
s3c-nand: ECC uncorrectable error detected
s3c-nand: ECC uncorrectable error detected
s3c-nand: ECC uncorrectable error detected
····
参考网上的解决:
部分用户第一次烧写linux && Android系统的时候会遇到s3c-nand: ECC uncorrectable error detected这样的问题,出现这样的问题的时候请按照下面的步骤解决:
1.uboot命令行中运行下面命令:
nand erase 0
该命令将删除整块nandflash。
2.使用SD启动的uboot重新烧写各个镜像文件。
请按照下面的步骤调试:
1.使用uboot下使用nand erase 0擦除flash。
2.使用SD启动的uboot烧写nand启动的uboot。
3.使用nand启动的uboot烧写linux内核与cramfs。
我编译的Uboot是飞凌linux2.6.26中自的,在linux2.6.36当中,无法编译成功,开发环境为ubuntu10.04,交叉工具链为gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
编译好后,利用SD一键烧写,可以了··················
u-boot.bin 是自己修改过的,支持DM9000
zImage和cramfs的飞凌自带的
为了能够挂载NFS和根文件系统。在uboot状态下修改参数如下:
setenv ipaddr 192.168.0.50
setenv serverip 192.168.0.47
setenv gatewayip 192.168.0.1
setenv bootdelay 3
setenv bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.0.47:/sheng/filesystem,proto=tcp,nfsvers=3,nolock ip=192.168.0.50
此外,以上操作,无关内核的事,故不用修改内核的任何东西
这篇关于OK6410编译U_BOOT,使之支持DM9000AE(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!