PCIe配置空间

PCIe将PCI的256Bytes配置空间扩展为4096bytes。PCIe配置空间可以分为两个部分:256bytes的PCI兼容部分配置空间和PCIe扩展配置空间。

而PCIe的Capabilities List也分为两个部分:PCI兼容部分和PCIe扩展部分Capabilities List。

PCI Capabilities List

在PCI2.1后增加一些能力,协议按照链表来添加,这个管理Capabilities的链表被称为Capabilities;

存不存在这个链表可以通过PCI Status Register的bit4(Capabilities List)指示,当其为1表示存在;否则则不存在;0x34h指示第一个Capabilities的指针;

每个表中Capability包括8bit ID域,ID由PCI SIG分配;8bit的指针,指向表中下一个Capabilities的位置(当其值为0x00h则表示链表结束);以及一些其他寄存器来执行相关Capabilities,这些寄存器紧接着前面的寄存器;

上面的例子构造了一个简单的Capabilities List。0x34h指向第一个Capabilities的位置,指向了0xA4h,其存在一个ID,下一个Capabilities指针指向了0x5Ch,并且包含了相关其他寄存器;

0xA4h指向了0x5Ch;0x5Ch指向0xE0h;0xE0h指向0x0表示链表结束了。

PCIe Extended Capabilities List

PCIe Extended Capabilities List和PCI的不同;其相关寄存器都放在0x100及更高的地址位置;第一个PCIe Extended Capabilities寄存器固定放在0x100位置,包括16bit的Capabilities ID、4bit Capabilities Version Number和12bit Next Capabilities Offset;其他形式与前文类似;

PCIe Capabilities List相关推荐

  1. Kernel PCI总线框架

    2019独角兽企业重金招聘Python工程师标准>>>     1,PCI总线介绍 在PC时代的早期,外部设备通过ISA总线接入计算机.ISA总线只有24根地址线,因此其上的外部设备 ...

  2. 认识和使用热插拔的正确姿势

    热插拔功能是PCIe SSD的一项重要功能, 能大大简化设备更换和调试步骤.特别是在服务器厂商推出支持 U.2 接口的产品后,对热插拔的需求更加广泛.热插拔在 PBlaze5 PCIe SSD应用非常 ...

  3. Linux Kernel 6.0 CXL Core Regs.c 详解

    前言 CXL 是一个比较新的技术,所以我研究的内核源码是选了当前比较新的内核版本 linux 6.0.打算将内核关于 CXL 的驱动进行解析一遍,一步一步慢慢来. 在阅读之前,希望读者能有一定的 PC ...

  4. VirtIO实现原理——PCI基础

    文章目录 PCI配置空间 通用配置空间 virtio配置空间 virtio通用配置空间 virtio磁盘配置空间 VirtIO-PCI初始化 PCI初始化 枚举 配置 加载virtio-pci驱动 P ...

  5. 【深入理解SSD 实践】对NVMe SSD热插拔时,正确做法是怎样的?

    声明 主页:元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言. 个人辛苦整理,付费内容,禁止转载. 内容摘要 前言 概念 SAS/SATA 和NVMe 区别 热插拔分类 热插拔基本原理 ...

  6. 【WIFI】mtk7621驱动

    mtk7621驱动 无线驱动在完成驱动注册的同时,需要进行 cfg80211接口注册(提供命令支持). 1. 驱动 mtk wifi驱动基于pci进行扩展,第一个文件:/os/linux/pci_ma ...

  7. 【VS开发】PCIe体系结构的组成部件

    PCIe总线作为处理器系统的局部总线,其作用与PCI总线类似,主要目的是为了连接处理器系统中的外部设备,当然PCIe总线也可以连接其他处理器系统.在不同的处理器系统中,PCIe体系结构的实现方法略有不 ...

  8. Linux下查看显卡PCIE速率x16x8x4及设定

    Linux下查看显卡PCIE速率x16x8x4 由于linux软件并不是很齐全所以查看显卡占用PCIE的带宽并不直观,所以本文介绍如何查看. Windows下使用GPU-Z即可查看 Linux 确定当 ...

  9. PCIE Configuration Space

    空闲看看PCIE 5.0 spec, 照本宣科简单记录一下. 先上框架图,部件互连是点对点链接(point-to-point link),由Root Complex(RC), Endpoints(I/ ...

最新文章

  1. React + Koa 实现服务端渲染(SSR)
  2. 微信小程序图标不支持html,微信小程序实现自定义加载图标功能
  3. 一张图说明Linux启动过程
  4. modelsim-altera
  5. java8 内存模型_java8内存模型
  6. mysql5.6最好的备份方案_Mysql 5.6迁移至PostgreSQL 9.6的实践小结
  7. 使用Word宏替换Header、Footer等中的文本
  8. php mysql_query预处理,php+mysqli使用预处理技术进行数据库查询的方法
  9. 前端学习(3313):redux的基本操作
  10. Python二级笔记(5)
  11. 【JAVA】虚拟机指令集
  12. lopatkin俄大神精简中文系统Windows 10 Pro 19041.21 20H1 Release x86-x64 ZH-CN SMS
  13. Bayesian framework 贝叶斯框架 (R)
  14. 2013年台式计算机型号,2013cpu天梯图,台式机处理器天梯图
  15. 离散数学 --- 特殊关系 --- 等价关系与集合的划分
  16. ES6 isFinite()
  17. 广州移动华为认证培训之行
  18. css中zoom和scale
  19. Python:阿基米德棋盘放米问题
  20. saiku (branch 3.8-release)构建步骤

热门文章

  1. js数组中深拷贝的方法
  2. 通俗易懂的MySQL事务及MVCC原理,我先收藏了!
  3. 让chatgpt给我写影评,写《功夫》影评,不少于500字,大家觉得水平如何。
  4. 新华三网络教程之ipsce实战IKE配置
  5. nginx配置代理404问题
  6. 计算机科学与技术专业北上广,学计算机专业是不是只能在北上广工作?
  7. 2022年全球及中国防晒霜功效测试行业头部企业市场占有率及排名调研报告
  8. 苹果推出AirPods后,接近传感器与TWS耳机迅速发展
  9. 竞争之王CE0商战课“打赢商战的第一课”
  10. 17- TensorFlow实现手写数字识别 (tensorflow系列) (项目十七)