Other Parts Discussed in Thread: SK-AM62-LP, AM625
器件型号: SK-AM62-LP
主题中讨论的其他器件: AM625
尊敬的团队:
我们最近使用 SK-AM62-LP 上的 dfu-util 将映像传输到 eMMC、但当前传输 2GB 文件大约需要 10 分钟。
您能否建议一种将映像传输到 eMMC 的更简单、更快速的方法—这种方法经过了理想的生产使用优化、并且只需极少的硬件设置?
谢谢。此致、
Gopal Sharma
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.
Other Parts Discussed in Thread: SK-AM62-LP, AM625
器件型号: SK-AM62-LP
主题中讨论的其他器件: AM625
尊敬的团队:
我们最近使用 SK-AM62-LP 上的 dfu-util 将映像传输到 eMMC、但当前传输 2GB 文件大约需要 10 分钟。
您能否建议一种将映像传输到 eMMC 的更简单、更快速的方法—这种方法经过了理想的生产使用优化、并且只需极少的硬件设置?
谢谢。此致、
Gopal Sharma
尊敬的 Gopal:
您可以尝试 snagboot: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/11_01_05_03/exports/docs/linux/Foundational_Components /Tools/Flash_via_Fastboot.html
此致、
会面。
尊敬的会议:
我们是否遵循 snagboot 的所有 DFU 映像准备方法、例如首先为 DFU 实用程序准备映像、然后为 eMMC 使用第二个映像、并在 Rules.make 文件中使用 am62x_r5_usbmsc.config、或为 snagboot 构建映像使用 am62x_a53_usbdfu.config。 如果 AM62 snagboot 或 snagflash 可用任何详细方法、请分享。
此致、
Gopal Sharma
尊敬的会议:
我们对 Rules.make 进行了更改

然后构建 U-Boot 映像
$ make u-boot_clean
$ make u-boot
$ make u-boot_stage
之后、我们将以下文件复制到一个单独的目录中 
当我们运行 snagflash 时、会生成以下错误
snagflash -P dfu -p 0451:6165 -D 2:tiboot3.bin
2025-11-11 12:11:15,399 [INFO] Running snagflash using protocol dfu
2025-11-11 12:11:15,408 [INFO] Downloading tiboot3.bin to altsetting 2...
2025-11-11 12:11:15,408 [INFO] Found DFU Functional descriptor: wTransferSize = 512
Traceback (most recent call last):
File "/home/gopal/.local/bin/snagflash", line 8, in <module>
sys.exit(cli())
File "/home/gopal/.local/lib/python3.10/site-packages/snagflash/cli.py", line 159, in cli
dfu_cli(args)
File "/home/gopal/.local/lib/python3.10/site-packages/snagflash/dfu.py", line 76, in dfu_cli
dfu_download(dev, altsetting, path)
File "/home/gopal/.local/lib/python3.10/site-packages/snagflash/dfu.py", line 50, in dfu_download
dfu_cmd.download_and_run(blob, altsetting, 0, size, show_progress=True)
File "/home/gopal/.local/lib/python3.10/site-packages/snagrecover/protocols/dfu.py", line 136, in download_and_run
self.set_partition(partid)
File "/home/gopal/.local/lib/python3.10/site-packages/snagrecover/protocols/dfu.py", line 205, in set_partition
self.dev.set_interface_altsetting(interface=0, alternate_setting=partid)
File "/home/gopal/.local/lib/python3.10/site-packages/usb/core.py", line 962, in set_interface_altsetting
self._ctx.managed_set_interface(self, interface, alternate_setting)
File "/home/gopal/.local/lib/python3.10/site-packages/usb/core.py", line 113, in wrapper
return f(self, *args, **kwargs)
File "/home/gopal/.local/lib/python3.10/site-packages/usb/core.py", line 212, in managed_set_interface
raise ValueError('No matching interface (' + str(intf) + ',' + str(alt) + ')')
ValueError: No matching interface (0,2)
但是、使用 dfu-util 刷写 tiboot3、tispl 和 u-boot.img 后、电路板会到达 U-Boot 提示符。 在该阶段、我们希望使用 snagflash 将剩余的映像刷写到 eMMC 中。 这些步骤是否正确?
此外、我们如何使用 Fastboot? 我们在fastboot U-Boot 提示符中看不到可用的命令。 我们是否需要首先刷写 DFU 映像、然后使用使用使用 am6x_a53_snagfactory.config 构建的 U-Boot 映像进行引导、将该映像刷写到 eMMC 中、然后才会出现用于传输根文件系统的 Fastboot 命令?
snagrecover 适用于 SK-am62-LP? 
此致、
Gopal Sharma
尊敬的 Gopal:
更改 Rules.make 后构建的引导加载程序二进制文件用作恢复二进制文件、首先需要使用 snagrecover 命令通过 dfu-util 引导至 u-boot:

进入 u-boot 后、您就可以使用 snagflash(而不是使用 dfu-util)刷写各个二进制文件、就像在以下链接中完成的操作: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/11_01_05_03/exports/docs/linux/Foundational_Components /U-Boot/UG-Memory-K3.html#flashing-an-mc-device-using-USB-DFU
您可以直接使用 Snagfactory GUI 来执行此操作、而不是使用命令行、我在上面分享的指南中已经提供了参考配置文件 (eMMC.yaml)、您只需修改它即可使其适用于 am625。
snagrecover 适用于 sk-am62-lp?
是的、您只需使用使用 lpsk 板配置构建的二进制文件。
此致、
会面。
尊敬的会议:
我们目前正在通过命令行刷写测试引导。
在我们首次使用 dfu-util 对引导加载程序映像进行编程后、U-Boot 现在会自动进入快速引导模式。
退出快速引导后、该fastboot命令在 U-Boot 中也可用、因此 USB 接口正常工作。
在主机端、我们运行了:
snagflash -P fastboot -p 0451:6165 -f download:tiboot3.bin -f flash:0:1
下载成功。
现在、我们需要了解其他映像(tispl.bin、u-boot.img、rootfs 等)应该转到的位置。
我们是否需要创建额外的 eMMC 分区以进行快速启动刷写?
请提供建议。
此致、
Gopal Sharma
尊敬的 Gopal:
似乎您必须创建一个包含所有这 3 个二进制文件 (tiboot3.bin、tispl.bin、u-boot.img) 的 vfat 映像、然后使用您共享的命令进行下载。
相反,您可以探索 u-boot 的扩展快速引导模式: https://github.com/bootlin/snagboot/blob/main/docs/snagflash.md#extended-fastboot-mode-for-u-boot
![]()
您还可以尝试使用 GUI 工具而不是使用此 CLI 界面、在使用 GUI 时还需要一个 YAML 配置文件进行刷写、文档中已经提供了用于刷写到 eMMC 的参考 YAML 文件:
此致、
会面。
尊敬的会议:
感谢您的支持。
现在、我们能够使用 DFU 和 Snagflash 通过 USB 刷写映像、而不会出现任何问题。 但是、配置 partconf 和 bootbus 时、我们仍然需要使用串行终端、因为这些设置的 Fastboot OEM 命令失败。
FASTBOOT 确实提供了命令oem-partconf、如、但当我们尝试使用它们时、它们返回错误。 下面是控制台日志和我们执行的命令。
snagflash -P fastboot -p 0451:6165 -f oem-partconf:111
错误:-

以下命令正常工作、并partconf在控制台上打印当前状态、请查看控制台日志。
snagflash -P fastboot -p 0451:6165 -f oem-partconf: 
dwc3-generic-peripheral usb@31000000: request 00000000fde97b80 was not queued to ep1in-bulk
Execute: mmc partconf 0 111 0
mmc - MMC sub system
Usage:
mmc info - display info of the current MMC device
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc erase partname
mmc rescan [mode]
mmc part - lists available partition on current mmc device
mmc dev [dev] [part] [mode] - show or set current mmc device [partition] and set mode
- the required speed mode is passed as the index from the following list
[MMC_LEGACY, MMC_HS, SD_HS, MMC_HS_52, MMC_DDR_52, UHS_SDR12, UHS_SDR25,
UHS_SDR50, UHS_DDR50, UHS_SDR104, MMC_HS_200, MMC_HS_400, MMC_HS_400_ES]
mmc list - lists available devices
mmc wp [PART] - power on write protect boot partitions
arguments:
PART - [0|1]
: 0 - first boot partition, 1 - second boot partition
if not assigned, write protect all boot partitions
mmc hwpartition <USER> <GP> <MODE> - does hardware partitioning
arguments (sizes in 512-byte blocks):
USER - <user> <enh> <start> <cnt> <wrrel> <{on|off}>
: sets user data area attributes
GP - <{gp1|gp2|gp3|gp4}> <cnt> <enh> <wrrel> <{on|off}>
: general purpose partition
MODE - <{check|set|complete}>
: mode, complete set partitioning completed
WARNING: Partitioning is a write-once setting once it is set to complete.
Power cycling is required to initialize partitions after set to complete.
mmc bootbus <dev> <boot_bus_width> <reset_boot_bus_width> <boot_mode>
- Set the BOOT_BUS_WIDTH field of the specified device
mmc bootpart-resize <dev> <boot part size MB> <RPMB part size MB>
- Change sizes of boot and RPMB partitions of specified device
mmc partconf <dev> [[varname] | [<boot_ack> <boot_partition> <partition_access>]]
- Show or change the bits of the PARTITION_CONFIG field of the specified device
If showing the bits, optionally store the boot_partition field into varname
mmc rst-function <dev> <value>
- Change the RST_n_FUNCTION field of the specified device
WARNING: This is a write-once field and 0 / 1 / 2 are the only valid values.
mmc setdsr <value> - set DSR register value
dwc3-generic-peripheral usb@31000000: request 00000000fde97b80 was not queued to ep1in-bulk
Execute: mmc partconf 0 0
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x1 (boot0)
PARTITION_ACCESS: 0x0 (user)
dwc3-generic-peripheral usb@31000000: request 00000000fde97b80 was not queued to ep1in-bulk
请帮助我们了解这些 Fastboot OEM 命令失败的原因以及如何解决问题。
如果这些命令有效、我们不再需要使用串行接口发送命令来刷写映像。
此致、
Gopal Sharma