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

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

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

  
deeploves 发表于 2008-4-8 20:41 | 显示全部楼层

映射物理地址成虚拟地址

  
wangkj 发表于 2008-4-9 09:11 | 显示全部楼层

remap

  
 楼主| yuyu8444 发表于 2008-4-9 09:38 | 显示全部楼层

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

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

本版积分规则

9

主题

23

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部