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.

[参考译文] DRA821U:eMMC 引导问题–在 DRA821 定制电路板上刷写 U-Boot 二进制文件后出现 MMC 块读取错误

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1640944/dra821u-issue-with-emmc-boot-mmc-block-read-error-after-flashing-u-boot-binaries-on-dra821-custom-board

器件型号: DRA821U
主题: DRA821 中讨论的其他器件

我在基于 DRA821 处理器的定制电路板上使用了 TI SDK 版本 11.02.00.04。

我使用以下步骤编译了 U-Boot 二进制文件:

export SDK_INSTALL_DIR="<path_to_sdk>"
export CROSS_COMPILE_64="${SDK_INSTALL_DIR}/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-"
export SYSROOT_64="${SDK_INSTALL_DIR}/linux-devkit/sysroots/aarch64-oe-linux"
export CC_64="${CROSS_COMPILE_64}gcc --sysroot=${SYSROOT_64}"
export CFLAGS64="--sysroot=${SYSROOT_64}"
export KCFLAGS="--sysroot=${SYSROOT_64}"
export LDFLAGS="--sysroot=${SYSROOT_64}"

export CROSS_COMPILE_32="${SDK_INSTALL_DIR}/k3r5-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-eabi/arm-oe-eabi-"
export SYSROOT_32="${SDK_INSTALL_DIR}/k3r5-devkit/sysroots/armv7at2hf-vfp-oe-eabi"
export CFLAGS32="--sysroot=${SYSROOT_32}"

PREBUILT_IMAGES=<path_to_prebuilt_images>/board-support/prebuilt-images

# A72
make ARCH=arm O=build/a72 j7200_evm_a72_defconfig
make ARCH=arm O=build/a72 CROSS_COMPILE="$CROSS_COMPILE_64" CC="$CC_64" \
BL31=${PREBUILT_IMAGES}/bl31.bin \
TEE=${PREBUILT_IMAGES}/bl32.bin \
BINMAN_INDIRS=${PREBUILT_IMAGES}

# R5
make ARCH=arm O=build/r5 j7200_evm_r5_defconfig
make ARCH=arm O=build/r5 CROSS_COMPILE="$CROSS_COMPILE_32" \
BINMAN_INDIRS=${PREBUILT_IMAGES}

我复制了生成的二进制文件:

  • BUILD/R5/tiboot3-j7200-gp-iwg59m.bin
  • build/a72/tispl.bin_unsigned
  • build/a72/u-boot.img_unsigned

至 SD 卡、从 SD 卡引导电路板、然后使用以下命令将这些二进制文件复制到 eMMC:

echo 0 > /sys/block/mmcblk0boot0/force_ro
cd /run/media/boot-mmcblk1p1/emmc/

dd if=tiboot3.bin of=/dev/mmcblk0boot0 seek=0 bs=512
dd if=tispl.bin of=/dev/mmcblk0boot0 seek=1024 bs=512
dd if=u-boot.img of=/dev/mmcblk0boot0 seek=5120 bs=512

复制二进制文件后、我将引导模式开关更改为 eMMC 引导。 在引导过程中、我会看到以下日志:

U-Boot SPL 2025.01-00773-gdf1fe2382304-dirty (Apr 28 2026 - 11:40:15 +0530)
SYSFW ABI: 4.0 (firmware rev 0x000b '11.2.8--v11.02.08 (Fancy Rat)')
ESM PMIC init failed: -19
Trying to boot from MMC0
mmc_load_image_raw_sector: mmc block read error
Partition 1 invalid on device 0
spl_register_fat_device: fat register err - -1
spl_load_image_fat: error reading image tispl.bin, err - -1
spl: no partition table found
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

SPL 似乎无法从 eMMC 读取映像、并报告 MMC 块读取错误。

您能否帮助确定此问题的根本原因、并确认对于定制 DRA821 电路板上的 eMMC 引导、刷写偏移和引导分区选择是否正确?

感谢您的指导。