Zynq-7000 SoC,SMC - 带ECC的NAND可能不会在数据事务之间取消CS

描述

NAND闪存控制器通常在数据传输之间解除芯片选择(CS),并在数据事务和命令操作之间保持芯片选择。该协议与大多数器件兼容。在某些操作模式中,控制器可能错误地认为它将在数据操作之后执行命令操作,并且控制器保持在两个数据事务之间断言芯片选择。

禁用ECC时可以避免这种情况。启用ECC时:

  • 使用完整命令进行写入
  • 读取块之间的ECC代码

影响:

轻微,请参阅解决方法。

变通办法:

  • 在完全命令模式下使用ECC块进行写入。读取块之间的ECC代码以进行读取。

  • 如果要读取或写入多个512字节块,请确保数据在单个未中断的事务中跨越512字节边界。

受影响的 配置

使用NAND和ECC的系统。

受影响的器件版本:

全部,没有计划修复。请参阅(Xilinx答复47916) Zynq-7000 SoC芯片版本差异。

SMC旨在支持需​​要在数据相位访问之间保持低电平的NAND器件,以及不具备此要求的器件。为了满足这两种类型的存储器,如果块传输已经完成,ECC块将不会在CS即将发出命令之后取消断言CS。但是,在某些操作模式下(特别是当启用列更改命令且软件未在块之间读取ECC代码时),SMC错误地假定它即将执行操作并取消取消断言CS的请求。

影响细节:在上述条件下,CS不会被撤销。如果通过相同的EBI存储创建下一个事务所需的数据或代码,则可能导致死锁。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 14:52:18 +0800

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

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