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.

[参考译文] TMDS64GPEVM:从 eMMC 用户引导分区引导

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1221279/tmds64gpevm-booting-form-emmc-user-boot-partition

器件型号:TMDS64GPEVM

你好  

对于定制电路板、我们 希望 让您可以从内置 EMMC 存储器 SDINBDG4-8G-XI2.我将使用 Yocto 来构建映像。 电路板不能从自定义引导分区引导。 仅当在硬件引导分区上刷写 tispl.bin 和 tiboot3.bin 时才会引导。 首先、我将介绍我到目前为止努力使工作正常的步骤:



1. Under the Linux (booted via TFTP) I flashed our custom image to eMMC memory:



tiboot3.bin, tispl.bin, u-boot.img and uEnv.txt are on the first partition (64M)

2.在 U-Boot shell 中,我将软件分区配置为可引导:

mmc partconf 0 1 7 1
mmc bootbus 0 2 0 0


3. After switch to boot from eMMC (on board switch) and reboot nothing happens. But when bootloaders are flashed on mmcblk0boot0/1 partitions, the board starts.

What step is missing?

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

    您好!

    您正在使用哪个处理器 SDK 版本?

    此外、u-boot 需要在 eMMC 的引导分区而不是用户分区中找到引导加载程序。

    此致、

    朱迪斯

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

    你好 Judith

    您的意思是、无法在其(定制)引导分区上引导映像包含 tiboot3.bin、tispl.bin 和 uboot.img? 我会满意的是、我有单个映像、其中包含所需的一切、因此所有引导加载程序、内核、dtb 和 rootfs、然后我将此映像刷写到 eMMC 内存上、并启动映像。 这是不可能的? tiboot3.bin 和 tispl.bin 必须刷写到 eMMC 存储器的"结构"引导分区中?

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

    您好 Jakub、

    您可以从原始引导分区0/1引导设备。 您也可以在 RAW 模式或文件系统模式下从用户分区引导。 以下是包含更多信息的常见问题解答: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1204131/faq-a53-boot-binary-tispl-bin-loading-error-when-bootmode-7-0-in-emmc-boot-mode-on-am62x

    要从用户分区引导、您必须更改引导模式(SW2和 SW1)、如 TRM 中的5.3.1.1主引导模式选择和配置下的值。

    请告诉我这是否起作用。

    此致、

    朱迪斯

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

    你好 Judith  

    谢谢重播。 在第1881页的 AM64的 TRM (链接)中、描述的内容类似于 文件系统模式下的 UDA (用户数据区域)。 但是、我不清楚如何使用 eMMC 存储器中的这些位来指定我们系统映像的引导分区的位置。 ROM 中的第一级加载程序如何知道我们的映像位于 eMMC 存储器的地址 X 中、而引导 分区位于地址 Y (包含 tiboot3.bin、tispl.bin 和 u-boot.img)上?

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

    您好 Jakub、

    您之前在哪里刷写了 tiboot3.bin、tispl.bin 和 u-boot.img 二进制文件? 您使用了什么说明?

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

    您好 Jakub、

    对于从 UDA 引导的指令、您必须执行几项操作。 修改 u-boot、在 eMMC 中创建分区、将文件复制到适当的分区并设置 u-boot 环境。 示例如下: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1224038/faq-tda4vm-how-to-boot-from-the-emmc-uda-partition-in-fs-mode-using-spl-boot-flow?tisearch=e2e-sitesearch&keymatch=faq%3Atrue。我已经附加了用于对 eMMC 进行分区的脚本。 此外、引导模式开关设置为:b0~B15:XXX00010 00000000。 请告诉我这是否可行!
    e2e.ti.com/.../5102.mksdboot.sh

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

    你好 Judith

    很抱歉回复延迟、但我的公司安排了其他任务。 我阅读了您在上面发布的链接中的主题。 我很确定执行了相同的步骤、但电路板实际上无法引导。

    我的图像布局如下所示:

     'boot' (FAT32)<-包含 tispl.bin、tiboot3.bin 和 u-boot.img
     'slota'('rootfs.ext4')
     '老虎'('老虎.ext4 ')
     'persistent' ('persistent.ext4')

    映像是使用 genimage 工具组装的(它正在引导、因此我非常确信映像没有问题)

    1.我已 使用 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=n 选项重建 u-boot

    2.在 Linux 中(通过 eth 引导),我已经将 eMMC 刷入映像: dd if=/mnt/sdcard.img of=/dev/mmcblk0 bs=1M;sync

    3. i u-boot shell i 键入的命令:  

    MMC partconf 0 1 7 1

    MMC bootbus 0 2 0 0

    4.接下来、我将引导模式更改为 eMMC、断电并给电路板加电。  

    在 UART 终端上没有任何反应。

    UDA 配置为文件系统模式。

    https://www.ti.com/lit/ug/spruim2f/spruim2f.pdf?ts=1683184222963&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252Fde-de%252FAM6442

    第1881页

    此外、我还需要选择主引导模式、对吧?

    我是否错过了某个步骤?  

    Br

    雅库布

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

    您好 Jakub、

    "对不起,我不知道该怎么办。"

    我相信您是在将 eMMC UDA FS 模式与 RAW 模式混用的。 对于 RAW 模式、我们将刷写到特定地址、而不是 FS 模式。

    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=n
    如果我们未在原始模式下引导,则是正确的。

    MMC partconf 0 1 7 1
    MMC bootbus 0 2 0 0
    正确。


    引导开关设置应为:SW2:00000000 SW1:XXX00010

    请注意、TI 尚未在 FS 模式下从 eMMC UDA 引导。 建议从硬件分区 boot 0或 boot 1进行引导。

    此致、

    朱迪斯

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

    您使用的设备是什么?

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

    你好 Judith

    感谢您的答复。 目标是使用映像(如 SD 卡)对 eMMC 进行刷写、并使用位于映像引导分区上的引导加载程序进行系统引导。

    在我们的定制硬件上、我们将使用 SDINBDG4-8G-XI2 eMMC 存储器。

    Br

    雅库布

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

    您好 Jakub、

    我知道您是尝试使用 FS 模式从 UDA 进行引导。

    如前所述、尚未验证 FS 模式、建议使用硬件分区 boot 0和 boot 1。

    但是、如果您希望在 FS 模式下尝试从 UDA 引导、那么在 AM62x 上适合我的方法如下:

    删除 R5和 A53 defconfigs 后、重新编译引导加载程序二进制文件:
    - CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
    - CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x400

    在 Linux (首先使用 SD 卡引导)中、使用 fdisk 或 TI 脚本对 UDA 进行分区。

    在 Linux 中安装 SD 卡引导分区并在 eMMC 中安装"引导"分区。

    -将引导加载程序复制到 eMMC'boot'分区。

    重新启动主板并在 u-boot 中执行以下操作:
    - MMC partconf 0 1 7 1
    - MMC bootbus 0 2 0 0

    关断电路板并将开关设置为:
    SW2:00000000 SW1:11000010

    对于 AM64x、有时可以反转引导模式引脚设置、这就是我问您使用的器件的原因。 我有一个 AM64x EVM、如果我发现任何问题或差异、我会尝试对其进行更新。

    此致、

    朱迪斯

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

    您好 Jakub、

    以下说明在 AM64x 上对我有效:

    1.在删除 R5和 n A53 defconfigs 后重新编译引导加载程序二进制文件:
    - CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
    - CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x400

    2.带有 SD 卡的引导板、默认映像

    3.在 Linux 中,卸载 eMMC UDA 分区:
    sudo umount /dev/mmcblk0p2
    sudo umount /dev/mmcblk0p1

    4.在使用 fdisk 的 Linux 分区 eMMC UDA 处:
    man7.org/.../fdisk.8.html

    5.格式化分区:
    mkfs -t vfat /dev/mmcblk0p1
    mkfs -t ext4 /dev/mmcblk0p2

    6.将 bootloader 和 rootfs 复制到各自的分区:
     
    安装/dev/mmcblk0p1 eMMC-boot
    加载/dev/mmcblk1p1 sd-boot/
    CP SD-boot/* eMMC-boot

    安装/dev/mmcblk0p2 eMMC-root
    加载/dev/mmcblk1p2 SD-root/

    根目录 CD eMMC-root
    tar -x -J -v -f ../sd-root/tisdk-default-image-am64xx-evm.tar.xz

    同步

    7.重新启动板并在 u-boot 中执行以下操作:
    $ MMC partconf 0 1 7 1
    $ MMC bootbus 0 2 0 0
    $ setenv bootpart 0:2

    8.关闭实验板并设置引导模式开关设置:

    SW2:01000011 SW3:00000010

    此致、

    朱迪斯

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

    谢谢朱迪斯

    我会检查您的解决方案、并告诉您

    此致、

    雅库布

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

    您好!
    当然、如果可行、请告诉我。

    ~朱迪斯