UBOOT移植.doc_第1页
UBOOT移植.doc_第2页
UBOOT移植.doc_第3页
UBOOT移植.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

移植u-boot-2011.03到S3C2440(utu2440)的方法与步骤#.移植和配置CS8900网卡u-boot Add comments 三 172012 开发环境:主机:Window XP SP2;linux:VMware7.01+ubuntu9.10;目标板:扬创utu2440-F开发板交叉编译器:arm-linux-gcc4.3.2(一开始用的是编译内核的版本arm-linux-gcc3.4.1,但出现了软浮点问题,于是换成了现在用的版本,当然本人编译内核的时候还是用3.4.1版本)。摘要:按照上一篇(方法与步骤2)的操作后,u-boot-2011.03可通过tftp下载到SDRAM中跑起来了,并可看到熟悉的启动信息。由于后续的移植和调试很大程度上都依赖于网络,因此,在u-boot可以初步启动后,就得移植网卡驱动了,使网络可以用起来。utu2440-F板载的网卡是CS8900A。在 S3C24XX系列中,u-boot默认对CS8900网卡进行配置使用,只是在个别地方要根据开发板的具体网卡片选进行设置,就可以对S3C24XX系 列中CS8900网卡的支持使用。所以需要修改的地方不多。由于数据通过总线传送,所以要注意地址空间的配置和总线的配置。. CS8900A网卡驱动配置1)修改u-boot板级配置文件/include/configs/reille2440.h:在大概103行左右,修改和配置好网络配置,如下:1234#define CONFIG_ETHADDR 00:0c:20:02:0a:5b#define CONFIG_NETMASK #define CONFIG_IPADDR 68#define CONFIG_SERVERIP 25CONFIG_ETHADDR :是网卡的MAC地址;CONFIG_IPADDR :是板的IP地址;CONFIG_SERVERIP:TFTP服务器的IP地址。2)配置CS8900基地址:同样在板级配置文件reille2440.h中,找到关于CS8900网卡的配置,如下:1234#define CONFIG_NET_MULTI#define CONFIG_CS8900 /* we have a CS8900 on-board */#define CONFIG_CS8900_BASE 0x19000300#define CONFIG_CS8900_BUS16 /* the Linux driver does accesses as shorts */这里注意CONFIG_CS8900_BASE的值。在utu2440-F板中,CS8900A的SA0-SA19连接到 S3C2440的ADDR0-ADDR19位置(但仅SA0-SA15被真正使用),使用的片选为nGCS3,即CS8900A被映射到S3C2440的 BANK3,起始地址为018000000;而在reille2440.h的配置文件中看到CS8900A的基地址为019000300.,这与具体 的开发板电路连接有关,这里以utu2440-F板为例说明:CS8900被连接到S3C2440 nGCS3组,nGCS3的起始地址为018000000,addr24被用来控制I/O或者MEM模式的读写操作,当addr24为1时,可以确保 CS8900 I/O模式有效,并且MEM模式有效。所以此处addr24=1表示我们的u-boot中的CS8900可以I/O模式读写。所以会有019000000如下:0001 1001 (addr24=1) 0000 0000 0000 0000 0000 0000CS8900A(在datasheet中可以查找到):上电后,CS8900的基地址默认是300H。因此CS8900A的基地址为019000300。3)添加网络ping命令支持:u-boot中默认是没有配置ping命令的,因此需要用户在移植u-boot时自已配置网络ping命令的支持。同样在u-boot板级配置文件中,在大概90100行之间,有关命令支持的配置,如下:/* Command line configuration.*/#include#define CONFIG_CMD_CACHE#define CONFIG_CMD_DATE#define CONFIG_CMD_ELF/* add command by guoyirong 2011.06.18 */#define CONFIG_CMD_PING/*/#include这个文件包含了u-boot默认的标准的必须的命令配置支持。4)屏蔽“raise:signal # 8 caught”打印信息如果不进行操作,用ping命令ping IP地址时,会在串口中出现大量的“raise:signal # 8 caught”打印信息。找到打印该语句的地方,arch/arm/lib/eabi_compat.c,如下:int raise (int signum)/* del by guoyirong 2011.6.19printf(“raise: Signal # %d caught/n”, signum);*/return 0;屏蔽后对运行没有影响。5)重新编译并测试网络重新编译u-boot,然后下载到内存中运行,并用ping命令测试网卡。使用ping命令ping 1的IP地址,一直出现如下提示而不动:reille2440# ping Using CS8900-0 deviceping 确实就是这样,停在这里不动;但如果ping其它IP地址就可以,如ping 25,而且tftp下载内核可以成功。如下所示:reille2440# ping 25Using CS8900-0 devicehost 25 is alivereille2440# tftp 30008000 uImageUsing CS8900-0 deviceTFTP from server 192.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论