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.

[参考译文] AM623:DFU 如何支持 Falcon 引导?

Guru**** 2487425 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1435647/am623-how-can-dfu-support-falcon-boot

器件型号:AM623

工具与软件:

尊敬的 TI:

我已经在自己的电路板上实现了基于 EMMC UDA 原始模式的 Falcon 引导。 现在、我们需要实现可支持 Falcon 引导的 DFU 函数。 TI 是否有任何常规参考?

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

    尊敬的 Hang:

    如果您已将 DFU 用于正常引导模式、则用于 falcon 引导的 DFU 唯一区别是 tispl.bin 二进制文件的大小。 正常启动时小于1MB、但在 falcon 启动时小于数十 MB。 因此、需要使用以下 U-Boot 补丁来增加 DFU RAM 缓冲区、以便 tispl.bin 能够存入二进制文件。

        env: update location and size in DFU_ALT_INFO_RAM
        
        the location matches CONFIG_SPL_LOAD_FIT_ADDRESS in R5 defconfig;
        the size to hold kernel image and initramfs.
    
    diff --git a/include/environment/ti/k3_dfu.h b/include/environment/ti/k3_dfu.h
    index 15cd8f262145..134aad5d0e86 100644
    --- a/include/environment/ti/k3_dfu.h
    +++ b/include/environment/ti/k3_dfu.h
    @@ -57,7 +57,7 @@
     
     #define DFU_ALT_INFO_RAM \
            "dfu_alt_info_ram=" \
    -       "tispl.bin ram 0x80080000 0x200000;" \
    +       "tispl.bin ram 0x82200000 0x1800000;" \
            "u-boot.img ram 0x81000000 0x400000\0" \
     
     #define DFU_ALT_INFO_OSPI_NAND \
    

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

    您好、Liu、

    我有一个问题、Falcon 引导是否跳过 A53 SPL 和 A53 U-Boot? tispl.bin 二进制文件不属于 A53 SPL 级? 我们的开发板已能够在正常引导模式下使用 DFU、我还修改了 Flash Writer 中与 DFU 相关的 Python 文件、主要是将 tispl.bin 替换为 ATF-TEE-dm-kernel-FDT.bin。 但 Flash Writer 将报告"Aborting!! 已达到最大迭代次数。 DFU 设备未侦听"ATF-TEE-dm-kernel-fdt.bin"错误、似乎无法识别 atf-tee-dm-kernel-fdt.bin。 TI 是否有用于 Falcon 引导的 DFU 闪存写入器例程?

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

    尊敬的 Hang:

    Falcon 引导未跳过 A53 SPL 和 A53 U-Boot?

    是的、在 falcon 引导中会跳过 A53 SPL 和 A53 U-Boot。

    和 tispl.bin 二进制文件不属于 A53 SPL 级?

    正确。 我提到过的 tispl.bin 文件基本上是您的 ATF-TEE-dm-kernel-fdt.bin、抱歉混淆了。

    但 Flash Writer 将报告"Aborting!! 已达到最大迭代次数。 DFU 设备未侦听"ATF-TEE-dm-kernel-fdt.bin"错误、似乎无法识别 atf-tee-dm-kernel-fdt.bin [/QUOT]

    我不使用 Flash Writer、所以不知道会出现什么问题。 但是、如果要传输的第二个二进制文件被命名为"ATF-TEE-dm-kernel-fdt.bin"、则需要在 DFU_ALT_INFO_RAM 变量中定义它。 因此、请将我之前的补丁更改为:

        env: update location and size in DFU_ALT_INFO_RAM
        
        the location matches CONFIG_SPL_LOAD_FIT_ADDRESS in R5 defconfig;
        the size to hold kernel image and initramfs.
    
    diff --git a/include/environment/ti/k3_dfu.h b/include/environment/ti/k3_dfu.h
    index 15cd8f262145..134aad5d0e86 100644
    --- a/include/environment/ti/k3_dfu.h
    +++ b/include/environment/ti/k3_dfu.h
    @@ -57,7 +57,7 @@
     
     #define DFU_ALT_INFO_RAM \
            "dfu_alt_info_ram=" \
    -       "tispl.bin ram 0x80080000 0x200000;" \
    +       "atf-tee-dm-kernel-fdt.bin ram 0x82200000 0x1800000;" \
            "u-boot.img ram 0x81000000 0x400000\0" \
     
     #define DFU_ALT_INFO_OSPI_NAND \

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

    您好、Liu、
    我已经尝试了你昨天提到的方法,但 Flash Writer 仍然报告"放弃!! 已达到最大迭代次数。 DFU 器件未侦听'ATF-TEE-dm-kernel-FDT。 Bin""错误。 我要参考 SDK 文档中有关使用闪存写入器的以下部分: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_02_01_10/exports/docs/linux/Flash Foundational_Components 404.Tools/Flash_via_DFU.html。如果您尚未使用闪存写入器来实现 DFU、您使用了什么工具来实现它? 我可能能够将其用作参考。

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

    尊敬的 Hang:

    我通常以手动步骤使用 DFU 刷写、类似于以下链接中所述的过程。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1127618/faq-sk-am62-how-to-flash-emmc-using-usb-dfu-on-am62x-sk-e2

    我没有记录刷写 falcon 启动映像的过程、但我相信您只需要在该过程中进行以下更改:

    -使用我之前提供的 U-Boot 补丁修改 DFU_ALT_INFO_RAM,以确保内存缓冲区足够大,可以容纳 atf-tee-dm-kernel-fdt.bin 文件;

    -对于指令中的以下步骤、请确保${dfu_alt_info_emmc}也针对大 atf-tee-dm-kernel-fdt.bin 文件进行了正确配置。

       在 U-Boot 提示符下、执行以下两条命令。 或者、这两个 u-boot 命令也可以内置在 u-boot 中。

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

    您好、Bin、

    刘斌说:

       在 U-Boot 提示符下、执行以下两条命令。 或者、这两条 u-boot 命令也可以内置在 u-   boot 中。
    Falcon 引导已跳过 A53 Uboot、无法使用 Uboot 命令?

    我将 atf-tee-dm-kernel-fdt.bin 的名称更改为 tispl.bin、同时也更改了 K3_DFU。 h 文件。  我能够成功地将 tiboot3.bin 文件传输到开发板、但当我尝试传输 tispl.bin 文件时、它冻结了8%。 我们的 EMMC 引导分区大小为2M、tispl.bin 文件大小为20.5M。 我觉得 tiboot3.bin 和 tispl.bin 已转移到 EMMC 引导分区。

    我目前面临的问题是:
    1.我们的 Falcon 引导是基于 EMMC UDA 引导模式实现的。 现在、我们已跳过 A53 Uboot、无法使用 Uboot 命令。 我们如何实现 EMMC GPT 分区?
    2. dfu_util 如何将固件放置在正确的 EMMC UDA 分区位置?

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

    尊敬的 Hang:

    您是否在 UDA 中使用原始模式或 FS 模式?

    如果您使用 FS 模式、下面链接的指令显示了如何创建 UDA FS ext4原始文件(tisdk-base.ext4)。 您可以按照该文件创建包含 atf-tee-dm-kernel-fdt.bin 的 UDA 原始映像文件。 我认为该文件必须重命名为 tispl.bin、因为这是 tiboot3.bin 在文件系统中查找的文件。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1127618/faq-sk-am62-how-to-flash-emmc-using-usb-dfu-on-am62x-sk-e2

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

    您好、Bin、

    感谢您的指导。 我已经通过参考您提供的链接实现了支持 EMMC UDA 原始 falcon 引导的 DFU。 但在烧录 DFU 时、我需要两个 tiboot3.bin 文件、一个用于引导、另一个用于闪存。 我想问一下、为了区分这两个 tiboot3.bin 文件、用于闪存的 tiboot3.bin 文件名是否可以更改为 tiboot3_flash.bin? 将 tiboot3_flash.bin 文件放入 EMMC 后、再次上电是否会影响启动?

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

    尊敬的 Hang:

    [报价 userid="616445" url="~/support/processors-group/processors/f/processors-forum/1435647/am623-how-can-dfu-support-falcon-boot/5520336 #5520336"]为了区分这两个 tiboot3.bin 文件、我想请问您能否将用于闪存的 tiboot3.bin 文件名更改为 tiboot3_flash.bin? [报价]

    是的、您可以对每个二进制文件使用不同的名称。 tiboot3.bin 是以原始格式存储在 DDR (用于引导)或 eMMC 闪存中、因此 PC 上的文件名无关紧要。

    将 tiboot3_flash.bin 文件放入 EMMC 后、开机是否会再次影响启动?

    在刷写之后对电路板进行下电上电之前、请确保 SYSBOOT 切换到 eMMC 引导模式、并且 eMMC 引导器件已正确配置。 所有详细信息都在上面链接的 E2E 常见问题解答中进行了介绍。