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-Q1:搭配使用 Falcon 模式和 eMMC

Guru**** 2924050 points

Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1650056/am62p-q1-use-falcon-mode-with-emmc

器件型号: AM62P-Q1
主题: AM62P 中讨论的其他器件

尊敬的专家:  

我的环境:AM62P + SDK v11.1

我按照 TI 的文档生成 Falcon 模式、遇到与此票证相同的错误: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1608247/am62p-booting-linux-from-emmc/6235361?tisearch=e2e-sitesearch&keymatch=AM62P%25252520AND%25252520Falcon%25252520AND%25252520eMMC#

我的错误消息:

U-Boot SPL 2025.01 (May 28 2026 - 10:20:48 +0800)
SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
SPL initial stack usage: 17088 bytes
Trying to boot from MMC1
spl: no partition table found
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

该定制电路板可使用非 falcon 模式+ eMMC 引导、因此我认为 eMMC 的分区表应该是正确的。

作者修改了 am62px.env 来解决这个问题、但我在 TT 中没有看到补丁代码。 您能帮帮吗?

BR、

Jeff

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

    尊敬的 Jeff:

    我已将您的问题发送给处理提到的 e2e 主题的 Vinu 以征求意见。

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

    尊敬的 Jeff:

    用于引导“tifalcon.bin“的分区由“k3_r5_falcon.config“文件中的“CONFIG_SYS_MMCSD_FS_BOOT_PARTID“配置定义。

    您可以尝试下面的补丁来从第一个分区而不是第二个分区引导“tifalcon.bin“、因为第二个分区没有分区表?

    diff --git a/configs/k3_r5_falcon.config b/configs/k3_r5_falcon.config
    index b6762b35f74..ce739053e84 100644
    --- a/configs/k3_r5_falcon.config
    +++ b/configs/k3_r5_falcon.config
    @@ -13,7 +13,7 @@ CONFIG_OF_SYSTEM_SETUP=y
     
     # We use the rootfs (i.e partition 2) for booting which is ext4 not FAT
     CONFIG_SYS_MMCSD_FS_BOOT=y
    -CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=2
    +CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=1
     CONFIG_SPL_FS_EXT4=y
     
     # Loading tifalcon instead of tispl which has FDT and A53 SPL saves time

    此致、
    Vinu

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

    尊敬的 Vinu:

    我应用这个补丁,并复制 falcon 文件到分区#1 ,但它仍然显示相同的错误。 然后、我发现 k3_r5_falcon.config 中存在“CONFIG_SPL_FS_FAT=n“。 设置 “CONFIG_SPL_FS_FAT=y“并再次执行后、我得到错误:

    U-Boot SPL 2025.01 (May 29 2026 - 16:27:08 +0800)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    SPL initial stack usage: 17088 bytes
    Trying to boot from MMC1
    Partition 1 invalid on device 0
    spl_register_fat_device: fat register err - -1
    spl_load_image_fat: error reading image boot/tifalcon.bin, err - -1
    spl: no partition table found
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

    以下是我的 k3_r5_falcon.config:

    # Enable falcon mode
    CONFIG_SPL_OS_BOOT=y
    CONFIG_SPL_LOAD_FIT=y
    
    # We use envs for setting bootargs
    CONFIG_SPL_ENV_SUPPORT=y
    
    # Perform FDT fixups from SPL
    CONFIG_OF_SYSTEM_SETUP=y
    
    # Enabling this causes issues with EMMC FS boot,
    # When enabled the SPL tries to detect FS on boot[01] hw partition which fails
    # since we need the raw tiboot3.bin there for the board to boot instead
    CONFIG_SUPPORT_EMMC_BOOT=n
    
    # Disable unsupported boot media
    CONFIG_SPL_SYS_MMCSD_RAW_MODE=n
    CONFIG_SPL_YMODEM_SUPPORT=n
    CONFIG_SPL_RAM_SUPPORT=n
    CONFIG_SPL_MTD_LOAD=n
    
    # Used as the 2MiB aligned load address for kernel
    CONFIG_SYS_LOAD_ADDR=0x82000000
    CONFIG_SPL_STACK_R_ADDR=0x88000000
    CONFIG_SPL_LOAD_FIT_ADDRESS=0x82000000
    CONFIG_SPL_PAYLOAD_ARGS_ADDR=0x88000000
    CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2700000
    
    # We use the rootfs (i.e partition 2) for booting which is ext4 not FAT
    CONFIG_SYS_MMCSD_FS_BOOT=y
    CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=1
    CONFIG_SPL_FS_EXT4=y
    CONFIG_SPL_FS_FAT=y
    
    # Loading tifalcon instead of tispl which has fdt and A53 spl saves time
    CONFIG_SPL_FS_LOAD_PAYLOAD_NAME="boot/tifalcon.bin"
    CONFIG_SPL_FS_LOAD_KERNEL_NAME="boot/fitImage"
    
    # During SPI boot, kernel and args are loaded from the eMMC or SD and not SPI,
    # therefore we don't actually make use of these config values.
    CONFIG_SYS_SPI_KERNEL_OFFS=0
    CONFIG_SYS_SPI_ARGS_OFFS=0
    CONFIG_SYS_SPI_ARGS_SIZE=0
    

    请帮助检查、谢谢。

    BR、

    Jeff

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

    尊敬的 Jeff:

    您能否详细介绍一下您完成的所有步骤? 共享您也应用过的修补程序。

    我已经验证了 SDK 11.02 上另一个线程中列出的步骤、我也共享了引导日志。

    如果验证了这些步骤、会有所帮助。 另外、请告诉我您是如何创建 falcon 映像的。 (SDK 或 Yocto)

    此致、
    Vinu

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

    尊敬的 Vinu:

    我从 SDK 创建了 falcon 映像。 我修改的代码:

    e2e.ti.com/.../20260601_5F00_1340_5F00_diff.txt

    这里有三个脚本文件:

    e2e.ti.com/.../gen_5F00_eFalcon.sh.txte2e.ti.com/.../gen_5F00_sFalcon.sh.txte2e.ti.com/.../make_5F00_Falcon.sh.txt

    步骤:

    ##对于非 falcon 模式+ SD 卡->正常
    1.运行 bin/create-sdcard.sh 创建可引导 SD 卡。 全部更新。

    ##对于非 falcon 模式+ eMMC ->正常
    1.按照文档对 eMMC 进行分区、将闪存/复制文件分区到 boot0、mmcblk1p1 和 mmcblk1p2

    ##对于 falcon 模式+ SD 卡(使用可在非 falcon 模式下引导的 SD 卡)->正常
    1.将 core-secdev-k3 下载到 linux-XX.XX.XX/board-support/
    2.修改代码/应用补丁
    3.全部制作
    4.运行 make_Falcon.sh
    5.运行 gen_sFalcon.sh
    6.通过 SD 卡引导

    ##对于 falcon mod + eMMC(使用另一个可通过非 falcon 模式引导的 SD 卡)
    1.为文件 k3_r5_falcon.config 设置{CONFIG_SYS_MMCSD_FS_BOOT_PARTID=1}
    2.为文件 k3-am62p5-sk.dts 设置{bootargs=“console=ttyS2115200n8 quiet loglevle=0“;}
    3.制作 Linux-dtbs
    4.运行 make_Falson.sh
    5.运行 gen_eFalcon.sh
    6、通过 SD 卡引导并登录
    7.运行:
      Echo 0 >/sys/block/mmcblk0boot0/force_ro
      DD IF=/run/media/boot-mmcblk1p1/eFalcon/tiboot3.bin of=/dev/mmcblk0boot0 seek=0 BS=512
      CP /boot/fitImage /run/media/root-mmcblk0p2/boot/fitImage
      CP /boot/tifalcon.bin /run/media/root-mmcblk0p2/boot/tifalcon.bin
      同步
    8.关闭。 切换到 eMMC 引导模式。 启动和获取错误:

    U-Boot SPL 2025.01 (Jun 01 2026 - 15:27:22 +0800)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    SPL initial stack usage: 17088 bytes
    Trying to boot from MMC1
    spl: no partition table found
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

    BR、

    Jeff

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

    尊敬的 Jeff:

    似乎您两者都有  

    CONFIG_SPL_FS_EXT4=y
    CONFIG_SPL_FS_FAT=y

    即可。 请取消设置 CONFIG_SPL_FS_FAT。

    CONFIG_SPL_FS_FAT 仅控制 SPL 是否可以读取 FAT 格式的用户分区以加载下一阶段有效载荷 (tifalcon.bin)。

    UDA 将使用 ext4 进行分区、因此只 应启用 CONFIG_SPL_FS_EXT4。

    另外、我很感兴趣  

    [quote userid=“700857“ url=“~/support/processors-group/processors/f/processors-forum/1650056/am62p-q1-use-falcon-mode-with-emmc/6365348 按照文档对 eMMC 进行分区、将文件刷写/复制到 boot0、mmcblk1p1 和 mmcblk1p2

    您能否共享该文档或您为分区和刷写 eMMC 而遵循的步骤?

    此致、
    Vinu

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

    尊敬的 Vinu:

    k3_r5_falcon.config 中的原始设置为

    CONFIG_SPL_FS_EXT4=y
    CONFIG_SPL_FS_FAT=n

    并且在启动时显示以下消息

    U-Boot SPL 2025.01 (6 月 01 2026 - 15:27:22 +0800)
    SYSFW ABI:4.0(固件版本 0x000b'11.1.2--v11.01.02(花哨 Rat)')
    SPL 初始栈使用量:17088 字节
    尝试从 MMC1 引导
    SPL:未找到分区表
    SPL:无法从所有引导设备引导
    ###错误###请重置主板###

    将它们修改为  

    CONFIG_SPL_FS_EXT4=y
    CONFIG_SPL_FS_FAT=y

    引导时显示以下消息:

    U-Boot SPL 2025.01 (2026年5月29日 — 16:27:08 +0800)
    SYSFW ABI:4.0(固件版本 0x000b'11.1.2--v11.01.02(花哨 Rat)')
    SPL 初始栈使用量:17088 字节
    尝试从 MMC1 引导
    设备 0 上的分区 1 无效
    SPL_REGISTER_FAT_DEVICE:FAT 寄存器错误-–1
    SPL_LOAD_IMAGE_FAT:读取映像 boot/tifalcon.bin 时出错、err -–1
    SPL:未找到分区表
    SPL:无法从所有引导设备引导
    ###错误###请重置主板###

    对于 eMMC 中的 SPL 非 falcon 模式、我参考了以下文档:

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/11_01_05_03/exports/docs/linux/How_to_Guides/Target/How_to_emmc_boot.html

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/11_01_05_03/exports/docs/linux/MMC/create-boot-partition-eMMC-linux Foundational_Components /内核 Kernel_Drivers /MMC-SD.html#MMC-create-boot-partition-eMMC-linux

    BR、

    Jeff

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

    尊敬的 Jeff:

    您能否验证 eMMC 分区的内容?

    从 SD 卡引导、运行以下内容并共享输出日志。

    # Dump first 512 bytes of eMMC boot0 to verify tiboot3.bin was written
    hexdump -C /dev/mmcblk0boot0 | head -20
    
    # Check eMMC partition table is valid
    fdisk -l /dev/mmcblk0
    
    # Check filesystem type on partition 1
    blkid /dev/mmcblk0p1
    blkid /dev/mmcblk0p2
    
    # Assuming CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=1
    mount /dev/mmcblk0p1 /mnt/tmp
    ls -lh /mnt/tmp/boot/
    # Must contain: tifalcon.bin and fitImage
    

    此致、
    Vinu

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

    尊敬的 Jeff:  

    此外、在设置 CONFIG_SYS_MMCSD_FS_BOOT_PARITION=1 时、

    您应该将 fitimage 和 tifalcon.bin 复制到 mmcblk0p1、而不是 mmcblk0p2。

    cp /boot/fitImage /run/media/root-mmcblk0p2/boot/fitImage
      CP /boot/tifalcon.bin /run/media/root-mmcblk0p2/boot/tifalcon.bin

    另外、请确保您的 mmcblk0p1 是 ext4 分区。 非 FAT32。 在 UDA 中只需要一个分区、它将包含 rootfs。

    此致、
    Vinu

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

    尊敬的 Vinu:

    我将 mmcblk0p1 格式化为 ext4 分区并重做工作。 按以下方式运行命令:

    e2e.ti.com/.../20260602_5F00_1655_5F00_test_5F00_SPL_5F00_falcon_5F00_eMMC.txt

    启动后、我仍然收到错误:

    U-Boot SPL 2025.01 (6 月 02 2026 - 16:51:12 +0800)
    SYSFW ABI:4.0(固件版本 0x000b'11.1.2--v11.01.02(花哨 Rat)')
    SPL 初始栈使用量:17088 字节
    尝试从 MMC1 引导
    SPL:未找到分区表
    SPL:无法从所有引导设备引导
    ###错误###请重置主板###

    我错过了什么吗?

    BR、

    Jeff

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

    尊敬的 Jeff:

    在 UDA 中仍有 2 个分区。 您只需要一个分区、即 rootfs。

    /dev/mmcblk0p1 *   2048  526335 524288   256M 83 Linux
    /dev/mmcblk0p2   526336 15269887 14743552  7G 83 Linux

    请仔细阅读本指南、确保您正确遵循本指南。 检查补丁程序是否正确应用。 使用 Yocto 中的远程覆盖方法会容易得多。

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/11_01_05_03/exports/docs/linux/Foundational_Components /U-Boot/UG-Falcon-Mode.html

    SDK 12 步骤: https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/latest/exports/docs/linux/SDK/U-Boot/UG-Falcon-Mode.html Foundational_Components

    也请共享最新的配置文件。

    此致、
    Vinu

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

    尊敬的 Vinu:

    我再次进行了检查、发现我错过了 https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/11_01_05_03/exports/docs/linux/Foundational_Components /U-Boot/UG-Falcon-Mode.html 中的 U-boot 补丁 3.1.2.10.

    应用此补丁后、将 eMMC 格式化为单个分区、然后在 am62px.env 中修改“mmcdev=0 “、“bootpart=0:1“、现在可以运行以加载内核。 以下是日志:

    e2e.ti.com/.../20260603_5F00_0925_5F00_SPL_5F00_Falcon_5F00_eMMC_5F00_boot_5F00_ok_5F00_run_5F00_fail.txt

    您是否有任何解决 tidss 错误的建议?

    我发现 k3_hw_config_base 和 preloaded_bl33_base 的定义在 以下四章中并不一致:3.1.2.10.1.1、 3.1.2.10.1.3、3.1.2.10.2.3、   3.1.2.10.3.是否会导致我的问题?

    BR、

    Jeff

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

    尊敬的 Jeff:  

    很高兴知道您能找到缺少的链接。

    这意味着 tifalcon 和 fitimage 是有效的。

    正确的值是  PRELOADED_BL33_BASE=0x82000000 and K3_HW_CONFIG_BASE=0x88000000.

    感谢您指出这一点、我们将在 SDK 文档中对其进行更正

    Tidss 问题是驱动程序级问题、不是内存级问题。

    请确保使用正确的内核和 dtb 来创建封装。

    我已经在 SDK 11.2 和 12 中对此进行了尝试、并能够通过预构建的内核和 DTB 的给定指令成功引导。

    请参阅日志。

    e2e.ti.com/.../boot_5F00_logs_5F00_SDK_5F00_11_2D00_02.txt

    您能否分享填充 eMMC rootfs 的步骤?

    此致、
    Vinu

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

    尊敬的 Vinu:

    感谢你的帮助。 然后我将尝试解决 Tidss 问题。

    对于 eMMC 中的一个 rootfs 分区、我只需使用 fdisk 擦除/dev/mmcblk0 中的所有分区并创建一个 ext4 分区。

    再次感谢。

    BR、

    Jeff

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

    尊敬的 Jeff:

    [报价 userid=“678328“ url=“~/support/processors-group/processors/f/processors-forum/1650056/am62p-q1-use-falcon-mode-with-emmc/6368918

    请确保使用正确的内核和 dtb 来创建封装。

    [/报价]

    请尝试一下。

    现在,你的 falcon 引导是完全正常的。 问题似乎仅发生在内核/dtb 方面。 尝试使用您在 SD 引导中使用的相同内核来创建 FIT 映像。

    此致、
    Vinu