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.

[参考译文] AM623:关于 GPMC nand 闪存驱动程序

Guru**** 2393625 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1490207/am623-about-gpmc-nand-flash-driver

器件型号:AM623

工具与软件:

您好、TI 专家

从 GPMC nand 驱动程序文件: drivers/mtd/nand/raw/omap2.c 中, 我发现如果不使用  NAN_BBT_USE_FLASH ,将跳过 BBT 扫描。 请告诉我原因。    

如果我们不 使用 NAN_BBT_USE_FLASH、也不会设置 NAND_SKIP_BBTSCAN 。  因此会将 BBT 存储在 RAM 中。  它是否会在 TI 平台中出现一些问题?  

OMAP_nand_attach_chip-->

  {    if (CHIP->BBT_OPTIONS 和 NAN_BBT_USE_FLASH)
       CHIP->BBT_OPTIONS |= NAN_BBT_NO_OOB;
     设计
     Chip->OPTIONS |= NAND_SKIP_BBTSCAN;

}

我们使用 TI Linux SDK 版本:  10.00.07.04

非常感谢

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

    尊敬的 BERT:

    内核驱动程序 drivers/mtd/nand/raw/nand_BBT.c 在文件开头说明了 BBT 管理。

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

    你(们)好

     我知道  BBT 管理方法、  但 我们不想创建 基于闪存的 BBT、而只想创建 存储器 BBT。  

     但来自 TI GPMC nand 驱动程序代码 omap2.c  如果未设置  NAN_BBT_USE_FLASH 标志、将设置 NAND_SKIP_BBTSCAN 。  因此、  如果不 创建基于闪存的 BBT、 也不创建 存储器 BBT。    请帮助检查原因。   

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

    尊敬的 BERT:

    现在、我理解了您的问题。 请让我了解一下、然后再联系您。

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

    尊敬的 BERT:

    我追溯到内核驱动程序 drivers/mtd/nand/raw/omap2.c、它始终具有标志 NAND_SKIP_BBTSCAN 集、因为该驱动程序的第一个版本是在2009年集成在内核的。 因此、该驱动程序不会使用 BBT 逻辑。 MTD 驱动程序直接使用 OOB 来管理坏块。

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

    你(们)好  

       如果我 删除了 NAND_SKIP_BBTSCAN  标记、您认为有什么问题吗?

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

    尊敬的 BERT:

    我不知道、OMAP2 NAND 驱动器从未使用 BBT 逻辑、也未经验证。

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

    你(们)好  

    删除  NAND_SKIP_BBTSCAN 标志时看起来正常。 系统可以正常引导、应用程序可以正常工作。   

     您是否知道我可以 根据您的经验采取哪些测试案例以确保可靠性?

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

    尊敬的 BERT:

    它尚未经过验证、因此我无法确定它的可靠性。

    为什么要删除此标志以使用内存中 BBT 管理?

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

    你(们)好

      根本原因是 TI uboot 和  基于 TI Linux 默认闪存的 BBT 是  不同的。

    如前所述、 在 Linux drivers/mdd/nand/raw/omap2.c 中、  如果设置  NAN_BBT_USE_FLASH、也会设置 NAN_BBT_NO_OOB。 但在 uboot 代码 drivers/mtd/nand/raw/omap_gpmc.c 中不设置它。  因此、为了在 uboot 和 Linux 之间保持相同的 BBT、我们应在 Linux 或 uboot 中更改代码。   

    请检查

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

    尊敬的 BERT:

    [报价 userid="623667" url="~/support/processors-group/processors/f/processors-forum/1490207/am623-about-gpmc-nand-flash-driver/5741782 #5741782"]如前所述、 在 Linux drivers/mtd/nand/raw/omap2.c 中 、  如果设置 NAN_BBT_USE_FLASH 、还将设置 NAN_BBT_NO_OOB 。

    从不在 omap2.c 中设置内核中的 NAN_BBT_USE_FLASH、

      2244         if (info->flash_bbt)                                                    
         1                 nand_chip->bbt_options |= NAND_BBT_USE_FLASH;

    由于始终不会设置 INFO->FLASH_BBT 标志。

    因此、内核驱动程序中的行为与 U-Boot 中的行为相同。 我怎么了?

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

    你(们)好

    OMAP_nand_attach_chip-->

      {    if (CHIP->BBT_OPTIONS 和 NAN_BBT_USE_FLASH)
           CHIP->BBT_OPTIONS |= NAN_BBT_NO_OOB;
         设计
         Chip->OPTIONS |= NAND_SKIP_BBTSCAN;

    }

     Linux drivers/mtd/nand/raw/omap2.c 中的上述代码完成了我所说的: 如果设置 NAN_BBT_USE_FLASH、还会设置 NAN_BBT_NO_OOB。

    UBoot 和 Linux 都 通过器件树  nand-on-flash-BBT 属性设置 NAN_BBT_USE_FLASH 标志

    如果(OF_PROPERTY_READ_Bool (dn、"nand-on-flash-BBT"))
    CHIP->BBT_OPTIONS |= NAN_BBT_USE_FLASH;

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

    尊敬的 BERT:

    现在、我理解您的顾虑。 我正在内部查看这个问题、一旦有更新、我就会给您回复。

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

    尊敬的 BERT:

    由于"NAND on-flash-BBT" DT 从未在 SDK 中正确启用、因此未进行验证、因此我无法从内部讨论中获得关于其影响的准确答案。

    但是、通过查看代码、由于 U-Boot 和内核以不同的方式使用 NAN_BBT_NO_OOB 标志、因此如果在 U-Boot 和内核 devicetre 中设置了"nand-on-flash-BBT"、则可能会导致 OOB 损坏。