ADSD3500 over max96717 GMSL not working

Hi Nvidia team,

I am working on adsd3500 connecting over max96717 GMSL driver, getting below error
` v4l2-ctl-3423 [007] … 187.584128: tegra_channel_open: vi-output, adsd3500 19-0038
v4l2-ctl-3423 [007] … 187.593959: tegra_channel_set_power: adsd3500 19-0038 : 0x1
v4l2-ctl-3423 [007] … 187.594089: camera_common_s_power: status : 0x1
v4l2-ctl-3423 [007] … 187.594094: tegra_channel_set_power: ser2_1_ch_0 : 0x1
v4l2-ctl-3423 [007] … 187.594095: tegra_channel_set_power: des2_ch_1 : 0x1
v4l2-ctl-3423 [007] … 187.594096: tegra_channel_set_power: nvcsi5 : 0x1
v4l2-ctl-3423 [007] … 187.594098: csi_s_power: enable : 0x1
v4l2-ctl-3423 [007] … 187.594692: tegra_channel_capture_setup: vnc_id 0 W 512 H 512 fmt c4
vi-output, adsd-3425 [000] … 187.605451: vi_task_submit: class_id:48 ch:0 syncpt_id:31 syncpt_thresh:165 pid:3425 tid:3425
vi-output, adsd-3425 [000] … 187.605463: vi_task_submit: class_id:48 ch:0 syncpt_id:31 syncpt_thresh:165 pid:3425 tid:3425
vi-output, adsd-3425 [000] … 187.605464: vi_task_submit: class_id:48 ch:0 syncpt_id:31 syncpt_thresh:165 pid:3425 tid:3425
vi-output, adsd-3425 [000] … 187.605465: vi_task_submit: class_id:48 ch:0 syncpt_id:31 syncpt_thresh:165 pid:3425 tid:3425
v4l2-ctl-3423 [004] … 187.605491: tegra_channel_set_stream: enable : 0x1
v4l2-ctl-3423 [004] … 187.607357: tegra_channel_set_stream: nvcsi5 : 0x1
v4l2-ctl-3423 [004] … 187.607361: csi_s_stream: enable : 0x1
v4l2-ctl-3423 [004] … 187.607671: tegra_channel_set_stream: des2_ch_1 : 0x1
v4l2-ctl-3423 [004] … 187.609438: tegra_channel_set_stream: ser2_1_ch_0 : 0x1
v4l2-ctl-3423 [004] … 187.610542: tegra_channel_set_stream: adsd3500 19-0038 : 0x1
kworker/2:4-1188 [002] … 187.649260: rtcpu_string: tstamp:6629473805 id:0x04010000 str:“VM0 activating.”
kworker/2:4-1188 [002] … 187.649267: rtcpu_nvcsi_intr: tstamp:6629781861 class:GLOBAL type:PHY_INTR0 phy:1 cil:1 st:0 vc:0 status:0x01c00000
kworker/2:4-1188 [002] … 187.649270: rtcpu_vinotify_event: tstamp:6630035883 cch:0 vi:1 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:212148912832 data:0x799e300010000000
kworker/2:4-1188 [002] … 187.649270: rtcpu_vinotify_event: tstamp:6630036023 cch:0 vi:1 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:212148919264 data:0x0000000031000001
kworker/2:4-1188 [002] … 187.649271: rtcpu_vinotify_event: tstamp:6630036180 cch:0 vi:1 tag:VIFALC_ACTIONLST channel:0x23 frame:0 vi_tstamp:212148922272 data:0x0000000007020001
kworker/2:4-1188 [002] … 187.649271: rtcpu_vinotify_event: tstamp:6630036315 cch:0 vi:1 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:212148969408 data:0x799e2d0010000000
kworker/2:4-1188 [002] … 187.649272: rtcpu_vinotify_event: tstamp:6630036469 cch:0 vi:1 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:212148975936 data:0x0000000031000002
vi-output, adsd-3426 [007] … 192.737250: tegra_channel_capture_setup: vnc_id 0 W 512 H 512 fmt c4
vi-output, adsd-3425 [000] … 192.737422: vi_task_submit: class_id:48 ch:0 syncpt_id:31 syncpt_thresh:165 pid:3425 tid:3425
vi-output, adsd-3425 [000] … 192.737437: vi_task_submit: class_id:48 ch:0 syncpt_id:31 syncpt_thresh:165 pid:3425 tid:3425
vi-output, adsd-3425 [000] … 192.737438: vi_task_submit: class_id:48 ch:0 syncpt_id:31 syncpt_thresh:165 pid:3425 tid:3425
vi-output, adsd-3425 [000] … 192.737439: vi_task_submit: class_id:48 ch:0 syncpt_id:31 syncpt_thresh:165 pid:3425 tid:3425 ’

kernel log
[ 192.736708] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 5000 ms
[ 192.736736] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 192.737378] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel

my dts:

gmsl-serializer@0x42 {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = “maxim,max96717”;
reg = <0x42>;
gpio-controller;
#gpio-cells = <0x02>;
gpio-ranges = <0x57 0x00 0x00 0x0b>;
i2c-alias-pool = <0x3d>;
phandle = <0x57>;

								i2c-atr {
									#address-cells = <0x01>;
									#size-cells = <0x00>;

									i2c@0 {
										#address-cells = <0x01>;
										#size-cells = <0x00>;
										reg = <0x00>;
										phandle = <0x78>;

										adsd3500@0x38 {
											reset-gpios = <0x57 0x02 0x00>;
											label = "tof_1";
											reg = <0x38>;
											compatible = "adi,adsd3500";
											sensor_model = "adsd3500";
											use_sensor_mode_id = "false";
											post_crop_frame_drop = "0";
											physical_w = "15.0";
											physical_h = "12.5";
											phandle = <0x11>;

											mode0 {
												vc_id = "1";
												serdes_link_freq = "6250000000";
												active_w = "512";
												line_length = "512";
												dynamic_pixel_bit_depth = "12";
												csi_pixel_bit_depth = "12";
												pix_clk_hz = "208333333";
												tegra_sinterface = "serial_a";
												lane_polarity = "0";
												num_lanes = "2";
												embedded_metadata_height = "1";
												readout_orientation = "0";
												phy_mode = "DPHY";
												discontinuous_clk = "yes";
												mclk_khz = "104250";
												mclk_multiplier = "0";
												cil_settletime = "0";
												dpcm_enable = "false";
												active_l = "0";
												active_t = "0";
												active_h = "512";
												mode_type = "bayer";
												pixel_phase = "rggb";
												min_gain_val = "0";
												max_gain_val = "480";
												step_gain_val = "3";
												default_gain = "10";
												gain_factor = "10";
												inherent_gain = "1";
												min_exp_time = "300";
												max_exp_time = "6600000";
												step_exp_time = "10";
												default_exp_time = "8000";
												exposure_factor = "10";
												min_framerate = "10";
												max_framerate = "300";
												step_framerate = "10";
												default_framerate = "100";
												framerate_factor = "10";
												min_hdr_ratio = "1";
												max_hdr_ratio = "1";


Please let me know if i miss any settings.

hello harishabuk,

it seems there’s no validate packets on CSI channel, I don’t see any sensor frame packet related messages reported by VI tracing logs. hence, there’s a request timed out has reported from kernel driver side.

may I confirm which Jetpack release version you’re now working?
did you verify this GMSL chip on any previous Jetpack, or, other platforms?

Hi,

  • Jetpack version: We’re currently working with Jetpack 36.3.
  • GMSL Verification:
    • We’ve successfully verified GMSL with the imx568 sensor on the same board with Orin NX.
    • We’ve also tested adsd3500 with GMSL on a Raspberry Pi, and it worked as expected.

However, we’re encountering this issue on the current setup. Based on your feedback about no valid packets on the CSI channel, could you provide more insights on what additional checks or configurations might be required?

hello harishabuk,

it might due to CSI0 D1 and CSI1 D0 P/N will always been swizzled for P/N on Orin NX.
please use device tree property, lane_polarity to configure a polarity swap on any lane.
you may see-also reference driver for the settings,
for instance,
$public_sources/kernel_src/hardware/nvidia/t23x/nv-public/overlay/tegra234-camera-rbpcv2-imx219.dtsi

Hi JerryChang,

We are using `tegra_sinterface = “serial_d”;’ and lane_polarity=0, still there is no change in result.
Please let me know if any changes required for below updated device tree.

vc_id = "1";
													serdes_link_freq = "1250000000";
													active_w = "512";
													line_length = "512";
													dynamic_pixel_bit_depth = "12";
													csi_pixel_bit_depth = "12";
													pix_clk_hz = "208333333";
													tegra_sinterface = "serial_d";
													lane_polarity = "0";
													num_lanes = "2";
													embedded_metadata_height = "1";
													readout_orientation = "0";
													phy_mode = "DPHY";
													discontinuous_clk = "yes";
													mclk_khz = "104250";
													mclk_multiplier = "0";
													cil_settletime = "0";
													dpcm_enable = "false";
													active_l = "0";
													active_t = "0";
													active_h = "512";
													mode_type = "bayer";
													pixel_phase = "rggb";
													min_gain_val = "0";
													max_gain_val = "480";
													step_gain_val = "3";
													default_gain = "10";
													gain_factor = "10";
													inherent_gain = "1";
													min_exp_time = "300";
													max_exp_time = "6600000";
													step_exp_time = "10";
													default_exp_time = "8000";
													exposure_factor = "10";
													min_framerate = "10";
													max_framerate = "300";
													step_framerate = "10";
													default_framerate = "100";
													framerate_factor = "10";
													min_hdr_ratio = "1";
													max_hdr_ratio = "1";

hello harishabuk,

it seems you’re using virtual channel, could you please check developer guide, Jetson Virtual Channel with GMSL Camera Framework, for instance, you must set the vc-id property in the gmsl-link node for each sensor to match the vc_id property in the sensor mode device node.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.