Zynq-7000 SoC,SDIO - ADMA2模式无法在中止CMD发布时正确释放

描述

如果器件驱动程序在ADMA2多块传输期间发送中止命令,然后在此中止后启动DMA传输,则控制器无法执行DMA操作。在ADMA2事务中止后,不要发出DMA事务。

影响: 次要。这个问题可以避免。
解决方法: 在中止ADMA2事务后不要发出DMA事务。
受影响的配置: 使用SDIO控制器的系统。
受影响的器件版本: 全部,没有计划修复。请参阅(Xilinx答复47916) - Zynq-7000 SoC芯片版本差异。


如果驱动程序在ADMA2多块传输期间发送中止命令并在中止后启动DMA传输,则控制器无法执行DMA操作。失败场景如下:

  • CMD25与ADMA2传输
  • 发送CMD12以中止传输
  • 清除命令完成并且传输完成中断并将1写入SOFT_RST_CMD和DATA_LINE位
  • 在DMA模式下发出另一个数据传输CMD
  • 发出CMD12后,ADMA2内部标志不会复位,因此会影响即将发生的DMA数据事务。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 14:50:53 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它