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/PROCESSOR-SDK-OMAPL138:U-BOOT-2018.01:NAND 写入失败、出现-5

Guru**** 2539500 points
Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/779109/linux-processor-sdk-omapl138-u-boot-2018-01-nand-write-failed-with--5

器件型号:PROCESSOR-SDK-OMAPL138
主题中讨论的其他器件:OMAP-L138OMAPL138FLASHTOOL

工具/软件:Linux

对于任何分区/偏移量,从 u-boot nand write 命令总是失败:

NAND 写入:器件0偏移量0x0、大小0x85b2c
NAND 写入到偏移量0失败-5
 0字节被写入:错误

和写入/读取工作正常。

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

    哪款处理器 SDK Linux 就是这样?

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

    05.01.00.11
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、您能描述一下您的用例吗? 您正在尝试在 Nand 中写入什么内容? 您是否有任何错误日志和引导日志?

    错误来自:NAND_WRITE_SKIP_BAD(),因此 nand 闪存可能损坏。 是否可以在另一个板上尝试? 还是使用不同的 nand 芯片?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用 u-boot 启动电路板、并执行以下操作:

    按任意键停止自动引导:0
    => MMC 重新扫描
    => n 和 ERASE.part 启动

    NAND 擦除.part:器件0偏移量0x0、大小0x100000
    在0xe0000擦除--完成100%。
    好的
    => fatload MMC 0 0xc0700000 u-boot_ais_nand8.bin
    578ms 内读取的547628字节(924.8 KiB/s)
    => n 并写入0xc0700000引导${filesize}

    NAND 写入:器件0偏移量0x0、大小0x85b2c
    NAND 写入到偏移量0失败-5
    0字节被写入:错误
    =>

    此错误会在任何分区上发生,而不仅仅是在第一个分区上发生。 但是、在同一电路板上使用旧的 u-boot 可以进行写入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试另一个板、结果是相同的。

    它在 nand_base.c 中第1813行的 nand__do_read_ops ()上失败:ecc_fail=true;

    你有什么想法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以在 OMAP-L138 LCDK 上对此进行测试? 如果没有、请共享您的配置文件(include/configs/omappl138_lcdk.h)、以及 u-boot defconfig 文件和 u-boot dts 文件。

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

    我没有 LCDK、无法测试。 我已共享文件。 DTS 文件不是由我修改的。

    e2e.ti.com/.../2337.files.7z

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    UPD:我使用8位 NAND 总线宽度
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    你有什么想法吗? 我接下来应该尝试什么?

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

    很抱歉、我找不到时间查看此内容并在我的一侧进行测试。 我今天将执行此操作并更新该主题。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以尝试不同的 ECC 方案吗? 请查看以下 wiki:
    processors.wiki.ti.com/.../Raw_NAND_ECC

    此时、您将#define CONFIG_SYS_NAND_4BIT_HW_ECC_BOOIRST 与搭配使用
    #define CONFIG_SYS_NAND_ECCPOS{\
    6、7、8、9、10、 11、12、13、14、15、\
    22、23、24、25、26、 27、28、29、30、31、 \
    38、39、40、41、42、 43、44、45、46、47、 \
    54、55、56、57、58、 59、60、61、62、63}

    验证这是否符合您使用的部件支持的实际 ECC 方案。

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

    我认为这是正确的、因为我在旧的 u-boot-2012.04.01上使用相同的方案、并且它可以正常工作(我使用此方案从 wiki 应用修补程序到旧的 u-boot)。

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

    您从哪里获得了这个旧的 u-boot? 最好将此旧 u-boot 和最新 u-boot 中 omapl138_lcdk.h 配置文件的差异进行比较。 也可以在 Davinci-nand.c 驱动程序中使用。 这应提供大量信息来确定错误的根本原因。

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

    旧的 u-boot 来自 mcsdk_01_01_00_02 (根据8位 NAND 而不是16位进行了更改)。 omapl138_lcdk.h 文件中的 CONFIG_SYS_NAND_xxx 参数看起来是相同的。 DaVinci_nand.c 中存在细微差异、nand_bBT.c、nand_util.c 等中存在大量差异

    NAND 读取没有问题:

    NAND 读取:器件0偏移量0x120000、大小0x10000
     65536字节读取:正常
    => n 并读取0xc0700000内核0x100000

    NAND 读取:器件0偏移量0x120000、大小0x100000
     1048576字节读取:正常
    => n 并写入0xc0700000内核0x100000

    写操作看起来取决于大小:

    => n 并写入0xc0700000内核0x480000

    NAND 写入:器件0偏移量0x120000、大小0x480000
     4718592字节被写入:好的
    => n 并写入0xc0700000内核0x48ba00

    NAND 写入:器件0偏移量0x120000、大小0x48ba00
    NAND 写入偏移量120000失败-5
     0字节被写入:错误
    => n 并写入0xc0700000内核0x490000

    NAND 写入:器件0偏移量0x120000、大小0x490000
     4784128字节写入:正常
    =>

    有时写返回正常、则相同的写操作失败:

    NAND 写入:器件0偏移量0x120000、大小0x480000
     4718592字节被写入:好的
    =>
    => n 并写入0xc0700000内核0x47ab90

    NAND 写入:器件0偏移量0x120000、大小0x47ab90
    NAND 写入偏移量120000失败-5
     0字节被写入:错误
    =>
    => nand ERASE.part 内核

    NAND 擦除.part:器件0偏移量0x120000、大小0x800000
    在0x900000处擦除-- 100%完成。
    好的
    => n 并写入0xc0700000内核0x47ab90

    NAND 写入:器件0偏移量0x120000、大小0x47ab90
    NAND 写入偏移量120000失败-5
     0字节被写入:错误
    => n 并写入0xc0700000内核0x480000

    NAND 写入:器件0偏移量0x120000、大小0x480000
    NAND 写入偏移量120000失败-5
     0字节被写入:错误
    => n 并写入0xc0700000内核0x480000

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否确保从源构建的 SDK 05.01.00.11的 u-boot 与 EVM 上的 NAND 一同工作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我找到了具有16位 NAND 的类似 EVM 的电路板、然后从最新的 SDK 构建并运行 u-boot、但结果相同。 :(

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

    您好!

    您能否检查有关 Nand ECC 配置的此主题:
    e2e.ti.com/.../667875

    此致、
    Yordan

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

    您好、Yordan、

    我仍然不知道 u-boot、我检查了几次 ECC 配置、这与需要相同。 但我阅读了您提到的线程、即构建的闪存工具、现在我在 Linux 下执行引导分区更新、而不是像我之前所做的那样从 u-boot 进行更新。 系统更新的最终目标是以这种方式工作。 感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、感谢您的反馈。 现在、我将关闭该线程。 如果您需要进一步的帮助、请随时打开另一个 e2e 线程。

    此致、
    Yordan