XFD6410 uboot支持DM9000驱动

Topic:XFD6410 uboot下支持DM9000驱动(作者:Sturtle)

//----------------------------------------------------------------------------------------------------------------------------

// 作者:XFDarm(xfdarm@163.com)

// 论坛ID:Sturtle

// 版权:XFDarm(www.xfdarm.com)

// 平台:芯飞达科技 XFD6410开发板+uboot1.1.6

// 发布日期:2011-12-23

// 最后修改:2011-12-23

// 注意事项:未经作者同意,商业网站不能转载,更不得在转载的时候擅自修改、删除文章的任何部分

//------------------------------------------------------------------------------------------------------------------------------

 1、  对照原理图修改include/configs/smdk6410.h
#define CONFIG_DRIVER_DM9000    1

#define CONFIG_DM9000_BASE 0x18000300

#define DM9000_IO       CONFIG_DM9000_BASE

#define CONFIG_DM9000_USE_16BIT

#define DM9000_DATA  (CONFIG_DM9000_BASE + 4)

2、  注释掉dm9000x.c中如下内容:

/* Set Node address */

/*     for (i = 0; i < 6; i++)

        ((u16 *) bd->bi_enetaddr)[i] = read_srom_word(i);

*/     

添加以下内容,参考1.3的dm9000x.c中的     

char *e,*s;

s = getenv("ethaddr");

for(i=0;i++;i<6)

{

               bd->bi_enetaddr[i] = s ? simple_stroul(s,&e,16) : 0;

                      if(s)

                             s = (*e) ? e+1 : e;

        }

3、  smdk6410.c中的CS1的bank要正确配置

SROM_BW_REG &= ~(0xff << 0);

SROM_BW_REG |= (1<<7) | (1<<6) | (1<<4)

4、  在dm9000.c的eth_rx()中添加do while循环,参考kernel下的dm9000.c,并在do之前将寄存器清空:

DM9000_ior(DM9000_MRRH);

DM9000_ior(DM9000_MRRL);    //要加,不然还是ping不通

至此,重新make即可。


//如有错误,请留言指正;同时希望有更好的方法与大家交流和分享,让我们大家一起学习,共同进步!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值