阅读:1605回复:9
请教! 关于9054配置寄存器!!
1.PCI配置空间中,按照定义,
PCIBAR0是for memory accress to local,runtime and dma PCIBAR1是for I/O accress to local,runtime and dma 看不太明白啊,这两个使用来作甚么的啊,是将local,runtime and dma寄存器映射到存储空间吗,他们和PCIBAR2和PCIBAR3有什么不同啊。 现在我想将PCI卡上的存储空间(64K)映射到内存中,是否只用设置PCIBAR2或者PCIBAR3就行了? 2.在windows下使用得是线性地址,需要编写驱动程序实现线性地址和物理地址之间的转换。而且每次启动系统分配给PCI卡的资源都不同。 然而PCI的配置空间可以通过两个IO端口进行访问,如果我们编写程序在每次启动之后先访问PCI卡的配置空间,从而知道PCI-BIOS分配给PCI卡的系统资源,然后再进行数据的传输,那么这时是否可以不使用驱动程序? 希望有人帮我解释一下,谢谢!!!!! |
|
沙发#
发布于:2003-05-16 20:38
请将pci9052的资料发给我!
|
|
板凳#
发布于:2003-05-17 12:27
9052的资料有很多啊
看看datasheet就可以了 |
|
地板#
发布于:2003-05-18 13:43
那位高手有时间阿
现在有点弄不清初阿 是不是PCIBAR是由系统BIOS设置的,自己只用设置本地段需要映射的地址空间的范围和基地址就行了? 谢谢了 |
|
地下室#
发布于:2003-05-18 13:44
那位高手有时间阿
现在有点弄不清初阿 是不是PCIBAR是由系统BIOS设置的,自己只用设置本地段需要映射的地址空间的范围和基地址就行了? 谢谢了! 救人一命胜造七级浮屠阿!! |
|
5楼#
发布于:2003-05-19 18:35
你只能规定你的局部空间的范围和映射关系。
具体分配给你的基地址,是BIOS的事,开机时完成。 通过读取PCI配置空间,得到基地址。地址是连续的。 |
|
6楼#
发布于:2003-05-19 20:16
这样的话就好说了
还有就是自己只需要配置EEPROM就行了,启动时EEPROM对相应的寄存器进行配置。 而其他的寄存器,DMA,RUNTIME等是在用到相关功能时由驱动程序或软件进行设置,可以这样理解吗?????? 我现在看databook中寄存器的说明看的头都晕了。 |
|
7楼#
发布于:2003-05-28 20:59
明白了吗?是很绕,再坚持一下看明白了就好了
高清楚那些是我们干的,那些是主机自动配置的 并且注意,EEPROM里的偏移地址和PCI还有Local配置寄存器里的都不一样的 我也是刚明白一点 |
|
8楼#
发布于:2003-05-28 21:36
1、PCIBAR是系统BIOS设定的。
2、通过PCIBAR可以访问所有LOCAL端的资源(包括寄存器和地址空间) 3、系统进行进行PCIBAR2,3分配是需要知道你到底想映射多大的空间到系统中以及是内存映射还是I/O映射。 4、通过两个I/O口访问到的PCI配置空间得到的PCIBAR是物理地址。必须转换为线性地址才能进行读写操作。(请问如何在应用程序中将物理地址转化为线性地址,有专门的函数吗?) 5、驱动程序运行在内核态,能够及时处理中断以及其它性能要求比较高的操作。所以需不需要驱动得看你要求的性能了。 个人观点,如满意给点分,谢谢! |
|
9楼#
发布于:2003-05-28 22:10
楼上的同志 我觉得你说的对,最好的是通俗易懂 呵呵 可以讨论一下 QQ:25395799 我也正在做
[编辑 - 5/28/03 by chenjuan02] |
|