还是利用 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. 最简单实现跨域的方法:用 Nginx 反向代理

    本文作者: 伯乐在线 - 良少 .未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者. 什么是跨域 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascrip ...

  2. UVA 557 - Burger(概率 递推)

     Burger  When Mr. and Mrs. Clinton's twin sons Ben and Bill had their tenth birthday, the party was ...

  3. Android解析Json速度最快的库:json-smart

    场景描写叙述: 本文仅验证了在安卓环境下使用Json的Key作为反序列化条件的解析速度.结论是解析速度最快的不是阿里的fastjson,也不是Google的Gson,而是json-smart. And ...

  4. 谈谈Javascript线程

          其实,大家都知道Javascript的语言执行环境是单线程的,浏览器无论在什么时候都有且只有一个线程在运行Javascript程序.那Ajax发送异步请求怎么解释,setTimeout/s ...

  5. 谈谈JSON数据格式

    JSON 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.        本文主要是对JS操作JSON的要领做下总结.           在JSON中,有两种结构:对 ...

  6. SAXParser 解析器和 XMLEventReader(读取XML文档)

    import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import java ...

  7. 使用TabLayout快速实现一个导航栏

    在没有Material Design的年代,要实现一个类似微信主页面的效果,我们有以下几种解决方案: 1.Fragment + ViewPager  +  RadioGroup自定义固定导航条 2.F ...

  8. arcgis10 安装1721错误

    arcgis10 安装1721错误,主要是ArcGIS License Manager 服务程序的位置不对,注册表lmgrd.exe中修改lmgrd.ex

  9. CentOS6.4安装ati显卡驱动

    台式机安装CentOS 6.4 x86_64位  集成显卡ati4290 CentOS的release notes上: The proprietary drivers for older AMD ( ...

  10. 关于redhat6的服务说明

    服务名称 功能 默认 建议 备注说明 NetworkManager 主要用于图形网络连接管理 开启 关闭 对服务器无用 abrt-ccpp Automated Bug Reporting Tool 开 ...