还是利用 mini2440移植uboot-2008.10 (一)  修改好的代码

通过观察可以发现,mini2400使用的网卡芯片是DM9000,在uboot-2008.10源码中已经支持该芯片的驱动(drivers/net/dm9000.c),但是并不完善

具体原理还不是很清楚,现在只是做一下移植步骤的记录

1、修改uboot配置文件(include/configs/mini2440.h)

 53 /*
54 * Hardware drivers
55 */
56 #if 0
57 #define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */
58 #define CS8900_BASE 0x19000300
59 #define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */
60 #endif
61
62 #define CONFIG_DRIVER_DM9000 1
63 #define CONFIG_DM9000_USE_16BIT 1
64 #define CONFIG_DM9000_BASE 0x20000300
65 #define DM9000_IO 0x20000300
66 #define DM9000_DATA 0x20000304

 

2、添加对ping命令的支持

 98 #define CONFIG_CMD_CACHE
99 #define CONFIG_CMD_DATE
100 #define CONFIG_CMD_ELF
101 #define CONFIG_CMD_PING //此为添加的代码

 

3、修改网卡驱动

在网卡驱动drivers/net/dm9000x.c中,有一段程序试图连接网卡MII接口,而实际上此接口未使用,会有10s钟等待然后报错,可以将此注释掉

282 /* Initilize dm9000 board
283 */
284 int
285 eth_init(bd_t * bd)
286 {
287 int i, oft, lnk;
288 u8 io_mode;
289 struct board_info *db = &dm9000_info;
.................................
385 /* Enable TX/RX interrupt mask */
386 DM9000_iow(DM9000_IMR, IMR_PAR);
387 //注释开始
388 #if 0
389 i = 0;
390 while (!(phy_read(1) & 0x20)) { /* autonegation complete bit */
391 udelay(1000);
392 i++;
393 if (i == 10000) {
394 printf("could not establish link\n");
395 return 0;
396 }
397 }
398
399 /* see what we've got */
400 lnk = phy_read(17) >> 12;
401 printf("operating at ");
402 switch (lnk) {
403 case 1:
404 printf("10M half duplex ");
405 break;
406 case 2:
407 printf("10M full duplex ");
408 break;
409 case 4:
410 printf("100M half duplex ");
411 break;
412 case 8:
413 printf("100M full duplex ");
414 break;
415 default:
416 printf("unknown: %d ", lnk);
417 break;
418 }
419 printf("mode\n");
420 #endif //注释结束
421 return 0;
422 }

 

4、至此网卡修改完成,最近进行编译

#make clean

#make mini2440_config

#make CROSS_COMPILE=arm-linux-

mini2440移植uboot-2008.10 (二) DM9000网卡驱动移植的更多相关文章

  1. Linux网卡驱动移植--Dm9000网卡驱动分析

    1. Linux网络体系结构由以下5部分组成 ① 系统调用接口: 位于Linux网络子系统的顶部,为应用程序提供访问内核网络子系统的方法,主要指socket系统调用. ② 协议无关接口: 实现一组基于 ...

  2. u-boot 移植 --->5、友善之臂Tiny210底板王网卡驱动移植

    网卡芯片的工作原理 DM9000AE具有以下主要性能: ①48管脚的LQFP封装,管脚少体积小: ②支持8/16位数据总线: ③适用于10Base-T和100Base-T,10/100M自适应,适应不 ...

  3. linux网卡驱动移植

    这里重要的是物理层PHY receiver,MAC(media access control)层,这里与软件中的协议栈不同,在硬件上MAC是PHY的下一层.DM9000A将MAC和PHY做到一起,也可 ...

  4. AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植

    移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

  5. AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植

    移植完毕声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

  6. 【驱动】DM9000网卡驱动分析

    Preface    内核源码版本:linux-2.6.18    网卡驱动·linux内核网络分层结构:http://infohacker.blog.51cto.com/6751239/122114 ...

  7. 【Linux驱动】TQ2440 DM9000E网卡驱动移植(Linux-2.6.30.4)

    花了一天的时间研究了一下Linux-2.6.30.4版本号内核下关于TQ2440 DM9000E的网卡驱动移植.总结一下自己的收获. 事实上.在Linux-2.6.30.4版本号内核下有关于网卡驱动, ...

  8. linux4.1内核配置以及编译及千兆网卡dp83867网卡驱动移植

    一  内核配置编译 1首先解压内核 tar jxvf linux-at91-4.1.tar.bz2: 2下载编译链 在ubuntu命令行中输入sudo apt-get install gcc-arm- ...

  9. DM9000网卡驱动分析(转)

    s3c6410自带的DM9000网卡驱动也是基于platform设备模型. 其定义的设备资源在arch/arm/mach-s3c64xx/mach-smdk6410中.有网卡的resource res ...

随机推荐

  1. hdoj 1495 非常可乐【bfs隐式图】

    非常可乐 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. day1作业

    作业一:博客 作业二:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 作业三:多级菜单 三级菜单 可依次选择进入各子菜单 所需新知识点:列表.字典 作业一分析: readme.m ...

  3. 立体视觉-opencv中立体匹配相关代码

    三种匹配算法比较 BM算法: 该算法代码: view plaincopy to clipboardprint? CvStereoBMState *BMState = cvCreateStereoBMS ...

  4. C#- 基于Lumisoft.NET组件的POP3邮件接管和删除操纵

    Lumisoft.NET组件是一个很是强大的邮件发送.邮件接管等功能的开源组件,一般用它来处理惩罚邮件的相干操纵,是很是合适的.之前也写过一些该组件的漫笔文章,不过主如果哄骗来发送邮件居多,比来因为项 ...

  5. C#中只使用Invokerequired来判断是不是UI线程可靠吗?

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:C#中只使用Invokerequired来判断是不是UI线程可靠吗?.

  6. PowerDesigner实用方法小结(1)

    PowerDesigner使用方法小结 PowerDesigner多用来进行数据库模型设计,具有SQL语句自动生成等功能.当然,也有不少缺点,比如团队分享. 一.设置PowerDesigner模型视图 ...

  7. C++ 运行时类型识别 知道实例父类类型,显示出子类类型

    typeid(nets_[i]).name() 其中的nets_[i]是一个对象

  8. PHP class_exists 检查类是否已定义

    (PHP 4, PHP 5)  class_exists — 检查类是否已定义 bool class_exists ( string $class_name [, bool $autoload ] ) ...

  9. MediaProvider 数据库Audio相关表格相应关系

    Android的MediaProvider提供了一系列的Audio,Video,image等表格,用于APP检索相关的音视频图片信息. 首先来看看Audio相关的表格: ×图中颜色同样的部分表示来自于 ...

  10. 使用viewpager实现广告条轮询的效果

    先上效果图: viewpager是google在v4-support包中提供的,使用时与listview类似,度需要提供一个adapter, 只不过viewpager提供的是PagerAdapter ...