阅读:1775回复:10
9054的LA端地址问题
9054的LA端地址是怎么定义的啊?我的意思是怎样取得我想要的LA地址。
我用的32bit模式,就应该是LA[32:2]为我的本地地址吧 我是这样配置的LAS0RR与LAS0BA LAS0RR:FFFFFFFFD,I/O读写。 LAS0BA:0001000D, PCIBAR0由系统分配的地址为0000d801。 这样我在驱动里进行读写时,系统是不是自动从0000d801这个端口地址进行读写呢?而此时的9054的LA[32:2]即为LAS0BA[32:2]=00008003呢? 我就是这样理解的,不知道对不对。关键就是不知道PCI端分配的I/O端口地址是多少,该如何变化。对应的9054的LA[32:0]地址是多少,该如何变化,由什么来定义它 请各位详细指点,谢谢 |
|
沙发#
发布于:2004-08-19 12:12
我把论坛里与LAS0BA有关的帖子都搜索出来看了下,没发现有详细说明我这个问题。看来大家都明白这个问题,正好请大家帮忙回答一下了。我想了好几天都没弄明白
|
|
板凳#
发布于:2004-08-19 14:02
“而此时的9054的LA[32:2]即为LAS0BA[32:2]=00008003”这句话我不懂。LA是32位的,如果读0X00008003,则LA地址仍为0X00008000,然后屏蔽调最低3个字节,取最高字节。我认为阁下不妨按照这个思路理解一下PCI地址和LA地址,也许或发现问题的所在。
|
|
地板#
发布于:2004-08-20 09:29
那LA[32:0]到底该为多少呢?
是LAS0BA的0001000D,还是PCIBAR0的0000d801呢? 而且是照你说的那样不算最后三位 这论坛上的人都走哪去了?帮帮忙啊 |
|
地下室#
发布于:2004-08-21 17:39
我觉得当访问PCIBAR0(偏移地址为0)LA应该是0001000D。不过我觉得你的local端是32位的,那么LAS0BA是不是也应该是32位对齐的啊?
|
|
5楼#
发布于:2004-08-22 00:34
我的意思也是LA[31:0]为0001000D,我写的是LA[31:2]即截断了后两位的值,又不知道该怎么表示。
我现在尝试了一下读数据,首先在LD[31:0]用FPGA放上数据0xf1f1f1f1。这下来读space0,端口地址为d801。 偏移地址为0时读出数据为0xf1f1f1f1,偏移地址为1时,读出的数据为0xfff1f1f1,偏移地址为2,读出数据为0xfffff1f1,以后没偏移1位,读出的数据就右移8位, 请问这是什么意思啊。这个偏移地址是在LA[31:0]=0001000D上面偏移还是在端口地址d801上偏移呢? FPGA默认数据为1,不过好象跟这个没关系吧,因为我是一直让它把数据保持在0xf1f1f1f1的,那后面来的1又是从那来的呢? |
|
6楼#
发布于:2004-08-22 11:07
你的FPGA内部是怎么对LA[31:2]进行译码的?也就是当LA[31:2]为多少时FPGA输出数据0xF1F1F1F1?译码时是否用到了LBE#[3:0]?
|
|
7楼#
发布于:2004-08-22 14:09
没有对LA[31:2]译码,没管LA[31:2]和LBE[3:0]这几位
|
|
8楼#
发布于:2004-08-23 18:40
算了,问了也白问,没人关心。幸好我自己解决了
zab兄虽然你没帮我解决,但还是感谢你的热心。把分送上 |
|
9楼#
发布于:2004-08-23 18:42
哦,还有wkq清秋枫叶兄
|
|
10楼#
发布于:2004-08-23 20:21
怎么解决的啊,说来听听:)
|
|