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.

[参考译文] TDA4VH-Q1:[J784S4]适用于 ADAS 的推荐内核/DTB 配置 POC:具有 60ms 延迟目标的视觉应用+雷达融合

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc-vision-apps-radar-fusion-with-60ms-latency-target

器件型号: TDA4VH-Q1

 说明:
 我们正在 J784S4 EVM 上开发 AEBS(高级紧急制动系统)POC。 我们的目标是为融合 1 个雷达+ 1 个摄像头流水线实现 60ms 至 70ms 的端到端延迟。  

 虽然加速器 (DSP/C7x) 通过视觉应用正常工作、但我们却陷入了显示和存储器冲突的“兔子洞“。 我们需要为以 ADAS 为中心的系统提供“黄金配置“建议
 消息。

 当前技术阻止程序:
  存储器重叠:在应用 k3-j784s4-edgeai-apps.dtbo 以启用显示和 OpenVX 加速时、我们会遇到保留的 MEM:Overlap detected! 0xaf000000 处出现错误。 这似乎是一个
   ethfw(虚拟交换机)和 vision-apps DMA 存储器映射之间的冲突。
  2. DRM 主机冲突:即使尝试使用边缘 AI 覆盖,像 Weston 或 emptty 这样的后台服务也在初始化和获取 DRM 主机权限。 这阻止了 TIOVX /OpenVX
   节点直接写入显示器 (/dev/dri/cardX)、导致权限被拒绝或“无法找到 CRTC“错误。
  3.引导持久性:uEnv.txt 中的 name_overlays 设置经常被默认 U-Boot 环境忽略或覆盖、从而使设置不稳定。

 POC 的要求:
  *流水线:相机 (JPG/NV12 )+雷达数据-> TIOVX (DSP/C7x )->显示输出(分屏)。
  *显示: OpenVX 显示节点的原始 KMS/DRM 访问,不受窗口管理器的干扰。
  *网络:标准 Linux 以太网就足够了;如果能为 Vision Apps 释放内存,我们就不会严格要求基于 R5F 的 ethfw 虚拟交换机。

 请求指导:
  1. DTB/Overlay 策略:对于同时需要视觉应用 (TIOVX) 和直接 DRM 显示输出的 J784S4 ADAS 应用、建议将.dtb 和.dtbo 文件组合成什么?
  2. EthFW 停用:完全禁用 ethfw 存储器保留以使 vision-apps 存储器映射优先而不重叠的“TI 预期的“方法是什么?
  3.内核配置:在自定义内核构建中、我们是否应该优先考虑特定的 CONFIG_DRM_TIDSS 或 CONFIG_REMOTEPROC 标志、以确保显示在启动时为 OpenVX 做好准备?
  4.显示管理:在 SDK 11.x 文件系统中永久禁用 weston/emptty 以确保显示仍然可用于加速用户应用程序的最佳做法是什么?

 我们正在寻找一个稳定的起点(U-Boot env、dtb 列表和内核配置)、可以满足 ADAS 流水线的高性能要求。

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

    您好、Nivas、

    虽然加速器 (DSP/C7x) 通过 vision-apps 正常运行、但我们被困在显示和存储器冲突的“兔子洞“中。 我们需要以 ADAS 为中心的“Golden Configuration“建议

    默认 SDK 配置是否有任何问题?

    您能否确认您使用的是哪个 SDK、PSDK RTOS 或 PSDK Linux?

    [引述 userid=“693426“ url=“~/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc device-vision-apps-radar-Fusion-with-60ms-delay-target“]   存储器重叠:在应用 k3-j784s4-edgeai-apps.dtbo 以启用显示和 OpenVX 加速时、我们会遇到保留的 MEM:Overlap detected! 0xaf000000 处出现错误。 这似乎是一个
       ethfw(虚拟交换机)和 vision-apps DMA 内存映射之间的冲突。

    您不应将 edgeai-overlay 与 vision_apps 固件一起使用。 你为什么这样做? 您是否正在加载 ethfw 覆盖以及 edgeai 覆盖?

    [引述 userid=“693426“ url=“~/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc device-vision-apps-radar-Fusion-with-60ms-delay-target“]   2. DRM 主机冲突:即使尝试使用边缘 AI 覆盖,像 Weston 或 emptty 这样的后台服务也在初始化和获取 DRM 主机权限。 这阻止了 TIOVX /OpenVX
       节点直接写入显示 (/dev/dri/cardX)、导致权限被拒绝或“无法找到 CRTC“错误。

    有 2 种使用显示屏的方法  
    1.使用将在 MCU2_0 内核中运行的 openvx 显示节点。
    2.使用 Linux DSS 驱动程序,其中您的 DRM/Weston/kms 进入图片没有 openvx 节点。

    具有 vision_apps 覆盖层的 PSDK RTOS 通常使用 openvx 显示节点。
    PSDK Linux 使用 Linux 来控制显示。  

    您能澄清一下这一要求吗?

    [引述 userid=“693426“ url=“~/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc device-vision-apps-radar-Fusion-with-60ms-delay-target“]

      3.引导持久性:uEnv.txt 中的 name_overlays 设置经常被默认 U-Boot 环境忽略或覆盖、从而使设置不稳定。

    [/报价]

    不、不应该发生这种情况。 如果 uEnv.txt 配置正确、则应使用该配置或检查您的设置。

      *流水线:摄像头 (JPG/NV12)+雷达数据-> TIOVX (DSP/C7x)->显示输出(分屏)。
    [/报价]

    摄像头驱动程序在哪里运行?它是 RTOS (openvx) 还是 Linux (v4l2)?

    *显示:对 poc 显示节点的原始 KMS/DRM 访问。
    [/报价]

    KMS/DRM 与 openvx 显示节点不同。

    [引述 userid=“693426“ url=“~/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc device-vision-apps-radar-Fusion-with-60ms-delay-target“]

      *网络:标准 Linux 以太网就足够了;如果能为 Vision Apps 释放内存,我们就不会严格要求基于 R5F 的 ethfw 虚拟交换机。

    [/报价]

    好的、您可以禁用 ethfw 并重建固件。

    1. DTB/Overlay 策略:对于同时需要视觉应用 (TIOVX) 和直接 DRM 显示输出的 J784S4 ADAS 应用、建议将.dtb 和.dtbo 文件组合成什么?
    [/quote]

    我建议您修改 vision_apps 叠加层以启用显示、并从 MCU2_0 固件中删除显示控制。

    [引述 userid=“693426“ url=“~/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc device-vision-apps-radar-Fusion-with-60ms-delay-target“]   2. EthFW 停用:完全禁用 ethfw 存储器保留以使 vision-apps 存储器映射优先而不重叠的“TI 预期的“方法是什么?
    [/报价]

    您可以检查$(psdkra)/sdk_builder\vision_apps_build_flags.mak 来禁用 ethfw ( build_enable_ETHFW )。 和不要在 uEnv.txt 中包含 ehtfw 覆盖层

    3. 内核配置:我们是否应该在自定义内核构建中优先考虑特定的 CONFIG_DRM_TIDSS 或 CONFIG_REMOTEPROC 标志、以确保显示在启动时可供 OpenVX 使用?

    Linux 显示与 openvx 无关。 openvx 在 MCU2_0 上运行了独立的显示节点。

    [引述 userid=“693426“ url=“~/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc device-vision-apps-radar-Fusion-with-60ms-delay-target“]

      4.显示管理:在 SDK 11.x 文件系统中永久禁用 weston/emptty 以确保显示仍然可用于加速用户应用程序的最佳做法是什么?

    [/报价]

    您可以在引导时停止加载 Weston/emptty 服务。

    我们正在寻找一个稳定的起点(U-Boot env、dtb 列表和内核配置)、满足 poc 流水线的高性能要求

    默认 SDK 配置中是否存在任何问题(不进行任何修改)?

    SDK 具有常规配置、我们无法提供符合您要求的特定配置、只能指导您根据您的要求配置 SDK。

    此主题有许多不同的问题、如果您需要有关特定问题的更多详细信息、请为这些问题提交单独的主题。

    此致、
    Gokul

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

    尊敬的 Gokul S :
     感谢您提供详细的细分信息。 要澄清我们的要求并消除混淆:

      1. SDK 版本:我们使用的是 Processor SDK Linux v11.02.00.04。 我们使用此 SDK 中包含的 vision_apps 组件。
      2.显示选项:我们要使用 OpenVX 显示节点(在 MCU2_0 上运行)。 我们不需要 Linux/Weston 来控制显示。 我们之前对 edgeai 覆盖的尝试是错误的;我们是这样
       正在寻找一种启用 DisplayPort 输出并错误地假设需要覆盖的方法。
      3、摄像头来源:我们计划使用 Linux V4L2 (A72) 来捕获摄像头帧、然后使用 appGstEnqAppSrc(或类似工具)将它们“排队“到 TIOVX 图形中。
      4、EthFW:我们不需要虚拟交换机。 我将按照您的建议设置 BUILD_ENABLE_ETHFW=NO 并重新编译 vision_apps 固件。

     新的澄清问题:
      *正确覆盖:由于我们不应使用 edgeai-apps.dtbo、因此 J784S4 EVM 的特定.dtbo 或.dtb 配置是什么、它可以在允许 MCU2_0 的同时启用 vision_apps 的存储器映射
       哪些接管了 DisplayPort?
      * DTB 命名:在 SDK 11.02 /boot 文件夹中,我们是否应该使用 k3-j784s4-evm.dtb 作为基础,然后使用哪一个特定的叠加来避免 0xaf000000 重叠,同时保持显示硬件通电?
      * Weston 移除:由于我们要移动到 OpenVX 显示节点,我们将永久禁用 weston.service。 Linux 内核是否仍需要启用 CONFIG_DRM_TIDSS、或者这是否与冲突
       MCU2_0 显示节点?

     我们的优先事项是稳定的存储器映射、其中 vision_apps 具有 0xaf000000 区域、显示由 RTOS 所有。

    此致、
    Nivas

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

    您好、Nivas、

    [引述 userid=“693426“ url=“~/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc device-vision-apps-radar-Fusion-with-60ms-delay-target/6348113“] 1. SDK 版本:我们使用的是 Processor SDK Linux v11.02.00.04。 我们将使用此 SDK 中包含的 vision_apps 组件。

    好的

     *正确的覆盖层:由于我们不应该使用 edgeai-apps.dtbo、因此 J784S4 poc 的特定.dtbo 或.pquote 配置是什么、它可以在允许 MCU2_0 的同时为 vision_apps 启用内存映射[/dtb]

    此使用组合没有可用的 dtbo、您必须修改 vision_apps_overlay.dtso 以启用摄像头相关节点并重新编译、默认情况下、 vision_apps 覆盖中禁用摄像头和显示器。

    * dtb 命名:在 sdk 11.02 /boot 文件夹中、我们是否应该使用 k3-j784s4-evm.dtb 作为基础、然后使用哪个特定覆盖层来避免 0xaf000000/dtb 重叠、同时保持显示硬件通电?

    您必须加载修改后的 vision_apps 叠加以及 k3-j784s4-evm.dtb

    默认情况下、您还需要有 RTOS SDK 来重新编译 vision_apps 二进制文件、以免干扰摄像头初始化(禁用 MCU2_0 中的摄像头相关功能)、vision_apps firmwares 可控制摄像头和 MCU2_0 中的显示。

    [quote userid=“693426“ url=“~/support/processors-group/processors/f/processors-forum/1646178/tda4vh-q1-j784s4-recommended-kernel-dtb-configuration-for-adas-poc  OpenVX 显示节点、因此我们将永久禁用 weston.service。 Linux 内核是否仍需要启用 CONFIG_DRM_TIDSS、或者这是否与冲突
       MCU2_0 显示节点?

    修改 DTB 覆盖就足够了。

    此致、
    Gokul

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

    谢谢 Gokul、

    更改 DTB 并为 MCU2 重新编译 RTOS 后、问题得到解决、显示正常工作。

    此致、

    Nivas Netha