-
BAR寄存器记录的是PCI地址空间的物理基地址,我们称之为BAR空间,这个地址不是存储器DDR的物理地址。
-
BAR空间 即PCI地址空间的物理地址可以存放IO地址空间,也可以存放存储器地址空间。
-
ARM处理器访问IO地址空间时,将PCI设备使用的IO地址空间映射为处理器的存储器DDR地址空间(所以PCI的地址空间会成为DDR地址空间的一部分);当处理器访问这个DDR地址时,主桥将DDR地址转换为PCI总线内的IO地址(封装为TLP包),然后通过PCI的IO总线事务对PCI设备的IO地址进行读写操作。
-
DDR读写事务与IO读写事务类似,ARM处理器将BAR空间映射到DDR地址空间吗,然后处理器通过DDR读写指令访问DDR地址空间,主桥将DDR的读写请求转换为PCI总线空间内的读写事务,再发送给目标。
-
PCI设备能直接使用的是PCI总线地址空间内的地址,PCI总线事务中出现的地址也是PCI地址域内的地址。但是处理器能直接使用的是DDR地址。
-
PCI总线空间地址和DDR地址的映射关系是有inbound 和outbound寄存器维系的。
-
PCI设备【配置空间的访问】,即配置读写总线事务,使用ID号进行寻址。ID号:总线号(bus id)+设备号(dev id)+功能号(func id)。
-
总线号是软件通过DFS深度优先算法扫描出来的,并且依次编号。
-
处理器使用iATU寄存器组维护DDR地址空间和PCI总线地址空间的相互映射。iATU有inbound和outbound寄存器组,分别维护的是PCI总线地址空间至DDR地址空间的映射,DDR地址空间至PCI总线地址空间。
-
只有当CPU的读写范围是在outbound寄存器组管理的地址空间内时吗,HOST主桥才能将这个读写访问转换为PCI总线域上的读写访问。
-
inbound和outbound窗口中两边寄存器中的地址常是相同的值,但是他们属于DDR域和PCI总线域,不是一个地址,只是数值相同。
-
inbound寄存器将PCI总线地址转换为DDR地址。当PCI设备进行DMA读写时,只有访问地址在inbound中,HOST主桥才能将读写请求转换为DDR读写请求。
-
关于配置空间,有3中。分别是PCI agent设备使用的配置空间、PCI桥使用的配置空间和cardbus桥使用的配置空间。
-
PCI配置空间中出现的地址都是PCI总线地址,属于PCI总线地址空间。
-
PCI桥作为一个特殊的PCI设备,具有独立的配置空间。PCI桥的配置空间可以管理其下的PCI设备。PCI桥的配置在软件便利总线树时进行配置,不需要专门的软件驱动进行设备。
-
PCI设备配置空间,class id将PCI设备分类为显卡、网卡、pci桥等等。 header表明这个设备的类型是多功能设备还是单功能设备;以及配置空间的类型。interrupt line寄存器是软件配置时写入的,记录PCI设备使用的中断向量号。BAR0-5寄存器保存PCI设备使用的PCI总线空间内的基地址和大小。

-
BAR空间的访问,BAR寄存器中记录了PCI设备需要使用的PCI总线空间范围。当CPU想要访问这段空间时,需要将PCI总线地址转换为DDR地址进行访问。pci_dev->resource[bar].start参数保存了BAR空间基地址的DDR地址。
-
PCI桥的配置空间。与PCI设备不同的是,PCI桥只有两个BAR寄存器。secondary bus相关的寄存器;总线IO和存储器地址空间, IO/MEMORY BASE/LIMIT。可预读空间和不可预读空间,prefetchbale memory。

-
PCI总线的配置,分为两类,Type00h配置请求,Type01h配置请求。使用Type00h配置请求,来访问与主桥和PCI桥直接相连的PCI设备和PCI桥;而Type01h需要至少穿越一个PCI桥,访问没有与其直接相连的PCI设备或PCI桥,这个穿越的PCI桥会将Type01h转换为Type00h配置请求。
《PCI EXPRESS体系结构导读》---(1)基本概念
漫游嵌入式2026-01-03 10:28
相关推荐
C_心欲无痕4 小时前
nodejs - express:流行的 Web 应用框架1024小神6 小时前
Express.js中间件Middleware是处理 HTTP 请求和响应以及jwt token认证小新1103 天前
vscode+nodejs+express 搭建一个简单网站Dreamcatcher_AC4 天前
Node.js留言板开发全流程解析小北方城市网8 天前
第 9 课:Node.js + Express 后端实战 —— 为任务管理系统搭建专属 API 服务Jerry Lau9 天前
从 Express 到 Cloudflare Workers:一次 POC 验证之旅同年紀11 天前
TLP Prefix RulesGDAL14 天前
express.urlencoded深入全面讲解教程GDAL14 天前
express.urlencoded和fetch结合使用