您好!
我正在使用64位 PCIe 寻址处理基于 C6678的 PCIe 端点。 我无法从 C6678存储器映射中的0x2180_0000开始读取 PCIe 配置空间(通过条2/3)。 但是、我可以通过条0/1读取 PCIe 应用寄存器。
我的入库栏设置为:
initC6678PcieMemoryRegions:区域0:bar = 0x00000002、start = 0x380300000000、offset = 0x00800000
initC6678PcieMemoryRegions:区域1:bar = 0x00000004、start = 0x380280000000、offset = 0x8000000000
initC6678PcieMemoryRegions:区域2:bar = 0x00000000、start = 0x000000000、 offset = 0x00000000
initC6678PcieMemoryRegions:区域3:bar = 0x00000000、start = 0x000000000、 offset = 0x00000000
其中、IB_bars 0和1的起始地址分别设置为 PCIe bars 0/1和2/3的地址。
因此、IB_BAR (1)用于通过条4/5访问0x8000_0000及以上的 DDR 存储器、而 IB_BAR (0)用于访问地址小于0x8000_0000的所有存储器/寄存器。
我能够读取和写入特定于内核的 L2SRAM (即0x108x_xxxx |内核<< 24)、但在通过相同的 IB_BAR 读取 PCIe 配置时、读取全部返回0xFFF_FFFF。
例如、通过 IB_BAR (0)检索时 ROM 引导版本字符串的内容看起来正确:
ROM 引导版本字符串:
0x0000:0x76 0x31 0x2e 0x31 0x32 0x20 0x53 0x61 0x74 0x20 0x41 0x75 0x67 0x20 0x31 0x33 v1.12星期六8月13日
0x0010:0x20 0x31 0x35 0x3a 0x32 0x31 0x3a 0x30 0x37 0x20 0x32 0x31 0x31 0x20 0x69 15:21:07 2011 I
0x0020:0x32 0x63 0x20 0x6d 0x61 0x63 0x20 0x73 0x72 0x69 0x6f 0x20 0x70 0x63 0x65 2c Mac SRIO PCIe
0x0030:0x20 0x76 0x75 0x73 0x72 0x20 0x73 0x70 0x69 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 VUsr SPI…
是否可以从 PCIe 根复合体读取0x2180_00000处提供的 C6678 PCIe 配置信息?
谢谢!
Brad