VEYE IMAGING Forum
    • Categories
    • Tags
    • Recent
    • Popular
    • Users
    • WIKI
    • veye.cc
    • Register
    • Login

    [AR0234M][XavierNX][JP5.1.4] Upgrading from 2 lanes to 4 lanes

    Scheduled Pinned Locked Moved Jetson App Software
    7 Posts 2 Posters 6.9k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D Offline
      dragos
      last edited by dragos

      Hello!
      I've recently bought a RAW-MIPI-AR0234M for image processing in a UAV project.
      I've followed the steps presented here How to upgrade the Jetson system to support VEYE cameras and everything was working fine up till the point where i've decided to move from 2 lanes to 4 lanes.
      When i switched from 2 lanes to 4 lanes using the i2c tool provided in the git repo and opened qv4l2 i realized that something is wrong: no image was being displayed by the program.
      I will start by sharing the firmware version of the camera and my current setup:

      dragos@ubuntu:~/VEYE_AR0234_Drivers/nvidia_jetson_veye_bsp/mv_tools_jetson/i2c_tools$ ./mv_mipi_i2c_new.sh -r version -b 10
      version is C 01.15 and L 00.00
      
      dragos@ubuntu:~/VEYE_AR0234_Drivers/nvidia_jetson_veye_bsp/mv_tools_jetson/i2c_tools$ uname -r
      5.10.216-tegra
      
      dragos@ubuntu:~/VEYE_AR0234_Drivers/nvidia_jetson_veye_bsp/mv_tools_jetson/i2c_tools$ head -n 1 /etc/nv_tegra_release
      # R35 (release), REVISION: 6.0, GCID: 37391689, BOARD: t186ref, EABI: aarch64, DATE: Wed Aug 28 09:12:27 UTC 2024
      

      What I have done so far:
      Looking on this topic RAW-MIPI-AR0234M 在NX平台下,2lane和4 lanes都无法采图 I've started by decompiling the DTB file (tegra194-p3668-0000-p3509-0000.dtb) provided in:

      nvidia_jetson_veye_bsp/dtbs/Xavier-NX/JetPack_5.1.4_Linux_JETSON_XAVIER_NX_TARGETS/dts dtb/RAW-MIPI-AR0234M
      

      using the command:

      dtc -I dtb -O dts -o decompiled.dts tegra194-p3668-0000-p3509-0000.dtb
      

      The changes I've made in the DTS file:

      tegra-capture-vi {
        ports {
          port@0 {
            endpoint {
              bus-width = <0x02>; -> <0x04>
            };
          };
          port@1 {
            endpoint {
              bus-width = <0x02>; -> <0x04>
            };
          };
        };
      };
      host1x@13e00000 {
        nvcsi@15a00000 {
          channel@0 {
            ports {
              port@0 {
                endpoint@0 {
                  bus-width = <0x02>; -> <0x04>
                };
              };
            };
          };
          channel@1 {
            ports {
              port@0 {
                endpoint@2 {
                  bus-width = <0x02>; -> <0x04>
                };
              };
            };
          };
        };
      };
      cam_i2cmux {
        i2c@0 {
          rbpcv2_mvcam_a@3b {
            ports {
              port@0 {
                endpoint {
                  bus-width = <0x02>; -> <0x04>
                };
              };
            };
          };
        };
        i2c@1 {
          rbpcv2_mvcam_c@3b {
            ports {
              port@0 {
                endpoint {
                  bus-width = <0x02>; -> <0x04>
                };
              };
            };
          };
        };
      };
      tegra-camera-platform {
        num_csi_lanes = <0x04>; -> <0x08>
      };
      

      and then I've compiled back the DTS file using:

      dtc -I dts -O dtb -o tegra194-p3668-0000-p3509-0000-4lanes.dtb decompiled.dts
      

      and I moved the modified DTB file to /boot/veyecam and after that I modified the extilinux.conf file
      accordingly.
      After reboot

      dragos@ubuntu:~$ sudo dmesg | grep i2c
      [    2.744386] i2c /dev entries driver
      [    2.747600] tegra-i2c 3160000.i2c: Adding to iommu group 2
      [    2.753249] tegra-i2c c240000.i2c: Adding to iommu group 2
      [    2.759024] tegra-i2c 3180000.i2c: Adding to iommu group 2
      [    2.764166] tegra-i2c 3190000.i2c: Adding to iommu group 2
      [    2.769451] tegra-i2c 31b0000.i2c: Adding to iommu group 2
      [    2.775053] tegra-i2c 31c0000.i2c: Adding to iommu group 2
      [    2.780140] tegra-i2c c250000.i2c: Adding to iommu group 2
      [    6.516596] tegra-i2c 31e0000.i2c: Adding to iommu group 2
      [    6.523844] i2c i2c-2: Added multiplexed i2c bus 9
      [    6.525575] i2c i2c-2: Added multiplexed i2c bus 10
      [    6.525855] i2c-mux-gpio cam_i2cmux: 2 port mux on 3180000.i2c adapter
      dragos@ubuntu:~$ sudo dmesg | grep mvcam
      [   16.050995] veye_mvcam: loading out-of-tree module taints kernel.
      [   16.052512] mvcam 9-003b: veye mv series camera driver version: 01.01.06
      [   16.558998] veye_mvcam: mvcam_read: Reading register 0x04 failed
      [   16.559337] mvcam 9-003b: failed to read chip id
      [   16.559537] mvcam 9-003b: mvcam_identify_module failed.
      [   16.560192] mvcam 10-003b: veye mv series camera driver version: 01.01.06
      [   17.073462] mvcam 10-003b: camera is: RAW_MIPI_AR0234M
      [   17.073874] mvcam 10-003b: firmware version: 0x1150000
      [   17.089941] tegra-camrtc-capture-vi tegra-capture-vi: subdev mvcam 10-003b bound
      
      dragos@ubuntu:~/VEYE_AR0234_Drivers/nvidia_jetson_veye_bsp/mv_tools_jetson/i2c_tools$ ./mv_mipi_i2c_new.sh -w lanenum 4
      -b 10
      w lane number is 4
      dragos@ubuntu:~/VEYE_AR0234_Drivers/nvidia_jetson_veye_bsp/mv_tools_jetson/i2c_tools$ ./mv_mipi_i2c_new.sh -r lanenum -b
       10
      r lane number is 4
      dragos@ubuntu:~/VEYE_AR0234_Drivers/nvidia_jetson_veye_bsp/mv_tools_jetson/i2c_tools$ ./mv_mipi_i2c_new.sh -r maxfps -b 10
      r maxfps @ current setting is 120.93 fps
      dragos@ubuntu:~/VEYE_AR0234_Drivers/nvidia_jetson_veye_bsp/mv_tools_jetson/i2c_tools$ ./mv_mipi_i2c_new.sh -w paramsave -b 10
      all param saved to flash
      dragos@ubuntu:~/VEYE_AR0234_Drivers/nvidia_jetson_veye_bsp/mv_tools_jetson/i2c_tools$ ./mv_mipi_i2c_new.sh -w reboot -b 10
      system reboot!
      

      After opening qv4l2:

      [  318.004980] mvcam 10-003b: csi2_try format
      [  329.616728] mvcam 10-003b: csi2_try format
      [  329.616772] mvcam 10-003b: csi2_try format
      [  329.616784] mvcam 10-003b: mvcam_csi2_get_fmt_idx_by_code success
      [  329.700934] mvcam 10-003b: camera_common_mclk_enable: no device power rail
      [  329.701173] mvcam 10-003b: camera_common_s_power: failed to enable mclk
      [  332.763065] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
      [  332.763380] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
      [  332.763671] (NULL device *): vi_capture_control_message: NULL VI channel received
      [  332.763991] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
      [  332.764210] (NULL device *): vi_capture_control_message: NULL VI channel received
      [  332.764788] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
      [  332.810983] [RCE] ERROR: camera-ip/vi5/vi5.c:3893 [vi5_update_channel_match_data] "match configuration is already in use by by channel 35 cannot set channel match configuration"
      [  332.810996] [RCE] ERROR: services/capture/capture-scheduler.c:3024 [capture_scheduler_thread] "Error processing event 0x100003"
      [  335.322272] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
      [  335.322565] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
      [  335.322792] (NULL device *): vi_capture_control_message: NULL VI channel received
      [  335.322953] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
      [  335.323169] (NULL device *): vi_capture_control_message: NULL VI channel received
      [  335.323328] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
      [  335.323905] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
      [  337.881490] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
      [  337.881759] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
      [  337.881999] (NULL device *): vi_capture_control_message: NULL VI channel received
      [  337.882162] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
      [  337.882379] (NULL device *): vi_capture_control_message: NULL VI channel received
      [  337.882543] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
      [  337.883104] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
      [  337.901475] [RCE] ERROR: camera-ip/vi5/vi5.c:3893 [vi5_update_channel_match_data] "match configuration is already in use by by channel 35 cannot set channel match configuration"
      [  337.901488] [RCE] ERROR: services/capture/capture-scheduler.c:3024 [capture_scheduler_thread] "Error processing event 0x100003"
      

      65b38379-0e86-46ed-8408-156c9940aba9-image.png
      I'm suspecting that I did something wrong during the setup.
      Has anyone faced a similar issue or has any idea how to properly upgrade from 2-lane to 4-lane bus on JP5.14?

      D 1 Reply Last reply Reply Quote 0
      • D Offline
        dragos @dragos
        last edited by dragos

        Here are the dmesg logs from the 2-lane mode and 2-lane DTB, with the camera running in qv4l2:

        dragos@ubuntu:~$ sudo dmesg | tail -5
        [  845.656377] mvcam 10-003b: csi2_try format
        [  845.656555] mvcam 10-003b: csi2_try format
        [  845.656571] mvcam 10-003b: mvcam_csi2_get_fmt_idx_by_code success
        [  845.740489] mvcam 10-003b: camera_common_mclk_enable: no device power rail
        [  845.740746] mvcam 10-003b: camera_common_s_power: failed to enable mclk
        

        Here are the dmesg logs from the 4-lane mode and 2-lane DTB, with the camera running in qv4l2:

        dragos@ubuntu:~$ sudo dmesg | tail -30
        [ 1140.858386] (NULL device *): vi_capture_control_message: NULL VI channel received
        [ 1140.858595] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
        [ 1140.858815] (NULL device *): vi_capture_control_message: NULL VI channel received
        [ 1140.858988] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
        [ 1140.859692] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
        [ 1143.417930] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
        [ 1143.418162] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
        [ 1143.418413] (NULL device *): vi_capture_control_message: NULL VI channel received
        [ 1143.418570] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
        [ 1143.418788] (NULL device *): vi_capture_control_message: NULL VI channel received
        [ 1143.418967] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
        [ 1143.419528] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
        [ 1143.449994] [RCE] ERROR: camera-ip/vi5/vi5.c:3893 [vi5_update_channel_match_data] "match configuration is already in use by by channel 34 cannot set channel match configuration"
        [ 1143.450010] [RCE] ERROR: services/capture/capture-scheduler.c:3024 [capture_scheduler_thread] "Error processing event 0x100003"
        [ 1145.977984] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
        [ 1145.978230] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
        [ 1145.978497] (NULL device *): vi_capture_control_message: NULL VI channel received
        [ 1145.978671] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
        [ 1145.978889] (NULL device *): vi_capture_control_message: NULL VI channel received
        [ 1145.979052] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
        [ 1145.979836] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
        [ 1148.538029] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
        [ 1148.538287] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
        [ 1148.538522] (NULL device *): vi_capture_control_message: NULL VI channel received
        [ 1148.538736] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
        [ 1148.538965] (NULL device *): vi_capture_control_message: NULL VI channel received
        [ 1148.539135] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
        [ 1148.539784] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
        [ 1148.550021] [RCE] ERROR: camera-ip/vi5/vi5.c:3893 [vi5_update_channel_match_data] "match configuration is already in use by by channel 34 cannot set channel match configuration"
        [ 1148.550033] [RCE] ERROR: services/capture/capture-scheduler.c:3024 [capture_scheduler_thread] "Error processing event 0x100003"
        

        Here are the dmesg logs from the 2-lane mode and 4-lane DTB, with the camera running in qv4l2:

        [  363.310470] mvcam 10-003b: csi2_try format
        [  363.310521] mvcam 10-003b: csi2_try format
        [  363.310535] mvcam 10-003b: mvcam_csi2_get_fmt_idx_by_code success
        [  363.398118] mvcam 10-003b: camera_common_mclk_enable: no device power rail
        [  363.398335] mvcam 10-003b: camera_common_s_power: failed to enable mclk
        [  366.485242] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
        [  366.485600] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
        [  366.485846] (NULL device *): vi_capture_control_message: NULL VI channel received
        [  366.486023] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
        [  366.486291] (NULL device *): vi_capture_control_message: NULL VI channel received
        [  366.486903] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
        [  366.537167] [RCE] ERROR: camera-ip/vi5/vi5.c:3893 [vi5_update_channel_match_data] "match configuration is already in use by by channel 35 cannot set channel match configuration"
        [  366.537192] [RCE] ERROR: services/capture/capture-scheduler.c:3024 [capture_scheduler_thread] "Error processing event 0x100003"
        [  369.044982] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
        [  369.045291] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
        [  369.045626] (NULL device *): vi_capture_control_message: NULL VI channel received
        [  369.045805] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
        [  369.046046] (NULL device *): vi_capture_control_message: NULL VI channel received
        [  369.046343] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
        [  369.046928] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
        
        veye_xummV 1 Reply Last reply Reply Quote 0
        • veye_xummV Offline
          veye_xumm @dragos
          last edited by

          @dragos May I ask if the board you're using is an official NVIDIA development board or a compatible third-party board?

          Questions will be answered as soon as possible, please be patient.
          如果你使用中文,请直接用中文提问。
          May the force be with YOU. (This is the translation of the mysterious Chinese symbol above.)

          D 1 Reply Last reply Reply Quote 0
          • D Offline
            dragos @veye_xumm
            last edited by dragos

            Hello @veye_xumm, the board is an official Nvidia Xavier NX, the one with micro sd (p3668-0000-p3509-0000), not the one with eMMC (p3668-0001-p3509-0000).

            veye_xummV 1 Reply Last reply Reply Quote 0
            • veye_xummV Offline
              veye_xumm @dragos
              last edited by

              @dragos
              I think the MIPI CSI interface on this board only exposes 2 lanes and uses a 15-pin connector.
              Could you check your board to see if that's the case?

              Questions will be answered as soon as possible, please be patient.
              如果你使用中文,请直接用中文提问。
              May the force be with YOU. (This is the translation of the mysterious Chinese symbol above.)

              D 1 Reply Last reply Reply Quote 0
              • D Offline
                dragos @veye_xumm
                last edited by

                Hello @veye_xumm,
                Yes, unfortunately, you're right. The official Nvidia Jetson Xavier NX exposes only two CSI ports with 2 lanes each. To use a 4 lanes camera a custom carrier board is required.

                Thanks for your support 🙂

                [For others] More info can be found on this topic:
                Jetson Xavier NX Developer Kit 4 lane CSI camera

                veye_xummV 1 Reply Last reply Reply Quote 0
                • veye_xummV Offline
                  veye_xumm @dragos
                  last edited by

                  @dragos You are welcome.

                  Questions will be answered as soon as possible, please be patient.
                  如果你使用中文,请直接用中文提问。
                  May the force be with YOU. (This is the translation of the mysterious Chinese symbol above.)

                  1 Reply Last reply Reply Quote 0

                  Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                  Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                  With your input, this post could be even better 💗

                  Register Login
                  • First post
                    Last post