IMX219 over GMSL2 (MAX96717 + MAX96724) — CIL_A ISR 0x89 error on Jetson AGX Orin JetPack 6.0

Hey folks,

I presume all is well with you. I am not able to capture the frame data on the Jetson AGX Orin platform from the GMSL2 setup using the MAX96717 (Serializer) and MAX96724 (Deserializer) with the IMX219 camera sensor.

Platform: Jetson AGX Orin, JetPack 6.0, L4T R36.3.0

Hardware: IMX219 → MAX96717 Serializer → MAX96724 Deserializer → Jetson CSI Port A (2-lane DPHY, 1000 Mbps/lane)

Problem: The GMSL chain is confirmed working end-to-end — GMSL link is locked, VID_LOCK is set on the MAX96724, and the CSI packet counters are toggling. However the Jetson CSI receiver is not locking onto the signal. dmesg shows:

[RCE] MIPI clock = 456000 kHz, tHS-SETTLE = 0, tCLK-SETTLE = 0
[RCE] ISR PHY 0 CIL_A 0x89

The GStreamer nvarguscamerasrc pipeline times out.

Question: The original Arducam IMX219 overlay has pix_clk_hz = "182400000" (native IMX219 pixel clock). Since the CSI signal now comes from the MAX96724 deserializer output (1000 Mbps/lane), should pix_clk_hz be changed to "500000000"? And should cil_settletime be set explicitly rather than left at "0" for auto-calculation?

I am also attaching the dmesg and trace log files here:

camera_trace.log (9.6 KB)

camera_dmesg_full.log (72.8 KB)

I would appreciate any pointers to resolve this problem. Thank you!

*** Please note that this reply is generated by LLM automatically ***

Based on the provided information, it appears that you are experiencing issues with capturing frame data on the Jetson AGX Orin platform from a GMSL2 setup using the MAX96717 Serializer and MAX96724 Deserializer with the IMX219 camera sensor.

Here are some potential issues and suggestions to resolve the problem:

  1. CSI signal configuration: The original Arducam IMX219 overlay has a native IMX219 pixel clock, but since the CSI signal now comes from the MAX96724 deserializer output, the pixel clock should be changed to 1000 Mbps/lane. You should set this explicitly rather than leaving it at 0 for autocalculation.

  2. Lane configuration: Ensure that the lane configuration is correct. The MAX96724 Deserializer is connected to the Jetson CSI Port A, and you are using a 2-lane DPHY configuration. Verify that the lane configuration is set correctly in the device tree.

  3. GMSL link validation: Although you have confirmed that the GMSL chain is working end-to-end, double-check that the GMSL link is locked, and the VIDLOCK is set on the MAX96724.

  4. CSI packet counters: Verify that the CSI packet counters are toggling correctly. This indicates that the CSI signal is being received by the Jetson CSI receiver.

  5. Jetson CSI receiver configuration: Ensure that the Jetson CSI receiver is configured correctly. Check the device tree configuration for the CSI receiver and verify that it is set to use the correct lane configuration and pixel clock.

  6. GStreamer pipeline: The GStreamer nvarguscamerasrc pipeline is timing out. Try to modify the pipeline to increase the timeout value or add additional debugging statements to help identify the issue.

  7. Device tree configuration: Verify that the device tree configuration is correct for the MAX96724 Deserializer and the IMX219 camera sensor. Ensure that the device tree is updated to reflect the changes in the CSI signal configuration.

  8. Compare with validated setup: Compare your setup with the validated setup described in the documentation. Ensure that you are using the same hardware configuration and software setup as the validated setup.

In comparison to the validated setup, your setup uses the MAX96717 Serializer and MAX96724 Deserializer with the IMX219 camera sensor, whereas the validated setup uses the Sony IMX390 sensors. Although the validated setup uses a different camera sensor, the GMSL protocol and hardware connectivity should be similar.

To further troubleshoot the issue, you can try the following:

  • Use a logic analyzer to capture the CSI signal and verify that it is correct.
  • Use a camera debug tool to verify that the camera is sending the correct signal.
  • Modify the device tree configuration to use a different lane configuration or pixel clock.
  • Try using a different GStreamer pipeline or modify the existing pipeline to add additional debugging statements.

By following these steps and comparing your setup with the validated setup, you should be able to identify and resolve the issue with capturing frame data on the Jetson AGX Orin platform.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

The trace log shows doesn’t receive any validate data from the MIPI bus.

You may need to probe the MIPI signal to confirm match MIPI spec.

Thanks

Thanks Shane and Carol for your prompt feedback. Sorry for the delayed feedback. I was able to resolve this issue, by modifying the initialization and sequencing Python script for the MAX96717 and MAX96724 serializer and deserialzer. I confirmed the fix by successfully capturing a still image and doing a video recording for 10 seconds.