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:DM385上支持 NAND 闪存

Guru**** 2574255 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/622865/linux-nand-flash-supported-on-dm385

Thread 中讨论的其他器件:DM385

工具/软件:Linux

您好、先生、

 原始设计正常。出于某种原因、我们需要更改 NAND 闪存。但当我们更改为新 NAND 闪存时、系统无法启动。请帮助检查。

新 NAND 闪存的信息是

Toshiba TC58NVG0S3HYA00 (128M + 8位)

页面大小为2176字节

块大小为(128+8k)字节

我是否需要修改驱动程序中的信息?在哪里修改?

错误消息如下所示。

U-Boot 2010.06 (2017年7月20日- 16:40:41) DM385_IPNC_3.50.00

NAND 器件:制造商 ID:0x98、芯片 ID:0xF1 (Toshiba NAND 128Mib3、3V 8位)


数据(writeThrough)高速缓存已打开

从 NAND 128MiB 加载3、3V 8位、偏移量0x280000
映像名称:Linux-2.6.37_DM385_3.50.0
映像类型:ARM Linux 内核映像(未压缩)
数据大小:1763520字节= 1.7 MIB
加载地址:80008000
入口点:80008000
##从传统映像(位于80007fc0)引导内核...
映像名称:Linux-2.6.37_DM385_3.50.0
映像类型:ARM Linux 内核映像(未压缩)
数据大小:1763520字节= 1.7 MIB
加载地址:80008000
入口点:80008000
好的
好的

正在启动内核...

正在解压缩 Linux... 已完成、正在引导内核。
尝试安装 IRQ375的类型控制
尝试为 IRQ375设置 IRQ 标志
omap_volte_domain_lookup:尚未发生电压驱动器初始化。出错!
OMAP-VOLTGE_LARD_INIT:未添加电压驱动器支持
init:版本2.86引导
内核严重错误-未同步:尝试终止初始化!
回溯:
[ ](dump_backtrace+0x0/0x110)从[ ](dump_stack+0x18/0x1c)
r6:c6826000 r5:00007f00 r4:c0391998 r3:60000013
[ ](dump_stack+0x0/0x1c)从[ ](紧急+ 0x5c/0x178)
[ ](紧急+0x0/0x178)从[ ](DO_EXIT+0x68/0x5d0)
r3:c036fedc r2:c6829f18 r1:00000001 r0:c030e131
r7:000000f8
[ ](DO_EXIT+0x0/0x5d0)从[ ](do_group_exit+0x84/b4)
r7:000000f8
[ ](do_group_exit+0x0/b4)从[ ](sys_exit_group+0x18/0x20)
R4:00000005 R3:0000007f
[ ](sys_exit_group+0x0/0x20)从[ ](RET_FAST_SYSCALL+0x0/0x30)

此致、

拜伦

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

    尊敬的 Byron Tien:

    我在上面没有看到任何与 NAND 相关的错误。 您是否共享了整个引导日志或在 bootargs 中安静地传递了这些日志? 您能否在 uboot 停止引导并尝试与类似的 nand 命令
    $nand 转储0
    $nand 读取0 0 1000

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

    如何停止引导。我在控制台上键入任何密钥。无任何响应。

    U-Boot 2010.06 (2017年8月30日- 15:04:29) DM385_IPNC_3.50.00

    NAND 器件:制造商 ID:0x98、芯片 ID:0xF1 (Toshiba NAND 128Mib3、3V 8位)



    NAND 读取:器件0偏移量0x20000、大小0x1e000
    读取122880字节:好的

    U-Boot 2010.06 (2017年8月30日- 15:04:50) DM385_IPNC_3.50.00

    NAND 器件:制造商 ID:0x98、芯片 ID:0xF1 (Toshiba NAND 128Mib3、3V 8位)


    数据(writeThrough)高速缓存已打开

    从 NAND 128MiB 加载3、3V 8位、偏移量0x280000
    图像名称:Linux-2.6.37_DM385_CARDVR_3.50.0
    映像类型:ARM Linux 内核映像(未压缩)
    数据大小:1763796字节= 1.7 MIB
    加载地址:80008000
    入口点:80008000
    ##从传统映像(位于80007fc0)引导内核...
    图像名称:Linux-2.6.37_DM385_CARDVR_3.50.0
    映像类型:ARM Linux 内核映像(未压缩)
    数据大小:1763796字节= 1.7 MIB
    加载地址:80008000
    入口点:80008000
    好的
    好的

    正在启动内核...

    正在解压缩 Linux... 已完成、正在引导内核。
    尝试安装 IRQ375的类型控制
    尝试为 IRQ375设置 IRQ 标志
    omap_volte_domain_lookup:尚未发生电压驱动器初始化。出错!
    OMAP-VOLTGE_LARD_INIT:未添加电压驱动器支持
    gUBIFS 错误(pid 1):ubifs_decompress:无法解压缩2865字节、压缩机电压、错误-22
    UBIFS 错误(pid 1):read_block:错误的数据节点(块114、inode 3914)
    UBIFS 错误(pid 1):do_readpage:无法读取 inode 3914的第114页、错误-22
    UBIFS 错误(pid 1):ubifs_decompress:无法解压缩2865字节、压缩机电压、错误-22
    UBIFS 错误(pid 1):read_block:错误的数据节点(块114、inode 3914)
    UBIFS 错误(pid 1):do_readpage:无法读取 inode 3914的第114页、错误-22
    内核严重错误-未同步:尝试终止初始化!
    回溯:
    [ ](dump_backtrace+0x0/0x110)从[ ](dump_stack+0x18/0x1c)
    R6:c6826000 R5:00000007 R4:c0391b58 R3:60000113
    [ ](dump_stack+0x0/0x1c)从[ ](紧急+ 0x5c/0x178)
    [ ](紧急+0x0/0x178)从[ ](DO_EXIT+0x68/0x5d0)
    r3:c0370084 r2:c6829e18 r1:00000001 r0:c030e22b
    R7:c682a000
    [ ](DO_EXIT+0x0/0x5d0)从[ ](do_group_exit+0x84/b4)
    R7:c682a000
    [ ](do_group_exit+0x0/b4)从[ ](get_signal_TO_Deliver + 0x2d0/0x304)
    R4:01060013 R3:20000113
    [ ](get_signal_TO_Deliver + 0x0/0x304)、来自[ ](do_signal +0x70/0x5f4)
    [ ](do_signal_+0x0/0x5f4)来自[ ](do_notify_resume+0x20/0x64)
    [ ](do_notify_resume+0x0/0x64)从[ ](工作挂起+0x24/0x28)
    r4:ffffff r3:00000001


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

    尊敬的拜伦:

    看起来您的内核是从 NAND 加载的、可以访问 NAND。

    从 NAND 128MiB 加载3、3V 8位、偏移量0x280000

    映像名称:Linux-2.6.37_DM385_3.50.0

    映像类型:ARM Linux 内核映像(未压缩)

     


    以前使用的 NAND 大小是多少? 您能否在构建时共享 mkfs.ubifs 和 ubbinize 命令?  

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

    sudo mkfs.ubifs -r $(target_FS)-F -o ./tmp/ubifs.img -m 2048 -e 126976 -c 827
    sudo ubbinize -o $(TFTP_HOME)/ubifs_cardvr.bin -m 2048 -p 128KiB -s 512 -O 2048 $(IPNC_INSTALL_DIR)/ubinize.cfg


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

    您能否查看以下链接以创建 ubifs? 需要确保根据新的 NAND 完成计算。

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

    这意味着内核从 NAND 中加载并正常工作?为什么它们解压缩映像?
    以下是旧的 NAND 设计。
    我是否需要检查用于创建 ubifs 的参数?nand_ids.c 如何?
    ===========================================================================================================
    U-Boot 2010.06 (2017年8月30日- 15:04:29) DM385_IPNC_3.50.00

    NAND 器件:制造商 ID:0x01、芯片 ID:0xF1 (Spanion/AMD NAND 128Mib3、3V 8位)



    NAND 读取:器件0偏移量0x20000、大小0x1e000
    读取122880字节:好的

    U-Boot 2010.06 (2017年8月30日- 15:04:50) DM385_IPNC_3.50.00

    NAND 器件:制造商 ID:0x01、芯片 ID:0xF1 (Spanion/AMD NAND 128Mib3、3V 8位)


    数据(writeThrough)高速缓存已打开

    从 NAND 128MiB 加载3、3V 8位、偏移量0x280000
    映像名称:Linux-2.6.37_DM385_3.50.0
    映像类型:ARM Linux 内核映像(未压缩)
    数据大小:1763796字节= 1.7 MIB
    加载地址:80008000
    入口点:80008000
    ##从传统映像(位于80007fc0)引导内核...
    映像名称:Linux-2.6.37_DM385_3.50.0
    映像类型:ARM Linux 内核映像(未压缩)
    数据大小:1763796字节= 1.7 MIB
    加载地址:80008000
    入口点:80008000
    好的
    好的

    正在启动内核...

    正在解压缩 Linux... 已完成、正在引导内核。
    尝试安装 IRQ375的类型控制
    尝试为 IRQ375设置 IRQ 标志
    omap_volte_domain_lookup:尚未发生电压驱动器初始化。出错!
    OMAP-VOLTGE_LARD_INIT:未添加电压驱动器支持
    init:版本2.86引导
    第一运行级别
    SysLink 版本:2.20.02.20
    SysLink 模块创建日期:2017年8月30日时间:15:08:43
    启用跟踪
    启用跟踪设置故障恢复
    /dev/mem 已打开。
    hwclock:RTC_RD_TIME:无效参数
    完成运行级别

    [host]已在从处理器0上加载文件/firmware/ipnc_rdk_fw_m3video.xem3。

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

    这意味着内核从 NAND 中加载并正常工作?

    是的、我看到内核从 NAND 中加载。

    为什么他们解压缩图像?

    根文件系统以 ubifs 格式存储,ubifs 压缩文件。



    我是否需要检查用于创建 ubifs 的参数?

    是的、您需要按照上述 POST 链接中所述正确配置 ubifs 的创建

    nand_ids.c 如何?

    在 uboot 和内核中正确检测到 NAND 部分作为 Toshiba 8位和从 u-boot 加载的内核。

     

    希望您像以前一样刷写映像、在另一个 NAND 案例中完成、并且与 ECC 相关的内核配置没有变化

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

    您好、Sirs、

    我已经更改了它更多 times.it 仍然失败。我们是否在 make ubifs 中安装了一些东西?

    sudo mkfs.ubifs -r $(target_FS)-F -o ./tmp/ubifs.img -m 2048 -e 129024 -c 827
    sudo ubbinize -o $(TFTP_HOME)/ubifs_cardvr.bin -m 2048 -p 136KiB -s 2048 -O 2048 $(IPNC_INSTALL_DIR)/ubinize.cfg

    >> ubinize.cfg

    [子项]
    mode=ubi
    image=tmp/ubifs.img
    VOL_id=0
    VOL_SIZE = 100MiB
    VOL_TYPE=动态
    VOL_NAME=rootfs
    VOL_flags=自动大小

    ===========================

    Toshiba 1G bit nand EEPROM 的信息

    页面大小为(2048+128)字节

    块大小为 (2048+128)字节*64页

    器件大小为(2048+128)字节* 64页* 1024个块

    ===========================

    U-Boot 2010.06 (2017年8月30日- 15:04:29) DM385_IPNC_3.50.00

    NAND 器件:制造商 ID:0x98、芯片 ID:0xF1 (Toshiba NAND 128Mib3、3V 8位)

    NAND 读取:器件0偏移量0x20000、大小0x1e000
    读取122880字节:好的

    U-Boot 2010.06 (2017年8月30日- 15:04:50) DM385_IPNC_3.50.00

    NAND 器件:制造商 ID:0x98、芯片 ID:0xF1 (Toshiba NAND 128Mib3、3V 8位)


    数据(writeThrough)高速缓存已打开

    从 NAND 128MiB 加载3、3V 8位、偏移量0x280000
    映像名称:Linux-2.6.37_DM385_3.50.0
    映像类型:ARM Linux 内核映像(未压缩)
    数据大小:1763972字节= 1.7 MIB
    加载地址:80008000
    入口点:80008000
    ##从传统映像(位于80007fc0)引导内核...
    映像名称:Linux-2.6.37_DM385_3.50.0
    映像类型:ARM Linux 内核映像(未压缩)
    数据大小:1763972字节= 1.7 MIB
    加载地址:80008000
    入口点:80008000
    好的
    好的

    正在启动内核...

    正在解压缩 Linux... 已完成、正在引导内核。
    尝试安装 IRQ375的类型控制
    尝试为 IRQ375设置 IRQ 标志
    omap_volte_domain_lookup:尚未发生电压驱动器初始化。出错!
    OMAP-VOLTGE_LARD_INIT:未添加电压驱动器支持
    UBIFS 错误(pid 1):ubifs_read_node:错误节点类型(255、但预期为6)
    UBIFS 错误(pid 1):ubifs_read_node:LEB 0:0处的节点错误、LEB 映射状态0
    内核严重错误-未同步:VFS:无法在未知块(0、0)上安装根 FS
    回溯:
    [ ](dump_backtrace+0x0/0x110)从[ ](dump_stack+0x18/0x1c)
    R6:00008000 R5:c6814006 R4:c0391b58 R3:60000013
    [ ](dump_stack+0x0/0x1c)从[ ](紧急+ 0x5c/0x178)
    [ ](紧急+0x0/0x178)从[ ](LOAD_BLOCK_ROOT+0x23c/0x28c)
    r3:00000000 r2:00000020 r1:c6829f78 r0:c030071e
    R7:c0024e9c
    [ ](LOAD_BLOCK_ROOT+0x0/0x28c)从[ ](Prepare_namespace +0x94/0x188)
    [ ](Prepare_namespace +0x0/0x188)、来自[ ](kernel_init+0x114/0x154)
    R5:c0024684 R4:c0024684
    [ ](kernel_init+0x0/0x154)从[ ](DO_EXIT+0x0/0x5d0)
    R5:c0008988 R4:00000000

    ===========================

    此致、

    拜伦

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

    我希望你会尝试使用"-p 128KiB"

    您还可以尝试在配置中减小卷大小 vol_size=80MiB 吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sirs、

    是的、我已经尝试过。 同样的情况。您有什么建议吗? 或者我需要启用什么驱动程序选项?

    此致、

    拜伦

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

    您好、Sirs、

    此问题是否有更新?

    此致、

    拜伦

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

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

    您好、先生、

    文件 plefas 拍摄它。谢谢。

    此致、

    Byrone2e.ti.com/.../0743.TC58NVG0S3HTA00.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的拜伦:
    我没能指出 Toshiba NAND 具有128字节(2048 + 128 = 2176)的备用空间。 通常、2048页需要64字节的备用区域。 这应该只有在 ROM 代码加载 MLO 时才会有所不同。 我是否可以知道 MLO、uboot、内核和文件系统在何处闪存? 使用什么程序?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sirs、

    抱歉、您能详细描述一下吗。您是指我什么时候会刷新?

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

    您在哪里闪存(存储到 NAND 或 NOR 或任何其他存储器中)二进制文件(如 MLO、uboot、内核和文件系统)? 从何处刷写(从 uboot 或文件系统中的用户空间或任何其他空间)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sirs、

    我使用 SD 引导将映像刷写到 NAND 中。

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

    您好、Sirs、

    您对此问题有什么建议吗?

    此致、

    拜伦

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

    如果 MLO、ubboot 和内核太像 ubifs 文件系统那样烧录到 NAND 中、这种情况很奇怪。 使用的 ECC 是什么? 您确信内核没有变化(即闪存到 NAND 中的内核和闪存到 NAND 中的内核)。 两者都是相同的内核,具有相同的配置?
    此外,您还可以尝试从 SDCard 引导中的命令行装入 NAND 文件系统。 请使用之前共享的链接检查如何从用户空间安装 ubifs 文件系统。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sirs、

    我们使用了 H/W ECC BCH8。 64字节页大小和128字节页大小之间是否有任何不同?

    旧闪存为 Spansion

    页面大小:(2048+64)字节

    块大小:(128K+4K)字节

    总计:(2048+64)字节* 64页* 1024个块

    新推出的是 Toshiba 闪存

    页面大小:(2048+128)字节

    块大小:(128K+8K)字节

    总计:(2048+128)字节* 64页* 1024个块

    此致、

    拜伦

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

    您好!

    AFAIK 不应该有任何不同。 但您可以使用 BCH16进行检查。 此外,如果有任何可提供帮助的修补程序,请访问此链接: arago-project.org/.../linux-davinci.git

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

    您好、Sirs、

    驱动程序不支持 BCH16。

    BTW、当我们更改 mkfs.ubifs 和 ubbinize 的参数时。 我们会收到不同的错误消息。错误是否来自此处?您对这两条命令有什么建议吗?

    此致、

    拜伦

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

    AFAIK 命令不会随备用区域中不同大小的不同而变化。 但是,您能否在这里了解 ubifs 命令和日志更改之间的区别?