Dear Community,
We are facing a critical issue with custom iMX8MP based hardware comprising CPU/SoM board + Baseboard and dual camera board. With the same firmware (including same camera driver), we observe that :
1. Some combo works 10/10 with the the launching of individual pipeline of the dual camera configuration (i.e we tested 2 pipelines, each at a time).
2. Some combo works 9/10 or 10/10 for the 1st pipeline, 6/10 or 7/10 for the second pipeline.
3. Most of the rest of the hardware combo do not work at all.
We already ruled out the cause of :
a. Shared MCLK by adding a 24MHz oscillator fo each,
b. The incorrect power sequence of the sensor,
c. The timing of the power down signal of the sensor
Observation :
1. In the case of successful gst-launch (working) :
a. There was initial "Lost Frame Start Error" :
[ 3110.715703] enter jxf355_query_supports
[ 3110.715727] enter jxf355_get_clk
[ 3110.715737] enter jxf355_set_sensor_mode
[ 3110.715744] jxf355_set_sensor_mode: Setting mode 0
[ 3110.715749] enter jxf355_get_sensor_mode
[ 3110.715755] enter jxf355_query_supports
[ 3110.715867] enter isp_mi_stop
[ 3110.721285] enter jxf355_set_fmt
[ 3110.742698] enter jxf355_write_reg_arry
[ 3110.840174] jxf355_set_fmt: sync. registers before : 0xa7=00; 0x1e=04; 0x80=22
[ 3110.852305] jxf355_set_fmt: sync. registers after : 0xa7=04; 0x1e=1c; 0x80=22
[ 3110.852311] enter jxf355_get_format_code
[ 3110.852318] jxf355_set_fmt: sensor format = {.width=1920, .height=1080, .code=3007}
[ 3110.852338] enter jxf355_set_test_pattern
[ 3110.852343] jxf355_set_test_pattern: disabled
[ 3110.852368] enter jxf355_set_fps(fps=30720)
[ 3110.861377] jxf355_set_fps : current frame length: 1126, current line length: 1280
[ 3110.868971] enter jxf355_get_sensor_mode
[ 3110.869204] enter jxf355_set_exp(exp=151)
[ 3110.875656] enter jxf355_set_gain(gain=4096)
[ 3110.875820] mxc-mipi-csi2.0: fmt: 0x2008, 1920 x 1080
[ 3110.875916] mxc-mipi-csi2.0: csis_s_hdr: 0
[ 3110.876017] enter isp_s_comp
[ 3110.878926] enter isp_s_comp
[ 3110.881808] enter isp_s_comp
[ 3110.884802] mxc-mipi-csi2.0: mipi_csis_s_stream: 1, state: 0x0
[ 3110.884830] mxc-mipi-csi2.0: fmt: 0x2008, 1920 x 1080
[ 3110.884865] mxc-mipi-csi2.0: Lost Frame Start Error: 1
[ 3110.884869] mxc-mipi-csi2.0: status: 00001000
[ 3110.884896] mxc-mipi-csi2.0: Lost Frame Start Error: 2
[ 3110.884899] mxc-mipi-csi2.0: status: 00001000
[ 3110.884929] mxc-mipi-csi2.0: Lost Frame Start Error: 3
[ 3110.884932] mxc-mipi-csi2.0: status: 00001000
[ 3110.884962] mxc-mipi-csi2.0: Lost Frame Start Error: 4
[ 3110.884965] mxc-mipi-csi2.0: status: 00001000
[ 3110.884995] mxc-mipi-csi2.0: Lost Frame Start Error: 5
[ 3110.885000] mxc-mipi-csi2.0: status: 00001000
[ 3110.885028] mxc-mipi-csi2.0: Lost Frame Start Error: 6
[ 3110.885031] mxc-mipi-csi2.0: status: 00001000
[ 3110.885062] mxc-mipi-csi2.0: Lost Frame Start Error: 7
[ 3110.885064] mxc-mipi-csi2.0: status: 00001000
[ 3110.885095] mxc-mipi-csi2.0: Lost Frame Start Error: 8
[ 3110.885098] mxc-mipi-csi2.0: status: 00001000
[ 3110.885128] mxc-mipi-csi2.0: Lost Frame Start Error: 9
[ 3110.885134] mxc-mipi-csi2.0: status: 00001000
[ 3110.885162] mxc-mipi-csi2.0: Lost Frame Start Error: 10
[ 3110.885166] mxc-mipi-csi2.0: status: 00001000
[ 3110.885196] mxc-mipi-csi2.0: Lost Frame Start Error: 11
[ 3110.885199] mxc-mipi-csi2.0: status: 00001000
[ 3110.885230] mxc-mipi-csi2.0: Lost Frame Start Error: 12
[ 3110.885233] mxc-mipi-csi2.0: status: 00001000
[ 3110.885262] mxc-mipi-csi2.0: Lost Frame Start Error: 13
Then Lost Frame Start Error disappears :
[ 3110.899829] mxc-mipi-csi2.0: Lost Frame Start Error: 450
[ 3110.899833] mxc-mipi-csi2.0: status: 00001000
[ 3110.899862] mxc-mipi-csi2.0: Lost Frame Start Error: 451
[ 3110.899866] mxc-mipi-csi2.0: status: 00001000
[ 3110.899896] mxc-mipi-csi2.0: Lost Frame Start Error: 452
[ 3110.899900] mxc-mipi-csi2.0: status: 00001000
[ 3110.899930] mxc-mipi-csi2.0: Frame End: 1
[ 3110.899935] mxc-mipi-csi2.0: status: 00100000
[ 3110.901430] mxc-mipi-csi2.0: Frame Start: 1
[ 3110.901433] mxc-mipi-csi2.0: status: 01000000
[ 3110.902414] mxc-mipi-csi2.0: --- mipi_csis_s_stream ---
[ 3110.902420] mxc-mipi-csi2.0: CSIS_VERSION[0]: 0x03060301
[ 3110.902424] mxc-mipi-csi2.0: CSIS_CMN_CTRL[4]: 0x00004905
[ 3110.902427] mxc-mipi-csi2.0: CSIS_CLK_CTRL[8]: 0x000f0000
[ 3110.902433] mxc-mipi-csi2.0: CSIS_INTMSK[10]: 0x0fffff1f
[ 3110.902437] mxc-mipi-csi2.0: CSIS_INTSRC[14]: 0x00000000
[ 3110.902440] mxc-mipi-csi2.0: CSIS_DPHYSTATUS[20]: 0x000000c0
[ 3110.902443] mxc-mipi-csi2.0: CSIS_DPHYCTRL[24]: 0x05000007
[ 3110.902447] mxc-mipi-csi2.0: CSIS_DPHYBCTRL_L[30]: 0x000001f4
[ 3110.902451] mxc-mipi-csi2.0: CSIS_DPHYBCTRL_H[34]: 0x00000000
[ 3110.902455] mxc-mipi-csi2.0: CSIS_DPHYSCTRL_L[38]: 0x00000000
[ 3110.902461] mxc-mipi-csi2.0: CSIS_DPHYSCTRL_H[3c]: 0x00000000
[ 3110.902467] mxc-mipi-csi2.0: CSIS_ISPCONFIG_CH0[40]: 0x000000ac
[ 3110.902471] mxc-mipi-csi2.0: CSIS_ISPCONFIG_CH1[50]: 0x000008fd
[ 3110.902474] mxc-mipi-csi2.0: CSIS_ISPCONFIG_CH2[60]: 0x000008fe
[ 3110.902477] mxc-mipi-csi2.0: CSIS_ISPCONFIG_CH3[70]: 0x000008ff
[ 3110.902480] mxc-mipi-csi2.0: CSIS_ISPRESOL_CH0[44]: 0x04380780
[ 3110.902486] mxc-mipi-csi2.0: CSIS_ISPRESOL_CH1[54]: 0x80008000
[ 3110.902489] mxc-mipi-csi2.0: CSIS_ISPRESOL_CH2[64]: 0x80008000
[ 3110.902493] mxc-mipi-csi2.0: CSIS_ISPRESOL_CH3[74]: 0x80008000
[ 3110.902496] mxc-mipi-csi2.0: CSIS_ISPSYNC_CH0[48]: 0x00000000
[ 3110.902500] mxc-mipi-csi2.0: CSIS_ISPSYNC_CH1[58]: 0x00000000
[ 3110.902503] mxc-mipi-csi2.0: CSIS_ISPSYNC_CH2[68]: 0x00000000
[ 3110.902509] mxc-mipi-csi2.0: CSIS_ISPSYNC_CH3[78]: 0x00000000
[ 3110.902512] mxc-mipi-csi2.0: --- mipi_csis_s_stream ---
[ 3110.902519] mxc-mipi-csi2.0: GPR_GASKET_0_CTRL[60]: 0xffff8000
[ 3110.902523] mxc-mipi-csi2.0: GPR_GASKET_0_HSIZE[64]: 0xffff8000
[ 3110.902526] mxc-mipi-csi2.0: GPR_GASKET_0_VSIZE[68]: 0xffff8000
[ 3110.902926] enter wdr3_hw_init
[ 3110.905985] wdr3 res: 1920 1080
[ 3110.909254] [RT7] wdr3_hw_init: Force WDR3 disabled by default
[ 3110.915126] [RT7] isp_enable_wdr3: Force WDR3 disabled in all cases
[ 3110.921933] enter isp_mi_start
[ 3110.925443] enter jxf355_s_stream
[ 3110.927603] jxf355_set_tpg: unsupported pattern -1
[ 3110.937470] mxc-mipi-csi2.0: Frame End: 2
[ 3110.937476] mxc-mipi-csi2.0: status: 00100000
[ 3110.938964] mxc-mipi-csi2.0: Frame Start: 2
[ 3110.938968] mxc-mipi-csi2.0: status: 01000000
[ 3110.975003] mxc-mipi-csi2.0: Frame End: 3
[ 3110.975010] mxc-mipi-csi2.0: status: 00100000
[ 3110.976499] mxc-mipi-csi2.0: Frame Start: 3
[ 3110.976503] mxc-mipi-csi2.0: status: 01000000
[ 3110.985430] enter jxf355_set_exp(exp=112)
[ 3111.012535] mxc-mipi-csi2.0: Frame End: 4
[ 3111.012541] mxc-mipi-csi2.0: status: 00100000
[ 3111.014031] mxc-mipi-csi2.0: Frame Start: 4
[ 3111.014035] mxc-mipi-csi2.0: status: 01000000
[ 3111.050075] mxc-mipi-csi2.0: Frame End: 5
[ 3111.050084] mxc-mipi-csi2.0: status: 00100000
[ 3111.051584] mxc-mipi-csi2.0: Frame Start: 5
[ 3111.051598] mxc-mipi-csi2.0: status: 01000000
[ 3111.087897] mxc-mipi-csi2.0: Frame End: 6
[ 3111.087906] mxc-mipi-csi2.0: status: 00100000
[ 3111.089451] mxc-mipi-csi2.0: Frame Start: 6
[ 3111.089474] mxc-mipi-csi2.0: status: 01000000
[ 3111.125139] mxc-mipi-csi2.0: Frame End: 7
[ 3111.125150] mxc-mipi-csi2.0: status: 00100000
[ 3111.126995] mxc-mipi-csi2.0: Frame Start: 7
[ 3111.127013] mxc-mipi-csi2.0: status: 01000000
[ 3111.162959] mxc-mipi-csi2.0: Frame End: 8
[ 3111.162966] mxc-mipi-csi2.0: status: 00100000
[ 3111.164521] mxc-mipi-csi2.0: Frame Start: 8
[ 3111.164539] mxc-mipi-csi2.0: status: 01000000
[ 3111.177435] enter jxf355_set_exp(exp=83)
[ 3111.200504] mxc-mipi-csi2.0: Frame End: 9
[ 3111.200510] mxc-mipi-csi2.0: status: 00100000
[ 3111.201695] mxc-mipi-csi2.0: Frame Start: 9
[ 3111.201699] mxc-mipi-csi2.0: status: 01000000
[ 3111.238048] mxc-mipi-csi2.0: Frame End: 10
[ 3111.238055] mxc-mipi-csi2.0: status: 00100000
[ 3111.239520] mxc-mipi-csi2.0: Frame Start: 10
[ 3111.239526] mxc-mipi-csi2.0: status: 01000000
[ 3111.275572] mxc-mipi-csi2.0: Frame End: 11
[ 3111.275579] mxc-mipi-csi2.0: status: 00100000
...
[ 3112.401260] mxc-mipi-csi2.0: Frame End: 41
[ 3112.401266] mxc-mipi-csi2.0: status: 00100000
[ 3112.403064] mxc-mipi-csi2.0: Frame Start: 41
[ 3112.403070] mxc-mipi-csi2.0: status: 01000000
[ 3112.439073] mxc-mipi-csi2.0: Frame End: 42
[ 3112.439079] mxc-mipi-csi2.0: status: 00100000
[ 3112.440288] mxc-mipi-csi2.0: Frame Start: 42
[ 3112.440292] mxc-mipi-csi2.0: status: 01000000
[ 3112.472710] mxc-mipi-csi2.0: mipi_csis_s_stream: 0, state: 0x0
[ 3112.472725] mxc-mipi-csi2.0: Frame End events: 42
[ 3112.477431] mxc-mipi-csi2.0: Frame Start events: 42
[ 3112.482307] mxc-mipi-csi2.0: Non-image data after odd frame events: 0
[ 3112.488747] mxc-mipi-csi2.0: Non-image data before odd frame events: 0
[ 3112.495273] mxc-mipi-csi2.0: Non-image data after even frame events: 0
[ 3112.501798] mxc-mipi-csi2.0: Non-image data before even frame events: 0
[ 3112.508411] mxc-mipi-csi2.0: Unknown Error events: 0
[ 3112.513374] mxc-mipi-csi2.0: CRC Error events: 0
[ 3112.517989] mxc-mipi-csi2.0: ECC Error events: 0
[ 3112.522604] mxc-mipi-csi2.0: FIFO Overflow Error events: 0
[ 3112.528088] mxc-mipi-csi2.0: Lost Frame End Error events: 0
[ 3112.533659] mxc-mipi-csi2.0: Lost Frame Start Error events: 452
[ 3112.539576] mxc-mipi-csi2.0: SOT Error events: 0
[ 3112.563200] enter jxf355_s_stream
[ 3112.565458] enter jxf355_get_clk
[ 3112.570500] enter isp_mi_stop
2. In the case of unsuccessful gst-launch (not working) :gst-launch is pending and nothing (neither errors not status) is received :
[ 332.732628] enter jxf355_query_capability
[ 332.772212] enter isp_mi_stop
[ 332.911221] enter jxf355_query_supports
[ 332.911247] enter jxf355_get_clk
[ 332.911259] enter jxf355_set_sensor_mode
[ 332.911265] jxf355_set_sensor_mode: Setting mode 0
[ 332.911272] enter jxf355_get_sensor_mode
[ 332.911281] enter jxf355_query_supports
[ 332.911406] enter isp_mi_stop
[ 332.916892] enter jxf355_set_fmt
[ 332.940073] enter jxf355_write_reg_arry
[ 333.025824] jxf355_set_fmt: sync. registers before : 0xa7=00; 0x1e=04; 0x80=22
[ 333.043601] jxf355_set_fmt: sync. registers after : 0xa7=00; 0x1e=18; 0x80=a2
[ 333.043607] enter jxf355_get_format_code
[ 333.043613] jxf355_set_fmt: sensor format = {.width=1920, .height=1080, .code=3007}
[ 333.043634] enter jxf355_set_test_pattern
[ 333.043639] jxf355_set_test_pattern: disabled
[ 333.043663] enter jxf355_set_fps(fps=30720)
[ 333.070910] jxf355_set_fps : current frame length: 1126, current line length: 1280
[ 333.078559] enter jxf355_get_sensor_mode
[ 333.078819] enter jxf355_set_exp(exp=151)
[ 333.086716] enter jxf355_set_gain(gain=4096)
[ 333.086888] mxc-mipi-csi2.1: fmt: 0x2008, 1920 x 1080
[ 333.086987] mxc-mipi-csi2.1: csis_s_hdr: 0
[ 333.087090] enter isp_s_comp
[ 333.090099] enter isp_s_comp
[ 333.093027] enter isp_s_comp
[ 333.096137] mxc-mipi-csi2.1: mipi_csis_s_stream: 1, state: 0x0
[ 333.096168] mxc-mipi-csi2.1: fmt: 0x2008, 1920 x 1080
[ 333.116069] mxc-mipi-csi2.1: --- mipi_csis_s_stream ---
[ 333.116078] mxc-mipi-csi2.1: CSIS_VERSION[0]: 0x03060301
[ 333.116083] mxc-mipi-csi2.1: CSIS_CMN_CTRL[4]: 0x00004905
[ 333.116088] mxc-mipi-csi2.1: CSIS_CLK_CTRL[8]: 0x000f0000
[ 333.116092] mxc-mipi-csi2.1: CSIS_INTMSK[10]: 0x0fffff1f
[ 333.116097] mxc-mipi-csi2.1: CSIS_INTSRC[14]: 0x00000000
[ 333.116101] mxc-mipi-csi2.1: CSIS_DPHYSTATUS[20]: 0x000000c2
[ 333.116106] mxc-mipi-csi2.1: CSIS_DPHYCTRL[24]: 0x05000007
[ 333.116110] mxc-mipi-csi2.1: CSIS_DPHYBCTRL_L[30]: 0x000001f4
[ 333.116115] mxc-mipi-csi2.1: CSIS_DPHYBCTRL_H[34]: 0x00000000
[ 333.116120] mxc-mipi-csi2.1: CSIS_DPHYSCTRL_L[38]: 0x00000000
[ 333.116124] mxc-mipi-csi2.1: CSIS_DPHYSCTRL_H[3c]: 0x00000000
[ 333.116129] mxc-mipi-csi2.1: CSIS_ISPCONFIG_CH0[40]: 0x000000ac
[ 333.116133] mxc-mipi-csi2.1: CSIS_ISPCONFIG_CH1[50]: 0x000008fd
[ 333.116138] mxc-mipi-csi2.1: CSIS_ISPCONFIG_CH2[60]: 0x000008fe
[ 333.116142] mxc-mipi-csi2.1: CSIS_ISPCONFIG_CH3[70]: 0x000008ff
[ 333.116147] mxc-mipi-csi2.1: CSIS_ISPRESOL_CH0[44]: 0x04380780
[ 333.116151] mxc-mipi-csi2.1: CSIS_ISPRESOL_CH1[54]: 0x80008000
[ 333.116156] mxc-mipi-csi2.1: CSIS_ISPRESOL_CH2[64]: 0x80008000
[ 333.116160] mxc-mipi-csi2.1: CSIS_ISPRESOL_CH3[74]: 0x80008000
[ 333.116165] mxc-mipi-csi2.1: CSIS_ISPSYNC_CH0[48]: 0x00000000
[ 333.116169] mxc-mipi-csi2.1: CSIS_ISPSYNC_CH1[58]: 0x00000000
[ 333.116174] mxc-mipi-csi2.1: CSIS_ISPSYNC_CH2[68]: 0x00000000
[ 333.116178] mxc-mipi-csi2.1: CSIS_ISPSYNC_CH3[78]: 0x00000000
[ 333.116182] mxc-mipi-csi2.1: --- mipi_csis_s_stream ---
[ 333.116188] mxc-mipi-csi2.1: GPR_GASKET_0_CTRL[60]: 0xffff8000
[ 333.116193] mxc-mipi-csi2.1: GPR_GASKET_0_HSIZE[64]: 0xffff8000
[ 333.116197] mxc-mipi-csi2.1: GPR_GASKET_0_VSIZE[68]: 0xffff8000
[ 333.116951] enter wdr3_hw_init
[ 333.120011] wdr3 res: 1920 1080
[ 333.123323] [RT7] wdr3_hw_init: Force WDR3 disabled by default
[ 333.129217] [RT7] isp_enable_wdr3: Force WDR3 disabled in all cases
[ 333.136187] enter isp_mi_start
[ 333.139914] enter jxf355_s_stream
[ 333.141752] jxf355_set_tpg: unsupported pattern -1
[ 336.805322] enter isp_mi_stop
[ 336.914388] mxc-mipi-csi2.1: mipi_csis_s_stream: 0, state: 0x0
[ 336.914403] mxc-mipi-csi2.1: Frame End events: 0
[ 336.919023] mxc-mipi-csi2.1: Frame Start events: 0
[ 336.923813] mxc-mipi-csi2.1: Non-image data after odd frame events: 0
[ 336.930252] mxc-mipi-csi2.1: Non-image data before odd frame events: 0
[ 336.936777] mxc-mipi-csi2.1: Non-image data after even frame events: 0
[ 336.943302] mxc-mipi-csi2.1: Non-image data before even frame events: 0
[ 336.949914] mxc-mipi-csi2.1: Unknown Error events: 0
[ 336.954877] mxc-mipi-csi2.1: CRC Error events: 0
[ 336.959492] mxc-mipi-csi2.1: ECC Error events: 0
[ 336.964108] mxc-mipi-csi2.1: FIFO Overflow Error events: 0
[ 336.969592] mxc-mipi-csi2.1: Lost Frame End Error events: 0
[ 336.975162] mxc-mipi-csi2.1: Lost Frame Start Error events: 0
[ 336.980906] mxc-mipi-csi2.1: SOT Error events: 0
[ 337.004263] enter jxf355_s_stream
[ 337.009782] enter jxf355_get_clk
[ 337.014641] enter isp_mi_stop
I would like to know if the MIPI-CSI2 should be switched to non-continuous clock mode? And is below the way to do that (adding clock-noncontinuous property) ?
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-viper-jxf355.dts b/arch/arm64/boot/dts/freescale/imx8mp-viper-jxf355.dts
index cd0438d05ad4..508c239cd4ab 100755
--- a/arch/arm64/boot/dts/freescale/imx8mp-viper-jxf355.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-viper-jxf355.dts
@@ -38,6 +38,7 @@
remote-endpoint = <&mipi_csi0_ep>;
data-lanes = <1 2>;
clock-lanes = <0>;
+ clock-noncontinuous;
};
};
};
--
We are using the BSP 5.10.72.
Best Regards,
Khang