1.1 PCI&PCIE 配置寄存器访问

1、PCIE 寄存器的总体结构:

PCI的配置寄存器空间为256个字节大小。PCIE扩展了配置寄存器空间,大小为4096的字节。PCIE配置寄存器的整体分布如下图所示:

这里写图片描述

从上图可见,整个PCIE配置空间被分成了3部分,其中0-FF为PCI兼容的配置空间,100-FFF为PCIE扩展的空间。每部分的作用大概如下:

  • a、0-3F :这部分的配置空间是标准的PCI配置空间头,是每个PCI/PCIE设备都必须遵循的。目前一共有3种标准头格式,00是PCI DEVICE头,01是PCI-PCI bridge头,02是Cardbus bridge头。头类型由Header Type寄存器定义。
  • b、40-FF :这部分定义PCI扩展功能寄存器。0-3F定义的寄存器是每个PCI设备都必须实现的,而PCI的一些扩展功能,不是每个设备都必须实现的,可以根据自己的需要来实现其中一部分特性。重点注意的是这部分寄存器的组织结构,每一个可选的特性被组织成一个标准的Capability Struct,设备选用的多个Capabilities用链表的方式组织起来,称为Capabilities List。PCIE即在PCI原有的Capabilities当中新增了一种ID,即PCIE Capability Struct。这样可以实现对老的PCI驱动的兼容。
  • c、100-FFF:这部分定义PCIE扩展功能寄存器。实现PCIE的可选特性,也是采取Capabilities List结构组织起来的。

2、PCI Capabilities List(40 - FF)的组织方法:

40-FF区域用来实现可选的PCI特性,每个特性对应一个Capability Struct,所有实现的特性用链表的方式组织起来,称为Capabilities List。组织形式如下图所示:

这里写图片描述

在标准PCI头的寄存器中,”status”(06h)寄存器bit4定义了本设备是否有Capabilities List,”Capabilities Pointer”(34h)寄存器定义了Capabilities List链表头指针。如下图所示:

这里写图片描述

需要特别注意注意的是,PCI配置寄存器是不能随意增加的。寄存器需要根据特性组织成Capabilities Struct,对Capabilities Struct是有统一规定的,包括标准特性和自定义特性。
现在协议规定的Capabilities ID有下列特性:

这里写图片描述

3、PCIE Capabilities List(100 - FFF)的组织方法:

100-FFF区域用来实现PCIE独有可选的PCI特性,也都是使用Capabilities List的形式来组织的,只是具体的Capbalities Struct结构有些扩展。

这里写图片描述

4、实例:

以系统A的PCIE配置空间为例来说明Capabilities List的组织方法:

这里写图片描述

5、参考资料:

  • PCI Local Bus Specification Revision 2.3
  • PCI Express Base Specification Revision 1.1
  • 1
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinRing PCI寄存器是一个PCI总线工具,用于读取和修改计算机系统中的PCI设备配置信息。 PCI(Peripheral Component Interconnect,外围元件互连)总线是一种计算机外部设备与主机之间的连接接口标准。每个PCI设备都有一个唯一的设备编号和相关的配置寄存器,用于存储设备的相关信息,如设备厂商和型号、设备类型、硬件功能和性能等。 WinRing是一种用于访问和管理PCI设备寄存器的工具,它提供了一种简化的接口,使用户能够快速的读取和设置PCI设备的配置信息。通过WinRing,用户可以实时监测PCI设备的状态、性能和错误信息,并调整设备的工作参数。这对于系统管理员和硬件工程师来说是非常重要的,他们可以通过WinRing更好地了解和管理系统中的PCI设备。 使用WinRing,用户可以执行以下操作: 1. 查看PCI设备信息:包括设备编号、厂商ID、设备ID、子系统ID等信息,了解设备的基本特性。 2. 修改PCI设备配置:可以对PCI设备的配置寄存器进行读取和修改,例如调整设备的时钟频率、中断设置等。 3. 监控PCI设备性能:通过监控寄存器的值,可以实时了解设备的工作状态、传输速率等性能参数。 4. 检测和诊断PCI设备错误:可以检测和记录PCI设备的错误状态和错误码,帮助用户快速诊断和解决问题。 总之,WinRing PCI寄存器是一个方便实用的工具,提供了读取和修改计算机系统中PCI设备配置信息的功能,用于优化和管理PCI设备的使用。同时,它也是一个有力的诊断工具,可以帮助用户快速发现和解决PCI设备相关的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值