lishi626
驱动牛犊
驱动牛犊
  • 注册日期2003-11-25
  • 最后登录2008-07-17
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1184回复:4

请教pci寄存器的问题 兄弟一定加分啊

楼主#
更多 发布于:2003-11-27 20:47
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 几月了 实在看糊涂了! 大家帮我讲讲啊 谢


CYoung
驱动中牛
驱动中牛
  • 注册日期2003-06-10
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-28 14:23
1:是的
2:2-5是访问你的Local Bus端的,有的板上可以有多个IO或者多个Memory,这个的配置也和0和1一样。
3:选择你的外部的芯片,就是使能功能,当然是0-3。
答得好的话,请兄弟们加点分,那是对我的肯定
lishi626
驱动牛犊
驱动牛犊
  • 注册日期2003-11-25
  • 最后登录2008-07-17
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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都用应该怎么考虑.
    我问的问题可能也不对,请高手指点啊
    
zb19780401
驱动牛犊
驱动牛犊
  • 注册日期2003-04-11
  • 最后登录2004-01-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-22 20:38
我想问一下,在写驱动程序的时候,要对PCI9052中的PCI Config 寄存器和 Local 寄存器进行读操作,怎么在驱动程序中进行读写,

我可以把Local寄存器映射为memory,通过对memory读写来写Local寄存器,那么怎么来对PCI Config寄存器进行写操作呢?
mapofl
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于: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?

游客

返回顶部