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.

[参考译文] SK-AM62A-LP:帧和 CSI DMA 损坏

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1617276/sk-am62a-lp-corrupted-frames-and-csi-dma

器件型号: SK-AM62A-LP

尊敬的 Sitara 团队:

我的客户目前在使用 AM62A Launchpad 和 TechNexion TEVS-AR0522-C-S85-RPI22 IR 摄像头时遇到问题。 这些客户正在成功运行 TechNexion 的 SD 卡映像 SK-am62a_Yocto-4.0_20240926 EVK、覆盖层为 k3-am62a7-sk-csi2-tevs.dtbo 和 TEVS 驱动程序探头:

tevs 4-0048:版本:25.10.0.1
TEVS 4-0048:产品:TEVS-AR0522、HeaderVer:3、MIPI_RATE:800
TEVS 4-0048:探测成功

媒体图形链接正确 (tevs -> CSI bridge -> ticsi2rx ->/dev/video3)。 它们 按记录的方式配置传感器:

media-ctl --set-v4l2 “'tevs 4-0048':0 [fmt:UYVY8_2X8/1280x720@1/30 字段:无]“

驱动程序接受该请求、但在 media-ctl -p 中报告 UYVY8_1x16/1280x720

问题是所有捕获的帧都已损坏。 帧的顶部~25%显示移动图像失真、其余~75%为稳定绿色。 这种情况发生在两个实时查看 (Gstreamer v4l2src ! kmssink) 以及使用 v4l2-ctl 的原始捕获中。 保存的 YUV 文件显示相同的损坏。

在流式传输过程中、内核会反复记录:

j721e-csi2rx 30102000.ticsi2rx:无法耗尽 DMA。 下一帧可能是假的。 客户无法判断摄像头是否有缺陷或配置错误。 上面是否有任何内容可以指示用户/硬件错误?

他们还 AWS 电路板上有一些小的 DIP 开关、您能告诉我如何设置它们、以防客户错误地设置它们吗?

如果需要、我可以让客户提供完整的 dmesg、media-ctl -p 和示例 YUV 文件。 如果您有任何疑问或需要其他信息、请告知我。

此致、

David

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

    您好、David:

    假设此处的驱动程序: https://github.com/TechNexion-Vision/ti_evk_camera/blob/tn-ti_6.1.46_09.01.00.006/drivers/media/i2c/tevs/tevs_main.c 与 TechNexion 在 SD 卡映像中的驱动程序相同、这看起来是预期行为。 无论 media-ctl 在此处传递的格式如何、似乎都在设置 UYVY8_1x16: https://github.com/TechNexion-Vision/ti_evk_camera/blob/tn-ti_6.1.46_09.01.00.006/drivers/media/i2c/tevs/tevs_main.c#L872

    如需进一步调试、请提供 dmesg 日志、media-ctl -p 输出和示例 YUV 文件。

    此外、客户是否知道除了包括他们的驱动程序之外、在 SDK 9.1 之上进行了哪些 TechNexion 更改?

    j721e-csi2rx 30102000.ticsi2rx:耗尽 DMA 失败。 下一帧可能是假的。 客户无法判断摄像头是否有缺陷或配置错误。 上面是否有任何内容可以指示用户/硬件错误?

    这可能是导致该问题的原因。 但是、在较新的 SDK 中、CSI2RX DMA 的多个问题得到了解决。

    他们也是 AWS 在板上有一些微小的 DIP 开关、您能告诉我如何在客户设置错误的情况下设置它们吗?

    您能解释一下您在这里讨论的 DIP 开关吗?

    此致、
    Jay

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

    您好、David:

    您是否可以向我们提供有关客户的基本详细信息? 他们是否愿意将 SDK 中的反向端口更改为 TechNexion 提供的版本或向前移植传感器驱动程序?

    此致、
    Jay

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

    尊敬的 Jay:

    该客户 正在开发一个 利用 AM62A 的新通信系统。 我与之合作的工程师使用 $ tar tf debug.tar.gz、 dmesg、 media-ctl.txt 和 tevs_1280x720_UYVy.yuv 发送了以下 tarball(下面还有.png 版本的.yuv 文件)

    e2e.ti.com/.../8272.debug.tar.gz

    客户在后台说、 “我从 Technexion 下载了一张 SD 卡映像、希望它能正常工作。  我的 SD 卡中已经填充了文件系统。  理想情况下、我希望有一些东西可以放到这张卡上、或者让 TI 指向另一张“正常工作“的图像。  我不想增补文件或构建任何内容、除非我绝对必须这样做。“

    您能解释一下您在这里讨论的 DIP 开关吗?

    具体来说、是 EVM 上的引导模式选择开关 (SW2 和 SW3)、我将它们指向 EVM 用户指南中的第 2.5.15.1 节。 客户表示他的 EVM 按以下方式配置了 DIP 开关:

    SW2: 0100 0011

    SW3:0000 0010

    我还向客户确认、如果您以垂直方向将 EVM 固定在电路板下半部分的 DIP 开关上、EVM 上 DIP 开关的方向是颠倒的。 在摄像头本身上、客户配置了 DIP 开关:

    SW2:0000
    SW1:1011

    客户还想确认其 SD 卡上的内容是否正确:  

    Root@am62axx-EVM:~# uname -A
    Linux am62axx-EVM 6.1.46-dirty #4 SMP 抢占周一 9 月 30 日 03:17:59 PDT
    2024 AArch64 AArch64 AArch64 GNU/Linux

    root@am62axx-EVM:~# lsmod | grep j721e.
    j721e_csi2rx          24576 0
    videobuf2_dma_contig 20480 3 j721e_csi2rx、e5010_jpeg_enc、wave5
    videobuf2_v4l2        32768 4.
    j721e_csi2rx、v4l2_mem2mem、e5010_jpeg_enc、wave5
    第 57344 章七个女人
    j721e_csi2rx、videobuf2_dma_contig、videobuf2_v4l2、v4l2_mem2mem、e5010_jpe
    g_enc、wave5、videobuf2_memops
    v4l2_async            24576 3 v4l2_fwnode、j721e_csi2rx、cdns_csi2rx
    第             245760 章
    v4l2_async、j721e_csi2rx、tevs、videobuf2_v4l2、cdns_csi2rx、videobuf2_commo
    n、v4l2_mem2mem、e5010_jpeg_enc、wave5
    MC                    57344 8.
    v4l2_async、videodev、j721e_csi2rx、tevs、videobuf2_v4l2、cdns_csi2rx、videob
    uf2_comon、v4l2_mem2mem

    他们还表示、如果可以使用重新编译的模块来修复此问题、那么他们将很容易集成和测试。 否则、如果他们可以尝试另一幅图像、其中包含固定或改进的驱动程序、他们可以尝试使用、前提是该图像可以与他们拥有的摄像头配合使用。

    此致、
    David

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

    您好、David:

    对于引导模式配置、我个人认为 AM62Ax MCU+ SDK 文档在此处是更好的参考点: https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/11_01_00_16/exports/docs/api_guide_am62ax/EVM_SETUP_PAGE.html#autotoc_md20

    我不能说摄像机上开关的配置。 他们必须与 TechNexion 一起检查。

    他们还说、如果可以通过重新编译的模块来修复此问题、那么他们很容易集成和测试。 否则、如果他们可以尝试另一幅图像、其中包含固定或改进的驱动程序、则他们可以尝试使用该图像、前提是该图像可以与他们拥有的摄像头配合使用。

    对于此问题、我不确定我们是否有集成了 TechNexion 驱动程序的映像、或者已使用我们的 SDK 进行了测试。 我可以帮助调试案例的 SoC 方面、但对传感器驱动程序的帮助有限。

    在 TechNexion 的 GitHub 中、我看到了内核 6.6 的分支。 客户可以使用 SDK 10.1 或 SDK 10.0 进行尝试。 但最新的 SDK 11.1 使用内核 6.12。 我不确定它是否对他们有效。 如果他们的驱动程序支持更新的 SDK、则可能有必要与他们一起检查一次。

    如需流水线调试帮助、请请求客户共享以下内容:
    1. media-ctl -p 的输出
    2.他们是如何尝试流式传输数据的? 例如在 yavta、v4l2-ctl 还是 GStreamer 中?
    3.当数据流开始时,以下 4 个寄存器的值。 他们可以使用 devmem2 获取此信息:

    INFO_IRQ 0x301020
    ERROR_IRQ 0x30101028
    stream0_status 0x30101104
    DPHY_STATUS 0x30101048

    示例命令为:

    devmem2 0x30101020

    此致、
    Jay

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

    尊敬的 Jay:

    客户正在使用 AM62A 10.1 SDK 试用 TechNexion 的 6.6 内核。 尽管最终他们希望迁移到最新的 SDK、因此我假设这必须与 TechNexion 合作才能获得正确支持?

    e2e.ti.com/.../5076.media_2D00_ctl.txt

    客户之前已共享 media-ctl -p、因此我在上面重新连接了它们。 客户告知他们的主板/摄像头今天似乎不能正常工作、所以现在不能运行你推荐的命令。 他们正在努力解决此问题、并将在尝试命令后提供更新、以及实现 TechNexion GitHub 分支。

    此外、您是否知道 TI 与之有任何 TechNexion 联系人? 我的客户数周来一直在尝试与 TechNexion 联系、但没有得到任何响应。

    此致、

    David

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

    您好、David:  

    有关专家已离职。 请预计响应会延迟。

    此致、

    Yashraj

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

    您好、David:

    如果他们希望迁移到最新的 SDK、则大多数迁移都必须由 TechNexion 负责。 如果客户愿意将传感器驱动程序移植到我们的 SDK、我或许能够提供一些调试帮助。 问题是、此传感器超出了我们的标准支持范围、因此我们没有任何使用经验。 此外、由于缺少硬件、我也无法使用传感器驱动程序。

    目前、他们可以尝试查看 TechNexion 的 6.6 驱动程序是否与 SDK 10.1 配合使用。 此外、我们可以尝试查看问题是否来自漏极 DMA 实现。 请请求客户尽可能共享寄存器值。 请让他们在开始流式传输后共享寄存器值和完整的日志。

    此外、您是否知道 TI 与之合作的任何 TechNexion 联系人?

    我不确定是否有任何 TechNexion 联系人。 我可以与团队核实、但我不确定我是否能在这里提供很多帮助。

    此致、
    Jay

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

    记录 Jay Goyal 的其他调试建议 

    我们注意到了一些问题。 即介质图形不正确。 TechNexion 文档中的命令似乎不完整。 您是否可以在运行 v4l2 捕获之前尝试运行这些命令:

    media-ctl --set-v4l2 “'tevs 4-0048':0 [fmt:UYVY8_1x16/1280x720@1/30 字段:无]“

    media-ctl --set-v4l2 “'30102000.ticsi2rx':0 [fmt:UYVY8_1x16/1280x720@1/30 字段:无]“

    media-ctl --set-v4l2 “'cdns_csi2rx.30101000.csi-bridge':0 [fmt:UYVY8_1x16/1280x720@1/30 field:none]“

     

    此外、我们的开发团队在 SDK 9.1 基础上共享了一个用于调试日志记录 (PFA) 的补丁。 这将需要在内核配置中启用跟踪。

    我的建议仍然是最终改用更新的 SDK、但为了立即进行评估、我希望此工具可以帮助/cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_debug_2D00_prints.patch

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

    根据客户响应

    这不起作用、并产生了以下错误

    # media-ctl --set-v4l2 “'tevs 4-0048':0 [fmt:UYVY8_1x16/1280x720@1/30 
    字段:无]“ 
    无法设置格式:参数无效 (22)