Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4513333
  • 博文数量: 252
  • 博客积分: 5347
  • 博客等级: 大校
  • 技术积分: 13838
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-30 10:13
文章分类
文章存档

2022年(12)

2017年(11)

2016年(7)

2015年(14)

2014年(20)

2012年(9)

2011年(20)

2010年(153)

2009年(6)

分类: 嵌入式

2010-04-02 22:09:18

     这篇文章主要是写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,说明网卡已经可以被识别出来了。
 
阅读(3495) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2011-06-01 18:40:35

DM9000EP不支持AUtoMDIX, 如果用的是DM9000AEP,1 是否应用了AUtoMDIX功能,2 是否片子有问题? 提供嵌入式以太网,专业支持:ENC28J60 DM9000AEP ,DM9000CEP, DM9000EP,DM9010EP,DM9000CIEP,DM9161EP, DM9161AEP, DM9161BIEP,DM9161CEP,DM9008AEP DM9620EP,DM9621NP 等产品以及匹配网络滤波器,集成网络变压器RJ45 PH163539,HR911105A HR911103A,HR901170A, J00-0065NL ,RTL8201CP ENC28J60 SSOP28 联系扣扣 1547311723

chinaunix网友2011-04-26 09:33:41

楼主,我想请问一下,我按照楼主的方法修改代码,把开发板和PC机直接用网线相连,PING不通;但是放到路由器上就可以PING通了,想请问一下楼主是用的什么方式?

chinaunix网友2011-04-26 09:33:37

楼主,我想请问一下,我按照楼主的方法修改代码,把开发板和PC机直接用网线相连,PING不通;但是放到路由器上就可以PING通了,想请问一下楼主是用的什么方式?