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# 47520

Zynq-7000 SoC、SMC — NAND ECC 状态寄存器可能会错误地报告一个时钟周期的故障

描述

软件可能会触发一个中止,在 ecc_status 位变低后,该中止可能会导致针对一个周期错误地显示 ecc_last_status 值。

在软件检测到非零值时,它必须重新读取 ecc_last_status。

解决方案

影响:非常小,必要时,重新读取 ECC 状态。
解决方法:如果软件从 ecc_status 寄存器的 ecc_last_status 位读取非零值,就必须再次读取 ecc_status 寄存器中的值,以确保返回正确的值。
受影响的配置: 使用支持 ECC 功能 NAND 的系统。
受影响的器件修订版本:全部,无计划修复。查看 (Xilinx Answer 47916) - Zynq-7000 SoC 芯片版本差异


ecc_status 寄存器包含一个 2 位 ecc_last_status 值,以报告之前 ECC 操作的成败。ecc_last_status 值只有在同一寄存器中的 ecc_status 位变低时才有效,表明 ECC 为空闲。在 ecc_last_status 中报告的所有故障模式都是由于软件错误导致的,即软件出错:

  1. ecc_last_status = 01 的实例:软件试图在一个超出范围或没有与 512 字节边界正确对齐的地址启动 ECC 操作。
  2. ecc_last_status = 10 的实例:软件为 ECC 操作提供了数量不正确的数据。
  3. ecc_last_status = 11 的实例:软件编程控制器,使其不在页面上跳跃,以将 ECC 代码写入内存,然后无法提供整个页面的数据。

如果驱动程序犯了一个上述错误,中止代码就会正确报告。但如果它随后执行了一个成功的序列,在 ecc_status 位降低后,ecc_last_status 值将错误地显示 1 个周期的同一个中止。

影响详情

在正常运行过程中,NAND 软件不会导致任何由 ecc_last_status 位报告的中止代码。只有错误的失败(从不错误的传递)可以被报告为该问题导致的结果,所以读回数据时,对数据完整性或 ECC 操作没有任何影响。

影响将来自于软件如何针对中止代码做出响应。但必须实施适当的错误处理,因为本勘误表只有在真正的中止发生并由软件处理之后才会出现。

解决方法详情

如果软件从 ecc_status 寄存器的 ecc_last_status 位读取非零值,就必须再次读取 ecc_status 寄存器中的值,以确保返回正确的值。

链接问答记录

主要问答记录

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