在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 4162|回复: 2

[求助] 关于pcie dma 读写请求的长度 dw_length 疑问

[复制链接]
发表于 2016-10-9 11:30:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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读写的疑问。
发表于 2016-10-9 16:47:27 | 显示全部楼层
看你DMA逻辑怎么写的,一般都是配置长度,然后用逻辑分成TLP,其中最后一个TLP短一些。
TLP可以是45字节。
 楼主| 发表于 2016-10-10 08:35:40 | 显示全部楼层
是在xapp859基础上修改的,但是那个代码里的很多信号判断逻辑都是基于整数DW来做的,所以修改起来挺费劲的,牵一发而动全身的感觉。
     
     实际用的时候是需要支持1B ~4096B的DMA 读写请求的吧?

     max_read_request_size为512B
     
     max_payload_size为128B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 06:45 , Processed in 0.024918 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表