软件可能会触发一个中止,在 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 中报告的所有故障模式都是由于软件错误导致的,即软件出错:
如果驱动程序犯了一个上述错误,中止代码就会正确报告。但如果它随后执行了一个成功的序列,在 ecc_status 位降低后,ecc_last_status 值将错误地显示 1 个周期的同一个中止。
影响详情
在正常运行过程中,NAND 软件不会导致任何由 ecc_last_status 位报告的中止代码。只有错误的失败(从不错误的传递)可以被报告为该问题导致的结果,所以读回数据时,对数据完整性或 ECC 操作没有任何影响。
影响将来自于软件如何针对中止代码做出响应。但必须实施适当的错误处理,因为本勘误表只有在真正的中止发生并由软件处理之后才会出现。
解决方法详情
如果软件从 ecc_status 寄存器的 ecc_last_status 位读取非零值,就必须再次读取 ecc_status 寄存器中的值,以确保返回正确的值。
Answer Number | 问答标题 | 问题版本 | 已解决问题的版本 |
---|---|---|---|
47916 | Zynq-7000 AP SoC 器件:芯片修订差异 | N/A | N/A |
AR# 47520 | |
---|---|
日期 | 06/13/2018 |
状态 | Active |
Type | 设计咨询 |
器件 |