|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位大侠,
目前我遇到点困惑,就是dma读写请求TLP中的dw_length字段的使用,
xapp859的dma读写测试,TLP长度是按照128B、256B、512B、、1KB、2KB,等等的方式去仿真的,代码中也基本是根据这一的情况
做的相应处理。也就是请求的字节数和最大载荷128B是有固定关系的。如果要兼容任意长度的情况,复杂度和工作量无异于重新写代码。
比如
557B = 4*32DW + 1*11DW(奇数个) + 1*1B
561B = 4*32DW + 1*12DW(偶数个) + 1*1B
129B = 1*32DW + 1*1B
等等诸如此类,可能还要考虑header是3DW和4DW的情况。
那么,在实际应用中,比如 557Byte dma写 这样任意长度的请求会发生吗?假如会,
PC驱动是怎么下发寄存器配置的?
是把557B这个数值写入预设的寄存器里吗?
EP是如何执行的?
应该按照4*128B(最大载荷32DW) + 1*44B(11DW) + 1*1B(按照1DW算)的方式 执行6个Mwr TLP吗?
或者 其他方式?
如果我的担心是多余的,那也是好事。本人小白,头一次弄,只能自己摸索。
还请知道的大神,不吝赐教,不胜感激,纠结了很久了,网上几乎所有的pcie dma测试都是基于固定字节数做的,
至今我还没发现谁提出来任意长度dma读写的疑问。 |
|