zoukankan      html  css  js  c++  java
  • DM9000C网卡驱动

    目的:通过学习,掌握如何移植、编写DM9000C网卡驱动

    一、概述:

    DM9000是一款高度集成低功耗快速以太网处理器,该芯片集成了MAC和PHY。DM9000可以和CPU直接连接,支持8位、16位和32位数据总线宽度。该芯片支持10M和100M自适应以太网接口,内部有16K的FIFO以及4K双字节SRAM,支持全双工工作。内部集成了接收缓冲区,可以在接收到数据的时候把数据存放到缓冲区中,链路层可以直接把数据从缓冲区取走

    1.1 DM9000C原理图

    信号线(#表示低电平有效):

    • SD0~15: 16位数据线,有CMD引脚决定访问类型
    • CMD:      命令线,当CMD为高,表示SD 传输的是数据,CMD为低表示传输的是地址
    • INT:         中断引脚,接在2440的GPF7脚上
    • IOR#:      读引脚,接在2440的nOE脚上
    • IOW#:     写引脚,接在2440的nWE脚上
    • CS#:       片选,放在2440的bank4的片选上面
    • VDD:       芯片内部工作电压

    1.2 DM9000的基地址

    DM9000C网卡芯片与处理器的接口只有一根地址线、即CMD引脚接在bank4的LADDR2上面,说明网卡芯片开放给处理器的只有两个地址,查看芯片手册可知:

    CMD为高电平时,访问DM9000的数据端口,数据端口地址为0x20000004

    CMD为低电平时,访问DM9000的地址端口,地址端口地址为0x20000000

    片选信号CS#与nGCS4相接,即选中bank4,其区间位于: 0X20000000~0X28000000,

    当我们访问这个区间的地址,内存控制器便会使能网卡DM9000C的使能脚,所以我们的DM9000C的io基地址=0X20000000

    DM9000收发数据过程

    当DM9000C收到外部的数据后,会暂存到内部地址中,然后产生一个上升沿中断,等待2440读取数据

    当DM9000C将2440的数据转发出去后,也会产生一个上升沿中断给2440

    如下图所示,DM9000C的中断引脚位于pin34脚,接在2440的GPF7引脚上,使用的中断为EINT7

    二、DM9000网卡驱动框架及源码分析

    参见:

    嵌入式Linux——网卡驱动(3):结合硬件分析厂家提供驱动代码dm9dev9000c.c

    三、修改厂家提供的DM9000C源代码

    参见:

    27.Linux-DM9000C网卡移植(详解)

  • 相关阅读:
    UVA1349 Optimal Bus Route Design 最优巴士路线设计
    POJ3565 Ants 蚂蚁(NEERC 2008)
    UVA1663 Purifying Machine 净化器
    UVa11996 Jewel Magic 魔法珠宝
    NEERC2003 Jurassic Remains 侏罗纪
    UVA11895 Honorary Tickets
    gdb调试coredump(使用篇)
    使用 MegaCLI 检测磁盘状态并更换磁盘
    员工直接坦诚直来直去 真性情
    山东浪潮超越3B4000申泰RM5120-L
  • 原文地址:https://www.cnblogs.com/y4247464/p/10430278.html
Copyright © 2011-2022 走看看