Hello,
I’m currently trying to port our BSP from Jetson Nano (prod. module) to TX2-NX. We used the same custom carrier board. I’m currently facing difficulties adapting the DTS to support our imaging devices.
We use 3 IMX477 with the I2C muxed using a TCA9548.
As far as I understand, the codename for the TX2-NX hw is “lanai”, so I started to modify the DTS to match our carrier board.
I’m stuck here, as I can’t get the tca9548 to work, and thus the cameras…
The tca9548 can is succesfully detected using i2cdetect on i2c-2 ( i2c@3180000 ), with address 0x70:
Alright, after checking the reference DTS, I finally managed to get the I2C mux working. Problem was that I defined the I2C muxing parts inside host1x (as I did for the Jetson Nano version).
Problem is now… I can’t capture any frames using GStreamer and nvarguscamerasrc.
I tried running:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 4032 x 3040 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 11000, max 500000000;
GST_ARGUS: 1920 x 1080 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 354.000000; Exposure Range min 5000, max 352112000;
GST_ARGUS: 2028 x 1520 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 354.000000; Exposure Range min 5000, max 352112000;
GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 0
Output Stream W = 4032 H = 3040
seconds to Run = 0
Frame Rate = 29.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD... Exiting...
CONSUMER: Done Success
Got EOS from element "pipeline0".
Execution ended after 0:00:04.001036864
Setting pipeline to NULL ...
GST_ARGUS: Cleaning up
Please also find the dmesg output attached to this reply… (dmesg_output.txt) dmesg_output.txt (138.1 KB)
Although, capturing raw frames using v4l2-ctl does work:
If any mode able working that confirm the lane configure is correct.
Could you modify the sensor driver to make the set gain/exposure/frame rate function as dummy function to make sure the sensor REG configure the same with v4l2-ctl capture.
If you boost the clock didn’t help you can except the pix_clk_hz cause the problem.
Also if modify all of control function as dummy the line_length also can’t be the root cause.
Okay…
But how could that be ? The pix_clk_hz is sensor/mode dependent, right ? Or am I mistaken ? If it was faulty it wouldn’t have worked on Nano in the first place.
The original imx477 driver have below sensor mode. Looks like it’s different with yours. Could you have a try it and reference to the dts configure from that.
nvidia@nvidia-desktop:~$ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘RG10’
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 3840x2160
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps)