hello, nvidia friends,
Before post the issue , I 've done search the forum for all PXl_SOF and mipi issues, and tried all methods mentioned in post ,
but without positive results for two weeks, so your help and guidance is important will really helpful and appreciated.
- [Hardware link]
Tegra tx2 with ar0144 two camera sensor boards. configured wiht 1 csi lane per sensor.
DTSI part as below
mode0 { // OV5693_MODE_2592X1944
mclk_khz = "27000";
num_lanes = "1";
tegra_sinterface = "serial_a";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
active_w = "1280";
active_h = "720";
pixel_t = "bayer_bggr12";
readout_orientation = "90";
line_length = "1488";
inherent_gain = "1";
mclk_multiplier = "2.75";
pix_clk_hz = "74250000";
min_gain_val = "1.0";
max_gain_val = "16";
min_hdr_ratio = "1";
max_hdr_ratio = "64";
min_framerate = "1.816577";
max_framerate = "30";
min_exp_time = "34";
max_exp_time = "550385";
embedded_metadata_height = "0";
};
[Issue logs]
kernel log as below :
[ 108.806856] tegra-vi4 15700000.vi: Create Surface with imgW=1280, imgH=720, memFmt=32
[ 108.816560] nvcsi 150c0000.nvcsi: csi port:0
[ 109.318222] tegra_mipi_cal 3990000.mipical: Mipi cal timeout,val:208871, lanes:300000
[ 109.326116] tegra_mipi_cal 3990000.mipical: MIPI_CAL_CTRL 0x04 0x2a000010
[ 109.334535] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS 0x0c 0x00208871
[ 109.342881] tegra_mipi_cal 3990000.mipical: CIL_MIPI_CAL_STATUS_2 0x10 0x00000000
[ 109.351222] tegra_mipi_cal 3990000.mipical: CILA_MIPI_CAL_CONFIG 0x18 0x00200000
[ 109.359573] tegra_mipi_cal 3990000.mipical: CILB_MIPI_CAL_CONFIG 0x1c 0x00200000
[ 109.367906] tegra_mipi_cal 3990000.mipical: CILC_MIPI_CAL_CONFIG 0x20 0x00000000
[ 109.376207] tegra_mipi_cal 3990000.mipical: CILD_MIPI_CAL_CONFIG 0x24 0x00000000
[ 109.384514] tegra_mipi_cal 3990000.mipical: CILE_MIPI_CAL_CONFIG 0x28 0x00000000
[ 109.392825] tegra_mipi_cal 3990000.mipical: CILF_MIPI_CAL_CONFIG 0x2c 0x00000000
[ 109.401127] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG 0x3c 0x00000200
[ 109.409402] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG 0x40 0x00000200
[ 109.417697] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG 0x44 0x00000200
[ 109.425978] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG 0x48 0x00000200
[ 109.434262] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG0 0x5c 0x00000000
[ 109.442547] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG1 0x60 0x00000000
[ 109.450826] tegra_mipi_cal 3990000.mipical: MIPI_BIAS_PAD_CFG2 0x64 0x00010010
[ 109.459110] tegra_mipi_cal 3990000.mipical: DSIA_MIPI_CAL_CONFIG_2 0x68 0x00000002
[ 109.467405] tegra_mipi_cal 3990000.mipical: DSIB_MIPI_CAL_CONFIG_2 0x6c 0x00000002
[ 109.475686] tegra_mipi_cal 3990000.mipical: DSIC_MIPI_CAL_CONFIG_2 0x74 0x00000002
[ 109.483972] tegra_mipi_cal 3990000.mipical: DSID_MIPI_CAL_CONFIG_2 0x78 0x00000002
[ 109.492256] nvcsi 150c0000.nvcsi: csi4_start_streaming ports index=0, lanes=1
[ 109.499407] nvcsi 150c0000.nvcsi: csi4_stream_init
[ 109.504231] nvcsi 150c0000.nvcsi: csi4_stream_config
[ 109.509228] nvcsi 150c0000.nvcsi: csi4_stream_config (0) read VC0_DPCM_CTRL = 00000000
[ 109.517164] nvcsi 150c0000.nvcsi: csi4_phy_config
[ 109.521890] nvcsi 150c0000.nvcsi: NVCSI_CIL_CONFIG = 00000000
[ 109.527638] nvcsi 150c0000.nvcsi: cil_a true
[ 109.531916] nvcsi 150c0000.nvcsi: enable true in phy
[ 109.536886] nvcsi 150c0000.nvcsi: phy config end cil core clock 204, csi clock 102
[ 109.544629] ar0144 2-0010: ar0144_s_stream+++,enable=1,s_data->mode=0
[ 109.551067] our regmap_util_write_table_16_as_8:
[ 109.556307] addr=301a,val=d9
[ 109.579731] in sleep 20
[ 109.582353] addr=3f4c,val=4b3f
[ 109.585564] addr=3f4c,val=3f
[ 109.588623] addr=3f4e,val=5718
[ 109.591869] addr=3f4e,val=18
[ 109.594918] addr=3f50,val=401f
[ 109.598126] addr=3f50,val=17df
[ 109.621730] in sleep 20
[ 109.624387] addr=3ed6,val=3cb5
[ 109.627641] addr=3ed8,val=8765
[ 109.630872] addr=3eda,val=8888
[ 109.634093] addr=3edc,val=97ff
[ 109.637321] addr=3ef8,val=6522
[ 109.640567] addr=3efa,val=2222
[ 109.643807] addr=3efc,val=6666
[ 109.647036] addr=3f00,val=aa05
[ 109.650241] addr=3ee2,val=180e
[ 109.653447] addr=3ee4,val=808
[ 109.656576] addr=3eea,val=2a09
[ 109.659793] addr=3060,val=d
[ 109.662748] addr=3092,val=cf
[ 109.665782] addr=3268,val=30
[ 109.668825] addr=3786,val=6
[ 109.671780] addr=3f4a,val=f70
[ 109.674907] addr=306e,val=4810
[ 109.678113] addr=3064,val=1802
[ 109.681330] addr=3ef6,val=804d
[ 109.684546] addr=3180,val=c08f
[ 109.687760] addr=30ba,val=7623
[ 109.690976] addr=3176,val=480
[ 109.694096] addr=3178,val=480
[ 109.697225] addr=317a,val=480
[ 109.700354] addr=317c,val=480
[ 109.703482] addr=302a,val=6
[ 109.706437] addr=302c,val=2
[ 109.709382] addr=302e,val=4
[ 109.712339] addr=3030,val=42
[ 109.715381] addr=3036,val=c
[ 109.718336] addr=3038,val=1
[ 109.721282] addr=30b0,val=38
[ 109.744700] in sleep 20
[ 109.747312] addr=31b0,val=2f
[ 109.750367] addr=31b2,val=1c
[ 109.753402] addr=31b4,val=1665
[ 109.756629] addr=31b6,val=110e
[ 109.759865] addr=31b8,val=2047
[ 109.763082] addr=31ba,val=105
[ 109.766202] addr=31bc,val=8004
[ 109.769409] addr=31ae,val=201
[ 109.772538] addr=3002,val=28
[ 109.775580] addr=3004,val=4
[ 109.778542] addr=3006,val=2f7
[ 109.781661] addr=3008,val=503
[ 109.784791] addr=300a,val=33b
[ 109.787921] addr=300c,val=5d0
[ 109.791047] addr=3012,val=33a
[ 109.794176] addr=31ac,val=c0c
[ 109.797305] addr=306e,val=9010
[ 109.800521] addr=30a2,val=1
[ 109.803477] addr=30a6,val=1
[ 109.806431] addr=3082,val=3
[ 109.809377] addr=3084,val=3
[ 109.812331] addr=308c,val=28
[ 109.815372] addr=308a,val=4
[ 109.818327] addr=3090,val=2f7
[ 109.821447] addr=308e,val=503
[ 109.824577] addr=30aa,val=2eb
[ 109.827705] addr=303e,val=5d0
[ 109.830833] addr=3016,val=2ea
[ 109.833953] addr=30ae,val=1
[ 109.836906] addr=30a8,val=1
[ 109.839863] addr=3040,val=0
[ 109.842818] addr=31d0,val=1
[ 109.845766] addr=301a,val=5c
[ 109.848652] in read reg
[ 109.851298] in read reg
[ 109.853937] ar0144 2-0010: 0x31AC=c0c,0x31AE=201
[ 109.858563] ar0144 2-0010: ar0144_s_stream--
[ 109.909645] tegra-vi4 15700000.vi: Status: 2 channel:00 frame:0001
[ 109.915916] tegra-vi4 15700000.vi: timestamp sof 119499334016 eof 119527974912 data 0x00400060
[ 109.925323] tegra-vi4 15700000.vi: capture_id 1 stream 0 vchan 0
VIDIOC_DQBUF: failed: Input/output error
[ 110.878218] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 111.882227] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout!
[ 111.888185] ar0144 2-0010: ar0144_s_stream+++,enable=0,s_data->mode=0
[ 111.895026] in wirte reg
[ 111.897825] nvcsi 150c0000.nvcsi: csi4_stop_streaming ports index=0, lanes=1
[ 111.904922] nvcsi 150c0000.nvcsi: csi4_phy_config
[ 111.909714] nvcsi 150c0000.nvcsi: NVCSI_CIL_CONFIG = 00000001
[ 111.915541] nvcsi 150c0000.nvcsi: cil_a true
[ 111.919938] nvcsi 150c0000.nvcsi: csi4_stream_check_status
[ 111.925546] nvcsi 150c0000.nvcsi: csi4_stream_check_status (0) INTR_STATUS 0x00000004
[ 111.933444] nvcsi 150c0000.nvcsi: csi4_stream_check_status (0) ERR_INTR_STATUS 0x00000004
[ 111.941673] nvcsi 150c0000.nvcsi: csi4_cil_check_status 284
Tracing logs as below :
kworker/5:2-280 [005] ...1 108.818221: rtos_queue_peek_from_isr_failed: tstamp:3700783005 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 108.818225: rtcpu_start: tstamp:3700783867
kworker/5:2-280 [005] ...1 108.974190: rtos_queue_peek_from_isr_failed: tstamp:3705783867 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 109.130189: rtos_queue_peek_from_isr_failed: tstamp:3710784371 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 109.346174: rtos_queue_peek_from_isr_failed: tstamp:3715784877 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 109.454146: rtos_queue_peek_from_isr_failed: tstamp:3720785386 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 109.610175: rtos_queue_peek_from_isr_failed: tstamp:3725785872 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 109.822139: rtos_queue_peek_from_isr_failed: tstamp:3730786381 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 109.922148: rtcpu_vinotify_handle_msg: tstamp:3734354746 tag:CHANSEL_PXL_SOF channel:0x00 frame:1 vi_tstamp:3734354188 data:0x00000001
kworker/5:2-280 [005] ...1 109.922150: rtcpu_vinotify_handle_msg: tstamp:3734354894 tag:ATOMP_FS channel:0x00 frame:1 vi_tstamp:3734354208 data:0x00000000
kworker/5:2-280 [005] ...1 109.922150: rtcpu_vinotify_handle_msg: tstamp:3734357018 tag:CHANSEL_LOAD_FRAMED channel:0x01 frame:1 vi_tstamp:3734356605 data:0x08000000
kworker/5:2-280 [005] ...1 109.922151: rtcpu_vinotify_handle_msg: tstamp:3735249906 tag:CHANSEL_PXL_EOF channel:0x00 frame:1 vi_tstamp:3735249193 data:0x02cf0002
kworker/5:2-280 [005] ...1 109.922152: rtcpu_vinotify_handle_msg: tstamp:3735250010 tag:CSIMUX_FRAME channel:0x00 frame:1 vi_tstamp:3735249216 data:0x00400060
kworker/5:2-280 [005] ...1 109.922153: rtcpu_vinotify_handle_msg: tstamp:3735250190 tag:ATOMP_FE channel:0x00 frame:1 vi_tstamp:3735249219 data:0x00000000
kworker/5:2-280 [005] ...1 109.974160: rtos_queue_peek_from_isr_failed: tstamp:3735786885 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 110.130186: rtos_queue_peek_from_isr_failed: tstamp:3740787412 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 110.286184: rtos_queue_peek_from_isr_failed: tstamp:3745787921 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 110.442185: rtos_queue_peek_from_isr_failed: tstamp:3750788423 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 110.598184: rtos_queue_peek_from_isr_failed: tstamp:3755788933 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 110.754196: rtos_queue_peek_from_isr_failed: tstamp:3760789437 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 110.910175: rtos_queue_peek_from_isr_failed: tstamp:3765789933 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 111.066198: rtos_queue_peek_from_isr_failed: tstamp:3770790459 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 111.222195: rtos_queue_peek_from_isr_failed: tstamp:3775790959 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 111.378187: rtos_queue_peek_from_isr_failed: tstamp:3780791467 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 111.534195: rtos_queue_peek_from_isr_failed: tstamp:3785791971 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 111.690187: rtos_queue_peek_from_isr_failed: tstamp:3790792480 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 111.898238: rtos_queue_peek_from_isr_failed: tstamp:3795792985 queue:0x0b4a3c58
kworker/5:2-280 [005] ...1 111.898246: rtos_queue_peek_from_isr_failed: tstamp:3797077929 queue:0x0b4a3c58
- [Analysis]
kworker/5:2-280 [005] ...1 109.922148: rtcpu_vinotify_handle_msg: tstamp:3734354746 tag:CHANSEL_PXL_SOF channel:0x00 frame:1 vi_tstamp:3734354188 data:0x00000001
kworker/5:2-280 [005] ...1 109.922150: rtcpu_vinotify_handle_msg: tstamp:3734354894 tag:ATOMP_FS channel:0x00 frame:1 vi_tstamp:3734354208 data:0x00000000
kworker/5:2-280 [005] ...1 109.922150: rtcpu_vinotify_handle_msg: tstamp:3734357018 tag:CHANSEL_LOAD_FRAMED channel:0x01 frame:1 vi_tstamp:3734356605 data:0x08000000
kworker/5:2-280 [005] ...1 109.922151: rtcpu_vinotify_handle_msg: tstamp:3735249906 tag:CHANSEL_PXL_EOF channel:0x00 frame:1 vi_tstamp:3735249193 data:0x02cf0002
kworker/5:2-280 [005] ...1 109.922152: rtcpu_vinotify_handle_msg: tstamp:3735250010 tag:CSIMUX_FRAME channel:0x00 frame:1 vi_tstamp:3735249216 data:0x00400060
kworker/5:2-280 [005] ...1 109.922153: rtcpu_vinotify_handle_msg: tstamp:3735250190 tag:ATOMP_FE channel:0x00 frame:1 vi_tstamp:3735249219 data:0x00000000
<b> These part seems correct , but not sure why just one frame we received ATOMP_FE,</b>
[ 111.919938] nvcsi 150c0000.nvcsi: csi4_stream_check_status
[ 111.925546] nvcsi 150c0000.nvcsi: csi4_stream_check_status (0) INTR_STATUS 0x00000004
[ 111.933444] nvcsi 150c0000.nvcsi: csi4_stream_check_status (0) ERR_INTR_STATUS 0x00000004
Seems this(0x4) means crc correction error. No idea why this happen , mipi timing ?
- [What I 've done]
1. Embeded meta lines settings. The sensor could be configured with 2 or without embeded meta lins. If I configured the sensor with embeded data lines and
2 in dtsi files, the result is the same.
2. Ths-settle and clk settle.
From the calculation , our input is 1280x720x30 fps, I calculated and set it corresponding, not work.
UI_time = 2.1 ns
85ns + 6 * 2ns < (x+ 6) * 4.9ns < 145ns + 10 * 2ns
so x= 0x16(22) fulfill the requirement. Actually , I tried values from 0 ~ 0x3F , all not work.
For clk-settle, we got some values from sensor provider, in ns,
Tclk_pre 17.9573,
Tclk_post 176.723,
Tclk_prepare 38~95,
Tclk_zero 300
Tclk_trail 60 ,
Not sure what will be the exact definition of clk_settle here , from mipi protocal , I assume it shall be Tclk_zero or Tclk_prepare + Tclk_zero,
so I modify the value accordingly. But the result is not positive. Acutally , I also tried values from 0 ~0x5E, none successul
3. The output from tx1 is correct. I the difference seems tx1 mipi clock is 102MHz, tx2 is 204MHz, I tried values according to this differences , seems no good result.