uboot1.3.2网卡DM9000AE

smdk2410.h添加
#define CONFIG_ETHADDR 08:00:3e:26:0a:5b
//因为板子没有使用EEPROM所以使用了自己设置的MAC
#define CFG_LOAD_ADDR  0x30008000 /* default load address */
//这是加载内核的地址
//我修改的
/*
 * Hardware drivers
 */
//#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 */
#define CONFIG_DRIVER_DM9000 1
#define CONFIG_DM9000_BASE 0x10000000
//#define CONFIG_DM9000_NO_SROM 1
#define DM9000_IO CONFIG_DM9000_BASE
#define DM9000_DATA (CONFIG_DM9000_BASE+2)
#define DM9000_USE_16BIT
//#define CONFIG_DM9000_DEBUG
//我修改的end

CONFIG_DM9000_BASE为网卡的index口地址


board.c
添加
#ifdef CONFIG_DRIVER_DM9000
 extern int eth_init(bd_t *bd);
#endif
在start_armboot (void)函数中添加
#ifdef CONFIG_DRIVER_DM9000
 eth_init(gd->bd);
#endif

net/eth.c中添加
 dm9000_initialize(bis);
初始化网卡

config_cmd_default.h添加
#define CONFIG_CMD_PING  //添加PING命令


在dm9000x.c中
这是从uboot2010.06版本中直接拷贝过来的驱动,包括dm9000x.h文件
但是接口必须修改
修改了一大堆的内容。
在int dm9000_initialize(bd_t *bis)
{
 struct eth_device *dev = &(dm9000_info.netdev);
  
 /* Load MAC address from EEPROM */
 dm9000_get_enetaddr(dev);

 

 //dev->init = dm9000_init;
 //dev->halt = dm9000_halt;
 //dev->send = dm9000_send;
 //dev->recv = dm9000_rx;
 //sprintf(dev->name, "dm9000");

 //eth_register(dev);

 return 0;
}
并修改dm9000_init  dm9000_halt  dm9000_send dm9000_rx;的接口为net.h中定义的形式
在dm9000_init
主要添加了
 char *s,*e;
 s = getenv ("ethaddr"); 
 for (i = 0; i < 6; ++i) {
  bd->bi_enetaddr[i] = s ?
   simple_strtoul (s, &e, 16) : 0;
  (dm9000_info.netdev).enetaddr[i] = s ?
   simple_strtoul (s, &e, 16) : 0;
  if (s)
   s = (*e) ? e + 1 : e;
 }
屏蔽
#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;
  }
 }
#endif

 

出现错误:
target CPU does not support interworking
在arm920t/config.hk中修改为以下代码
PLATFORM_CPPFLAGS += -march=armv4t

现在烧进去情况是能够执行驱动的初始化函数,但是还是有问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值