This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM3517:与 Micron NAND 的位翻转

Guru**** 2589265 points
Other Parts Discussed in Thread: AM3517

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/585978/am3517-bit-flips-with-micron-nand

器件型号:AM3517

您好!

我们在定制 PCB 上使用 AM3517AZCN。 我们将 NAND 芯片从 Samsung K9F2G08U0C-SIB0 (256MB)更改为 Micron MT29F2G08ABAEAWP-IT:E (256MB)、在与 Micron NAND 配合使用几个月后、我们开始检测位翻转问题。  在使用了多年的旧 NAND 的设备上、未检测到位翻转问题、这就是为什么我们对此感到震惊的原因。 到目前为止、我们仅经历了每页单个位翻转(128KB)、这意味着 U-Boot 可以纠正这些错误、但如果在环境分区中进行了任何更正 、则会拒绝 U-Boot、转而进入默认环境。 这些设备上的内核分区(4MB)中也有大约3-4位翻转。

为什么在进行校正后 U-Boot 默认不接受 env?
需要说明的是:这是在配置了 U-boot 的情况下进行的、没有 CONFIG_ENV_OFFSET_REDUND、ENV_IS_INDED 和 CONFIG_ENV_OFFSET_OOB。
我们将使用 U-boot v2010.12、但就我们所知、 在 https://git.ti.com/ti-u-boot/ti-u-boot 的最新版本中、情况似乎仍然如此。

是否有其他人在 Micron NAND 中遇到了位翻转问题、或对我们为什么在 NAND 更改后看到这个问题有任何疑问?

提前感谢、
Rickard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您的 U-boot 和内核 ECC 方案是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我似乎找不到方案的名称、但我可以在 U-Boot 源代码中找到的是使用默认 ECC 模式:NAND_ECC_SOFT、它声称能够更正256字节块的1位错误。 是否有足够的信息?
    我更改了 U-boot、以允许使用更正后的环境并重新保存它、从而消除当前的位翻转。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在深入研究这个问题后得出的结论是、我们使用的 ECC 校正太弱。 Micron 的最低要求是使用4位 ECC、AM3517不支持超过1位的 HW ECC、我们使用的 U-Boot 仅具有1位 SW ECC。 我猜 U-Boot 不接受单个位校正、因为硬件 ECC 应该在 U-Boot 读取 NAND 之前纠正所有的位翻转、因此我们自己有问题。