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.

[参考译文] SK-AM62A-LP:无法使用 dfu-util 将 rootfs 刷写到 eMMC。

Guru**** 2015290 points
Other Parts Discussed in Thread: SK-AM62A-LP
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1363543/sk-am62a-lp-cannot-flash-rootfs-to-emmc-with-dfu-util

器件型号:SK-AM62A-LP

您好!

为了使用 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 侧看到的情况:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
=> 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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

然后、在主机端、我可以看到器件、但是、当我尝试刷写 rootfs 时、我甚至在它开始之前就收到错误。 刷写 tiboot3、tispl 和 u-boot 可以正常工作:

Fullscreen
1
2
3
4
5
6
7
8
9
➜ ~ 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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我尝试使用 SDK 随附的微型映像根:

Fullscreen
1
2
3
4
➜ ~ 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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

鉴于错误:"dfu-util:文件大小过大"、我尝试 在 u-boot defconfig 中增加 CONFIG_SYS_DFU_MAX_FILE_SIZE 参数。 我将其更改为 0x10000000 (256M)、它最初是 0x800000。 但是、当运行 DFU 命令时、我会在 u-boot 中遇到以下错误:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
=> 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!
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

现在我正在使用 SK-AM62A-LP、但 我对涉及 SD 卡的解决方案不感兴趣、因为我们带 AM62A 的电路板将不含 SD 卡、只有 eMMC。

是否有关于如何通过 USB-DFU 成功刷写 rootfs 的任何想法? eMMC 是否未正确分区?

提前感谢、

埃文