我想了解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
答案 0 :(得分:1)
BAR(基地址寄存器)有两个目的:
PCI端点(EP)最多可以有6个32位BAR。 2个BAR可以组合成64位BAR。
在枚举期间,BIOS或内核遍历PCI树并读取BAR并分配新的基址。
PCH(平台控制器集线器/前北桥)使用BAR信息将数据访问路由到主存或PCI EP等。
关于PCI Express的书籍: