I am actually using a fpga to generate mipi test pattern frames. I tried to reduce the output data rate to 768mbps/lane (896x896 @3030303030303030 fps) (so skew calibration is not required), with this setup, I still get a single line instead of 896 lines with the correct nvcsi clock.
dmesg logs:
[ 1033.656928] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 1033.689911] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 1033.722821] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 1033.755767] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 1033.788785] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 1033.821730] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 1033.854620] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 1033.874964] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
when i tried to push the max nvcsi clock, i get the first frame fully and it process it correctly, you can see the rtcpu logs below as a proof (so your claim that insufficient data from the sensor is false).
tag:CHANSEL_PXL_EOF channel:0x23 frame:0 vi_tstamp:940464752768 data:0x00000000037f0002
0x037f in the data payload is hex for 895 (0-895 so 896 lines properly received)
then while it tries to process the second frame, it gets a `CHANSEL_NOMATCH` error.
kworker/2:1-48 [002] ....... 916.682619: rtcpu_vinotify_event: tstamp:29388932626 cch:0 vi:0 tag:FS channel:0x01 frame:0 vi_tstamp:940444138432 data:0x0000000000000010
kworker/2:1-48 [002] ....... 916.682626: rtcpu_vinotify_event: tstamp:29388932889 cch:0 vi:0 tag:ATOMP_FS channel:0x00 frame:0 vi_tstamp:940444138528 data:0x0000000800000000
kworker/2:1-48 [002] ....... 916.682627: rtcpu_vinotify_event: tstamp:29388933179 cch:0 vi:0 tag:CHANSEL_PXL_SOF channel:0x23 frame:0 vi_tstamp:940444147936 data:0x0000000000000001
kworker/2:1-48 [002] ....... 916.682628: rtcpu_vinotify_event: tstamp:29388933436 cch:0 vi:0 tag:VIFALC_ACTIONLST channel:0x23 frame:0 vi_tstamp:940444179936 data:0x0000000008020001
kworker/2:1-48 [002] ....... 916.682629: rtcpu_vinotify_event: tstamp:29389535632 cch:0 vi:0 tag:CHANSEL_PXL_EOF channel:0x23 frame:0 vi_tstamp:940464752768 data:0x00000000037f0002
kworker/2:1-48 [002] ....... 916.682629: rtcpu_vinotify_event: tstamp:29389535892 cch:0 vi:0 tag:FE channel:0x01 frame:0 vi_tstamp:940464753696 data:0x0000000000000020
kworker/2:1-48 [002] ....... 916.682630: rtcpu_vinotify_event: tstamp:29389536181 cch:0 vi:0 tag:CHANSEL_SHORT_FRAME channel:0x41 frame:0 vi_tstamp:940464753728 data:0x0000200000000000
kworker/2:1-48 [002] ....... 916.682631: rtcpu_vinotify_event: tstamp:29389536434 cch:0 vi:0 tag:VIFALC_ACTIONLST channel:0x23 frame:0 vi_tstamp:940464830464 data:0x0000000001020001
kworker/2:1-48 [002] ....... 916.682634: rtcpu_vinotify_event: tstamp:29390017177 cch:0 vi:0 tag:ATOMP_FE channel:0x00 frame:0 vi_tstamp:940464753792 data:0x0000000800000000
kworker/2:1-48 [002] ....... 916.682635: rtcpu_vinotify_event: tstamp:29390017439 cch:0 vi:0 tag:ATOMP_FRAME_DONE channel:0x23 frame:0 vi_tstamp:940464754016 data:0x0000000000000000
kworker/2:1-48 [002] ....... 916.682635: rtcpu_vinotify_event: tstamp:29390017723 cch:0 vi:0 tag:FS channel:0x01 frame:0 vi_tstamp:940477091776 data:0x0000000000000010
kworker/2:1-48 [002] ....... 916.682636: rtcpu_vinotify_event: tstamp:29390017982 cch:0 vi:0 tag:ATOMP_FS channel:0x00 frame:0 vi_tstamp:940477091872 data:0x0000000800000000
kworker/2:1-48 [002] ....... 916.682637: rtcpu_vinotify_event: tstamp:29390018270 cch:0 vi:0 tag:CHANSEL_PXL_SOF channel:0x23 frame:0 vi_tstamp:940477101280 data:0x0000000000000001
<idle>-0 [000] d..h1.. 916.686083: host1x_syncpt_load_min: id=22, val=138114
kworker/2:1-48 [002] ....... 916.738868: rtcpu_vinotify_event: tstamp:29390561512 cch:0 vi:0 tag:CHANSEL_PXL_EOF channel:0x23 frame:0 vi_tstamp:940497706112 data:0x00000000037f0002
kworker/2:1-48 [002] ....... 916.738877: rtcpu_vinotify_event: tstamp:29390561801 cch:0 vi:0 tag:FE channel:0x01 frame:0 vi_tstamp:940497707008 data:0x0000000000000020
kworker/2:1-48 [002] ....... 916.738878: rtcpu_vinotify_event: tstamp:29390562059 cch:0 vi:0 tag:CHANSEL_SHORT_FRAME channel:0x41 frame:0 vi_tstamp:940497707040 data:0x0000200000000000
kworker/2:1-48 [002] ....... 916.738878: rtcpu_vinotify_event: tstamp:29390562348 cch:0 vi:0 tag:ATOMP_FE channel:0x00 frame:0 vi_tstamp:940497707136 data:0x0000000800000000
kworker/2:1-48 [002] ....... 916.738879: rtcpu_vinotify_event: tstamp:29390562602 cch:0 vi:0 tag:ATOMP_FRAME_DONE channel:0x23 frame:0 vi_tstamp:940497707328 data:0x0000000000000000
kworker/2:1-48 [002] ....... 916.738882: rtcpu_vinotify_error: tstamp:29390943716 cch:0 vi:0 tag:CHANSEL_NOMATCH channel:0x41 frame:0 vi_tstamp:940510054560 data:0x00000000000003c9
kworker/2:1-48 [002] ....... 916.738883: rtcpu_vinotify_event: tstamp:29391102333 cch:0 vi:0 tag:FS channel:0x01 frame:0 vi_tstamp:940510045088 data:0x0000000000000010
kworker/2:1-48 [002] ....... 916.738883: rtcpu_vinotify_event: tstamp:29391102588 cch:0 vi:0 tag:CHANSEL_NOMATCH channel:0x41 frame:0 vi_tstamp:940510054560 data:0x00000000000003c9
kworker/2:1-48 [002] ....... 916.738884: rtcpu_vinotify_event: tstamp:29391644509 cch:0 vi:0 tag:FE channel:0x01 frame:0 vi_tstamp:940530660352 data:0x0000000000000020
kworker/2:1-48 [002] ....... 916.738885: rtcpu_vinotify_error: tstamp:29391973496 cch:0 vi:0 tag:CHANSEL_NOMATCH channel:0x41 frame:0 vi_tstamp:940543007872 data:0x00000000000003c9
kworker/2:1-48 [002] ....... 916.794606: rtcpu_vinotify_event: tstamp:29392187665 cch:0 vi:0 tag:FS channel:0x01 frame:0 vi_tstamp:940542998400 data:0x0000000000000010
kworker/2:1-48 [002] ....... 916.794611: rtcpu_vinotify_event: tstamp:29392187955 cch:0 vi:0 tag:CHANSEL_NOMATCH channel:0x41 frame:0 vi_tstamp:940543007872 data:0x00000000000003c9
kworker/2:1-48 [002] ....... 916.794612: rtcpu_vinotify_event: tstamp:29392616404 cch:0 vi:0 tag:FE channel:0x01 frame:0 vi_tstamp:940563613664 data:0x0000000000000020
kworker/2:1-48 [002] ....... 916.794613: rtcpu_vinotify_error: tstamp:29393003290 cch:0 vi:0 tag:CHANSEL_NOMATCH channel:0x41 frame:0 vi_tstamp:940575961216 data:0x00000000000003c9
kworker/2:1-48 [002] ....... 916.794613: rtcpu_vinotify_event: tstamp:29393110311 cch:0 vi:0 tag:FS channel:0x01 frame:0 vi_tstamp:940575951744 data:0x0000000000000010
kworker/2:1-48 [002] ....... 916.794614: rtcpu_vinotify_event: tstamp:29393110569 cch:0 vi:0 tag:CHANSEL_NOMATCH channel:0x41 frame:0 vi_tstamp:940575961216 data:0x00000000000003c9
i need to know why it causes CHANSEL_NOMATCH error while receiving the 2nd frame. it would be very useful so that i can check with the FPGA team. as a suspicion , does it have anything to do with the frame and line blanking duration setup ?
Also for the first frame, even though it received full lines , why it still complains CHANSEL_SHORT_FRAME on channel:0x41 with 0 lines receivied immediately after tag:FE, cause on channel:0x41 both CHANSEL_SHORT_FRAME and CHANSEL_NOMATCH ? .
Is channel:0x41 an error channel ?
I will paste my dtb mode entry here
mode0 {
mclk_khz = "24000";
num_lanes = "2";
tegra_sinterface = TEGRA_SINTERFACE;
vc_id = "1";
lane_polarity = "6";
phy_mode = "DPHY";
discontinuous_clk = "yes";
dpcm_enable = "false";
cil_settletime = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "uyvy";
active_w = "896";
active_h = "896";
readout_orientation = "0";
line_length = "1152";
inherent_gain = "1";
mclk_multiplier = "3.67";
pix_clk_hz = "88000000";
serdes_pix_clk_hz = "88000000";
deskew_initial_enable = "false";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
gain_factor = "10";
min_gain_val = "2"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3";
default_gain = "2";
framerate_factor = "1000000";
min_framerate = "100000";
max_framerate = "90000000";
step_framerate = "1";
default_framerate = "90000000";
exposure_factor = "1000000";
min_exp_time = "1";
max_exp_time = "11";
step_exp_time = "1";
default_exp_time = "11";
};
fpga_dts.txt (6.1 KB)