This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6678,PCIe,BAR的地址范围



在看sprugs6c:PCIe User‘s Guide文档时,看到2.7.3节有一段话,“When a TLP is to be routed by its address, the address range in the BAR will decide whether the TLP is rejected or accepted. In the case of an EP, if the address is in the range configured in the BAR, the EP will accept the TLP and pass it to the internal bus side.”

1.这段话的大概意思是说PCIe接收数据包是有条件的,只有数据包中的PCIe地址在BAR配置的地址范围内时,PCIe模块才接收这个数据包,是吧?

2.其中说的BAR配置的地址范围是什么意思,BAR寄存器中只能设置基地址:BASE_ADDR,这个地址范围从哪里来?

望解答。

  • PCIe inbound是有BAR定义允许输入的PCIe address 基地址及长度,如果输入的PCIe address不在BAR的定义范围之类就会被拒绝,在RC侧可以看到类似读写数据失败的反馈。每个BAR的基地址寄存器BAR_ADDR及长度寄存器BAR_MASK是共享一个地址,关于BAR及BAR_MASK的配置请参考PCIe user guide 2.6.3节。

  • 请问可以再具体一点吗,inbound中定义基地址的寄存器我知道,就是BAR_ADDR,但是和长度有关的寄存器是哪些呢?

    文档给出的地址解析公式为PCIe address - (IB_STARTn_HI : IB_STARTn_LO),是不是输入数据包中的PCIe地址的基地址必须和BAR_ADDR&(~BAR_MASK)的值一致,然后必须大于(IB_STARTn_HI : IB_STARTn_LO)?

  • BAR长度的寄存器是BAR_MASK.

    输入的PCIe地址必须满足:

    1. 在BAR_ADDR及BAR_MASK定义的范围内;

    2. 然后看是否有对应的IB_BAR, 根据IB_BAR中的(IB_STARTn_HI : IB_STARTn_LO)及offset计算出最终的地址。

  • 你好,Andy Yin1。我现在正在看PCIE的inbound和outbound这块,了解的还是有些模糊,请问能详细解释一下“然后看是否有对应的IB_BAR, 根据IB_BAR中的(IB_STARTn_HI : IB_STARTn_LO)及offset计算出最终的地址”这个转换的过程吗?谢谢!

  • 你好,Andy Yin1。我现在正在看PCIE的inbound和outbound这块,了解的还是有些模糊,请问能详细解释一下“然后看是否有对应的IB_BAR, 根据IB_BAR中的(IB_STARTn_HI : IB_STARTn_LO)及offset计算出最终的地址”这个转换的过程吗?谢谢!

  • 详请查看如下培训材料中PCIe 中的地址转换例程。

    http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/24488.aspx

  • 你好Andy Yin1,我还有个问题想请教一下,我是看DM8167的PCIE启动,然后看到在手册上这样写:

    我不太理解这个图里面的Base Address表示的什么,是指的rom中代码进行了outbound映射的base address吗,因为我看PCIE章节,outbound会有pcie base address的说法。图中BAR0的base address和offset都为0,PCIE章节说BAR0默认是映射到application register的,这里有点不理解。

  • 对DM8167的这个表格我不确定,建议发到达芬奇子论坛确认一下。

    按我的理解这里的BAR指的是Inbound address translation,Base address对应的PCIe address,offset对应的应该是转换之后的Internal address。

  • 我的理解也是这样的,非常感谢你的解答!