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/AM3358:启动内核和首次日志打印之间的延迟

Guru**** 2931500 points

Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/668295/linux-am3358-delay-between-starting-kernel-and-first-log-print

器件型号:AM3358

工具/软件:Linux

您好!

我运行的是具有 am3358处理器的定制板、并使用处理器 SDK 03.03。

我正在优化引导时间、此时我要跳出的内容是从 nand 引导后的延时时间和第一次内核打印。

超过2秒。 该时间长于将所有内容从 NAND 加载到 RAM 所花费的时间。

有人能解释一下当时发生了什么情况吗?

此致、

Ugnius

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

    Steve K.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以附加完整日志?

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

    您好、Steve、

    这是完整日志。

    我已检查它使用 Falcon 模式从 SD 卡和 NAND 引导。

    在所有情况下,打印“正在启动内核...”之间需要很长时间 以及来自内核的第一条消息。

    e2e.ti.com/.../sd-boot-log.txt

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

    您是否对打印之间的时间过长有什么可能导致的问题有任何了解?

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

    Steve K.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以从 u-boot 转储 CM_CLKSEL_DPLL_MPU (0x44e0042c)? 我想知道 ARM 速度。

    此外、串行控制台的 printf 会增加时间。

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

    您好、Steve、

    => MD 0x44e0042c
    44e0042c:0003e817 00000000 00000001 00000000 ........

    它会在没有任何打印的情况下停留一秒钟以上、因此不应因打印而出现任何延迟。

    U-boot 已将所有内容加载到 RAM 中并跳转到内核。

    我希望立即打印第一个内核。

    内核在进行首次打印之前是否需要执行任何操作?

    此致、

    Ugnius

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

    尤尼、

    有几个问题。

    1.您使用的是压缩内核映像(zImage)还是未压缩的内核映像(Image)。

    2.默认引导配置为 lzma (大小已优化)。

    如果您将内核配置更改为 LZ4 (在 ti_config_frages/baseport.cfg 中进行更改)和 build/boot、该引导阶段会发生什么情况。

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

    我正在使用 zImage。 我将尝试执行您建议的操作并使用图像。 将会让您了解情况。

    此外、我还希望最终使用使用 Uimage 的 Falcon 模式从 NAND 运行。
    我尝试使用 mkimage 从 zImage 生成 Uimage。
    这是否意味着我的 Uimage 已被压缩?

    是否可以对未压缩的映像使用故障模式?

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

    Praneeth 看起来是正确的、多余的时间是 zImage 自身解压缩。 我认为如果是这样,就会有人在开始时打印出来,这就是为什么我认为出现了问题。

    我无法确认从 SD 卡引导、因为它无法通过 Image(而不是 zImage)提示错误的 zImage magic 进行引导。 我不确定如何在从 MMC 引导时更改预期的格式。

    但是、在 Falcon 模式下从 nand 引导需要 Uimage。 因此、我使用 Image 而不是 zImage 生成了 Uimage。
    比较故障启动时序未压缩的 Uimage 加载到 RAM 所需的时间更长、但在 SPL 跳转至 RAM 后内核不会出现时间延迟。
    压缩的 Uimage 加载到 RAM 所需的速度更快、但跳转至内核和内核打印之间存在时间延迟。
    我认为这证实了解压缩映像所花费的时间。

    在故障模式下启动时、使用未压缩映像的速度快500毫秒。

    感谢 Steve 和 Praneeth 的帮助。

    此致、
    Ugnius
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一些因素会影响您尝试优化的区域的引导时间
    --引导介质(NAND/SD/其他)吞吐量
    -- MPU 速度

    很高兴听到您能够节省一些启动时间并继续进行实验。

    无论如何、 http://processors.wiki.ti.com 中应提供各种资源 来优化引导时间。 您可以随意在定制电路板上进行探索和尝试调整。

    希望这对您有所帮助。