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.

[FAQ] [参考译文] 【常见问题解答】AM62L:如何使用 Linux SDK 对自定义应用映像执行 EMMC 引导

Guru**** 2486065 points
Other Parts Discussed in Thread: AM62L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1555933/faq-am62l-how-to-perform-emmc-boot-using-linux-sdk-for-custom-appimages

器件型号:AM62L


工具/软件:

我使用的是 AM62L E1 EVM。 但是、我无法使用自定义 appimage(而不是默认的 tiboot3.bin 和 appimage)执行 EMMC 引导。

此过程需要做些什么?

此常见问题解答专门针对 AM62L E1 EVM 编写。

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

    使用 SD 卡的 eMMC 引导模式测试过程:

    1. 刷写 Linux 映像并将自定义应用映像添加到 SD 卡的引导分区中
    2. 转到 SD 卡引导模式(1100001000000 — 按照引脚 0 至引脚 15 的顺序提到)、该模式处于 FS 模式、启用 UDA 模式和 SD 卡模式(未获取端口,选择保留)。 无需选择任何备用引导模式。
    3. 在整个引导过程之后、我们需要将映像安装到正确的位置。
    4. echo 0 > /sys/block/mmcblk0/force_ro 

      这启用对 mmcblk0(SO、eMMC 分区)的读取/写入。
    5. 接下来、创建 2 个目录、即 mmcboot 和 sdboot、然后装载:
      1. mount /dev/mmcblk1p1 /mnt/sdboot

        在这里、我们将显示已完成 SD 卡引导中的所有文件转到该文件夹以使用创建的应用映像、并将它们添加到要引导的正确位置
      2. mount /dev/mmcblk0 /mnt/mmcboot 

        这样我们就可以在 MMC 分区中执行文件操作
    6. dd if=empty.release.appimage.hs_fs of=/dev/mmcblk0 seek=0 bs=512

      这是在开始时将 PreBL 映像写入 eMMC 分区、而不跳过任何块、因为 seek=0。 而 BS=512 则表示块大小为 512 B
    7. dd if=gpio_led_blink.debug.appimage.hs_fs of=/dev/mmcblk0 seek=1024 bs=512

      然后写入从地址 1024*512 = 0x80000 获取的第二个应用映像。 此值在从 IPC 切换期间传递-#define K3_SPL_IMG_OFFSET (0x80000)-将二级程序加载程序偏移设置为 0x80000、因此将从此地址获取第二个应用映像。
    8. 然后在 u-boot 中重新引导并停止、并写入以下命令以启用从 UDA 分区引导:
      mmc partconf 0 1 7 1
      mmc bootbus 0 2 0 0
    9. 现在、更改引导模式以使用原始模式而不是 FS(将引脚 7 从 0 更改为 1)、并使用 MMC 而不是 SD 卡(将引脚 9 从 1 更改为 0、即保留至 MMCSD 端口 0 模式)。
    10. 会在此更改后引导。