PCIe BAR、Type0、Type1介绍

什么是PCIe bar空间?

BAR(Base Address Register)空间是指PCI设备中的基地址寄存器(Base Address Register)所映射的地址空间。每个PCI设备都有多个BAR,用于指示设备在系统地址空间中的位置。BAR空间通常用于映射设备的内存区域或I/O端口,以便系统软件可以与设备进行通信。

在PCI设备的配置空间中,BAR寄存器存储了设备在系统地址空间中的基地址信息。系统软件在引导过程中会读取这些BAR寄存器的值,以确定设备在系统中的地址范围,并将设备映射到适当的地址空间中。

Base Address Register for Memory

基地址寄存器(Base Address Register,BAR)用于指示设备在系统地址空间中的基本地址位置。对于内存空间而言,基地址寄存器用于确定设备在内存中的起始位置。BAR通常是一个32位或64位寄存器,其中包含设备在系统地址空间中的基本地址信息。

在PCI总线规范中,设备使用基地址寄存器来指示其在系统内存地址空间中的位置。通过配置基地址寄存器,设备可以告诉系统其内存访问范围,以便系统正确路由内存访问请求。

- Bit0: 用于指示设备寄存器是映射到内存空间0还是IO空间(1)。

- Bit1: 保留位,值为0。

- Bit2: 在Memory BAR中,0表示32位地址空间,1表示64位地址空间。

- Bit3: 在Memory BAR中用于表示设备是否允许预取数据,1表示可以预取,0表示不可以预取。

- Bit4~31: 用来表示设备需要占用的地址空间大小。其中,某些位为只读,且0表示需要的地址空间大小。

系统软件(如BIOS/操作系统)对Base Address Register(BAR)的检测和操作必须按顺序执行,即先处理BAR0,然后是BAR1,以此类推,直到BAR5。如果软件检测到某些BAR被硬件设置为全0,则会认为该BAR未被使用。

Base Address Register for I/O

I/O基地址寄存器(I/O Base Address Register)用于指示设备在系统I/O地址空间中的基本地址位置。与内存空间的基地址寄存器类似,I/O基地址寄存器用于确定设备在系统I/O地址空间中的起始位置。设备使用I/O基地址寄存器来指示系统如何访问设备的I/O端口。

在PCI总线规范中,设备使用I/O基地址寄存器来指示其在系统I/O地址空间中的位置。通过配置I/O基地址寄存器,设备可以告诉系统其I/O访问范围,以便系统正确路由I/O访问请求。

Type0 Configuration Space Header

Type 0设备:Type 0设备通常指的是非桥设备(Non-Bridge Device),也称为终端设备(Endpoint Device)。这些设备是连接到PCIe总线上的最终节点,如显卡、网卡、存储设备等。Type 0设备负责执行特定的功能,并与其他设备进行通信和数据传输。

Device ID: PCI设备的设备号
Vendor ID: 设备的厂商的编号
Status: PCI设备状态寄存器,用于保存PCI设备的状态,如中断状态或运行产生错误时的状态。

Command: PCI设备命令寄存器, 在PCI设备使能pci_enable_device时会配置该寄存器。主要时负责使能或关闭PCI设备的I/O 访问,memory访问和INTx中断等

Class Code: 设备分类信息, 表示PCI设备属于哪一种类别,如网卡,存储卡,显卡等


Revision ID: 表示PCI设备的版本号

Header type: PCI设备头类型寄存器,表示该设备时pci EP设备还是PCI 桥设备

Type1 Configuration Space Header

Type 1设备:Type 1设备通常指的是桥设备(Bridge Device),包括根端点(Root Complex)和交换机端口中的点对点桥(P2P Bridge)。根端点是PCIe总线的起点,负责管理总线上的所有设备和数据传输。P2P桥用于连接两个PCIe总线,起到桥接和转发数据的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值