主题中讨论的其他器件:AM62P、
工具与软件:
大家好、专家:
我们现在不能从摄像机中提取视频流,我们想读取寄存器来确认 csirx 状态,我们应该读取哪个寄存器? 您能否提供读取指令?
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.
工具与软件:
大家好、专家:
我们现在不能从摄像机中提取视频流,我们想读取寄存器来确认 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 进行了任何更改?
尊敬的 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:时会发生此错误

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

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


我希望这些信息有助于您分析这一问题。
最后我还有一个问题、如何检查 SOC?下的 DPHY 速率配置
此致
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)。


该函数似乎正在检测 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"]
该函数中有以下调用关系: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]