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.

[参考译文] 内核在第二次或非引导时崩溃

Guru**** 2560390 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/607294/kernel-crashes-on-2nd-nor-boot

主题中讨论的其他器件:X5777AXGABCX5777BXGABC

您好 TI

您好 TI  


我们的定制板中没有闪存、我们只能在闪存映像内容之后启动一次。

在我们执行下电上电后、我们将收到 Oops 消息

[89.330256]  [<802069ec>](jffs2_link_node_ref+0x0/0x1ac)来自[<80218384>](sum_link_node_ref+0x64/0x6c)
[16.317468]  回扫:
[16.320054]  [<802069ec>](jffs2_link_node_ref+0x0/0x1ac)来自[<8021837c>](sum_link_node_ref+0x64/0x6c)
[16.330042]   r7:c20b4280 r6:c3752c00 R5:00000000 R4:c37765f8
[16.336036]  [<80218318>](sum_link_node_ref+0x0/0x6c)来自[<80218ccc>](jffs2_sum_scan_sumnode +0x244/0x640)
[16.346387]   R8:00000000 r7:c37765f8 r6:80975ce4 r5:c3752c00 r4:cd55c600
[16.353476]  [<80218a88>](jffs2_sum_scan_sumnode+0x0/0x640)来自[<8020be34>](jffs2_scan_medium+0x744/0x15dc)
[16.364014]  [<8020b6f0>](jffs2_scan_medium+0x0/0x15dc)来自[<8020f080>](jffs2_do_mount_fs+0x1c0/0x664)
[16.374096]  [<8020eec0>](jffs2_do_mount_fs+0x0/0x664)来自[<80211330>](jffs2_do_fill_super+0xc0/0x290)
[16.384182]  [<80211270>](jffs2_do_fill_super_0x0/0x290)从[<80211bc4>](jffs2_fill_super+0xcc/0x108)
[16.394161]   r7:00000000 R6:00000000 R5:c373a000 R4:00018400
[16.400152]  [<80211af8>](jffs2_fill_super_0x0/0x108)从[<804163ec>](mount_MTD_aux.isra.0+0x80/0xcc)
[16.410141]   R8:80918d64 r7:00000000 R6:00008000 R5:c364f400 R4:c373a000

BR

安特里克什

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

    您使用哪款处理器?
    您的 SDK/Linux 内核的版本是什么?

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

    我们使用的是 SoC X5777AXGABC、它已停产、目前我们使用的是 SoC X5777BXGABC。
    glsdk 版本:- ti-glsdk_dra7xx-evm_6_10_00_02。
    我们使用的是内核版本3.12.25。

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

    我已将您的问题转交给内核专家。

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

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

    你(们)好

    我们正在查看相同的更新(如果有)。

    BR

    安特里克什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    安特里克什
    我们主要支持 QSPI、也不支持引导、因为它所需的引脚数要少得多、大多数客户都使用 QSPI、并且在 EVM 上更容易验证(测试也不需要执行某些 EVM 修改)。

    您似乎正在使用非常旧的 SDK 版本-在较旧的 SDK 版本上复制测试和支持将非常困难。

    您是否还能说明您在第一次引导时执行的操作,特别是在访问 NOR 闪存方面(读取、写入操作)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sriram、

    感谢您的回复。

    为了进行调试、我在内核中禁用了 CONFIG_JFFS2_SUMMARY。

    之后、它在第一次尝试 NOR 自身引导时崩溃。

    在我进一步分析之后,我知道它在 "jffs2:jffs2_flash_writev():非连续写入"处崩溃。

    它位于 fs/jffs2/wbuf.c 的 jffs2_flash_writev 中

    为了进一步调试,我在调用 bug()之前添加了 dump_stack()以获取栈信息。

    [19.134115]  jffs2:jffs2_flash_writev ():对0434aa7c 进行非连续写入


    [19.141262]*****   转储
    [19.144205]  CPU:1 PID:1150 Comm:INIT 未被污染3.12.25 #31
    [19.150464]  回扫:
    [19.153052]  [<800181d4>](dump_backtrace+0x0/0x10c)从[<80018370>](show_stack+0x18/0x1c)
    [19.161948]   R6:c3744c00 R5:ffFFFF R4:00000000 R3:00000000
    [19.167953]  [<80018358>](show_stack+0x0/0x1c)来自[<80642168>](dump_stack+0x74/b4)
    [19.176391]  [<806420f4>](dump_stack+0x0/b4)从[<802169bc>](jffs2_flash_writev+0x498/0x514)
    [19.185730]   R5:00000000 R4:0434aa7c.
    [19.189505]  [<80216524>](jffs2_flash_writev+0x0/0x514)从[<80216a8c>](jffs2_flash_write+0x54/0x7c)
    [19.199397]  [<80216a38>](jffs2_flash_write+0x0/0x7c)、来自[<802086fc>](jffs2_mark_node_obsoleed+0x4ac/0x654)
    [19.209932]   R5:c3776d48 R4:c3744c00
    [19.213714]  [<80208250>](jffs2_mark_node_eleveed+0x0/0x654)来自[<8020c04c>](jffs2_write_inode_range+0x19c/0x2d0)
    [19.224902]  [<8020beb0>](jffs2_write_inode_range+0x0/0x2d0)从[<802058a0>](jffs2_write_end+0x100/0x22c)
    [19.235265]  [<802057a0>](jffs2_write_end+0x0/0x22c)来自[<800b32e8>](generic_file_buffed_write+0xf0/0x274)
    [19.245901]  [<800b31f8>](generic_file_buffed_write+0x0/0x274)、来自[<800b4ddc>](_generic_file_aio_write+0x208/0x458)
    [19.257440]  [<800b4bd4>](__generic_file_aio_write+0x0/0x458)来自[<800b5088>](generic_file_aio_write+0x5c/0xa4)
    [19.26831]  [<800b502c>](generic_file_aio_write+0x0/0xa4)来自[<800eceac>](do_sync_write+0x88/b0)
    [19.278145]  [<800ece24>](do_sync_write+0x0/b0)从[<800ed94>](vfs_write+b0x8/0x190)
    [19.286842]   r7:c20c7f78 r6:7ebcc56c r5:00000180 r4:c3514980
    [19.292829]  [<800ed890>](vfs_write+0x0/0x190)、来自[<800edd18>](sys_write+0x44/0x78)
    [19.301171]  [<800edcd4>](SYS_WRITE+0x0/0x78)、来自[<80014640>](RET_FAST_SYSCALL+0x0/0x30)
    [19.309963]*****   卸载结束

    我怀疑 jffs2_mark_node_obsolete。我将尝试进一步调试。如果需要任何补丁、请告知我。

    此致、

    安特里克什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sriram、
    我忘记回答您的问题。
    在 NOR FLASH 中刷写 rootfs.jffs2、uImage、lib.jffs2和 app.jffs2后、我们只需启动设备。在第一次尝试中、设备成功引导。但在第二次尝试中、设备崩溃。

    下面是更多分析:
    在内核中禁用 CONFIG_JFFS2_SUMMARY 并将 OS-Linux.h 中的 jffs2_CAN_MARK_OBSOLETE (c)修改为0后、内核成功启动了几次、没有任何问题。但从 NOR 启动速度非常慢。

    请帮助我在同一个上进行调试。

    迁移到 PROCESSOR-SDK 将是一项更加乏味的任务。

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

    安特里克什

    我检查了 NOR 闪存的支持状态/计划-我们没有在中验证对 NOR 闪存或 JFFS2的支持 虽然目前没有计划在不久的将来解决这一问题(大多数客户使用 QSPI)

    考虑到当前状态、我恐怕无法支持 NOR 闪存

    此致

    Sriram

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

    Sriram、您好!

    这对我们来说是一个令人震惊的地方! 我们一直在尝试在这方面取得进展,现在也没有启动,现在在经过充分理解和取得进展后,我们已经达到了一个死角。 这对我们来说是一个障碍问题。
    从  NOR 引导时内核崩溃的新芯片版本2 (X5777BXGABC)的向后兼容性如何? 但以前的器件版本(X5777AXGABC)也可以正常工作。
    请告知我们如何在这方面取得进展、因为如果没有解决此问题、我们的客户将不会接受我们的产品。 需要您的合作在 TI 内部以最高优先级上报此问题、并得到同样的解决。
    此致
    Naveen Shetti
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Naveen
    在 SDK 版本中从未支持并行 NOR (即使在该线程中引用的 SDK 版本中也是如此)-正如我提到过的、我们验证了对 QSPI NOR 的支持。

    这将是一项新的验证工作、并且在较旧的 SDK 版本上也是一项挑战。

    从到目前为止的线程来看、您似乎是第一次尝试在定制板上启动或启动。 但是从您上一篇文章中,您声称这以前是在工作的,并且在迁移到更新的芯片时,相同的软件不起作用-如果有差异,请确认并添加详细信息。 如果我们能够读取/写入/验证对 NOR 的访问、不要期望这会出现 Si 向后兼容性问题。 请确认
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sriram、
    正如您提到的、我们所使用的 SDK 中不支持并行、所以您能告诉我在哪个 SDK 中对其进行了验证、以便我们将尝试将其迁移到相同的 SDK 中。

    此致、
    安特里克什
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    安特里克什
    它未在当前 SDK 上进行验证-需要修改电路板才能从我们的一方启用 NOR 并进行验证、而目前尚未计划这样做。 想知道这是您第一次启动、还是在迁移到较新的 Si 时看到回归
    此致
    Sriram