阅读:1736回复:7
请教大侠,windows分配给pci芯片的配置信息(i/o,irq,dma)是由windows,还是由驱动程序写入到芯片的配置空间中?
是不是这样?windows首先发现了设备,要求安装相应的驱动,由inf文件给出设备的要求。再由windows来综合分配,再把分配的信息给驱动程序。由驱动程序来根据分配的信息来访问。可我不明白,这个分配的信息,是否已由windows写入到芯片的配置空间中,(配置空间的分布是总线协议定下来了),还是要求驱动程序根据这个信息自己写入到芯片的配置空间中?
另外能否解释一下,总线号,设备号,功能号,及总线、设备、功能之间的相互关系? 谢谢了!!! |
|
最新喜欢:juvent...
|
沙发#
发布于:2002-07-17 13:52
你可以在pci2.2规范里面找到答案
|
|
板凳#
发布于:2002-07-17 14:41
配置信息一般是存于eeprom中。上电时加载到pci芯片的配置空间。bios检测到pci卡,访问其配置空间,由配置空间的基地址内容分配资源。而驱动程序中的资源要求只是获得访问指针。
|
|
地板#
发布于:2002-07-17 14:54
sialtj 兄:
配置空间的信息通常是在开机上电时,有BIOS来读取配置信息,根据配置信息中的资源申请,分配IO资源,并将系统分配的IO范围的逻辑地址(物理地址)回写给设备的配置寄存器,并将配置信息存放在COMS中,称为ESCD,bios引导完OS系统后,由操作系统将该配置信息写到注册表中的硬件属性中。对于支持热插拔和即插即用的OS,可以带电插拔设备,并能动态分配资源,这时采用配置方式1#进行的。这和设备驱动程序的安装是两回事,此时设备的资源信息已经存放在注册表中,驱动程序只是简单的获取资源,有两种方式可以获取设备资源,一种是通过配置方式1#读取设备的配置信息,一种是从注册表中读取,两种是一致的。 总线号,是对于桥的个数而言,如果只有一个北桥,则总线号总为0,如果有一个pci-pci的桥的则桥前面的为总线0,桥后面的为总线1,如果有多个pci-pci桥,依次类推。一条总线上可能有多个设备(每个pci槽对应一个),每个设备都有一个设备号,设备可能是单功能的也可能是多功能的(即一个槽上的设备可能有多个用途,譬如同时具有网络和串口的功能,必须为每个功能分别分配资源,即每个功能都需要一个配置空间)。这几个参数是配置方式1#所必须的参数。 |
|
地下室#
发布于:2002-07-17 16:21
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2002-07-17 17:52
建议你看看驱动模型!这些信息都是一步一步得来的。
|
|
|
6楼#
发布于:2002-07-18 21:02
补充一点,BIOS读取资源申请信息时,当然是从设备的e2prom中读取,然后回写到设备的配置寄存器中,我前年在这个地方化了2个月的时间才弄清楚。现在我可以同时实现dma与从方式,从方式是对FPGA与DSP阵列的配置芯片通过PCI/CPCI总线进行动态在线配置,dma是读取遥测遥控卡上接收卫星来的缓冲数据,可以达到80MBS/s的速率。俺的驱动编写用的是DS。硬件软件俺是独自一个人一起来,有问题,可以继续交流。
|
|
7楼#
发布于:2002-07-18 21:12
zhouweichao兄说得对,看来是个有经验的人
|
|