您好!
为了使用 DFU-util 通过 SK-AM62A-LP 上刷写 eMMC Foundational_Components、我一直遵循以下说明:https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/09_02_00/exports/docs/linux/?highlight-Boot/UG- Memory.html?rootfs
我能够 在 DFU 模式下将 tiboot3、tispl 和 u-boot 二进制文件复制到电路板。 然后、我可以引导至 u-boot。 但是、 为了引导 Linux、我在将根目录刷写到 eMMC 时遇到了问题。 以下是我在 u-boot 侧看到的情况:
=> mmc dev
switch to partitions #0, OK
mmc0(part 0) is current device
=> mmc list
mmc@fa10000: 0 (eMMC)
mmc@fa00000: 1
=> mmc dev 0
switch to partitions #0, OK
mmc0(part 0) is current device
=> mmc part
Partition Map for MMC device 0 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 262144 45d053b8-01 0c Boot
2 264192 30816256 45d053b8-02 83
=> printenv partitions
partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
=> setenv dfu_alt_info ${dfu_alt_info_emmc}
=> printenv dfu_alt_info
dfu_alt_info=rawemmc raw 0 0x800000 mmcpart 1; rootfs part 0 1; tiboot3.bin.raw raw 0x0 0x400 mmcpart 1; tispl.bin.raw raw 0x400 0x1000 mmcpart 1; u-boot.img.raw raw 0x1400 0x2000 mmcpart 1; u-env.raw raw 0x3400 0x100 m
mcpart 1; sysfw.itb.raw raw 0x3600 0x800 mmcpart 1
=> printenv partitions
partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
=> dfu 0 mmc 0
然后、在主机端、我可以看到器件、但是、当我尝试刷写 rootfs 时、我甚至在它开始之前就收到错误。 刷写 tiboot3、tispl 和 u-boot 可以正常工作:
➜ ~ dfu-util -a rootfs -D tisdk-tiny-image.img dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to sourceforge.net/.../ dfu-util: File size is too big: Success
我尝试使用 SDK 随附的微型映像根:
➜ ~ file tisdk-tiny-image.img tisdk-tiny-image.img: Linux rev 1.0 ext4 filesystem data, UUID=42d01c53-0903-49b3-9287-ef64c6588054 (extents) (64bit) (large files) (huge files) ➜ ~ du -sh tisdk-tiny-image.img 164M tisdk-tiny-image.img
鉴于错误:"dfu-util:文件大小过大"、我尝试 在 u-boot defconfig 中增加 CONFIG_SYS_DFU_MAX_FILE_SIZE 参数。 我将其更改为 0x10000000 (256M)、它最初是 0x800000。 但是、当运行 DFU 命令时、我会在 u-boot 中遇到以下错误:
=> mmc list
mmc@fa10000: 0 (eMMC)
mmc@fa00000: 1
=> mmc dev 0
switch to partitions #0, OK
mmc0(part 0) is current device
=> mmc part
Partition Map for MMC device 0 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 262144 45d053b8-01 0c Boot
2 264192 30816256 45d053b8-02 83
=> printenv partitions
partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
=> setenv dfu_alt_info ${dfu_alt_info_emmc}
=> printenv dfu_alt_info
dfu_alt_info=rawemmc raw 0 0x800000 mmcpart 1; rootfs part 0 1; tiboot3.bin.raw raw 0x0 0x400 mmcpart 1; tispl.bin.raw raw 0x400 0x1000 mmcpart 1; u-boot.img.raw raw 0x1400 0x2000 mmcpart 1; u-env.raw raw 0x3400 0x100 m
mcpart 1; sysfw.itb.raw raw 0x3600 0x800 mmcpart 1
=> dfu 0 mmc 0
Could not memalign 0x10000000 bytesDFU entities configuration failed!
(partition table does not match dfu_alt_info?)
现在我正在使用 SK-AM62A-LP、但 我对涉及 SD 卡的解决方案不感兴趣、因为我们带 AM62A 的电路板将不含 SD 卡、只有 eMMC。
是否有关于如何通过 USB-DFU 成功刷写 rootfs 的任何想法? eMMC 是否未正确分区?
提前感谢、
埃文