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.

[参考译文] PROCESSOR-SDK-J721E:SDK 10中的 u-boot 中的自定义 DM 映像

Guru**** 2473270 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1452702/processor-sdk-j721e-custom-dm-image-in-u-boot-in-sdk-10

器件型号:PROCESSOR-SDK-J721E

工具与软件:

您好!

我正在尝试将我们的软件从 SDK 8迁移到 SDK 10。   我注意到 SDK 10中的 U-boot 构建使用 binman、而 SDK 8中没有使用。

我们构建自己的 MCU1_0映像、因此、为了合并 u-boot、我们重新构建了 u-boot。

在 SDK 8上、如下所示:

Export DM=/path/to/custom_dm 
make -C /opt/ti-processor-sdk-linux-j7-evm-08_05_00_08/board-support/u-boot-2021.01 +gitAUTOINC+7996ed51F1-g7996ed51F1
       cross_compile=/opt/ti-processor-sdk-rtos-j721e-evm-08_05_00_11/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
       ATF =/path/to/bl31.bin
       TEE =/path/to/bl32.bin
       O =/path/to/builddir

在 SDK 10上、我们已将 ATF 重命名为 BL31并添加了 TI_DM (根据 https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/10_00_00_08/exports/docs/linux/、Foundational_Components U247-Boot/UG-General-Info.html#build-u-boot)、以实现以下目标:

make -C /opt/ti-processor-sdk-linux-j7-evm-08_05_00_08/board-support/u-boot-2021.01 +gitAUTOINC+7996ed51F1-g7996ed51F1 
       cross_compile=/opt/ti-processor-sdk-rtos-j721e-evm-08_05_00_11/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
       BL31 =/path/to/bl31.bin
       TEE =/path/to/bl32.bin
       TI_DM=/path/to/custom_dm
       O =/path/to/builddir

不过、对于 TI_DM 变量、这似乎无法正常运行、因为我会收到以下警告:

   图像"ti-dm"缺少可选的外部 blob、但仍然起作用:blob-ext 

实际上、它似乎确实包含零字节(我们可以在 BINMAN_verbose=3中看到):

   将映像写入"./ti-dm.bin" 
   写入了0x0个字节
   图像"ti-dm"缺少可选的外部 blob、但仍然起作用:blob-ext

   /binman/ti-dm/blob-ext (ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f):
   缺少斑点

   通过1次测试后完成的电池组

据我所知、这是由于"-a ti-dm-path"选项与 binman 之间存在一定的断开连接、从而设置"ti-dm"文件名、而不是"ti-dm/blob-ext"文件名-前一个(默认 ti_dm.bin)绝不会存在。

有人能告诉我、指定定制 DM 映像的正确方法是什么、以便 A72 u-boot 构建令人满意?

非常感谢、

Ross O'Connor

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

    我可以通过将 BINMAN_INDIRS 设置到 Linux SDK 中的 prebuild-images 文件夹中来消除错误、但这会导致它完全忽略我的 DM 二进制文件:

    将映像写入"./ti-dm.bin" 
    写入了0x36cf0字节
    通过1次测试后完成的电池组

    其中0x36cf0为224496字节、这是预编译映像中默认 IPC 回波测试二进制文件的大小、而不是我自己 DM 映像的大小(尽管在 make 命令行中设置了 TI_DM=)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通过将 BINMAN_INDIRS 设置为 Linux SDK 中的 prebuild-images 文件夹来退出、

    好的。  您是否将自定义 DM 二进制文件复制到了   预构建映像/ti-dm/j721e 文件夹?

    -基尔西

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

    不可以、SDK 是我们的版本的只读共享资源、因此我们无法修改它。

    这就是我们要根据 SDK 文档中的说明在命令行上设置 TI_DM 的原因。

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

    DM 将从该路径中拾取、因此您将看到默认 DM。

    -基尔西

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

    但是这是针对 U-Boot 的 SDK 10文档中直接引用的内容:

    还可以通过添加指向文件的 TI_DM 参数来选择自定义 DM 二进制文件。 如果未提供、它默认从 BINMAN_INDIRS 中拾取 DM 二进制文件。 这仅适用于使用分离固件的器件。

    书中说"如果未提供"、我提供 TI_DM、因此它应该使用我的数据。

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

    尊敬的 Ross:

    我们确实利用相对路径重现了问题。 您能尝试使用绝对路径吗? 我们认为将 TI_DM 用于绝对路径没有问题、它对我们来说是有效的。
    如果您仍然面临问题、请告诉我们。

    -基尔西

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

    Keerthy、您好!

    我曾经使用过绝对路径,所以它肯定不适合我。

    我将尝试把一个外壳脚本放在一起复制问题,你可以看到它是否适合你。

    虽然可能有一个小延迟,因为今天是我圣诞节休息前的最后一天。

    谢谢、

    ROSS

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

    Keerthy、您好!

    此脚本在/opt 中针对已安装的 SDK 10 (只读)重现了该问题。

    e2e.ti.com/.../8422.uboot_5F00_issue.sh.txt

    当我运行它时、我得到输出:

    Size of original pre-build DM is 224496 bytes
    Size of custom DM is 204800 bytes
    Size of DM used by BINMAN is 224496 bytes
    Binman used the PREBUILT image incorrectly

    您能告诉我、为了使它正常工作、我们需要进行哪些更改吗?

    谢谢!

    ROSS

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

    Ross、

    感谢您编写此脚本。 我将检查脚本以便重现、然后返回给您。

    谢谢!
    基尔西

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

    您好、Ross:

    我们可以使用您的脚本重新创建。 有更新后、我们会回复给您。 感谢您的耐心。

    此致、

    基尔西  

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

    您好、Ross:

    似乎脚本占用了错误的大小。

    这是因为该脚本会检查 ti-dm.bin 的 A72构建日志、该日志不是最终写入 FIT 映像的日志。

    打包的内容不是 ti-dm.bin、

    生成 tispl.bin 后、请尝试:

    mkimage -l tispl.bin

    这将给出 tispl.bin 中包装的准确的 DM 大小。

    此致、
    基尔西

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

    Keerthy、您好!

    让我继续检查这一点、因为仅使用 DM=指定 DM 时器件无法启动、但在我将其复制到该文件夹后器件会启动、因此生成的文件会出现问题。  我的复制脚本可能会出现问题-我会回复您。

    谢谢、

    ROSS