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.

[参考译文] Linux/AM5718:AM571x OMAP2-nand 探测器是具有8K 页码 NAND 器件的主操作员

Guru**** 2540720 points
Other Parts Discussed in Thread: AM5718

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/569979/linux-am5718-am571x-omap2-nand-probe-is-ko-with-nand-device-of-8k-pagesize

器件型号:AM5718

工具/软件:Linux

您好!

在带有 AM5718的定制板上、我有一个 Micron NAND 器件(MT29F32G08ABAAAWP)连接到 GPMC 总线。
我不需要在此 NAND 器件上引导、但我必须在该器件上设置 UBI 文件系统、以便应用程序保存数据。

NAND 器件具有以下属性:
- 4GiB 容量
-页面大小为8KiB
-擦除大小为1MiB (1024K)
OOB 大小为448

我的设备树配置(DTS)如下所示:
TI、nand-ecc-opt ="bch16";
TI、elm-id =<和 elm>;
NAND-BUS 宽度=<8>;
GPMC、器件宽度=<1>;
因此、我想使用 Sitara 的硬件 ELM 功能来查找和更正 ECC 错误、这意味着我将使用 nand_elm 驱动器部件。

当我启动内核时、我会收到以下消息:
[8.936778]   nand:device found、Manufacturer ID:0x2C、Chip ID:0x68
[8.942911]   和:Micron MT29F32G08ABAANWP
[8.956753]   nand:4096 MIB、SLC、擦除大小:1024 KiB、页面大小:8192、OOB 大小:448
[8.991076]   使用 OMAP-ECC_BCH16_CODE_HW ECC 方案
[8.995781]   OMAP-elm 48078000.elm:不支持的配置 ecc-step=16
[9.016878]   OMAP2-nand:探测器80000.n,失败,错误-22

我的内核是一个4.1.6、它来自我在定制板上移植的02.00.00.00 TI SDK。
我已经对这个问题进行了一些处理、如果我对、这意味着 ONFI 器件协议运行良好、但 ELM 驱动程序无法与页面大小大于4K 的器件配合使用。

我的问题是:
- Sitara 的 ELM 引擎是否能够处理 pagesize=8K 的 NAND 设备?
-如果是,您是否可以提供一些修补程序来应用于 Linux OMAP NAND 驱动程序以处理此硬件配置?
-如果 NAND 设备不能提供硬件 BCH16支持,我是否可以获得一些修补程序来使用软件 ECC 管理?

感谢你的帮助

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

    我建议您修订 NAND 配置、并考虑链接的 Linux 内核 NAND 用户指南中的说明、网址为:
    processors.wiki.ti.com/.../Linux_Core_NAND_User's_Guide
    此外、当使用 BCH16_HW ECC 时、建议使用4KB 的 NAND 页大小。

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

    您好!

    感谢您的回答。 我仔细阅读了这个 wiki。

    正确 的做法是、建议仅为 NAND pagesize=4K 选择 BCH16 HW ECC。

    但关于 OMAP2驱动程序、还说:

    OMAP NAND 驱动程序支持:

    • NAND 器件具有:
    • 总线宽度= x8 | x16
    • 页面大小= 2048 | 4096
    • 块大小= 128k | 256k

    我的问题仍然是 :Sitara 的 GPMC 和 ELM 是否 能够管理 pagesize=8K 的 NAND 器件?

    根据驱动程序的内容(nand_elm.c)、ELM 最多能够同时管理8个 ECC 步骤。

    这意味着8 x 512字节的数据=最大4K

    因此、我想向您确认 、AM5718不支持 pagesize=8K 的 NAND 器件。

    在这种情况下、这意味着我们需要 完全通过软件(1位汉明码)管理 ECC:

    -由于  当前 NAND 驱动程序的软件 ECC 不支持 OOB 大小(448)、因此需要修改 NAND 驱动程序

    -数据完整性强度远低于预期(BCH 比汉明更强大、可定位和更正错误)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sitara AM57x 不支持 NAND 页面大小8KB。 如 AM571x TRM 33.3.7.4 NAND 部分中所述、位于:
    www.ti.com/.../spruhz7d.pdf
    支持大页大小(2048字节+ 64个备用字节)或大页大小(4096字节+ 128/218备用字节)

    BR
    Tsvetolin Shulev