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.

[参考译文] TDA4VM:TDA4VM — 异构开发

Guru**** 2923960 points

Other Parts Discussed in Thread: AM2431, SYSCONFIG, TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1650457/tda4vm-tda4vm---heterogenous-development

器件型号: TDA4VM
主题中讨论的其他器件: AM2431SysConfig

您好、

我正在处理一个工程、以便将主域中的 A72 和 R5 用于我的应用程序。 我需要有关在 R5 上进行开发并 将 R5 构建过程或最终固件二进制文件集成到基于 TI Arago SDK 的 Yocto 中的最佳方法的指导。 我很清楚 Yocto 方面的内容。

我看到了几种选择、我希望专家对以下问题发表意见:

  • 用于 R5 开发的 SDK 是什么?  
    • J721E Processor SDK  
    • 用于 R5 的 MCU + SDK(基于 AM2431、它恰好是主域上的 R5 内核)
  • 目标操作系统
    • A72 - Linux
    • R5 - FreeRTOS 或 noRTOS
    • 计划使用 Remoteproc 框架连接 A72 和 R5。  
  • TI SYS FW — 电路板 Cfg/RM Cfg/DM Cfg:
    • 在 TI Arago SDK 中、我需要以某种方式定制引脚输出/引脚多路复用器和设置外设、以与 EVM 参考设计不同的方式为 R5 和 A72 分配资源。  
    • 实现这一目标的最佳方法是什么?  用于创建 DTS 文件然后将其拉入 Yocto 中的外部 TI CCS/SysConfig 工具、  
    • 目前、我看到预编译的二进制文件是从 Git 存储库中提取的、并且只是打包到 sysfw.it 中 配方是“ti-sci-fw.bb“、用于管理 sysfw。 还不确定如何覆盖它们。

谢谢、

Prasanna

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

    尊敬的 Prasanna:

    R5 开发使用哪个 SDK?  
    • J721E Processor SDK  
    • 用于 R5 的 MCU + SDK(基于 AM2431、它恰好是主域上的 R5 内核)
    [/报价]

    请 使用 J721E Processor RTOS SDK 为 TDA4VM 开发 RTOS 应用。

    请注意、所有 Processor SDK 都是根据特定器件发布的、因此您不能将 AM2431 MCU+SDK 与 TDA4VM 一起使用。

    目标操作系统
    • A72 - Linux
    • R5 - FreeRTOS 或 noRTOS
    [/报价]

    这一切都很好。 MCU R5F 需要与您的应用一起运行设备管理 (DM) 库组件、而这需要 FreeRTOS 或 SAFERTOS 等 RTOS。 NoRTOS/裸 机固件可用于主 R5F、并可与 Linux 配合使用。

    实现这一目标的最佳方法是什么?  用于创建 DTS 文件然后将其拉入 Yocto 中的外部 TI CCS/SysConfig 工具、  [/报价]

    CCS/SysConfig 可以提供所需的 pinmux 器件树节点、但不会生成现成的完整器件树文件。 您必须获取这些摘录并将其整合到电路板特定 DTS 文件中。 TI SDK 提供基本器件 dtsi 文件、这些文件可包含在电路板 DTS 文件中并进行调整。

    所有这些更改都需要合并到 Linux 内核树中。 Yocto 食谱会处理 Linux 内核器件树、您可以调整您的平台 Yocto 食谱、以便能够针对您的特定平台进行拉取和构建。

    目前,我看到预编译的二进制文件是从 git repository 中提取的,只是打包到 sysfw.it 中 配方是“ti-sci-fw.bb“、用于管理 sysfw。 不确定如何覆盖它们
    [/quote]
    [/quote][/quote]

    可以通过 ti-linux-firmware 存储库将固件集成到 Yocto 中。 TI SDK 使用默认为 EVM 构建的 DM 固件进行构建、但您需要在电路板上整合您自己的固件。

    这是你的食谱上你如何舞台和拉紧固件,并利用它们。

    此致

    Suman

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

    尊敬的 Suman:

    感谢您的答复。   以下是我目前对概要流程的理解:

    1.使用随 ti-cgt-armllvm 编译器附带的 Processor RTOS SDK、为目标 R5F 构建我的自定义 FreeRTOS 工程并获取二进制文件。 现在、此二进制文件进入 Yocto、用于打包到 Linux 映像中。 现在、在 Linux 中使用 Remoteproc 将此固件加载 到 R5 目标。 如果这不是真的,如何构建我的 FreeRTOS 项目? 最好使用 TI CCS 通过下拉处理器 SDK 来构建该工程、还是直接对工程使用 makefile?

    2.使用 SYSCFG 生成整体系统引脚配置将此 dtsi 摘录集成到 K3-R5 Uboot SPL 中,它将在启动期间设置引脚和外设。 这实际上是 tiboot3.bin。

    3.哪个固件组件负责 将所需的外设/中断/DMA 通道分配给 A72/R5/DSP 内核。是 DM 还是 sysfw(RM 配置和主板配置)?

    4. SYSFW 在 DMSC Cortex - M 内核上运行。 这表明 PM Config、RM Config 和电路板配置是 sysfw 的一部分。  

    docs.u-boot.org/.../j721e_evm.html

    5. DM ->您说应该还有一个 DM 实例在 MAIN 域 R5 上与我的 FreeRTOS 工程一起运行。 您的意思是说 SCI 客户端要与 DMSC 上运行的 SYSFW 通信吗?

    我在 Processor-SDK-RTOS 软件包中看不到源代码。 是否有单独的 GitHub 存储库包含此 DM 固件的参考设计源代码?  该标准应该通过 TI CCS 或 J721E Processor RTOS SDK 构建、或者可以通过 Yocto 为 K3-R5 目标机器编译?  

    如果您有任何问题、敬请告知。  

    谢谢、

    Prasanna

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

    尊敬的 Prasanna:

    使用 ti-cgt-armllvm 编译器随附的 Processor RTOS SDK、为目标 R5F 构建我的自定义 FreeRTOS 工程并获取二进制文件。 现在、此二进制文件进入 Yocto、用于打包到 Linux 映像中。 现在、在 Linux 中使用 Remoteproc 将此固件加载 到 R5 目标。

    是、正确。 构建和开发均基于 RTOS SDK。 Yocto 不使用 RTOS SDK 来构建固件(因为 Yocto 要求所有组件都位于公共 Git 树中)。 固件的集成/包含是创建 rootfs 的一部分。 您可以执行后处理复制步骤,也可以通过一种方法将所需的固件拉入 rootfs ,并将固件输出文件作为 git 树的一部分提供。

    最好使用 TI CCS 进行编译、方法是导入 Processor SDK 或直接对工程使用 makefile。

     建议使用 Makefile。 RTOS SDK 中有许多组件和层、CCS 并不理解这些组件和层、并且每个示例都没有 CCS 工程中提供 RTOS SDK。  

    请参阅 我在 #3 上的上述回复。

    我在 Processor-SDK-RTOS 软件包中没有看到源代码。 是否有单独的 GitHub 存储库包含此 DM 固件的参考设计源代码?

    Sciclient 和 SciServer 代码是 PDK SciClient 模块的一部分。 PDK 确实有 Git 树以供参考、但您将会基于下载的具有 PDK 组件的 RTOS SDK 进行构建。

     这应该通过 TI CCS 或 J721E Processor RTOS SDK 构建标准、或者可以通过 Yocto 为 k3-R5 目标机器编译吗?  [/报价]

    我建议您浏览“RTOS SDK 入门“部分、RTOS SDK 文档下的开发人员指南以及 PDK 文档。

    此致

    Suman

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

    尊敬的 Suman:

    我查看了 SDK 文档、并专门围绕 PDK 进行了演示。 这是我到目前为止的理解:

    1. MCU_R5F:sysfw.it

    -外设配置 (dma/interrupts/spi ):这是通过 boardcfg_rm.c 完成的  该文件位于 pdk/scicilent 下。 我进行定制并重新编译 sysfw 并集成到 Yocto 中。 这将包括 A72/C66/C71x/Main R5 的所有更改。  

    使用 k3-resource partition config 工具执行此操作。 (在线版本)。 我看到了可以使用的电路板配置部分。  

    此时应该会生成 boardcfg_rm.c、还可以看到一些 rm-cfg.yaml cfg 文件、这些文件可以直接集成到 Uboot 流程中。 请确认这是正确的。 在这种情况下、我根本不需要 PDK、只需要使用 rm-cfg.yaml。

    - Pinmux:SysConfig 工具、用于生成 j721e_pinmux_data.c 和 J721E_pinmux.h 文件、并集成到 PDK 以重新生成 sysfw。  

    这还提供了一个设备树片段、以包括到 uboot 和 Linux 设备树、从而保持 GPIO 配置一致。

    2. main_R5F : tispl.bin(dm 组件)

    -使用带有 makefile 的 RTOS SDK -> PDK + Clang 工具。

    -编译 FreeRTOS 项目并包括 sciclient API 以请求中断/DMA 等资源。

    -此处不更改 boardcfg。  

    谢谢、

    Prasanna

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

    尊敬的 Prasanna:

    1. MCU_R5F:sysfw.itb.

    请注意 、 仅在使用 R5 SPL 引导加载程序(从 U-Boot 源代码构建)时、sysfw.itb 文件才是工件。 此文件与 RTOS SBL(PDK 的源代码部分)无关。 sysfw.itb 文件包含 TIFS 固件二进制文件和所有 4 个不同的电路板配置文件。 RTOS SBL 将 TIFS 二进制 文件作为单独的 tifs.bin 文件、其中 4 个板配置文件是 SBL (tiboot3.bin) 二进制文件本身的一部分。

    -外围设备配置 (dma/interrupts/spi):这是通过 boardcfg_rm.c  该文件位于 pdk/scicilent 下。 我进行定制并重新编译 sysfw 并集成到 Yocto 中。 这将包括 A72/C66/C71x/Main R5 的所有更改。  [/报价]

    boardcfg_rm.c 是 RM 板配置的 RTOS 版本、它仅具有不同内核之间通用 RM 资源的分区数据、在处理配置时(在运行时发生)不会自行进行配置。

    您将使用什么引导加载程序? 仅当使用 RTOS SBL 作为 MCU R5F 引导加载程序时、PDK boardcfg 文件才相关。

    [引述 userid=“671987“ url=“~/support/processors-group/processors/f/processors-forum/1650457/tda4vm-tda4vm---heterogenous-development/6368275

    使用 k3-resource partition config 工具执行此操作。 (在线版本)。 我看到了可以使用的电路板配置部分。  

    此时应该会生成 boardcfg_rm.c、还可以看到一些 rm-cfg.yaml cfg 文件、这些文件可以直接集成到 Uboot 流程中。 请确认这是正确的

    [/报价]

    是的、这一切都是正确的。 您可以从现有的 syscfg 文件开始、该文件可以导入和自定义、以创建与您的平台/产品相关的板配置文件。

    在这种情况下、我根本不需要 PDK、只需要使用 rm-cfg.yaml。

    rm-cfg.yaml 文件是 boardcfg_rm.c 的 U-Boot R5 SPL 等效  文件、编译到 sysfw.itb 文件中。

    - Pinmux:用于生成 j721e_pinmux_data.c 和 J721E_pinmux.h 文件的 SysConfig 工具、并集成到 PDK 中以重新生成 sysfw。

    大多数情况下正确、但您会重新生成 SBL (tiboot3.bin)、而不是重新生成 sysfw (tifs.bin)。 Pinmux 数据与 TIFS 二进制文件无关。

    2. main_R5F : tispl.bin(dm 组件)

    tispl.bin 根本不与 MAIN R5F 内核关联。 tispl.bin 也是基于 U-Boot 的引导加载程序二进制文件、其中包括 A72 ATF、A72 OPTEE、A72 SPL 和要在 MCU R5F 内核上引导的 DM/应用程序固件。

    -使用带有 makefile 的 RTOS SDK -> PDK + Clang 工具。

    您可以使用此文件来构建 DM 固件或 MCU R5F 应用程序(以及任何主 R5F 应用程序固件)。

    [引述 userid=“671987“ url=“~/support/processors-group/processors/f/processors-forum/1650457/tda4vm-tda4vm---heterogenous-development/6368275

    -编译 FreeRTOS 项目并包括 sciclient API 以请求中断/DMA 等资源。

    -此处不更改 boardcfg。

    [/报价]

    这些对于主 R5F 固件是正确的。

    此致

    Suman

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

    尊敬的 Suman:

    感谢您的答复。 我认为 Yocto 流程(Uboot 引导加载程序)与 RTOS SDK/PDK 流程 (TI SBL) 存在混淆。

    我正在使用 TI Arago SDK 构建所有组件。 我对 Arago 发行版进行了自己的 Yocto 定制。 这就是我一直在尝试了解 PDK 流程并将工件集成回 Yocto 流程的原因。

    UBoot 是我的首选引导加载程序、我不想使用 RTOS SDK 提供的独立 SBL。

    让我将其分成两个单独的部分:

    • MCU R5F ->使用 Uboot SPL 作为 SBL。 看起来我需要拉入 rm-cfg.yaml、并将其集成到 Uboot 流程中以生成 tiboot3.bin。 这将涉及资源管理部分。 现在、引脚多路复用器也应该应用于 SysConfig 中的器件树头文件 Uboot。 我已在此处应用 DDR phy cal 定制。

          该二进制文件应该已经具有 EVM 的默认 DM 实现、我将仅使用较新的电路板配置 YAML 文件来覆盖该实现。 此处无需进行其他更改。  UBoot 目标将是“k3-R5“机器、用于针对 MCU R5F 目标进行交叉编译。  

    • MAIN R5F ->只需通过 RTOS SDK/PDK 使用我的 FW 应用构建 FreeRTOS 工程。 使用 sciclient API 请求资源。 这里没什么可做的。  

    谢谢、

    Prasanna  

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

    尊敬的 Prasanna:

    Uboot 是我的首选引导加载程序、我不想使用 RTOS SDK 提供的独立 SBL。

    感谢您的澄清。 至此、您将只使用 RTOS SDK 来构建基于 FreeRTOS 的应用固件。

    MCU R5F ->使用 Uboot SPL 作为 SBL。 看起来我需要拉入 rm-cfg.yaml、并将其集成到 Uboot 流程中以生成 tiboot3.bin。 这将涉及资源管理部分。 现在、引脚多路复用器也应该应用于 SysConfig 中的器件树头文件 Uboot。 我已在此处应用 DDR phy cal 定制。

    是的、U-Boot 代码具有 BINMAN 等所有必需的基础设施部分。 大部分操作将涉及创建/添加您自己的电路板特定 dtsI/dts 文件、这些文件通常通过包含常见 TI SoC dtsi 文件来构建。

    tiboot3.binsysfw.itb 是主要的启动引导加载 程序文件、其中 tispl.bin 和 u-boot.img 是 A72 内核相关的辅助引导加载程序文件。 

    此二进制文件应该已经具有 EVM 的默认 DM 实现、我将仅使用较新的电路板 cfg YAML 文件来覆盖该实现。 此处无需进行其他更改。  UBoot 目标将是“k3-r5“机器、用于为 MCU R5F 目标进行交叉编译。

    确定基准 U-Boot 步骤后、可以调整/覆盖 Yocto 方法、从而通过 Yocto 构建相同的步骤。 显然,这将涉及到一些下游食谱在你的结束

    main R5F ->通过 RTOS SDK/PDK 使用我的 FW 应用程序构建 FreeRTOS 工程。 使用 sciclient API 请求资源。 这里没什么可做的。  [/报价]

    是的、正确。

    我相信您已经回答了所有主要问题、以便开始本次课程。 如果您需要进一步说明、请告知我们。

    此致

    Suman