阅读:1184回复:4
请教pci寄存器的问题 兄弟一定加分啊
pci规范上讲 每个设备应实现一组寄存器 其中基址寄存器有6个
我看了9030 .9052脑袋都大了,也不清楚这几个寄存器都做啥用的 大虾们多多指教啊 1. data sheet说base0和1是用来访问LOCAL配置寄存器的,分别映射到内存和IO的基地址, 它们必须同时实现吗? 系统给base0分的address和range是对应LOCAL 配置寄存器的address和range吗? 2. base2-5做啥用的啊! 把他们映射为memory或i/0空间究竟是访问local bus的啥东西啊?? 是和9030接着的的几个芯片.还是local bus上实现的几个功能? LAS0BR和LAS0RR究竟应写啥,你给几个芯片分配的地址吗! 3. local chip select CS0-4究竟选的啥? 他们的基址和范围是和pci base adress2,5一致还是和local base adress0,3 一致? 只用CS0 或4个都用由什么决定啊 是和local base adress0,3对应 还是由功能决定 . 看data sheet 几月了 实在看糊涂了! 大家帮我讲讲啊 谢 |
|
沙发#
发布于:2003-11-28 14:23
1:是的
2:2-5是访问你的Local Bus端的,有的板上可以有多个IO或者多个Memory,这个的配置也和0和1一样。 3:选择你的外部的芯片,就是使能功能,当然是0-3。 |
|
|
板凳#
发布于:2003-11-28 19:18
非常谢谢啊,我再详细问问.
1.base0和1用不用同时实现?? 既然他们访问的是LOCAL配置寄存器,而LOCAL配置寄存器的空间大小是一定的啊,我该用base0或1怎么靠什么决定呢? 可供配置的存取器和i/o空间大小大概是多少. 2. base2-5是可访问local bus上接的4个芯片吗, 这些芯片怎接,我看了几块板子的电路图,都没用地址线啊,只用数据线和几个芯片的引脚接着,那么啥时用地址线,怎么连线?总歹有个方法区分啥时访问的是芯片1-4吧,我实在想不明白啊!另外如同时使用base2-5,是把地址线或数据线如1-32分成1-8接芯片1,9-16接芯片2,........ 还是同时把1-16即接芯片1也接芯片2 ? 3. pci规范说一个pci设备(在一个插槽)可实现几个功能, 那几个功能是在一块板子上实现的吗?一个9052可以实现几个功能吗? 4.local chip select CS0-4选的是几个芯片吗?我做一块电路板 用CS0,还是0-4都用应该怎么考虑. 我问的问题可能也不对,请高手指点啊 |
|
地板#
发布于:2003-12-22 20:38
我想问一下,在写驱动程序的时候,要对PCI9052中的PCI Config 寄存器和 Local 寄存器进行读操作,怎么在驱动程序中进行读写,
我可以把Local寄存器映射为memory,通过对memory读写来写Local寄存器,那么怎么来对PCI Config寄存器进行写操作呢? |
|
地下室#
发布于:2003-12-25 09:42
我也不是很清楚。
看看我的理解对不对: 首先看你接了几个cs, cs0base, cs1base,cs2base,cs3base设定cs0,cs1,cs2,cs3所选芯片的基地址。然后就要设定相应的 las0rr, las1rr,las2rr,las3rr, las0ba,las1ba,las2ba,las3ba, las0brd,las1brd,las2brd,las3brd, 他们是一一对应的。 pcibar2,pcibar3,pcibar4,pcibar5,和上面也是对应的,但是他不需要设定,系统启动时自己给的。(这个是不是理解错了) pcibar0,pcibar1访问的是LOCAL配置寄存器,也不要设定。(因为EEPROM中都没有说要给出他们的值)。 还有问题不明白: 1.las0rr, las1rr,las2rr,las3rr依据什么选择是映射成I/O,还是Memory?难道是外面接了Ram,就映射成Memory?接了像8255之类的芯片就映射成I/O? 2.eromrr,eromrr,erombrd,所指的扩展Rom是指的9346还是用户扩展的的Rom? |
|