mini2440移植uboot-2008.10 (二) DM9000网卡驱动移植

还是利用 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-

时间: 2024-08-13 08:45:34

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

u-boot-2014.10移植第17天----添加DM9000网卡支持(一)

很多读者的2440的板子应该都有DM9000网卡.在移植之前看看这几篇文档: DM9000中文手册(详细) 这篇文章告诉我们DM9000的一些硬件知识. DM9000和MINI2440深入理解 这篇文章告诉我们2440是如何实现对DM9000的访问. 2440 dm9000 到底咋确定地址 这篇文章告诉我们如何确定地址端口的地址和数据端口的地址. DM9000 datasheet datasheet上说dm9000有4K Dword(就是4K双字,即16Kbytes). DM9000网卡驱动位于

S3C2440实现dm9000网卡驱动程序移植

20150419 S3C2440实现dm9000网卡驱动程序移植 2015-04-19 Lover雪儿 首先附上厂家提供的完整的dm9000程序: 1 /* 2 3 dm9ks.c: Version 2.08 2007/02/12 4 5 A Davicom DM9000/DM9010 ISA NIC fast Ethernet driver for Linux. 6 7 This program is free software; you can redistribute it and/or

linux网卡驱动移植

这里重要的是物理层PHY receiver,MAC(media access control)层,这里与软件中的协议栈不同,在硬件上MAC是PHY的下一层.DM9000A将MAC和PHY做到一起,也可以像IIS设备那样,SOC内有IIS的控制器,而声卡UDA1341放在片外.网卡当然也有这种设计,它是把PHY的下层MAC放入SOC内,片外的是PHY,当然我暂时还没见过这种的.DM9000A的输入是并行的总线,可以和CPU直接IO.而IIS那种需要通过:CPU CORE BUS->I2S控制器->

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

移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前先感慨一下:TI的维护的内核真的很健壮,DTS真的很强大. 1. Nand驱动移植 阅读TQ335x的原理图可知,TQ335x的Nand连接到了GPMC上,且都是使用的相应引脚的MODE0复用功能,AM335x上上电复位后这些引脚的默认状态就处于MODE0模式,故无需进行pinmux设置,原始的DT

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

移植完毕声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前先感慨一下:TI的维护的内核真的非常健壮,DTS真的非常强大. 1. Nand驱动移植 阅读TQ335x的原理图可知,TQ335x的Nand连接到了GPMC上,且与DTS中默认的配置吻合,此处不做不论什么改动,详情例如以下: nandflash_pins_s0: nandflash_pins_s0

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

花了一天的时间研究了一下Linux-2.6.30.4版本号内核下关于TQ2440 DM9000E的网卡驱动移植.总结一下自己的收获. 事实上.在Linux-2.6.30.4版本号内核下有关于网卡驱动,可是这个网卡驱动不是针对于 DM9000E.而是针对于 DM9000的. 因此要在此基础之上改动一些參数.而且打上必要的相关代码.这个网卡驱动移植是參照了"天嵌科技出品-Linux移植之Step By Step_V4.6"的文档.但就是这样.还是花费了将近一天的时间.事实上这里的难点在于:

I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之网卡驱动移植

由于对网卡这块不是很熟悉,误以为网卡驱动也可以简单的配置下DTS就可以正常工作了,实际移植中遇到了些问题.闲话少说,下面开始tqimx6q的网卡驱动移植. DTS编写 首先在我们的DTS中添加网卡配置,参考sabrelite的DTS,我们可以如下编写: &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet_1>; phy-mode = "rgmii"; status =

Linux驱动学习之TQ2440 DM9000E网卡驱动移植(Linux-2.6.30.4)

引言 在之前的文章中,我们介绍了如何使用Scala IDE也就是eclipse中集成的Scala开发插件来进行Scala语言程序的开发,在使用了一段时间之后,发现eclipse对Scala的支持并不是很好.用户体验比较差,比如联想速度比较慢等.由于在公司一直使用的Scala开发工具是Intellij IDEA(好吧,其实我使用Scala IDE的目的就是想试一下这两个各有什么优缺点),各方面感觉还不错,所以在此介绍一下这个开发环境. Intellij IDEA是jetbrain开发的一个IDE,

linux enc28j60网卡驱动移植(硬件spi和模拟spi)

本来想移植DM9000网卡的驱动,无奈硬件出了点问题,通过杜邦线链接开发板和DM9000网卡模块,系统上电,还没加载网卡驱动就直接崩溃了,找不到原因...刚好手上有一个enc28j60的网卡模块,于是就着手移植enc28j60的驱动. 其实移植enc28j60的驱动也十分简单,网上有现成的,只需要分配一些硬件资源即可. 由于我的内核版本老到掉牙,没有自带enc28j60的驱动,只能在网上找一个: enc28j60.c http://git.ti.com/ti-linux-kernel/ti-li