成功移植U-BOOT之 - - DM9000网卡驱动移植

发布时间:2010-12-15 15:43:01   来源:文档文库   
字号:

今天成功的在天嵌TQ2440的板子上完成了U-BOOT -DM9000网卡驱动的移植!

 

   实验使用的是国嵌实验4-2-4修改过的源码(u-boot-basic.tar.gz

   废话不说,记笔记:

 

mkdir 4-2-4

cp u-boot-basic.tar.gz 4-2-4/

cd 4-2-4

tar zxvf u-boot-basic.tar.gz

 

 

1、修改U-BOOT源码顶层目录的Makefile

 

cd 4-2-4/u-boot-2008.10/

vim Makefile

 

/*参考SMDK2410,添加新的配置选项*/

TQ2440_config : unconfig

    @./mkconfig $(@:_config=) arm arm920t TQ2440 NULL s3c24x0

 

保存退出

 

2、配置TQ2440.h

 

cd 4-2-4/u-boot-2008.10/

cd include/configs/

cp mini2440.h TQ2440.h

 

vim TQ2440.h

 

……

/*修改开发板型号*/

#define CONFIG_ARM920T 1   //保持不变

#define CONFIG_S3C2440 1   //保持不变

#define CONFIG_TQ2440  1   //修改原来的#define CONFIG_mini2440

……

/*修改网卡选项,屏蔽掉CS8900的部分*/

//#define CONFIG_DRIVER_CS8900 1

//#define CS8900_BASE 0x19000300

//#define CS8900_BUS16 1

 

/*添加DM9000的支持*/

#define CONFIG_DRIVER_DM9000 1

#define CONFIG_DM9000_BASE 0x20000300 //DM9000芯片手册

#define DM9000_IO CONFIG_DM9000_BASE  //查天嵌TQ2440电路原理图

#define DM9000_DATA (CONFIG_DM9000_BASE+4)

#define CONFIG_DM9000_USE_16BIT

 

……

……

/*添加U-BOOT支持的命令,特别是PING命令*/

#include  

#define CONFIG_CMD_CACHE

#define CONFIG_CMD_DATE

#define CONFIG_CMD_ELF

#define CONFIG_CMD_PING   //添加PING命令支持

 

……

/*修改环境变量*/

#define CONFIG_ETHADDDR 00:01:02:03:04:05

#define CONFIG_NETMASK 255.255.255.0

#define CONFIG_IPADDR 192.168.0.61

#define CONFIG_SERVERIP 192.168.0.60

 

………

/*去掉上一实验注释掉的BOOTCOMMAND*/

#define CONFIG_BOOTCOMMAND "tftp;bootm"

 

……

/*修改提示符*/

#define CFG_PROMPT "TQ2440"  //把原来的mini240改为TQ2440

 

……

修改完成,保存退出

 

 

3、在board目录中创建属于TQ2440开发板的目录,并添加相应的文件

 

mkdir -p board/TQ2440

cp -a board/mini2440/* board/TQ2440

 

cd board/TQ2440

mv mini2440 TQ2440   //修改为TQ2440相应的文件

 

保存退出

 

 

/*修改/board/TQ2440目录下的Makefile*/

 

……

  LIB = $(obj)lib$(BOARD).a

 

COBJS   := TQ2440.o flash.o  //mini2440改为TQ2440

SOBJS   := lowlevel_init.o

……

 

保存退出

ls

可以看到TQ2440目录下有config.mk, flash.c,  lowlevel_init.S, Makefile, TQ2440.c, u-boot.lds 6个文件。

 

4、修改cpu/arm920t/s3c24x0/interrups.c

 

vim cpu/arm920t/s3c24x0/interrups.c

-

182行指令处添加TQ2440开发板的支持:

#if defined(CONFIG_SMDK2400) || defined (CONFIG_TRAB)

     tbclk = timer_load_val * 100;

#elif defined(CONFIG_SBC2410X) || \

      defined(CONFIG_SMDK2410) || \

      defined(CONFIG_MINI2440) || \

      defined(CONFIG_TQ2440) || \

      defined(CONFIG_VCMA9) || \

    tbclk = CFG_HZ;

  ……

 

保存退出

 

 

5、修改完成,开始编译

 

make TQ2440_config

 

make CROSS_COMPILE=arm-linux-

 

把编译后在顶层目录生成的u-boot.bin通过SAMBA拷出来,通过JTAGJLINK烧到开发板!

 

---------------

---------------

链接好串口,设置好波特率,端口等参数,启动开发板

 

设置MAC地址,IP地址等参数

使用Ping命令测试,ping 192.168.0.60 成功Ping到虚拟机。

 

 

扩展测试:

通过tftp下载移植好的支持NFS根文件系统的内核uImage-nfs

tftp 30000000 uImage-nfs

 

 

 

使用bootm命令启动系统

bootm 30000000

 

成功启动系统,如下图:

 

 

——————————————————————————————

完善:

1)网卡的MAC地址与你设置的不一样

2)会有could not establish link 的提示,而且在显示MAC地址后很久后才响应。

 

参考

http://blog.chinaunix.net/u1/34474/showart.php?id=401078

 

修正BUG(修改/drivers/dm9000.c文件)

-------------------------------

具体修改如下:

 

vim dirivers/net/dm9000x.c

修改如下,屏蔽掉红色字体部分

 

eth_init(bd_t * bd)

{

    ......



   DM9000_iow(DM9000_IMR, IMR_PAR);



     #if 0

     i = 0;

     while (!(phy_read(1) & 0x20)) { /* autonegation complete bit */

         udelay(1000);

         i++;

         if (i == 10000) {

             printf("could not establish link\n");

             return 0;

         }

     }



    /* see what we've got */

     lnk = phy_read(17) >> 12;

     printf("operating at ");

     switch (lnk) {

     case 1:

         printf("10M half duplex ");

        break;

     case 2:

         printf("10M full duplex ");

        break;

case 4:

         printf("100M half duplex ");

     break;

     case 8:

         printf("100M full duplex ");

         break;

     default:

         printf("unknown: %d ", lnk);

         break;

     }

     printf("mode\n");

     

     #endif

 

    return 0;

 }

 

重新编译,再烧写,问题解除。

本文来源:https://www.2haoxitong.net/k/doc/04715720af45b307e871971f.html

《成功移植U-BOOT之 - - DM9000网卡驱动移植.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式