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-AM62P-LP:如何检查 csirx 状态

Guru**** 2482225 points
Other Parts Discussed in Thread: AM62P, SK-AM62P-LP

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1437802/sk-am62p-lp-how-do-i-check-the-csirx-status

器件型号:SK-AM62P-LP
主题中讨论的其他器件:AM62P

工具与软件:

大家好、专家:

我们现在不能从摄像机中提取视频流,我们想读取寄存器来确认 csirx 状态,我们应该读取哪个寄存器?  您能否提供读取指令?

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

    尊敬的 Qinghong:

    您可以使用 devmem2来读取寄存器。  例如、

    • 读取 INFO_IRQ 寄存器:devmem2 0x30101020 w
    • 读取 STREAM0_STATUS 寄存器:devmem2 0x30101104 w
    • 读取 D-PHY 通道寄存器:devmem2 0x30111000 w

    此致、

    建中

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

    建中大家好:

    这是 csirx、无法提取流:

    这是提取流的 csirx:

    有时终端会显示以下错误:

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

    尊敬的建中:

    这是大多数时候推送流失败的系统日志:

    e2e.ti.com/.../3580.kernel_2D00_log.txt

    此致

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

    尊敬的 Qinghong:

    我在您的日志中看到了以下错误。

    请查看此常见问题解答以调试此类错误: CSI 传感器无法在 V4L2环境中进行探测的常见原因是什么?

    谢谢你。

    建中

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

    尊敬的建中:

    我参考了您提供的此常见问题解答、检查了器件树中 CSI 的节点配置、并且 CSI 驱动器的探测过程都运行正常:

    root@Linux:~# dmesg | grep csi
    [    0.164583] i2c 1-0027: Fixed dependency cycle(s) with /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000
    [    5.694462] ds90ub960 1-0027: Fixed dependency cycle(s) with /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000
    [    5.694805] platform 30101000.csi-bridge: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27
    [    6.222776] cdns-csi2rx 30101000.csi-bridge: Probed CSI2RX with 4/4 lanes, 4 streams, external D-PHY
    [    8.730890] cdns-csi2rx 30101000.csi-bridge: Failed to configure external DPHY: -110
    root@Linux:~#
    root@Linux:~# dmesg | grep imx219
    [    5.956159] i2c 1-0040: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27/links/link@0/serializer/i2c/imx219_0@10
    [    5.956633] i2c 1-0045: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27/links/link@1/serializer/i2c/imx219_1@10
    [    5.958709] i2c 1-0046: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27/links/link@2/serializer/i2c/imx219_2@10
    [    5.959286] i2c 1-0047: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27/links/link@3/serializer/i2c/imx219_3@10
    [    6.289522] ds90ub953 1-0040: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27/links/link@0/serializer/i2c/imx219_0@10
    [    6.303178] ds90ub953 1-0045: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27/links/link@1/serializer/i2c/imx219_1@10
    [    6.312726] ds90ub953 1-0046: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27/links/link@2/serializer/i2c/imx219_2@10
    [    6.320231] ds90ub953 1-0047: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/deser@27/links/link@3/serializer/i2c/imx219_3@10
    root@Linux:~# dmesg | grep cdns
    [    6.222776] cdns-csi2rx 30101000.csi-bridge: Probed CSI2RX with 4/4 lanes, 4 streams, external D-PHY
    [    8.730862] cdns-mipi-dphy-rx 30110000.phy: DPHY wait for lane ready timeout
    [    8.730890] cdns-csi2rx 30101000.csi-bridge: Failed to configure external DPHY: -110
    root@Linux:~#
    root@Linux:~#
    root@Linux:~#
    root@Linux:~# i2cdetect -l
    i2c-0   i2c             OMAP I2C adapter                        I2C adapter
    i2c-1   i2c             OMAP I2C adapter                        I2C adapter
    i2c-2   i2c             OMAP I2C adapter                        I2C adapter
    i2c-3   i2c             i2c-1-atr-0                             I2C adapter
    i2c-4   i2c             i2c-1-atr-1                             I2C adapter
    i2c-5   i2c             i2c-1-atr-2                             I2C adapter
    i2c-6   i2c             i2c-1-atr-3                             I2C adapter
    root@Linux:~#
    root@Linux:~# i2cdetect -y -r 4
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- -- -- -- --
    10: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    但当我们调用 v4l2工具从相机获取图像数据时,它会报告以下错误:

    [   12.063972] cdns-mipi-dphy-rx 30110000.phy: DPHY wait for lane ready timeout
    [   12.071057] cdns-csi2rx 30101000.csi-bridge: Failed to configure external DPHY: -110
                    VIDIOC_STREAMON returned -1 (Connection timed out)
    

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

    您仍有此错误:

    cdns-csi2rx 30101000.csi-bridge:无法配置外部 DPHY:-110。

    这表明 CSI 接收器中的 D-PHY 有问题。

    您使用的是 SK-AM62P-LP 还是您的定制电路板? 您是否对 SDK 进行了任何更改?  

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

    你好、建中、

    我们使用的是代价高昂的电路板。  我们将串行器和摄像头的驱动程序添加 到了 Linux 内核、、并将器件节点添加到了器件树中。

    此误差:

    cdns-csi2rx 30101000.csi-bridge:无法配置外部 DPHY:-110。

    此错误仅在 系统 成功启动后、我尝试通过 v4l2从摄像头获取图像数据时发生。 这种错误是偶然的。

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

    尊敬的 Qinghong:

    此函数 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/media/platform/cadence/cdns-csi2rx.c?h=ti-linux-6.6.y#n193中发生了故障。 您能否向该函数添加一些调试信息、并查看哪个函数调用导致了问题?

    此致、

    建中

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

    尊敬的建中:

    根据您的建议、我已将 一些调试信息添加到该函数、、并且我发现在调用 phy_configure:时会发生此错误

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/media/platform/cadence/cdns-csi2rx.c?h=ti-linux-6.6.y#n242。

    我复制了错误、当我执行 v4l2-ctl 从相机中获取图像数据时、我添加的调试消息会出现在内核的日志中:

     此外、我发现在调用 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/phy/cadence/cdns-dphy-rx.c?h=ti-linux-6.6.y#n169中的函数时会出现错误"cdns-mipi-dphy-rx 3011000.phy:DPHY 等待通道就绪超时"

    该函数中有以下调用关系:cdns_dphy_rx_wait_lan_ready -> cdns_dphy_rx_wait_for_bit。 通过添加一些调试信息、我发现执行函数"cdns_dphy_rx_wait_for_bit"导致了此错误:

    我希望这些信息有助于您分析这一问题。

    最后我还有一个问题、如何检查 SOC?下的 DPHY 速率配置

    此致

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

    你好、建中、

    这个问题对于我们的项目开发非常关键、因此我想请您尽快帮助我们分析这个问题。

    此致

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

    Bruce、您好!

    似乎读取"通道就绪位"失败。 我怀疑这是硬件问题。 让我让我们的硬件团队帮忙。

    您是否可以共享"media-ctl -p "日志、以防软件方面出现问题?

    此致、

    建中

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

    Bruce、您好!

    "media-ctl -p"看起来不错。 您能否检查是否可以使用"devmem2"读取以下 DPHY 寄存器? 例如、devmem2 0x30101040 w

    我在 TRM 中找不到包含通道就绪位的寄存器。 我已请求我们的硬件团队提供帮助。 请耐心等待。

    同时,你能在函数 cdns_dphy_rx_wait_lan_ready()中添加一些调试代码,并找出函数 cdns_dphy_rx_wait_for_bit()尝试读取的寄存器地址吗? 然后查看是否可以使用 devmem2来读取寄存器。

    谢谢你。

    建中

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

    你好、建中、

    我比较了视频流正常和异常状态下的寄存器值、确实存在差异:μ V

    正确状态:

    错误状态:

    您能否将一些调试代码添加到函数 cdns_dphy_rx_wait_lan_ready()、并找出函数 cdns_dphy_rx_wait_for_bit ()尝试读取的寄存器地址?

    由于驱动程序函数中的寄存器是映射的虚拟地址、因此我找不到函数试图读取。的确切物理地址

    我在 TI 论坛上引用了该问题、然后根据函数中的参数和地址偏移、推断出了概率
    DPHY_ISO_DL_CTRL_L (0x30110c10)。

    请参阅:https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1377891/am62a7-q1-csi2rx-what-s-the-best-way-to-bring-up-a-new-sensor/5332459#5332459:~:text=Could%20you%20tell,in%20DPHY_ISO_DL_CTRL_L%C2%A0(0x30110c10)

    该函数似乎正在检测 DPHY_ISO_CL_CTRL_L。的位[0]

     DPHY_ISO_CL_CTRL_L 的值:

    在正常状态和异常状态下读取的值相同。μ V

    我注意到另一条错误消息:

    在驱动程序中检查 PHY 时、PHY 甚至看起来不存在!  

    此致

    Bruce

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

    Bruce、您好!

    在检查驱动程序中的 PHY 时、PHY 似乎根本不存在!  [报价]

    我想您可能在查看一个错误的文件。  超时错误发生 在以下函数调用中: git.ti.com/.../phy-core.c、它主要是以下函数: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/phy/cadence/cdns-dphy-rx.c?h=ti-linux-6.1.y#n168

    错误代码"-110"是超时错误: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/include/uapi/asm-generic/errno.h?h=ti-linux-6.1.y#n93。

    为了帮助调试超时原因、您可以修改此函数 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/phy/cadence/cdns-dphy-rx.c?h=ti-linux-6.1.y#n128来 查看哪个通道导致超时? 是时钟通道还是任何数据通道?  

    谢谢你。

    建中

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

    你好、建中、

    为了帮助调试超时的原因、您可以修改此函数 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/phy/cadence/cdns-dphy-rx.c?h=ti-linux-6.1.y#n128 并查看哪个通道导致超时? 是时钟通道还是任何数据通道?  [报价]

    我已经回答了上面的问题、我添加了一些调试信息、并找到了时钟通道:配置中报告错误的位置

    [报价 userid="620517" url="~/support/processors-group/processors/f/processors-forum/1437802/sk-am62p-lp-how-do-i-check-the-csirx-status/5522505 #5522505"]

     此外、我发现在调用 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/phy/cadence/cdns-dphy-rx.c?h=ti-linux-6.6.y#n169中的函数时会出现错误"cdns-mipi-dphy-rx 3011000.phy:DPHY 等待通道就绪超时"

    该函数中有以下调用关系:cdns_dphy_rx_wait_lan_ready -> cdns_dphy_rx_wait_for_bit。 通过添加一些调试信息、我发现执行函数"cdns_dphy_rx_wait_for_bit"导致了此错误:

    [报价]

    我已经在上面回复了一些相关寄存器值、我希望这些值可以帮助您分析这个问题。

     我现在拥有的 AM62P 数据表没有这些寄存器的详细定义、看起来您没有向公众发布这些寄存器的定义。

    这是寄存器在异常状态下的值:

    NORMAL 状态:

    此致

    Bruce

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
     我现在拥有的 AM62P 数据表中没有关于这些寄存器的详细定义、似乎您没有向公众发布这些寄存器的定义。

    你是对的。 这就是为什么我向我们的硬件团队寻求支持的原因。  

    这是异常状态下的寄存器值:

    您是说您的系统有时会工作、但错误并非始终发生? 工作案例和非工作案例之间有何区别?  

    目前、我们使用的 是 Max96724解串器、mipi 的速率带宽设置为2.1G、4路300万 像素照相机、每秒30帧图像。

    您是说您的解串器配置为每个摄像头2.1Gbps?

    如果您在 YUV422输出(16位/像素)下运行四个3M 摄像头@ 30fps、则总 CSI 数据速率为: 1920x1536x16*30x1.2 (假设开销为20%)= 6.8Gbps、高于 AM62P 上的典型 CSI 带宽(每通道1.5Gbps、总速率为6Gbps)。 SK-AM62P-LP 可能不支持此6.8Gbps 速率。 我需要进行内部检查。

    此致、

    建中

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

    你好、建中、

    您的意思是您的系统有时工作、但错误并非始终发生? 工作案例和非工作案例之间有何区别?  [报价]

    这里描述的正常或异常状态特定于视频流是否可以正确传输、以及我们是否可以看到图像正常流出。当它不能正常工作时,它会报告我们上面提到的错误,然后整个视频流链接将中断,永远不会再正确传输。

    您是说您的解串器配置为每台摄像机2.1Gbps 吗?

    解串器 MIPI 数据通道的速率设置为2G。

    我还在咨询我们的摄像头模块同事、看看摄像头传感器的速率是否过高。

    此致、

    Bruce

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

    Bruce、您好!

     正常和异常状态是否 随机发生? 硬件设置和软件在这两种情况下是否相同? 在这种情况下、可能是 SK-AM62P-LP 板上的 CSI 带宽受限所致。

    此致、

    建中

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

    你好、建中、

    是的、它在相同的硬件和软件配置下随机发生。  我们还在尝试降低摄像头的速率配置和带宽配置、以将总带宽值保持在 AM62P 的 CSI 最大带宽限制范围内。

    我们将在测试它后提供结果。

    此致

    Bruce

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

    尊敬的建中:

    向您更新此案例的最新状态:

    1.根据会议的一致性,通过将寄存器从1.5GHz 改为2.0GHz 来改变 CSIRX 带宽;

    2.将相机数据速率 从 3M*30改为2.5M*25;

    3. PHY 初始化延迟从100ms 到200ms (不确定这一变化);

    应用所有三项更改、客户已经进行了两天的测试、到目前为止效果良好。

    BR、

    Biao  

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

    Biao、

    感谢您的更新。 最后、我将在下周尝试使用 FPD-Link IV 串行器/解串器测试每通道>1.5Gbps。

    此致、

    建中