Jetson xavier nx device tree problem for imx477 camera

hi it`s have been couple days im trying to use imx477 camera on custom carrier board for jetson xavier nx
my carrier board its for realtimes company and part number is rtso-6002e
i was trying to apply imx477 device tree overlay ( .dtbo file that is in file system ) on main device tree of the device
i used jetson-io tools to apply the dt overlay but at the end of the operation it give me an error < fatal error , failed to overlay>
i tried to use arducam-nvidia-l4t-kernel and it makes device tree with imx477 but it dosent work in dmesg it says i2c connection problem ( i think its about i2c address problem somehow because The hardware seems alright and all contacts seem to be made accordingly)
and i tried to apply it manually with fdtoverlay command but it gave me an error again ( DT_ERR_NOTFOUND )
as i searched it happend because the overlay file is not compatible with main device tree
i tried to manually apply it and i saw something that i dont know what i should do with

in imx477 overlay file rbpcv3_imx477_a@1a is part of cam_i2cmux
as i checked in main device tree rbpcv2_imx219 is part of i2c@31e0000 and i2c@c240000 and cam_i2cmux is disabled

cam_i2cmux {
status = “disabled”;
};

how can i add the imx477 dt overlay to main device tree manually ???

Maybe you can remove all of the camera sensor from the device tree only include the imx477 and make sure the status is okay.

i dont think be that simple
i checked dtbo file related to imx477 driver that file have almos 13 fragments and i dont know wxactly how modify the orginal device tree and how add these fragments to the orginal DT .
i tried to add it base on something happend to imx219 in DT
and i added imx477 parts to symbol and cam_i2cmux
after that i run the jetson there was an error in dmesg command result
of: /cam_i2cmux/i2c@0/rbpcv3_imx477_a@1a: could not get #gpio-cells for /cbb/p2u@3f00000
i checked the p2u@3f00000 part but i didnt undrestand what is raltio of that with rbpcv3_imx477_a@1a

What’s your version? JP5.x?
I think you can remove all of the dtbo only include the imx477(tegra194-camera-rbpcv3-imx477.dtsi) and modify the status to okay.
For this modification your dtb include only imx477.

hi
i tried with JP5.1.2-b104 and JP51-b147 but not worked on them
and about tegra194-camera-rbpcv3-imx477.dtsi
where can i find it???
i just dtbo files in /boot directory of jetson filesysteem
something like tegra194-p3668-all-p3509-0000-camera-imx477-dual.dtbo
in the device tree no file address accepted i think only i can use content of dtbo file to modify content of main dtb file

Do you download the kernel source to build the dtb?

https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/Kernel/KernelCustomization.html#kernel-customization

no i didnt
the carrierboard vendor ( realtimesai ) have a customized bsp and sample filesystem base on jetpack and own customized device tree for their carrier boards
but there is no information and documentation about it , just the basic and necessary files and unfortunately their tech support service is not responsive

Maybe you can try flash default image by sdkmanager to try if able boot to ubuntu can configure IMX477 by jetson-io.

Thanks

i tried it before system not comming up .
i do some modification on device tree base on another jetson device tree with standard carrier board
and something good happend

after system boot there was video0 in /dev/ and this is the v4l2-ctl command result
command : 4l2-ctl --all -d /dev/video0
Driver Info (not using libv4l2):
Driver name : tegra-video
Card type : vi-output, imx477 1-001a
Bus info : platform:15c10000.vi:2
Driver version: 4.9.253
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Priority: 2
Video input : 0 (Camera 2: ok)
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : ‘RG10’
Field : None
Bytes per Line : 3840
Size Image : 4147200
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :

Camera Controls

                 group_hold 0x009a2003 (bool)   : default=0 value=0 flags=execute-on-write
                sensor_mode 0x009a2008 (int64)  : min=0 max=0 step=0 default=0 value=1 flags=slider
                       gain 0x009a2009 (int64)  : min=0 max=0 step=0 default=0 value=16 flags=slider
                   exposure 0x009a200a (int64)  : min=0 max=0 step=0 default=0 value=33330 flags=slider
                 frame_rate 0x009a200b (int64)  : min=0 max=0 step=0 default=0 value=30000001 flags=slider
       sensor_configuration 0x009a2032 (u32)    : min=0 max=0 step=0 default=0 flags=read-only, volatile, has-payload
     sensor_mode_i2c_packet 0x009a2033 (u32)    : min=0 max=0 step=0 default=0 flags=read-only, volatile, has-payload
  sensor_control_i2c_packet 0x009a2034 (u32)    : min=0 max=0 step=0 default=0 flags=read-only, volatile, has-payload
                bypass_mode 0x009a2064 (intmenu): min=0 max=1 default=0 value=1
            override_enable 0x009a2065 (intmenu): min=0 max=1 default=0 value=1
               height_align 0x009a2066 (int)    : min=1 max=16 step=1 default=1 value=1
                 size_align 0x009a2067 (intmenu): min=0 max=2 default=0 value=0
           write_isp_format 0x009a2068 (int)    : min=1 max=1 step=1 default=1 value=1
   sensor_signal_properties 0x009a2069 (u32)    : min=0 max=0 step=0 default=0 flags=read-only, has-payload
    sensor_image_properties 0x009a206a (u32)    : min=0 max=0 step=0 default=0 flags=read-only, has-payload
  sensor_control_properties 0x009a206b (u32)    : min=0 max=0 step=0 default=0 flags=read-only, has-payload
          sensor_dv_timings 0x009a206c (u32)    : min=0 max=0 step=0 default=0 flags=read-only, has-payload
           low_latency_mode 0x009a206d (bool)   : default=0 value=0
           preferred_stride 0x009a206e (int)    : min=0 max=65535 step=1 default=0 value=0
               sensor_modes 0x009a2082 (int)    : min=0 max=30 step=1 default=30 value=2 flags=read-only

its seems a little bit unusual response
after i try to preview the camera feed with gstreamer some error occured and process has stopped
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD… Exiting…
CONSUMER: ERROR OCCURRED
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: CANCELLED
Additional debug info:
Argus Error Status

and when i run i2cdetect the result is like this
sudo i2cdetect -r -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – – – – – – –
10: – – – – – – – – – – UU – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – – – – – – –
70: – – – – – – – –

can you help me about this problem ???

Maybe reference to below topic to remove the R8 resistor.

Thanks

my camera have no problem
its work fine on another jetson device with orginal carrier board

afte some modification on dt of system
system can know the camera device under /dev/ as video0
when i run the pipeline command the error will happens
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadExecute:694 NvBufSurfaceFromFd Failed.
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:247 (propagating)
what can i do with this??

Confirm by v4l2-ctl and get the trace log.

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap

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