PCI Root Complex BAR使用情况

时间:2015-09-24 15:04:16

标签: pci-e

我想了解PCIe Root Complex中BAR的用法。 PCIe Root Complex已经是CPU的一部分(作为它的外围设备)。 并且可以轻松访问CPU寄存器空间。 CPU已注册访问其各种外设链路PCIe控制器,DIMM控制器,USB控制器等。 那么在这种情况下,PCIe RC Config空间中BAR的用途是什么?

其次,我想了解在使用适当的内存窗口枚举期间如何设置PCIe RC。例如,假设我有一个直接连接到RC的PCIe设备(EP)。并且在EP的Config空间中编写了一些带有某个大小's'的地址'X'。所以基本上,从CPU到“X”和“X + s”窗口的任何读/写都应该转到PCIe EP。但这应该通过PCIe RC。 现在RC如何知道它应该将CPU读/写转换到该内存窗口到PCIe事务到EP?如何配置RC来做到这一点? PCIe RC中是否有任何标准化的寄存器可以保存这些信息?

/ SG

1 个答案:

答案 0 :(得分:1)

BAR(基地址寄存器)有两个目的:

  1. 在枚举之前,它保存了要映射的内存的请求大小。
  2. 枚举后保存内存块的基址(起始地址)。
  3. PCI端点(EP)最多可以有6个32位BAR。 2个BAR可以组合成64位BAR。

    在枚举期间,BIOS或内核遍历PCI树并读取BAR并分配新的基址。

    PCH(平台控制器集线器/前北桥)使用BAR信息将数据访问路由到主存或PCI EP等。

    关于PCI Express的书籍:

    1. MindShare Press - PCI Express Technology 3.0