UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 47531

Zynq-7000 SoC,SDIO — DMA 突发事务处理对齐与长度要求

描述

DMA 突发长度必须是与 4 字节对齐的倍数,才能避免覆盖 DMA 缓冲器中的数据。

解决方案

影响:

较小

解决方法::

除了最后一个缓冲器可以是任意大小外,应确保所有缓冲器都是 4 字节的倍数。

受影响的配置:

使用支持 ADMA2 模式的 SDIO 控制器的系统。

受影响的器件修订版本:全部,无计划修复。请参考(Xilinx 答复 47916) - Zynq-7000 SoC 芯片修订版差异。

 

SD 主机控制器规范 2.00 版本规定 ADMA2 缓冲器描述符及其所指向的缓冲器都必须与 4 字节对齐。然而,每个 DMA 输入的长度可以是1 至 64 KB 的任意数。  

如果该长度不是 4 字节的倍数,控制器就无法正确处理针对主机存储器卡的 ADMA2 写入。以下范例演示了该问题。

描述符列表:

ADDR

LENGTH

DATA

0x1000

4 字节

0x0123_4567

0x2000

3 字节

0xABCD_DEAD

0x3000

4 字节

0x8912_2345


在 ADMA2 操作初始化时,控制器可从地址 0x1000 取回 4 字节的数据并将该数据传输给内部 FIFO 的位置 0(每个位置有 32 位宽)。 接下来从地址 0x2000 取回下一个描述符数据,并将该数据复制到位置 1。 由于位置 1 并没有被完全填充(只有 3 个字节有效),因此指示器未增加。最后一个描述符数据从地址 0x3000 取出,并将该数据复制到位置 1。 位置 1 中原有的 3 个字节被错误地覆盖。

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
47916 Zynq-7000 SoC 器件:芯片修订差异 N/A N/A
AR# 47531
日期 06/13/2018
状态 Active
Type 设计咨询
器件
  • Zynq-7000
  • XA Zynq-7000
  • Zynq-7000Q
的页面