实验2.5 网卡驱动移植 网卡地址等几个宏的数值怎么得到的

实验2.5 网卡驱动移植中有几个宏
#define CONFIG_DM9000_BASE 0x20000300
#define DM9000_IO                      0x20000000
#define DM9000_DATA                0x20000004
这几个数值代表的地址是从哪里得到的,我翻了MINI2440的原理图和S3C2440的芯片手册没看懂从哪里找网卡的地址,请老师指导一下

国嵌范老师 2011-07-02 11:54
摘自《国嵌嵌入式标准教材--驱动开发深入班》  DM9000网卡驱动分析

首先,让我们打开arch/arm/mach-s3c64xx目录下的mach-mini6410.c,找出DM9000平台驱动对应的平台设备及资源。下面列出了平台设备资源的情况:
#define S3C64XX_PA_DM9000    (0x18000000)
#define S3C64XX_SZ_DM9000    SZ_1M
#define S3C64XX_VA_DM9000    S3C_ADDR(0x03b00300)

static struct resource dm9000_resources[] = {
    [0] = {
        .start    = S3C64XX_PA_DM9000,
        .end        = S3C64XX_PA_DM9000 + 3,
        .flags    = IORESOURCE_MEM,
    },
    [1] = {
        .start    = S3C64XX_PA_DM9000 + 4,
        .end        = S3C64XX_PA_DM9000 + S3C64XX_SZ_DM9000 - 1,
        .flags    = IORESOURCE_MEM,
    },
    [2] = {
        .start    = IRQ_EINT(7),
        .end        = IRQ_EINT(7),
        .flags    = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
    },
};

这里定义了三个平台资源,下标为0和1的资源(后面简称为资源0、资源1…)是IO内存资源,其中资源0的start成员代表的地址S3C64XX_PA_DM9000,也就是0x18000000,是访问DM9000的INDEX端口的地址,而资源1的start成员代表的地址S3C64XX_PA_DM9000+4,也就是0x18000004,则是访问DM9000的DATA端口的地址。DM9000的INDEX端口和DATA端口分别用来写命令和读写数据,要理解为什么能通过这两个地址访问对应的端口,需从tiny6410/mini6410开发板上DM9000与S3C6410的连接关系入手。下面是两者之间的连接示意图:

图 3-4    DM9000与S3C6410的连接关系

DM9000的访问地址主要是由CMD和CS#这两个端口的连接方式来确定的,CS#是DM9000的片选引脚,CMD引脚在芯片手册中描述如下:
CMD pin :
Command Type
When high, the access of this command cycle is DATA port
When low, the access of this command cycle is INDEX port

DM9000的CS#接的是S3C6410静态内存区(物理地址为0x10000000~0x3fffffff)的Bank1片选nCS1引脚(对应起始物理地址为0x18000000),CMD引脚则接的是S3C6410地址总线的Xm0ADDR2位。因此可以确定,DM9000的INDEX端口地址是0x18000000(Xm0ADDR2=0),DATA端口的地址是0x18000004(Xm0ADDR2=1)。

注意:    由上面的分析可以知道,DM9000的寻址仅仅取决于其CMD和CS#两个引脚的接法。也就是说,即使读者要将访问地址改为“0x18000000 + 0x300”(事实上在友善之臂提供的uboot以及其他一些资料中就是用的这个地址),同样能够正常的访问到网卡的INDEX端口。

提示:    确定了DM9000的INDEX和DATA端口地址,我们就有了访问网卡的途径。读网卡寄存器的方法是:先向INDEX端口写入寄存器的地址,再从DATA端口读出该寄存器的值。写寄存器的方法与之对应:先向INDEX端口写入寄存器的地址,再向DATA端口写入值。通过I/O端口读写网卡寄存器的方法在驱动中由ior()、iow()这来两个函数实现。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

关于国嵌 实验2 5 网卡驱动移植 网卡地址 的问题相关推荐

  1. 驱动程序之_3_网络设备_3_网卡驱动移植

    驱动程序之_3_网络设备_3_网卡驱动移植 网卡出厂一般都会有驱动程序模板,网卡接到不同的Cpu上,引脚.参数有所不同,移植过程要做的就是根据硬件修改引脚地址.参数 一般来说,需要修改的是片选引脚.中 ...

  2. ar8171 linux网卡驱动,ar8171 8175网卡驱动(ar8171网卡驱动下载)V1.0.1 官方最新版

    ar8171 8175网卡驱动(ar8171网卡驱动下载)是针对同网卡推出的最新驱动软件.适用于win7/8/10系统,ar8171 8175网卡驱动能够快速的进行所需的硬盘驱动,轻松的调用其内的各项 ...

  3. linux4.1内核配置以及编译及千兆网卡dp83867网卡驱动移植

    一  内核配置编译 1首先解压内核 tar jxvf linux-at91-4.1.tar.bz2: 2下载编译链 在ubuntu命令行中输入sudo apt-get install gcc-arm- ...

  4. AM335x(TQ335x)学习笔记——Nandamp;amp;网卡驱动移植

    移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

  5. uboot网卡驱动移植

    uboot网卡驱动移植 定义相应的宏,使能uboot的网卡 添加ping和tftp命令 移植网口初始化代码 注册网卡 定义相应的宏,使能uboot的网卡 官方的uboot默认是不使能网卡相关的代码的, ...

  6. STM32F1网络编程-W5500网卡驱动移植

    W5500网卡驱动移植 1.W5500介绍 W5500 芯片是硬连线 TCP/IP 嵌入式以太网控制器,可提供与嵌入式系统的更轻松的 Internet 连接. W5500 使用户只需使用嵌入了 TCP ...

  7. linux系统 RTL8152B网卡驱动移植-USB转网卡

    本文描述了在imx6q上对百兆网卡RTL8152B进行移植的过程,有相关的疑惑的可参考本文进行移植. 感谢国芯科技的范工 y_fan 的耐心指点,RTL8152B相关移植的资料比较少,范工给予重要调试 ...

  8. linux 内核 网卡驱动 移植,Linux内核移植步骤_添加DM9000网卡驱动(设备树).docx

    Linux内核移植步骤_添加DM9000网卡驱动(设备树) Linux内核移植步骤2015年05月13日星期三上午 11:05往设备树中添加网卡驱动:1.选平台,指定交叉编译工具链:(1).在Make ...

  9. linux 内核 网卡驱动 移植,linux内核移植步骤添加dm9000网卡驱动(设备树).docx

    linux内核移植步骤添加dm9000网卡驱动(设备树).docx LINUX内核移植步骤2015年05月13日星期三上午1105往设备树中添加网卡驱动1.选平台,指定交叉编译工具链1.在MAKEFI ...

最新文章

  1. 学习java的一些笔记(8)
  2. 上传文件到服务器的Linux命令
  3. php输出一百个hello,如何使用 PHP 输出 hello world?
  4. 1132:石头剪子布
  5. iphone NSNotificationCenter
  6. Oracle distinct后加as,【大话IT】为何加distinct之后就不走索引了
  7. C#打开外部的exe程序并隐藏窗口、注册退出事件、传递参数
  8. 程序员中的明星,超模or女团都是程序媛
  9. 阿里云盘的webdav协议开源实现
  10. 2022年双非计算机保研经历分享(浙大、北航、中科院等)
  11. 2020成考C语言答案,2020年成人高考语文题库(含历年真题练习题模拟题)
  12. 导出Mysql数据库结构-word格式
  13. sklearn之逻辑回归LR
  14. 计算机动画类型及创作原理,计算机动画的原理和制作.ppt
  15. springboot+thymeleaf+shiro标签
  16. 从零开始搞起 Disney BRDF源码编译(含踩坑经历)
  17. 怎么把c盘恢复出厂设置电脑语言,教你把电脑恢复出厂设置
  18. 今日缘到,宜关注!(致每一位前端人)
  19. 怎么找回苹果cms后台管理员密码
  20. java/php/net/python/ssm基于web的在线作业批改系统

热门文章

  1. 快速排序 Java模板
  2. 今天是我和老婆结婚一周年纪念日。
  3. 03. Vuepress2.x 设置 favicon.ico 图标
  4. Unity最佳实践-场景照明
  5. Activity中onStart()和onResume()的区别
  6. R语言实现GWAS结果显著SNP位点归类提取与变异类型转化
  7. X Window 的奥秘
  8. cloudflare免费证书_免费获取cloudflare的ssl证书
  9. java接入云片短信
  10. 黑龙江高二计算机模拟试题,黑龙江农村信用社招聘考试网:计算机模拟试题(21)...