PCI配置空间和存储空间

标签: pcie
3人阅读 评论(0) 收藏 举报
分类:

来源: 郭耀仪的日志


配置空间是每一个PCI设备都要提供的一个寄存器,位于硬件设备中,它的作用是:

1.         告诉系统本硬件的名称、生产厂商、设备类型、版本、是否支持背靠背传输等信息

2.         告诉系统本硬件需要的IO、中断、MEMORY等资源的数量;

3.         接受系统赋予以上资源的基地址;

在配置空间中有些数据是可以改变的,比如设备的IO基地址,而有些是不能随便修改的,比如硬件的名称和版本号。

 

PCI有三个相互独立的物理地址空间:设备存储器地址空间、I/O地址空间和配置空间。配置空间是PCI所特有的一个物理空间。由于PCI支持设备即插即用,所以PCI设备不占用固定的内存地址空间或I/O地址空间,而是由操作系统决定其映射的基址。

 

CPUPCI设备的配置,是为了完成PCI 设备存储空间的地址分配、PCI设备功能设置等工作。配置操作时,CPU通过北桥芯片实现设备片选。

配置寄存器组内保留了对PCI设备的基本特性进行详尽说明的可读信息,CPU读取这些信息后,就可以为PCI设备设定符合需要的配置内容,从而实现自动配置。这些可读信息包括:

Vendor ID :设备供应商编号,由PCI SIG国际组织分配。

Device ID :特定设备编号,由设备供应商分配。

Revision ID :设备的特定版本号,由设备供应商分配。

Class Code :设备的功能类别编号。

Header Type :指示Header 中从地址10H3FH区域的内容格式,同时指示该设备是否为多功能设备。

 

PCI存储空间不同于PCI配置空间。PCI存储空间可以存放PCI设备的特殊功能寄存器,也可以用做数据缓冲和存储区域。PCI存储空间分为MEMORY空间和I/O空间两类,它们独立寻址,并使用不同的总线操作命令进行访问。MEMORY空间适用于设备功能寄存器较多或数据流量较大的场合,例如网口芯片、PCI-PCI桥等。I/O空间适用于设备功能寄存器较少或数据流量较小的场合,例如串口芯片、LED控制寄存器等。但在地址空间比较充裕的条件下,也有把范围较小的存储区放入MEMORY空间的做法。操作响应者根据操作发起者发出的总线操作命令类型,来识别当前操作是指向MEMORY空间还是I/O空间。

配置寄存器组(位于配置空间中)中会有一个或多个基址寄存器BARBase Address Register),用于保存指向PCI存储空间的指针,同时BAR中可读不可写的位数决定了该存储空间的大小。BAR的最低位是只读位,它定义了BAR的空间属性。当BAR指向PCIMEMORY存储空间时,该位回读为0;当BAR指向PCII/O存储空间时,该位回读为1。由于BAR的这一属性,使得PCI设备占用的存储区域是放在MEMORY空间,还是放在I/O空间,完全由设备制造商决定,用户无法修改。

单个设备/功能PCIMEMROY空间的容量可选取16byte~2Gbyte。但为了减少参与地址译码的地址线数量,PCI规范建议MEMORY空间分配不小于4Kbyte

单个设备/功能PCII/O空间的容量可选取4byte~256byte ,不允许超过256byte

访问PCI存储空间时,都使用“BAR指针+地址偏移量作为存储空间的访问地址。因此,为每个PCI设备/功能分配合理的地址空间,保证设备/功能间的存储空间不发生重叠,是PCI设备配置操作的一项重要内容。

 

源地址:http://blog.renren.com/GetEntry.do?id=491879916&owner=258749112

查看评论

Maven的配置与使用

-
  • 1970年01月01日 08:00

PCI配置空间和PCI存储空间

    CPU对PCI 设备的配置,是为了完成PCI 设备存储空间的地址分配、PCI 设备功能设置等工作。配置操作时,CPU通过北桥芯片实现设备片选。    配置寄存器组内保留了对PCI 设备的基本特...
  • Augusdi
  • Augusdi
  • 2011-02-23 09:15:00
  • 2925

PCI的配置空间、I/O空间、内存空间的具体区别

计算机的几种重要资源,建议看看计算机结构方面的书籍. 软件资源其中主要有:' T9 W# Y7 M' X# ~! v: ~* Y# Z 1、Memory7 M+ \* T7 z. D6 q1 p....
  • jasonwoodlee
  • jasonwoodlee
  • 2011-09-03 10:32:40
  • 6711

3.1 PCI设备BAR空间的初始化

在PCI Agent设备进行数据传送之前,系统软件需要初始化PCI Agent设备的BAR0~5寄存器和PCI桥的Base、Limit寄存器。系统软件使用DFS算法对PCI总线进行遍历时,完成这些寄存...
  • sailing_w
  • sailing_w
  • 2017-02-12 19:44:05
  • 730

如何访问PCI配置空间数据并操作其映射的物理内存

 PC机在启动的时候,都会看到一个PCI设备清单,可以看到机器中的所有PCI设备,其实搜索PCI设备的程序并不难编,本文通过一个实例说明如何遍历PCI设备。 1、了解PCI设备       ...
  • zhongyhc
  • zhongyhc
  • 2014-08-23 21:15:42
  • 1110

PCI总线配置空间详解

其实之前是简单学习过PCI设备的相关知识,但是总感觉 自己的理解很函数,很多东西说不清楚,正好今天接着写这篇文章自己重新梳理一下,文章想要分为三部分,首先介绍PCI设备硬件相关的知识,然后介绍LINu...
  • baidu_24256693
  • baidu_24256693
  • 2017-02-08 15:36:53
  • 3631

PCI bar 空间可预取与不可预取概念

      PCI BAR空间分为两类:IORESOURCE_IO(非可预取)和IORESOURCE_MEM(可预取),一般来说,对于BAR为寄存器空间,都要设置为IORESOURCE_IO;对于BA...
  • ykqnjust
  • ykqnjust
  • 2011-03-10 09:56:00
  • 5150

PCI的配置空间

PCI的配置空间 主要讨论如何去访问PCI配置空间和描述PCI设备的配置空间的定义和使用规则。理论上如何访问PCI配置空间的问题是属于总线操作的一部分,但是和配置空间有着密切联系,有必要一起讨论。 ...
  • pankul
  • pankul
  • 2013-02-21 15:32:51
  • 1942

PCI配置空间访问的细节

PCI总线配置空间:                                                                                          ...
  • cqu20093154
  • cqu20093154
  • 2014-09-15 23:31:13
  • 1321

PCI配置空间 PCI PCI配置空间 PCI配置空间 PCI PCI配置空间

  • 2009年03月14日 09:16
  • 17KB
  • 下载
    个人资料
    等级:
    访问量: 85
    积分: 36
    排名: 193万+
    文章存档