当前位置: 首页 > news >正文

PCIE Spec ---Software Initialization and Configuration(二)

7.2 PCI Express Configuration Mechanisms

PCIE 将配置空间从 PCI 的 256 字节扩展为 4096 字节。从而将配置空间划分为 256 字节 PCI 兼容区域和剩余的 PCIE 扩展区域。 PCI 兼容区域通过 CAM 机制访问,扩展区域通过 ECAM 机制访问。

7.2.1 PCI-compatible Configuration Mechanism

因为需要和 PCI 兼容,所以需要支持 PCI 的访问模式,PCIE 的接口同时兼容 PCI bus 枚举和软件配置。

PCIE 和 PCI 一样需要一个配置空间用于软件初始化和配置,所以需要继续保留 PCI 的 heard 格式和行为。

PCI-compatible Configuration Access Mechanism 和 ECAM 的格式是一样的,对于PCI-compatible Configuration 请求只是扩展寄存器的数据都是 0.

7.2.2 PCI Express Enhanced Configuration Access Mechanism (ECAM)

只在PCI-compatible 或者没有实现自己处理器架构的特殊固件接口的系统需要这个 EACM 机制,用于访问配置空间。

对于有自己特有处理器架构固件接口的系统不需要 ECAM 机制。对于所有系统我们都建议使用由操作系统提供的应用处理接口(API)来访问配置空间,而不是直接使用硬件机制。

ECAM 机制使用 flat 模式,通过操作内存映射地址两个寄存器来访问操作设备配置空间,内存映射地址决定访问处理的内容。

内存映射访问配置空间的大小和基地址由 host bridge 和固件设计决定,若是支持 N bit 的 BUS,则说明该平台的 Bus 最多可以由 2 n -1 个,而内存映射地址对齐则是需要是 2(n+20)字节的内存地址边界。

7.2.2.1 Host Bridge Requirements

在支持 ECAM(Enhanced Configuration Access Mechanism)机制的系统中,PCIe Host Bridge 负责将主处理器发出的内存映射的 PCIe 配置空间访问请求转换为 PCIe 配置事务。

地址解码:

PCIe Host Bridge 会解码主处理器发出的内存地址,确定该地址是否属于 PCIe 配置空间的映射范围。

如果地址属于 PCIe 配置空间的映射范围,PCIe Host Bridge 会继续进行转换。

生成 PCIe 配置事务:

PCIe Host Bridge 根据解码出的内存地址,生成相应的 PCIe 配置事务。

配置事务的类型可以是 Type 0 或 Type 1,具体取决于目标设备的位置(直接连接的设备或下游设备)。

发送 PCIe 配置事务:

生成的 PCIe 配置事务通过 PCIe 总线发送到目标设备。

目标设备接收到配置事务后,会执行相应的操作(如读取或写入配置寄存器)。

返回结果:

如果配置事务是读取操作,目标设备会将读取的数据返回给 PCIe Host Bridge。

PCIe Host Bridge 将读取的数据返回给主处理器,完成内存访问请求。

Host Bridge 的 PCI class code 保留的使用是为了向后兼容;Host Bridge 配置空间对于标准的 PCIE 软件是不透明的,并且可以以兼容 PCI Host Bridge Type 0 配置空间的特殊实现方式实现。

PCIE Host Bridge 不需要通过 RC Event 收集器来触发 error.这个功能支持是可选的,看厂商具体实现。

7.2.2.2 PCI Express Device Requirements

设备需要支持扩展的 4bit 用于解码配置空间寄存器的访问(PCI 支持的是 8bit 也就是 256 字节,扩展至 12bit 也就是 4096 字节 4K)。

7.2.3 Root Complex Register Block (RCRB)

每个 Root Port 或者 RCiEP 应该和一个 4096byte 大小的块内存映射的寄存器关联称为 Root Complex Register Block(RCRB).这些寄存器类似于配置空间并且可以包含 PCIE 扩展能力以及其他应用于 RC 的特殊实现。

多个 Root Port 或者内部设备可以关联到同一个 RCRB,但是 RCRB 内存映射的寄存器不能在同一个内存映射空间或者内存空间。

RC 实现是不需要支持跨越双字节对齐边界的访问或者使用锁定机制的访问;如果访问的地址未对齐,或者访问的数据跨越了双字节边界(例如从奇数地址开始的 2 字节访问),RC 不需要支持这种访问。相反,RC 可以生成错误(如 Unsupported Request,UR)或将其拆分为多个对齐的访问。

相关文章:

  • 计算机网络基础:认识网络硬件与传输介质
  • 【MATLAB例程】三维环境下,动态轨迹的AOA定位与UKF滤波,模拟IMU/AOA的数据融合,附完整代码
  • Grounding DINO: 将DINO与接地预训练结合用于开放集目标检测
  • Umi从零搭建Ant Design Pro项目(2)
  • 每日一题----------文件流(创建文件方式三种)
  • 优化器/模型参数/超参数
  • Python生成requirements.txt的两种方法
  • 【数据分析】数据筛选(布尔索引:多个判断条件)
  • RHCE综合实验
  • LS-NET-004-简单二层环路解决(华为锐捷思科)
  • kotlin @JvmStatic的使用
  • 【C++】STL(1) - 序列容器
  • 在C#的MVC框架framework项目的使用ajax,及源码下载
  • 织梦DedeCMS后台发布文章增加“顶”和“踩”默认随机值,并可后台修改
  • [Windows] OfficeAI 助手 v0.3.20(长期免费,本地支持WPS/Word联动)
  • Java多线程与高并发专题——在 Thread 中多个 ThreadLocal 是怎么存储的?
  • langgraph简单Demo(使用langserve实现外部调用)
  • 解码软件需求的三个维度:从满足基础到创造惊喜
  • UMA架构下的GPU 显存
  • 4、MySQL的存储引擎有哪些?【中高频】
  • 崔登荣任国家游泳队总教练
  • 山东枣庄同一站点两名饿了么骑手先后猝死,当地热线:职能部门正调查
  • 马上评丨为护士减负,不妨破除论文“硬指标”
  • 石家庄推动城市能级与民生福祉并进
  • 视觉周刊|纪念苏联伟大卫国战争胜利80周年
  • 云南省安委会办公室:大理州安全生产形势比较严峻,事故总量一直居高不下