PCI驱动程序

1.1、PCI嗅探扫描从按下PC的电源按钮开始,BIOS就接管系统控制权开始工作,它会先进行一些内存和设备的初始化工作,包括PCI设备。下面开始分析,BIOS中

大家好,感谢邀请,今天来为大家分享一下PCI驱动程序的问题,以及和的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

步骤1:PCI Host Bridge扫描Bus 0上的设备(在处理器系统中,直接连接到HOST Bridge的PCI总线一般称为PCI Bus 0)。系统首先会忽略总线0上的D1、D2等不会挂接到PCI桥上的设备。主桥发现Bridge 1后,将Bridge 1下的PCI总线设置为Bus 1。系统将初始化Bridge 1的配置空间,并更改该桥的Primary Bus Number和Secondary Bus。 Number 寄存器分别设置为0 和1,表示Bridge1 的上游总线为0,下游总线为1。由于目前还无法确定Bridge1 下挂载的设备的具体情况,所以系统暂时设置了从属总线编号到0xFF。如图1.1所示:

图1.1 PCIE扫描第一步**

步骤2:系统开始扫描总线1,将发现桥2。系统将Bridge 2下的PCI总线设置为Bus2,并将该桥的Primary Bus Number和Secondary Bus Number寄存器分别设置为1和2。与上一步一样,暂时将Bridge 2 的从属总线编号设置为0xFF。如图1.2所示:

** 图1.2 PCIE扫描第二步**

步骤3:系统继续扫描Bus 2,会发现Bridge 4。系统将Bridge 4下的PCI总线设置为Bus 3,并将该桥的Primary Bus Number和Secondary Bus Number寄存器分别设置为2和3。之后系统继续扫描,发现Bus 3下没有Bridge,说明该PCI总线下没有挂接下游总线,因此可以确定Bridge 4的Subscribed Bus Number值为3。如图在图1.3中:

** 图1.3 PCIE扫描第三步**

步骤4:完成总线3的扫描后,系统返回总线2继续扫描,发现总线2下没有其他Bridge。此时,Bridge 2的Subscribed Bus Number值也可以确定为为3.如图1.4所示:

** 图1.4 PCIE扫描步骤4**

步骤5:完成对Bus 2 的扫描后,系统返回Bus1 继续扫描。将找到Bridge 3,系统将Bridge 3下的PCI总线设置为Bus 4。并将Bridge 4的Primary Bus Number和Secondary Bus Number寄存器分别设置为1和4。之后系统继续扫描,发现Bus 4下没有Bridge,也就是说PCI总线下没有挂载下游总线。因此,可以确定Bridge 3的从属总线编号值为4。如图1.5所示:

** 图1.5 PCIE扫描步骤5**

步骤6:完成总线4的扫描后,系统返回总线1继续扫描,发现总线1下没有其他Bridge。此时可以确定Bridge 1的Subscribed Bus Number值为4、系统返回Bus 0继续扫描(如果Bus 0下还有其他Bridge,则重复上述步骤进行扫描)。至此,本例中整个PCI设备扫描已经完成。最终的设备和总线扫描结果如图1.6所示:

** 图1.6 PCIE扫描步骤6**

一般来说,PCI配置空间可以通过两个寄存器(寄存器CONFIG_ADDRESS和CONFIG_DATA)来访问。在x86系统下,这两个寄存器分别对应0xCF8和0xCFC端口。对配置空间的访问首先是通过这两个寄存器的读写来实现的。 CONFIG_ADDRESS寄存器的具体位组成如图1.7所示:

** 图1.7 x86配置寄存器**

总线号: 总线号(8 位),范围0–255。

设备编号: 设备编号(5 位),范围0–31。

PCI驱动程序

功能号: 功能号(3位),范围0–7。

Register Number: 寄存器编号(6 位),范围0–63(配置空间共256 个字节,分为64 个4 字节寄存器,编号为0–63)。

每个PCI设备可以根据上图所示的四个信息来定位具体的设备并访问其配置空间:总线号、设备号、功能号和寄存器号。访问PCI设备的配置空间时,首先按照上述格式设置CONFIG_ADDRESS寄存器,然后读取CONFIG_DATA寄存器,得到对应配置空间寄存器的值。通过以上步骤,BIOS已经完成了对所有PCI设备的扫描,并为各个设备分配了系统资源。

1.2、PCI空间分配

PCI 设备的三个地址空间:

1配置空间:256byte

2I/O空间

3内存空间

注意:

1、系统初始化时,会对每个PCI设备的配置空间寄存器进行初始化;

2UEFI提供PCI_IO_Protocol来操作PCI设备,可以读写PCI设备配置空间、I/O空间等;

3PCI设备中的I/O空间,Memory空间分为6个不重叠的子空间,配置空间中的Base

Address0~5代表上述六个子空间的基址。

2. 重定向

3、USB

用户评论

PCI驱动程序
将妓就计

哎哟,最近升级了新主板,结果刚安装好就出现PCI驱动的问题了!百度上信息太多,弄得头晕目眩,不知道从哪里下手…希望这篇文章能给点思路吧!

    有20位网友表示赞同!

PCI驱动程序
鹿叹

以前经常遇到PCI驱动问题,简直是电脑噩梦。还好慢慢掌握了一些解决办法,分享经验给大家,希望能帮到更多人。

    有16位网友表示赞同!

PCI驱动程序
相知相惜

这篇博文写的蛮详细的,对于新手小白来说很友好,解释清楚了PCI驱动的作用和常见问题,帮我解决了安装难题!

    有19位网友表示赞同!

PCI驱动程序
莫阑珊

我可算是个电脑白痴,对这些专业术语一头雾水,建议作者能加入一些通俗易懂的讲解,这样更方便理解。

    有16位网友表示赞同!

PCI驱动程序
岁岁年年

啊,终于找到解释PCI驱动问题的文章了!我的网卡一直使用着旧版本的驱动器导致网络速度很慢,要赶紧更新一下才行。

    有18位网友表示赞同!

PCI驱动程序
巷口酒肆

虽然这篇文章知识面还算广博,但也忽略了一些细节问题,比如不同版本的Windows系统对PCI驱动支持的差异,作者下次可以补充一下这些信息!

    有17位网友表示赞同!

PCI驱动程序
高冷低能儿

说的太对了!很多时候不是真正的硬件故障,而是驱动问题的导致的结果,只要找到合适的驱动就可以解决问题。

    有19位网友表示赞同!

PCI驱动程序
嘲笑!

我更喜欢用图形界面来安装驱动,这篇文章好像只介绍了命令行的方式,对于大多数用户来说可能比较麻烦哦。

    有14位网友表示赞同!

PCI驱动程序
墨染殇雪

PCI驱动确实很关键,影响着硬件的正常工作,建议大家定期检查和更新驱动,以确保系统的稳定运行。

    有6位网友表示赞同!

PCI驱动程序
我就是这样一个人

感觉这篇博文写得有点过于理论化,缺乏实践性,希望能有更多具体的案例介绍,更容易理解和操作。

    有20位网友表示赞同!

PCI驱动程序
龙吟凤

我个人觉得这篇文章对解决PCI驱动问题很有帮助,详细的步骤非常清晰易懂,我已经按照文章中的方法解决了我电脑部分驱动的问题了!

    有18位网友表示赞同!

PCI驱动程序
陌颜幽梦

我的网卡就是一直出现不稳定现象,怀疑是驱动问题的缘故。这篇博文让我明白了怎么检查和更新驱动,终于可以尝试一下改善网络速度了!

    有7位网友表示赞同!

PCI驱动程序
落花忆梦

这篇文章给我带来了许多启发,我会更加注意硬件设备的驱动问题,定期进行检查和更新,避免性能下降和兼容性问题。

    有16位网友表示赞同!

PCI驱动程序
微信名字

PCI驱动确实是一个比较难弄的问题,需要仔细阅读官方文档和教程才能找到正确的方法。建议作者可以添加一些故障排除指南,更方便解决实际难题。

    有6位网友表示赞同!

PCI驱动程序
三年约

说白了,就是这篇文章说的很道理,但是没有办法让老百姓简单地就理解,所以还是看懂了才知道怎么操作吧!

    有20位网友表示赞同!

PCI驱动程序
可儿

最近一直在更新电脑的硬件配置,看来PCI驱动问题也是一个需要注意的部分。这篇博文开阔了我的眼界,让我更加了解这个方面的知识。

    有9位网友表示赞同!

PCI驱动程序
疯人疯语疯人愿

我觉得这篇文章写得太浅了,并没有深入讲解不同类型的PCI设备对应的驱动设置方法,还需要更详细的内容说明。

    有14位网友表示赞同!

PCI驱动程序
繁华若梦

虽然这篇文章对PCI驱动有了简单的介绍,但我还是希望作者能提供更多实用性的建议和操作步骤,这样才能真正帮助到需要的人!

    有5位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/203308.html

(0)
小su's avatar小su
上一篇 2024年9月28日 上午3:12
下一篇 2024年9月28日 上午3:17

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注