dm9000网卡 S3C2440】的更多相关文章

配置U-Boot支持dm9000网卡 原理图 # vi drivers/net/Makefile obj-$(CONFIG_DRIVER_NET_CS8900) += cs8900.o obj-$(CONFIG_DRIVER_NET_SMC911X) += smc911x.o obj-$(CONFIG_DRIVER_NET_DM9000) += dm9000.o obj-$(CONFIG_DRIVER_NET_NETX) += netx_eth.o obj-$(CONFIG_DRIVER_NET…
转自:http://blog.sina.com.cn/s/blog_6abf2c04010189ui.html DM9000可以直接与ISA总线相连,也可以与大多数CPU直接相连.Mini2440采用的是dm9000直接连接CPU(s3c2440)上.就像是nandflash一样直接被挂在CUP上,被挂在s3c2440的bank4上. 小插曲1:s3c2440芯片把存储系统分为了8个Bank,由nGCS0[0]~nGCS[7] 这8根引脚决定当前访问的是哪一个Bank对应的存储器.其中,前6个B…
MAC:主要负责数据帧的创建,数据差错,检查,传送控制等. PHY:物理接口收发器,当收到MAC过来的数据时,它会加上校验码,然后按照物理层的规则进行数据编码,再发送到传输介质上,接收过程则相反. MII:媒体独立接口,“媒体独立”表明MAC一定情况下,任何类型的PHY设备都可以正常工作. DM9000网卡部分函数实现: /* //实验步骤 //初始化dm900 //数据包发送 //数据包接收 */ #include "dm9000.h" #include "arp.h&qu…
Linux DM9000网卡驱动程序完全分析http://blog.csdn.net/ypoflyer/article/details/6209922…
网卡初始化 1.分配描述结构,alloc_etherdev 2.获取平台资源,platform_get_resource 2.1.在s3c_dm9k_resource中有相关的资源 2.2.add地址由CS4和ADD2决定,是20000000 2.3.dat地址由CS4和ADD2决定,是20000004 2.4.中断资源是EINT7 3.虚拟地址映射,ioremap 4.读取芯片类型 5.设置操作函数集 6.读取MAC地址 7.注册网卡驱动,register_netdev 8.启动发送队列,ne…
在上一章,使uboot能够支持nor.nand 本节继续修改让uboot支持DM9000C网卡,便可以通过网络来传输文件 首先uboot已带有dm9000网卡的驱动,位于drivers/net/下的dm9000x.h.dm9000x.c 1.DM9000C介绍 参考之前写的移植DM9000C驱动章节, 我们的DM9000是放在2440的bank4(0X20000000)的片选上面 而DM9000的CMD引脚接在bank4的LADDR2上面 也就是说当向0X20000000地址上读写数据时, 此时…
Preface    内核源码版本:linux-2.6.18    网卡驱动·linux内核网络分层结构:http://infohacker.blog.51cto.com/6751239/1221140   DM9000芯片 DM9000是一款高度集成低功耗快速以太网处理器,该芯片集成了MAC和PHY.DM9000可以和CPU直接连接,支持8位.16位和32位数据总线宽度.该芯片支持10M和100M自适应以太网接口,内部有16K的FIFO以及4K双字节SRAM,支持全双工工作. DM9000内部…
1. Linux网络体系结构由以下5部分组成 ① 系统调用接口: 位于Linux网络子系统的顶部,为应用程序提供访问内核网络子系统的方法,主要指socket系统调用. ② 协议无关接口: 实现一组基于socket的通用函数来访问不同的协议.(Linux中的socket使用sock结构来描述(定义于include/net/sock.h),该结构包含特定socket所需要的所有状态信息,还包含socket所使用的特定协议和在socket上可以执行的一些操作.) ③ 网络协议: 用于实现具体的网络协议…
s3c6410自带的DM9000网卡驱动也是基于platform设备模型. 其定义的设备资源在arch/arm/mach-s3c64xx/mach-smdk6410中.有网卡的resource resource dm9000_resources[],还有一些板级信息,dm9000_plat_data dm9000_setup.   1.宏及参数  //板级.系统定义 1 #define DM9000_PHY 0x40 /* PHY address 0x01 */ 2 3 #define CARD…
平台是最最经典的s3c2440了,说了要做这件事情很久了,就是改几行代码,一直没有做.前几天逼了自己一下,终于给做了,拖延症患者伤不起. 以下是需要读者对napi机制有所熟悉: step1:在board_info结构体里面增加struct napi_struct napi:(这个还用说……) step2:在dm9000_probe函数中增加netif_napi_add(ndev, &db->napi, dm9000_napi_poll, 64); dm9000_napi_poll函数实现如下…
还是利用 mini2440移植uboot-2008.10 (一)  修改好的代码 通过观察可以发现,mini2400使用的网卡芯片是DM9000,在uboot-2008.10源码中已经支持该芯片的驱动(drivers/net/dm9000.c),但是并不完善 具体原理还不是很清楚,现在只是做一下移植步骤的记录 1.修改uboot配置文件(include/configs/mini2440.h) /* 54 * Hardware drivers 55 */ #if 0 #define CONFIG_…
一.准备工作 1.1 原理图 CONFIG_DM9000_BASE 片选信号是接在nGCS4引脚,若要确定网卡的基地址,则要根据片选信号的接口去确定. 在三星2440的DATASHEET中memory control这一章的Figure 5-1. S3C2440A Memory Map after Reset 已经说明了片选4的地址,如下: 只要发出的信号在 0x20000000--0x28000000 之间,就会使得片选4引脚变为低电平.所以可以确定我们网卡的基地址为0x20000000. C…
一.dm9000_porbe函数分析 不同于u-boot代码,tq2440中的DM9000更加复杂,需要分析的点也很多: /* * Search DM9000 board, allocate space and register it */ static int __devinit dm9000_probe(struct platform_device *pdev) { struct dm9000_plat_data *pdata = pdev->dev.platform_data; struc…
1.硬件连接 mini2440开发板上DM9000的电气连接和mach-mini2440.c文件的关系 其中片选信号AEN使用了nGCS4,所以网卡的内存区域在BANK4,也就是从地址0x20000000开始.DM9000的TXD[2:0]作为strap pin在电路图中是空接的,所以IO base是300H.中断使用了EINT7.这些内容在mach文件中有如下体现:#define S3C2410_CS4 (0x20000000)#define MACH_MINI2440_DM9K_BASE (…
DM9000数据发送 DM9000数据发送函数是在/drivers/net/dm9000.c中的dm9000_start_xmit函数 static int dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev){ //发送数据长度 board_info_t *db = netdev_priv(dev); iow(db, DM9000_TXPLL, (skb->len)>>); iow(db, DM9000_TXPLH…
关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基于linux3.14.78,用设备树匹配,移植过程中调试和整体理解很重要,一路上幸有良师益友指点,下面详细介绍: 1.物理时序分析相关 DM9000芯片是DAVICOM公司生产的一款以太网处理芯片,提供一个通用的处理器接口.一个10/100M自适应的PHY芯片和4K双字的SRAM.内部框架如下,涉及…
一.移植环境 主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand,Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2009.08.tar.bz2 二.移植步骤 本次移植的功能特点包括: 支持Nand Flash读写 支持从Nor/Nand Flash启动 支持CS8900或者DM9000网卡 支持Yaffs文件系统 支持USB下载(还未实现) . 了解u-boot主要的目录结构和启动流程,…
1.内存接口概念 S3C2440是个片上系统,有GPIO控制器(接有GPIO管脚(GPA-GPH)),有串口控制器 (接有TXD RXD引脚),有memory controller内存控制器,有Nand控制器等... 1.不同类型的控制器: (1)GPIO控制器属于门电路,不涉及到时序,相对简单. (2)串口控制器属于协议类接口,类似的协议类接口还有iic.iis.spi等. (3)前面的GPIO/门电路接口.协议类接口,都不会把地址输出到外部设备,仅仅只是将地址写入到相应的控制器. 接下来的内…
转自csdn #define CONFIG_DM9000_BASE 0x20000300#define DM9000_IO                      0x20000000#define DM9000_DATA                0x20000004这几个数值代表的地址是从哪里得到的,我翻了MINI2440的原理图和S3C2440的芯片手册没看懂从哪里找网卡的地址,请老师指导一下 tiny6410/mini6410开发板上DM9000与S3C6410的连接关系入手.下面…
文章目录 一.内存接口的概念 二.存储控制器(内存控制器) 2.1 什么是存储控制器? 2.2 S3C2440存储控制器介绍 2.3 存储控制器如何处理不同位宽的外设 2.4 怎么确定芯片的访问地址? 三.时序问题 一.内存接口的概念 S3C2440是SOC,所以会有很多外设,一般驱动外设的方法可以分为: 通过CPU访问相应的的寄存器,然后通过控制器驱动外设 CPU直接访问外设地址,驱动外设 后一种访问方式是CPU直接对内存地址的访问,即通过内存接口访问外设,CPU通过片选线选定外设,通过地址线…
本来想移植DM9000网卡的驱动,无奈硬件出了点问题,通过杜邦线链接开发板和DM9000网卡模块,系统上电,还没加载网卡驱动就直接崩溃了,找不到原因...刚好手上有一个enc28j60的网卡模块,于是就着手移植enc28j60的驱动. 其实移植enc28j60的驱动也十分简单,网上有现成的,只需要分配一些硬件资源即可. 由于我的内核版本老到掉牙,没有自带enc28j60的驱动,只能在网上找一个: enc28j60.c http://git.ti.com/ti-linux-kernel/ti-li…
继ok6410 u-boot-2012.04.01移植四后,开发板基本已支持MLC NAND,但还有一些细节地方修改,这节增加DM9000支持,通过网卡tftp程序到内存,接着通过NAND命令写到NAND,这一过程肯定会遇到很多问题,遇到后再一个个解决. 开发环境: 系统:ubuntu 10.04.4 单板:ok6410 NAND FLASH:K9GAG08U0D 2048MB NOR Flash:EN29LV160AB 2MB DDR:K4X1G163PCX2 256MB NET:DM9000…
移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x48000014) (0x0<<13)|(0x0<<11)|(0x7<<8)|(0x1<<6)|(0x0<<4)|(0x0<<2)|(0x0<<0) 2.初始化中断 中断源EIN7 GPFCON GPF7:10 设置触发方式(高电平触…
1. 由于内核已经带有DM9000 网卡的驱动,所以主要移植工作是在板文件中添加 platform_device 结构,并加入 ok6410_devices[] __initdata 数组. 代码如下: /*DM9000*/ #define DM9000_IRQ_EINT0 IRQ_EINT(7) static struct resource ok6410_dm9000_resources_cs1[] = { [] = { .start= S3C64XX_VA_DM9000, .end = S3…
Preface   Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计. Linux内核采用分层结构处理网络数据包.分层结构与网络协议的结构匹配,既能简化数据包处理流程,又便于扩展和维护. 内核网络结构 在Linux内核中,对网络部分按照网络协议层.网络设备层.设备驱动功能层和网络媒介层的分层体系设计. 网络驱动功能层主要通过网络驱动程序实现. 在Linux内核,所有的网络设备都被抽象为一个接口处理,该接口提供了所有的网络操作.    net_device结构表示…
目的:通过学习,掌握如何移植.编写DM9000C网卡驱动 一.概述: DM9000是一款高度集成低功耗快速以太网处理器,该芯片集成了MAC和PHY.DM9000可以和CPU直接连接,支持8位.16位和32位数据总线宽度.该芯片支持10M和100M自适应以太网接口,内部有16K的FIFO以及4K双字节SRAM,支持全双工工作.内部集成了接收缓冲区,可以在接收到数据的时候把数据存放到缓冲区中,链路层可以直接把数据从缓冲区取走 1.1 DM9000C原理图 信号线(#表示低电平有效): SD0~15:…
1.概述 网卡驱动与硬件相关,主要负责收发网络的数据包,将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送,并将接收到的数据包传递给上层协议. 网卡设备与字符设备,块设备不同,网络设备驱动程序不依赖与 /dev 或 /sys 来与用户空间通信,应用程序是通过网络接口(如作为第一个网络接口的eth0)与网卡驱动程序互相操作的. 网卡设备存放在 /sys/class/net 目录下 2.Linux 系统网络协议的处理框架 网络设备驱动的框架层次分为四层: 1)网络设备与媒介层: 用来负责完成…
不同位宽设备的连接 black 我们先看一下2440芯片手册上外设rom是如何与CPU地址总线连接的. 8bit rom与CPU地址线的连接 8bit*2 rom与CPU地址线的连接 8bit*4 rom与CPU地址线的连接 16bit rom与CPU地址线的连接 16bit*2 rom与CPU地址线的连接 从上面的图中,我们知道可以对2片位宽为8bit的外设扩展级联成1个16bit的外设,同理可用4片位宽为8bit的外设进行级联成1个32bit的外设... 从上面的图中,我们还看见一个规律:…
想了解一下DM9000的移植修改原理,所以分析了一下时序图和引脚连接   首先看一下DM9000的引脚和MINI2440的引脚连接   DM9000  MINI2440 功能描述   SD0   DATA0  数据信号   |           |   SD15  DATA15  数据信号   CMD  ADDR2  识别为地址还是数据   INT   EINT7  中断   IOR#   nOE   读命令使能   IOW#  nWE   写命令使能   AEN   nGCS4  片选使能…
前面学习了下Linux下的网络设备驱动程序的框架inux 驱动框架---net驱动框架,感觉知道了一个机器的大致结构还是不太清楚具体的细节处是怎么处理的,所以今天就来以dm9000这个网上教程最多的驱动实例来详细看一下Linux网络设备驱动的开发更细节的内容.这个驱动比较综合先是以platform总线为基础,中间有用到互斥,延迟任务等细节的知识所以需要先简单了解一下用到的框架的基本原理. 因为是基于platform总线的所以肯定是分设备和驱动两部分这里直接上代码了,然后后面在详细阐述工作过程.先…