PCIe通信:配置空间

参考:http://www.ssdfans.com/?p=8210
《老男孩读PCIe之六:配置和地址空间》

    每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,PCIe设备的配置空间是协议规定好的,哪个地方放什么内容,都是有定义的。PCI或者PCI-X时代就有配置空间的概念,那时的配置空间如下:
在这里插入图片描述
    整个配置空间就是一系列寄存器的集合,其中Type 0是Endpoint的配置,Type 1是Bridge(PCIe时代就是Switch)的配置,都由两部分组成:64 Bytes的Header + 192Bytes的Capability结构,后者是设备告诉Host它有多牛逼,都会什么绝活。
    进入PCIe时代,PCIe能耐更大,192 Bytes不足以罗列它的绝活。为了保持后向兼容,又要不把绝活落下,怎么办?很简单,我扩展后者的空间,整个配置空间由256 Bytes扩展成4KB,前面256 Bytes保持不变:
在这里插入图片描述
PCIe有什么能耐(Capability)我们不看,我们先挑软柿子捏,先看看只占64 Bytes的Configuration Header

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCIe配置空间寄存器是PCI Express总线设备中的一种特殊类型的寄存器,用于配置和管理设备的功能和属性。每个PCIe设备都有一个配置空间,该空间包含了设备的配置信息和功能寄存器,这些信息和寄存器可以被系统软件读取和写入,用于进行设备的初始化和控制。 配置空间寄存器使用了标准的PCI配置空间寄存器格式,包括设备ID、供应商ID、命令和状态寄存器等。通过读取和设置这些寄存器的值,系统软件可以访问和控制PCIe设备的各种功能。 配置空间寄存器的结构和布局是由PCIe规范定义的,包含了设备的通用配置数据、功能寄存器和扩展配置区域。其中通用配置数据包括了设备的基本信息,如设备类型、供应商标识、设备标识等。功能寄存器用于控制和管理设备的功能,如启用或禁用设备、设置中断和总线驱动程序等。扩展配置区域用于存储设备特定的配置信息,各个设备的扩展配置区域的结构和内容是不同的,由设备厂商自行定义。 系统软件可以通过访问PCIe配置空间寄存器来获取设备的配置信息,如设备名称、设备类型、硬件ID等,还可以进行设备的初始化和配置,如设定中断线路、分配资源等。一般情况下,操作系统和驱动程序会使用配置空间寄存器来与PCIe设备进行通信和管理,以实现设备的正常工作和使用。 总之,PCIe配置空间寄存器是PCI Express总线设备中用于配置和管理设备的一种寄存器,通过读取和设置其中的值,系统软件可以访问和控制设备的各种功能。这些配置空间寄存器的结构和布局是由PCIe规范定义的,不同设备的配置信息和功能也各不相同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值