P2020 DMA over PCIE to FPGA

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

P2020 DMA over PCIE to FPGA

ソリューションへジャンプ
2,446件の閲覧回数
nickangelo
Contributor I

Does using the P2020 DMA (targeting PCIE) produce Memory Write TLPs with payload greater than 4bytes? Say 128bytes up to 512bytes?

Thanks!

ラベル(1)
タグ(2)
0 件の賞賛
返信
1 解決策
1,794件の閲覧回数
r8070z
NXP Employee
NXP Employee

The DMA controller may issue smaller transactions from the source and destination

address engines in an effort to reach alignment for improved performance.

In the P2020 reference manual (P2020RM) Figure 13-277. Source/destination engine transaction size flow chart

shows the decision points made in determining the transaction size. It also provide demo:

For example, if BCR[BC]=512 bytes and MR[BWC]=256 bytes, reading from starting

address 0x5D0 will result in the following transaction sizes:

-- Channel arbitration --

0x5D0 - 16 bytes

0x5E0 - 32 bytes

0x600 - 128 bytes

0x680 - 64 bytes

0x6C0 - 16 bytes

-- Channel arbitration --

0x6D0 - 16 bytes

0x6E0 - 32 bytes

0x700 - 128 bytes

0x780 - 64 bytes

0x7C0 - 16 bytes

元の投稿で解決策を見る

0 件の賞賛
返信
4 返答(返信)
1,794件の閲覧回数
r8070z
NXP Employee
NXP Employee


Have a great day,

The P2020 DMA supports up to 256 bytes for sub-block transfers to maximize performance.

The P2020 PCIe max payload is 256 bytes too. Hence the P2020 DMA (targeting PCIE) may produce Memory Write TLPs with payload greater than 4bytes. Say 128bytes but not 512bytes.

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 件の賞賛
返信
1,794件の閲覧回数
nickangelo
Contributor I

Thanks for the reply!

When you say "may produce" are there cases where it will take a buffer and chop it up into TLPs with 4bytes payload rather than bursting a single TLP with max payload size (say 256 bytes in this case)?

The reason I am asking for these details is because the P2020 is connected to an FPGA and I need to know how to design the FPGA to handle the data correctly, unfortunately the boards are not in-house yet, so I can not get on the CPU and try it.

0 件の賞賛
返信
1,795件の閲覧回数
r8070z
NXP Employee
NXP Employee

The DMA controller may issue smaller transactions from the source and destination

address engines in an effort to reach alignment for improved performance.

In the P2020 reference manual (P2020RM) Figure 13-277. Source/destination engine transaction size flow chart

shows the decision points made in determining the transaction size. It also provide demo:

For example, if BCR[BC]=512 bytes and MR[BWC]=256 bytes, reading from starting

address 0x5D0 will result in the following transaction sizes:

-- Channel arbitration --

0x5D0 - 16 bytes

0x5E0 - 32 bytes

0x600 - 128 bytes

0x680 - 64 bytes

0x6C0 - 16 bytes

-- Channel arbitration --

0x6D0 - 16 bytes

0x6E0 - 32 bytes

0x700 - 128 bytes

0x780 - 64 bytes

0x7C0 - 16 bytes

0 件の賞賛
返信
1,794件の閲覧回数
nickangelo
Contributor I

Perfect! That's exactly what I wanted to know.

Thank You!

0 件の賞賛
返信