阅读:1410回复:2
PCI配置信息的配置过程
最近心血来潮想学习PCI驱动的开发,以前开发过ISA卡的驱动,是用DS写的。现在看《PCI 系统结构》看了几天,看的晕头转向的。前面还好懂点,后面就犯难了,18章里讲到配置信息,这里我有些疑惑向大虾门请教:
先说说硬件的构成,接口芯片是PLX的9054,外挂一个E2PROM,来存放配置信息。我不明白,主板的BIOS,PCI-BIOS,操作系统(WIN2000),驱动程序,在配置PCI板卡 的整个过程里都分别做了什么,哪些是 应用驱动来完成的(自己写的驱动,不是系统总线驱动),哪些是不用驱动来管的?? 我看了很多的资料上都说,开机,主板BIOS自检,把配置信息从E2PROM里读出来,这时候PCI卡还处于待机状态,BIOS程序执行完后就进入引导操作系统阶段了,操作系统把BIOS读到的配置信息写入PCI卡上9054的配置寄存器里,这样就完成了我板卡资源的自动配置,不知道这个过程是否正确?如果正确的话,那么我觉得,我的驱动程序没有干什么啊!! 还是根本就不是这么回事! 望大虾不吝赐教! 感激! |
|
|
沙发#
发布于:2003-11-02 15:57
对PCI的driver来说,资源不用操心了,在IRP_MJ_PNP的IRP_MN_START_DEVICE(StartDevice),资源给你了。
其它和ISA差不多。 不知道DriverWorks怎么处理的,应该是对应于KPnpDevice::OnStartDevice吧。 |
|
板凳#
发布于:2003-11-05 18:21
谢谢大虾的回答!
我还有疑问,PCI的资源不是固定的,只是指定了一个范围,比如端口地址和内存范围,只是一段,至于它的基地址是每次开机系统自动给分配的。那么设计硬件的时候要把资源范围写到E2PROM里,E2PROM的格式和PCI配置空间的格式是一样的,我说的这些资源范围是不是要写到基地址寄存器里,一共有6个,按什么规则来写,我看了PCI系统结构,但还是看不明白。 能不能详细地讲讲!说得通俗些 |
|
|