Zynq-7000 SoC,SDIO  –  ADMA2读取会破坏使用PIO模式写入的数据-Xilinx-AMD论坛-FPGA CPLD-ChipDebug

Zynq-7000 SoC,SDIO – ADMA2读取会破坏使用PIO模式写入的数据

描述

如果控制器使用PIO模式写入数据并稍后使用ADMA2模式读取数据,则控制器在DMA过程中无法发送自动CMD12(停止请求),并且读取FIFO填满了错误的数据。

在PS 2.0及更高版本中修复。不影响生产硅。

通过在使用PIO模式写入时选择SDMA模式(而不是ADMA2模式)或不使用PIO模式写入数据,可以避免这种情况。

影响:

次要。请参阅下面的影响详细信息。

解决方法:

下面的解决方法详细介绍了两步解决方法。

受影响的配置:

使用SDIO控制器的系统。

受影响的器件版本: 在PS 2.0及更高版本中修复。请参阅(Xilinx答复47916) – Zynq-7000 SoC芯片版本差异

影响细节

如果SD主机控制器在PIO模式下将数据写入SD卡,然后尝试在ADMA2模式下从SD卡读取数据,则主机控制器将无法向SD卡发送Auto CMD12(停止请求)。因此,SD主机控制器中的内部FIFO将填充不正确的数据。

解决方法细节

这个问题有两种解决方法:

  • 当正在执行PIO写操作时,SD主机驱动程序应将dma_select模式配置为2b00。驱动程序可以将dma_select模式切换为2b10以进行ADMA2读取操作。
  • 不执行任何PIO写操作并始终使用ADMA2写/读操作。 PIO写入/读取的吞吐量小于通过ADMA2操作实现的吞吐量。
请登录后发表评论

    没有回复内容