PCI、PCIE配置空间的访问

news/2024/11/22 8:37:32/

一. 使用PCI兼容性配置访问机制

根据协议,x86上使用了两个I/O端口寄存器(OUT 和 IN 在汇编中是端口读写操作指令。端口是主机与外设进行数据交换使用的,分为数据端口,状态端口和控制端口三种。PC机给每一个端口分配了一个地址,所有端口成线性排列,形成一个独立于内存空间的I/O地址空间,一般用十六进制表示。8086中,端口地址的范围是0000H-FFFFH。 ):CONFIG_ADDRESS(物理地址0CF8H)和CONFIG_DATA(0CFCH),来访问PCI配置空间。

其中Bit 31位是使能位,写1。

总线号0-255,系统中最多有256个总线。

设备号0-31,每个总线最多挂载32个设备。

功能号0-7,每个设备对多8个function。

寄存器号:待访问配置空间寄存器的编号。

 

例如:

下面的x86汇编代码样本将使根复合体生成一个配置读请求事务,请求读总线4、设备0、功能0的VendorID配置寄存器:

 

mov %dx,0CF8h;设置寄存器%dx为 CONFIG_ADDRESS寄存器地址。

mov %eax,80040000h;使能位=1,Bus 1,Dev 0,Func 0,Reg 0。

out %dx,%eax;将%eax中的值写入端口CONFIG_ADDRESS。

mov %dx,0CFCh;设置寄存器%dx为 CONFIG_DATA寄存器地址。

in %ax,%dx;从%dx( CONFIG_DATA)读2个字节给%ax,这就是对应的VendorID的

 

二. 使用PCI Express增强配置访问机制

使用前述 PCI兼容配置访问机制只能访问到功能的4KB配置空间中的 PCI兼容配置寄存器区(256B),PCIE增强配置访问机制可以访问到整个4KB配置空间。两者访问方法的不同之处在于处理器向 Host-PCI桥表达自己配置访问意图的方式。映射于存储器的配置空间:PCIE增强的配置访问机制在系统存储器空间里划出一片256MB区域,将总容量为256MB的全部配置寄存器一对一地映射于这片存储器空间。处理器访问256MB配置空间的地址含义:

例如:

下面的x86汇编代码样本将使根复合体生成一个配置读请求事务,请求读总线4、设备0、功能0的Vendor ID配置寄存器(offset),本例假设增强配置寄存器映射存储器区域的256MB的基地址是50000000h(MMIO Configuration Space Base Address):

 

mov %ax,(50400000h); //配置寄存器映射的存储器读,这就直接获取了VendorID的值。

参考:PCI、PCI-X和PCIExpress的原理及体系结构-马鸣锦


http://www.ppmy.cn/news/507179.html

相关文章

PCI设备与PCI桥的配置空间

PCI配置空间 HOST主桥通过配置读写事务报文访问设备的配置空间,PCI总线规定了三种类型的PCI配置空间。配置空间中出现的地址都是PCI总线域的地址。 (1)Agent设备配置空间(HeaderType.HeaderLayout0) (2)Bridge桥配置空间(HeaderType.HeaderLayout1) (3)Cardbus桥…

PCI-PCIE中断机制之一

PCI总线使用INTA#、INTB#、INTC#和INTD#信号向处理器发出中断请求。这些中断请求信号为低电平有效,并与处理器的中断控制器连接。在PCI体系结构中,这些中断信号属于边带信号(Sideband Signals),PCI总线规范并没有明确规…

PCI总线原理

PCI即 Peripheral Component Interconnect,中文意思是“ 外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。在现在电子设备中应用非常广泛,下面我详细介绍下PCI总线的工作原理,希望对大家有…

pcie应用记录 - pcie中断

项目场景: (1)fpga与国产龙芯3A3000 cpu主板通过pcie总线进行通信; (2)主板采用rework国产实时嵌入式操作系统,fpga部分为xlinx a7系列及 xilinx 7x pcie ip核; (3&…

PCI小结

几个基本的问题: 1) 注册函数的问题:因为编写的PCI设备驱动,是为某一具体设备服务,而这一具体设备,虽为PCI设备,但其本质仍可划分为,字符设备,网络设备等。因此在驱动程…

接口--PCI/PCIE

关于PCIE的参考,见:王齐的博客 ---------------------------------------------- 分界线 ----------------------------------------------------------- PCI总线原理 PCI即Peripheral Component Interconnect,中文意思是“外围器件互联”&a…

RK3399平台开发系列讲解(PCI/PCI-E)5.54、PCIE INTx中断机制

文章目录 一、PCIe中断过程二、PCIE 控制器支持的中断三、PCIE 控制器注册中断四、PCIe设备中断号分配沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章将介绍RK3399平台PCIE总线中断INTx相关内容。 一、PCIe中断过程 层级结构为:PCIe设备 => PCIe控制器 =&g…

PCI (一) 之 概述与接口定义

一、PCI 协议概述 PCI总线标准是intel在很早以前推出的一种连接主板和外部设备的总线标准,全称为[Peripheral Component Interconnect]。 任何事物的出现总是有其时代性,在PC领域也不例外。PCI的出现也是因为当时PC的性能和设计成本的要求。 PCI针对ISA…