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.
工具与软件:
您好!
我正在尝试将我们的软件从 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