这篇文章主要是写DM9000APE网卡的移植。对于U-Boot2009.08这个版本,现在已经支持DM9000的驱动,不过在配置的时候,默认的是配置的CS8900的网卡,所以还是需要稍微的修改就可以。首先在/include/configs/mini2440.h文件中,添加关于DM9000网卡的配置变量。
/* * Hardware drivers */ //注释掉原来对CS8900网卡的支持, //#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */
//#define CS8900_BASE 0x19000300
//#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ // 配置对DM9000网卡的支持,其中, CONFIG_DM9000_BASE宏是最重要的,因为这个就网卡的地址,不同的网卡有不同的地址,DM9000访问的基址为0x20000000,之所以再偏移0x300是由它的特性决定的。一般情况下,只有配正确这个地址,网卡的移植就会很顺利。mini2440的BACK4连接的外设就是网卡DM9000,BANK4的基地址就是0x20000000和0x20000004
#define CONFIG_DRIVER_DM9000 1 #define CONFIG_NET_MULTI 1 #define CONFIG_DM9000_NO_SROM 1 #define CONFIG_DM9000_BASE 0x20000300 //网卡片选地址
#define DM9000_DATA (CONFIG_DM9000_BASE + 4) #define DM9000_IO CONFIG_DM9000_BASE #define CONFIG_DM9000_USE_16BIT #undef CONFIG_DM9000_DEBUG 配置一下IP 地址
#define CONFIG_BOOTDELAY 3 /*#define CONFIG_BOOTARGS "root=ramfs devfs=mount console=ttySA0,9600" */ #define CONFIG_ETHADDR 08:00:3e:26:0a:5b #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_IPADDR 10.27.10.29 #define CONFIG_SERVERIP 10.27.10.25 #define CONFIG_GATEWAYIP 10.27.10.1 #define CONFIG_OVERWRITE_ETHADDR_ONCE /*#define CONFIG_BOOTFILE "elinos-lart" */ /*#define CONFIG_BOOTCOMMAND "tftp; bootm" */
//给u-boot加上ping命令,
#include <config_cmd_default.h>
#define CONFIG_CMD_CACHE #define CONFIG_CMD_DATE #define CONFIG_CMD_ELF #define CONFIG_CMD_NAND #define COFNIG_CMD_PING
|
添加DM9000网卡的初始话代码,在文件/board/frank/mini2440/mini2440.c中添加。
#ifdef CONFIG_DRIVER_DM9000 int board_eth_init(bd_t *bis) { return dm9000_initialize(bis); } #endif
|
到此,网卡的移植就结束了,重新编译一下,下载到NandFlash中,就可以看到有一个变化,就是看到了Net:dm9000,说明网卡已经可以被识别出来了。