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:四摄像头的 Linux 内核问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1108113/tda4vm-linux-kernel-problem-with-quad-cameras

器件型号:TDA4VM

您好!

我们在 Linux 系统上遇到了 MIPI CSI 问题。

我们在 tp2855解码器上连接了单声道摄像头(1280x720@30)、这是一个四摄像头视频解码器、在进行流式传输时卡住。

我们检查了中断表、该表在使用 yavta 从摄像头捕获视频时增加了 DMA 控制器通道1上的2个中断。

我们在 MIPI 时钟上测量了2个脉冲、tp2855始终发送 MIPI 数据(D0-D3)。

MIPI 时钟只有2个脉冲、其他什么也没有。

MIPI 数据

注册 v4l2控件 V4L2_CID_LINK_FREQ 时、哪个链接频率正确

我们跟踪 Cadence csi2rx 和 mipi-dphy 驱动器、并知道 hs_clk_rate 是相等的链路频率。

并研究《技术参考手册》中的以下信息。

它是否意味着最大链路频率为312.5MHz

CSI_RX_BYTE_CLK 是否等于 MIPI 时钟?

我们计算出了720p@30MIPI 时钟

1650 (V TOTAL)* 750 (H TOTAL)* 30fps * 16位(YUV)/ 4通道/ 2 = 74.25MHz

但 tp2855时钟通道频率支持如下表所示。

我们尝试设置的链路频率为297M594M、流式传输仍然受阻。

我们如何解决这个问题?

我们的产品应该在 Linux 系统上支持四摄像头,但我们知道,9月 TI FAE 和以下 E2E 主题将支持多个摄像头。 我们目前使用的版本是08.01.00.07

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1065772/tda4vm-tda4-linux-kernel-camera-problem

您能否提供多摄像头补丁以尽快解决问题

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

    您好!

    TP2855是一款 HD/SD 视频解码器、支持来自 Techpoint 的 HD-TVI 视频、NTSC/PAL CVBS 视频和通用 HD 模拟视频格式解码。 它支持多达4个通道输入和一个 MIPI-CSI2输出。

    我们已将 TP2855驱动程序移植到 TDA4 PSDK Linux、并遇到了以下有关 MIPI-CSI2的问题。

    • PSDK Linux 08.01.00.07是否支持从 V4l2视频设备文件输出的4通道虚拟通道? 如果不是、哪个发布版本将支持它、或者您能否尽快向我们提供该补丁? 我们的产品必须在今年年底发布、应用的开发取决于4通道视频输入。
    • 我们尝试使用单通道视频输入并测试我们的 TP2855驱动器、遇到了上述问题。 我们希望澄清有关 TDA4 CSI RX 的一些问题。
      1. CSI_RX_BYTE_CLK 是否意味着时钟通道的时钟速率(以 Hz 为单位)?
      2. 最大 MIPI 时钟速率是否为312.5MHz?
      3. 将我们的 TP2855驱动器与 CSI RX 驱动器集成时需要注意什么? 通过 V4L2_CID_LINK_FREQ 提供链接频率是否足够?
      4.  CSIRX 是否可能影响 CSI TX 的时钟传输?

    谢谢

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

    您好!

    TP2855寄存 MIPI CSI 时钟速率为每通道297MHz4通道4通道输出。

    TDA4VM 通过 v4l2注册了链接 FREQ、为297000000

    但 TDA4VM 无法通过 v4l2从 MIPI CSI 捕获数据。

    TP2855已经在下方测量了 CSI 数据(D0-D3)和 CSI 时钟。

    TP2855侧时钟 N

    TP2855侧面 D0 N

    TDA4侧时钟 N

    TDA4侧 D0 N

    任何解决方案都可以验证 TDA4VM MIPI CSI 状态(寄存器或其他器件)。

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

    与此问题相关、此处还有另一个 E2E 主题、它提供了一些可用于进一步调试的更多详细信息:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1100442/sk-tda4vm-how-to-implement-quad-camera-driver-on-csi-interface 

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

    您好!

    [引用 userid="524265" URL"~/support/processors/group/processors/f/processors-forum/1108113/tda4vm-linux-kernel-problem-problem-with -quad-camera/4108967#4108967"]PSDK Linux 08.01.00.07是否支持从 V4l2视频设备文件输出的4通道虚拟通道? 如果不是、哪个发布版本将支持它、或者您能否尽快向我们提供该补丁? 我们的产品必须在今年年底发布、应用程序的开发取决于4通道视频输入。

    请在此处查找支持 Linux 中 CSI 多摄像头方案的分支 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-linux-5.10.y
    您可以克隆并使用此内核。
    请您与此分行核实一下吗?

    [引用 userid="524265" URL"~/support/processors/group/processors/f/processors-forum/1108113/tda4vm-linux-kernel-problem-problem-with quad-camerics/4108967#4108967"]
    • CSI_RX_BYTE_CLK 是否意味着时钟通道的时钟速率(以 Hz 为单位)?
    • 最大 MIPI 时钟速率是否为312.5MHz?
    • 将我们的 TP2855驱动器与 CSI RX 驱动器集成时需要注意什么? 通过 V4L2_CID_LINK_FREQ 提供链接频率是否足够?
    •  CSIRX 是否可能影响 CSI TX 的时钟传输?
    [/报价]

    这是从时钟输入生成的字节时钟

    2.是的、 支持的最大频率为2.5GHz、因此2.5G/8为312.5MHz。

    3、 是的、需要 V4L2_CID_LINK_FREQ。 它还应具有像 s_stream 这样的基本 v4l2 subdev 调用、以便可以启用流。

    不是,两者都是独立的。


    此致、
    Nikhil

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

    您好、Nikhil、

    我们检查了 Linux 内核08.01.00.07上的寄存器 CSI_RX_IF_VBUS2APB_STREAM0_STATUS 和 CSI_RX_IF_VBUS2APB_ERROR_IRQ (提交278e94c91409146ecc7396495051d020bf06d7cb)

    但是、当使用 yavta 从 TP2855 (/dev/video2)捕获视频时、我们在下面获得了一些错误信息。

    1.为什么流启用但等待控制数据?

    2.为什么寄存器对配置进行无效访问? 配置是什么?

    3.如果我们将内核升级到最新版本,它是否会解决单声道摄像头问题(4通道4通道)?

    对此,

    Justin

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

    您好,

    启用流后、流始终卡住。

    我们验证了以下寄存器并获得了一些信息。

    1. 在地址 0x04504104 (0xff92fdd104)处读取:0x80000111 (CSI_RX_IF_VBUS2APB_STREAM0_STATUS)

    流已启用(运行状态)和就绪状态(指示该流的反推信号 PIXEL_READY_IF 的状态)

    流 FSM 状态的输出:1:STRED_WAIT_CTRL_DATA //接下来需要控制数据

    流 FSM 状态的输入:1:Prot_WAIT_CTRL

    1. 在地址 0x04504028 (0xff92b19028)上读取:0x00001141 (CSI_RX_IF_VBUS2APB_ERROR_IRQ)

    已收到截断的标头[短或长]

    对配置寄存器空间的访问无效。

    ECC 错误已被检测到并纠正。

    在 DPHY 通道管理和协议块之间的重新同步 FIFO 中检测到溢出。如果 sys_clk 不够快、则会发生这种情况、并且由于字节时钟频率是固定的、因此应增大此值

    1. 在地址 0x04504008 (0xffffff814008)上读取:0x43210400 (CSI_RX_IF_VBUS2APB_STATIC_CFG)

    根据 CSI2RX v1.3、默认设置为最多4个虚拟通道[3位]

    1. 在地址 0x04504060 (0xff9971f060)上读取:0x10000000 (CSI_RX_IF_VBUS2APB_integration_debug)

    csi2rx_FSM_state:WAIT_for_packet

    1. 在地址 0x04504020 (0xffffff9679020)上读取:0x00000030 (CSI_RX_IF_VBUS2APB_INFO_IRQ)

    时钟或任何数据台均已进入校直

    表示不符合 MIPI 规范、但内核将继续正常运行。

    1. 在地址 0x0450410C (0xffffff8d4210c)上读取:0x00000100 (CSI_RX_IF_VBUS2APB_STREAM0_CFG)

    FIFO_MODE:01:大缓冲器[控制填充级别]。

    我们发现了当 LS 到 HS 模式时的 TP2855问题。

    无效信号应在 HS 稳定时间上、因为它无法解决硬件上的问题。

    首先、解码 MIPI CSI 数据是否会影响 TDA4VM?

    TP2855可通过 MIPI CSI Alliance 调整 TLPX、THS 制备和 THS 零。

    第二、我们如何调整时序以满足 TDA4VM 的预期?

    最后、TDA4VM 上的 HS-SETTLE 默认值(ns)是什么?

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

    问题变为:"在哪里在  CSI2-RX D-PHY 中配置 TDA4VM HS-SETTLE 时间?"

    以下是 Jacinto 6中的 HS-SETTLE 时间寄存器、但在 TDA4VM 中找不到类似的寄存器:

    您能否告诉我们、用于设置 THS_SETTLE 时序参数的 TDA4VM CSI-2 D-PHY 寄存器在哪里?
     THS_SETTLE 的值单位是多少?

    谢谢你。