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.

[参考译文] J784S4XEVM:J784S4XG01EVM 上的 DisplayPort 问题 — I2C GPIO 扩展器探头故障

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1644943/j784s4xevm-displayport-issue-on-j784s4xg01evm---i2c-gpio-expander-probe-failure

器件型号: J784S4XEVM

尊敬的团队:

我正在使用 J784S4XG01EVM 电路板、并使用 Processor SDK Linux 11.02.06 构建了操作系统映像。

尝试将 DisplayPort0 和 DisplayPort1 与外部监视器配合使用时、在任一端口上都未观察到显示输出。

调试时、我注意到 DisplayPort 使能 GPIO 通过 I2C4 上连接的 IO 扩展器进行控制。 但是、I2C 总线上未检测到 IO 扩展器。

发现的问题:

  1. i2cdetect 在 I2C4 上、地址中未显示预期的从设备 0x20

i2cdetect -y -r 4

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
  1. 内核日志报告 IO 扩展器探测故障:

pca953x 4-0020: failed writing register: -121
pca953x 4-0020: probe with driver pca953x failed with error -121
  1. 与 DisplayPort 稳压器相关的延迟探测条目:

cat /sys/kernel/debug/devices_deferred

connector-dp0   platform: supplier regulator-dp0-prw not ready
connector-dp1   platform: supplier regulator-dp1-prw not ready
sound   j721e-audio: devm_snd_soc_register_card() failed: -517
4-0044  i2c: supplier 4-0020 not ready
regulator-dp0-prw       reg-fixed-voltage: can't get GPIO
regulator-dp1-prw       reg-fixed-voltage: can't get GPIO

从 DTS 中、DP 稳压器依赖于 I2C4 上 PCA953x IO 扩展器提供的 GPIO。 由于扩展器探头发生故障、不会创建 DP 调节器、从而导致两个 DP 连接器探头都保持延迟。

我已附上完整的 dmesg 日志以供参考。

请帮助验证:

  • 启用 IO 扩展器和 DisplayPort 是否需要任何额外的 DT 覆盖层或配置、

  • 如果需要在 EVM 上检查任何硬件依赖项/跳线设置、

dmesg_J784S4XG01EVM.txt 

此致、
Adnan

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

    尊敬的 Adnan:

    我们指定的工程师目前不在办公室。 请预计此主题的回复将延迟至下周。

    此致

    Suman

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

    尊敬的 Adnan:

    根据操作系统的构建方式、显示从在 A72 上运行的 Linux 中禁用、以便在 R5F 上运行的 RTOS 可以控制显示内容。 主要是、如果运行视觉应用示例、则默认演示配置是用于 R5F 上的 RTOS、以控制显示驱动程序。

    如果希望使 Linux 在 A72 端控制显示屏上运行、请查看引导分区中的 uEnv.txt、并注释掉 rprocboot 和 name_overlays 行(如果存在)。

    此致、

    Takuma

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

    藤原孝磨 

    感谢您的意见。 在注释掉 ti/k3-j784s4-vision-apps.dtbo uEnv.txt 文件后,我能够得到显示输出在两个 display_port0display_port1.

    root@j784s4-evm:/run/media/boot-mmcblk1p1# cat uEnv.txt
    # This uEnv.txt file can contain additional environment settings that you
    # want to set in U-Boot at boot time.  This can be simple variables such
    # as the serverip or custom variables.  The format of this file is:
    #    variable=value
    # NOTE: This file will be evaluated after the bootcmd is run and the
    #       bootcmd must be set to load this file if it exists (this is the
    #       default on all newer U-Boot images.  This also means that some
    #       variables such as bootdelay cannot be changed by this file since
    #       it is not evaluated until the bootcmd is run.
    
    # Update the Linux hostname based on board_name
    # The SK also requires an additional dtbo to boot. Prepend it to name_overlays depending on board_name
    uenvcmd=if test "$board_name" = "am69-sk"; then ; setenv args_all $args_all systemd.hostname=am69a-sk ; fi
    
    # Setting the right U-Boot environment variables
    dorprocboot=1
    name_overlays=ti/k3-j784s4-evm-ethfw.dtbo 
    #ti/k3-j784s4-vision-apps.dtbo

    我已经在本地构建 BSP 映像。 请您向我指出以下方面的任何文档或参考链接:

    • 为 RTOS 构建 Vision Apps
    • 刷写/部署 Vision Apps 二进制文件
    • 在 R5F 内核上运行 Vision Apps
    • 配置显示流水线、以便从 R5F 端控制显示

    此致、
    Adnan

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

    尊敬的 Adnan:

    要构建 RTOS、刷写/部署视觉应用二进制文件并运行、请参阅 RTOS SDK 文档: https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j784s4/11_02_00_06/exports/docs/psdk_rtos/docs/user_guide/getting_started_j784s4.html。  

    RTOS 文档将指向各种组件、例如 Vision Apps 组件、以了解如何设置这些组件。

    若要配置显示流水线以从 R5F 端控制显示、视觉应用的默认示例将适当设置显示流水线、以便 RTOS 控制显示。 为了提供更详细的说明、您需要禁用在 Linux 端显示和在 RTOS 端启用显示。  

    1. 配置 Linux 器件树、以便在 Linux 上禁用显示。 您注释掉的 vision-apps dtbo 将禁用 Linux 上的显示、因此取消注释就足够了。
    2. 配置 app_cfg_mcu2_0.h 以启用 RTOS 显示。 默认接头应启用 eDP。 有关详细信息、请参阅 Vision Apps 的构建说明: https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j784s4/11_02_00_06/exports/docs/vision_apps/docs/user_guide/BUILD_INSTRUCTIONS.html 

    此致、

    Takuma

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

    尊敬的 Takuma:

    在尝试构建 SDK 时、我收到以下错误消息。

    以下是我使用的命令:

    source /opt/ti-processor-sdk-linux-adas-j784s4-evm-11_02_00_04/k3r5-devkit/environment-setup-armv7at2hf-vfp-oe-eabi
    
    source /opt/ti-processor-sdk-linux-adas-j784s4-evm-11_02_00_04/linux-devkit/environment-setup-aarch64-oe-linux
    
    make sdk -j8
    

    (从文件夹中执行) sdk_builder

    我在中也作了以下更改 build_flags.mak

    BUILD_EMULATION_MODE=no
    BUILD_TARGET_MODE=yes
    BUILD_LINUX_MPU=yes
    PROFILE=release

    以下是相关的构建日志:

    Linking /home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit/out/J784S4/A72/LINUX/release/libptk_base.a
    Copying built libraries:
    /home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit/out/J784S4/C7120/FREERTOS/release
    to
    /home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit/lib/J784S4/C7120/FREERTOS/release
    make[2]: Leaving directory '/home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit'
    make -C /home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit TARGET_SOC=J784S4 RTOS=FREERTOS C7X_TARGET=C7120 cp_to_lib BUILD_TARGET_MODE=yes
    make[2]: Entering directory '/home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit'
    SHELL=/bin/sh
    TARGET_MAKEFILES=src/algos/concerto.mak src/concerto.mak
    undefined TIARMCGT_ROOT=
    file TIARMCGT_LLVM_ROOT=$(PSDK_TOOLS_PATH)/ti-cgt-armllvm_$(CGT_ARMLLVM_VERSION)
    undefined GCC_SYSBIOS_ARM_ROOT=
    file CGT6X_ROOT=$(PSDK_TOOLS_PATH)/ti-cgt-c6000_$(CGT_C6X_VERSION)
    file CGT7X_ROOT=$(PSDK_TOOLS_PATH)/ti-cgt-c7000_$(CGT_C7X_VERSION)
    undefined GCC_WINDOWS_ROOT=
    file GCC_LINUX_ROOT=/usr/
    environment GCC_QNX_ROOT=/home/dstpl/qnx800/host/linux/x86_64/usr/bin
    #######################################################################
    TARGET_COMBO=J784S4:FREERTOS:C7120:1:release:CGT7X
    #######################################################################
    TARGET_COMBO=J784S4:LINUX:A72:1:release:GCC_LINUX_ARM
    Copying built libraries:
    /home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit/out/J784S4/C7120/FREERTOS/release
    to
    /home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit/lib/J784S4/C7120/FREERTOS/release
    make[2]: Leaving directory '/home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/ti-perception-toolkit'
    make[1]: Leaving directory '/home/dstpl/disk2/SRM/RTOS/ti-processor-sdk-rtos-j784s4-evm-11_02_00_06/sdk_builder'
    make: *** [Makefile:63: sdk] Error 2

    我也注意到 GCC_LINUX_ROOT /usr/,是设置为.

    您能告诉我、我是否缺少任何环境设置步骤、或者 A72 Linux 构建是否需要任何其他依赖项/配置?

    谢谢、
    Adnan

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

    尊敬的 Adnan:

    请遵循适用于 Linux Overview_Getting_Started_Guide 的入门指南:https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j784s4/11_02_00_04/exports//docs/linux/sdk.html

    请告诉我执行了哪些步骤、以及您坚持执行哪些步骤。

    构建 Linux 时、有几种方法可以构建 SDK、这些方法都有效:

    • 使用 Yocto 构建 SDK
      • 这将构建包括文件系统和内核在内的所有内容、但第一次构建需要 12 个多小时。
    • 使用顶级 Makefile 简化 SDK 构建
      • 它具有一个设置了环境变量的配置文件、从而简化了一些仅用于构建 Linux 内核的编译命令。
      • 您可以 通过 “创建 SD 卡“部分将通过此方法构建的 Linux 内核与可创建的预构建文件系统配合使用
    • 无需顶级 makefile 即可构建 Linux 内核

    此致、

    Takuma