我的是cortex-a8 的 s5pc100 的板子。在网卡驱动中,为什么要映射dm9000 的寄存器到SMC ,一般外设都是通过I2C,SPI直接发送或者接收数据,或者直接接入对应的GPIO口,这里为什么需要映射一下 ?
by CAIYUE10720795 - 嵌入式开发 - 2013-11-05 13:42:24 阅读(1363) 回复(5)
dm9000 移植: 主要以各自的开发板,以及dm的引脚连线. 第一要确定数据地址,第二要确定命令地址,第三要确定中断是低还是高有效. 以mini2440为例: 我自己的开发板dm是连在nGCS4的. 所以其数据地址就为:2000 0000(当然可以是nGCS4内的其他地址,不要走出nGCS4就行了) 而dm的CMD是连在ADDR2上的 所以命令是地址就是:2000 00020 中断是高是低有效由开发板 ,还有设置而定的. Interrupt request This pin is high active at default,its p...
在前面移植好内核和文件系统之后,开始考虑网卡的通信了。网上好多关于dm9000驱动的例子,大同小异,但是一律照搬都是不行,最多的只能发现设备,到最后还是ping不通,花费九牛二虎之力,终于还是弄好了。 看到ping通其他主机,真是舒了一口气。 首先,移植驱动要做的这么几个事情 1、 要让系统能检测到设备 2、 初始化它 3、 让驱动找到收发的接口,一般也就是中断/dmA(具体的收发一般都是驱动已经写好了的,不用我们多动...
/* *By Neil Chiao ( [email=neilchiao@163.com]neilchiao at gmail.com[/email] ) *转载请注明出处: neilengineer.cublog.cn *本文部分内容来自网络 */ 1、Linux网络设备驱动的体系结构 Linux网络驱动程序的体系结构可划分为4个层次。Linux内核源代码中提供了网络设备接口及以上层次的代码,因此移植特定网络硬件的驱动程序的主要工作就是完成设备驱动功能层的相应代码,根据底层具体的硬件特性,定义网络设备接口struct n...
移植dm9000网卡驱动程序(四个网卡) 一块开发板带四个网卡 网卡1 中断14 分配bank1 网卡2 中断15 分配bank2 网卡3 中断16 分配bank3 网卡4 中断17 分配bank4 移植dm9000驱动,使四个网卡都能用 请各位大侠指点一下 谢谢!
本文选自:http://blog.csdn.net/baozhongchao/article/details/4538182
最近在研究网卡驱动,刚好内核有完整的dm9000的网卡驱动,但是我想把dm9000源码单独拿出来,进行编译成模块,然后进行通讯,不知道有没有童靴做个,指导一二,感激不尽
最近一个星期在学习Linux dm9000驱动程序的编写,遇到了如下两个问题,希望前辈们指导我一下,在此谢谢了!!! 问题一:在dm9000的探测函数 dm9000_probe 里有一个宏 SET_NETDEV_DEV(ndev, &pdev->dev); 不知道这个宏起到了什么作用??? 我在网上查资料说这个宏起到了生成sys链接的作用,但是我将这个宏注释掉后再编译进内核,发现一样可以生成sys链接。 问题二:对于设置dm9000组播(多播)地址的函数 dm9000_h...
1.1.1 步骤四:分析dm9000的网卡驱动程序 驱动程序共包含三个文件dm9000x.c ,dm9000.c 和dm9000.h,都存放在drivers/net/目录下,其中dm9000x.c 主要包括以下函数: 底层硬件操作函数:这些函数与硬件相关,与驱动程序编写相关不大。 void outb(unsigned char value, unsigned long addr) void outw(unsigned short value, unsigned long addr) unsigned char inb(unsigned long addr...
第一步:在arm/arm/mach-s3c2410/devs.c 文件中添加如下代码 //----------------------------------------------------------- static struct resource s3c_dm9000_resource[] = { [0] = { .start = 0x08000000 + 0x300, .end = 0x08000000 + 0x300 + 0x03, .flags = IORESOURCE_MEM }, [1] = { .start = 0x08000000 + 0x300 + 0x04, .end...