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.

[参考译文] AM62P:AM62P EVK 引导模式

Guru**** 2952510 points

Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1649690/am62p-am62p-evk-boot-mode

部件号: AM62P

您好、
我正在开发 AM62P EVK 电路板、对引导模式 DIP 开关存有疑问。
在 MCU+SDK 文档中,我看到了 EMMC 引导模式:-

但在 Android SDK 文档中、EMMC 引导模式选择如下所示:-  
image.png

使用第一个模式、我能够引导我刷写的 MCU 固件(Hello World 示例)。 但是、当我使用第二种模式时、Android 成功引导、MCU 内核似乎正在运行 IPC RPMsg 固件。

您能解释一下为什么有两种不同的 eMMC 引导模式配置吗? 此外、如何在 Android 系统中引导我刷写的 Hello World MCU 固件?

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

    您好、Raj、

    所以我明白,在第一种情况下,你不能成功引导 Android。 是这样吗?

    在第一种情况下、我认为您已在引导分区 0 上编写了所有必要的引导加载程序。 由于配置了 eMMC 交替模式、因此成功运行了 Hello World。 您在哪里找到 Hello World 应用程序 — 引导分区 0 或 UDA?

    在第二种情况下、您已在 UDA 区域编写了 Android 映像、并在 eMMC UDA 文件系统模式下引导了 Android。 默认情况下、Android 会启动 IPC RPMsg 应用程序。

    此致、

    Borislav Lazarkov

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

    您好 Borislav Lazarkov ,

    [报价 userid=“689968“ url=“~/support/processors-group/processors/f/processors-forum/1649690/am62p-am62p-evk-boot-mode/6360363

    所以我明白,在第一种情况下,你不能成功引导 Android。 是这样吗?

    [/报价]

    是的。 Android 未成功引导。


    您在哪里找到 Hello World 应用程序 — 引导分区 0 或 UDA?

    我使用下面提到的配置刷写了应用程序:-

    #发送引导加载程序时、请确保闪存偏移为 0x0。 ROM 需要在 eMMC 的偏移 0x0 处使用引导加载程序
    -file=sbl_prebuilt/am62px-sk/sbl_eMMC_linux_stage1.release.hs_fs.tiimage --operation=flash-eMMC -flash-offset=0x0

    #第 2 阶段引导加载程序在 0x80000 或您的引导加载程序配置的任何偏移处刷新
    --file=../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-arm-clang/sbl_emmc_linux_stage2.release.appimage.hs_fs --operation=flash-eMMC --flash-offset=0x80000

    #发送应用程序映像时,请确保以偏移 0x800000(默认值)或引导加载程序配置的任何偏移进行闪存
    --file=../../examples/hello_world/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/hello_world.release.appimage.hs_fs --operation=flash-eMMC --flash-offset=0x800000




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    #发送应用程序映像时、确保以偏移量 0x800000(默认)或引导加载程序配置的任何偏移进行闪存
    -- file=./../examples/hello_world/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/hello_world.release.appimage.hs_fs -- operation=flash-eMMC -- flash-offset=0x800000

    此刷写的应用程序由 SBL 引导。 Android 将有自己的过程、例如从文件系统(Linux 就是这种情况)中获取应用程序映像、以在不同的内核上引导应用程序。

    基本上、您必须按照 Android 特定的步骤来引导自定义 MCU 应用。

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

    你好 Prashant Shivhare ,

    我们的要求是从 eMMC 启动 MCU 固件和 Android。 SoC 上电后、MCU 应在几秒钟内开始运行、Android 应仅在之后启动。

    但按照您提到的方法、Android 会先启动、然后加载 MCU 固件、对吧?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但在您提到的方法中、Android 将首先启动、然后加载 MCU 固件、对吧?

    是的。

    如以下主题中所述、我们不支持 SBL + Android 引导流程

    e2e.ti.com/.../6341727

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

    Prashant Shivhare  

    这意味着我们的要求可能不适用于这种方法、对吧?

    是否可以选择通过 SBL 同时刷写 U-Boot 和 MCU 固件、然后 U-Boot 可以随后继续引导 Android?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有任何选项、其中、通过 SBL、我可以同时刷写 U-Boot 和 MCU 固件、然后 U-Boot 可以在之后继续引导 Android?

    SBL 支持引导 Linux 并在 Linux 之前引导 MCU 内核。 同样的方法应该是可能的 Android 的,但正如在另一个线程中传达的,我们没有测试它。

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

    Prashant Shivhare 

    刷写 Android 后、我们观察到 MCU 在引导后运行 IPC/RPMsg 示例。

    Android 是在每次引导时将此固件刷写到 MCU 中、还是在每次刷写到专用 MCU 存储位置时刷写到一次?
    或者、MCU 固件是否在启动期间从 Android 文件系统动态加载?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    或者启动期间是否从 Android 文件系统动态加载 MCU 固件?

    情况应该是这样。 与 Linux 一样、MCU 固件可能是文件系统本身的一部分、并由 Android OS 引导。

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

    这里有答案
    e2e.ti.com/.../6369000