打印

讨论关于linux下的外部总线的使用问题

[复制链接]
2106|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuyu8444|  楼主 | 2008-4-8 17:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发板是2440的,情况如下:
    从网卡进入一个6M Byte/s 的数据,想通过接口传到外部器件(FPGA)中去,但是2440手册上的接口几乎在速度上都不能满足要求,于是想到了使用外部总线。
    现在的思路如下:
    1.将外部的FPGA视作SDRAM或者flash,按照硬件固定的时序进行读写,但是这里的问题是,linux是虚拟地址系统,如何保证能够一定可以选中FPGA进行读写呢?且是否能在操作系统下对不存在的物理地址进行寻址呢?
    2.看到网络芯片DM9000也是使用的外部总线方式进行读写的(没有用到数据线),看了驱动的一部分,感觉它是对某个端口直接进行读写,不清楚它是怎么符合DM9000的读写时序的。
    有相关经验的同志请指点迷津啊。

相关帖子

沙发
yuyu8444|  楼主 | 2008-4-8 17:12 | 只看该作者

也不知道DM9000的端口是怎么来的,郁闷

使用特权

评论回复
板凳
deeploves| | 2008-4-8 20:41 | 只看该作者

映射物理地址成虚拟地址

使用特权

评论回复
地板
wangkj| | 2008-4-9 09:11 | 只看该作者

remap

使用特权

评论回复
5
yuyu8444|  楼主 | 2008-4-9 09:38 | 只看该作者

我对2,3楼的理解如下:

    比如现在开发板外面挂的是64M的SDRAM,64M的nand flash,那么从2440可以寻址的物理地址上看,nGCS2,nGCS3,nGCS5片选信号对应的地址片都是没有使用的,我可以自己约定FPGA在nGCS2对应的地址域上(0x1000_0000-0x1800_0000),比如选择0x1000_0000这个地址,直接一个ioremap(0x1000_0000),然后对映射的地址进行读写是不是就可以了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

23

帖子

0

粉丝