Do you think it is the same or could you point out something wrong with the full trace in attachment, please ? Was the above issue caused by the Tx side or Rx side ?
Also, how to know how many data lines that the sensor / TX side sent?
Update : We already ruled out the cause of boosting clocks : the issue continued happening.
From your log, it looks like the driver is expecting YUV data-type (0x1E), but the received data is not matching that. Are you sending metadata along with the image? If that’s the case, try to disable it or define the number of lines on the device-tree using embedded_metadata_height
it’s now shown a pair of CHANSEL_PXL_SOF/CHANSEL_PXL_EOF, which looks promising.
it’s ATOMP_FRAME_DONE to indicate a frame has write to memory,
however, the frame index doesn’t look correct here although each memory write with different VI timestamps. could you please check from bridge driver side, please check whether there’re frame-index settings.
for instance,
Frame number is not mandatory in the CSI2 Specifications.
I’m checking with the IP provider if it is possible to enable it.
is it possible to disable in the nvidia system?
Do you think if it is possible to disable the frame number in the nvidia system?
I am confused: You said that the fpga side should check the frame indexing (numbering). The fpga designer asked back if we could disable the frame numbering on the jetson side. You said again that this was not necessary.
Can you confirm that the frame indexing/numbering on the fpga side (which is the current situation) is a MUST for the drivers of the Nvidia Jetson pipeline’s elements (NVCSI, VI) ?
ya, that frame index in the tracing logs could be ignored, (let me revise my comments)
I’ve checked with functional camera with tracing logs enabled, it works normally with consistent frame-index.
What did you mean by consistent frame-index? Does it mean that it increases linearly (step of 1)? In my case, it stays 1 as you pointed out.
Also according to your revise, it seems that the frame-indexing on the fpga side is not necessary. If this is true, what could be the potential issue that cause us to receive just one frame ?
We are really being stuck and we need to provide more info to the FPGA designer to unblock the situation. Do you know if we can contact any of your partner that could help to debug the Nvidia Jetson side more deeply, please?
it’s all report frame:0 with my functional camera.
let me attach tracing logs for your comparison, i.e. good_tracing.txt (256.1 KB)
I’ve re-visit your tracing logs in 1st comment.
it looks there’re only 4 ATOMP_FRAME_DONE has reported, such 4 is according to default buffer queue, it’s queue buffer allocation for 4-buffers, due to queue depth, VI driver side needs enqueue 4-times for sending 1st frame to user-space.
for instance, $public_sources/kernel_src/kernel/nvidia/drivers/media/platform/tegra/camera/vi/channel.c
int tegra_channel_alloc_buffer_queue(...)
{
...
chan->capture_queue_depth = num_buffers;
so…
it’s more like an issue that FPGA did not output frames.
that’s why you see only one frame has captured.
The FPGA designer confirmed that the fpga sends frames constantly. However, re-visiting the logs I shared, I did not see the FE tags, except for the 4 ATOMP_FE belonging to the captured frame. Do you think that it could be an issue? I asked him to check the FE, but he needs to know how many rows and lines are being received :
I can check about the FE, what i need to know is how many rows and lines are being received an what is the Driver expecting!.
Is it possible to know the number of received rows and lines?
0x437 should be correct, it’s 0-1079, total 1080 lines for sending to VI engine.
IIRC, there’s a bug that set_mode_delay_ms did not applied correctly.
let’s have an alternative way to test with v4l2 IOCTL, you should also extend the CAPTURE_TIMEOUT_MS from VI driver to avoid capture timeout failure.
for instance, $public_sources/kernel_src/kernel/nvidia/drivers/media/platform/tegra/camera/vi/vi5_fops.c #define CAPTURE_TIMEOUT_MS 2500
here’s v4l pipeline for your reference, $ v4l2-ctl -d /dev/video0 --list-formats-ext $ v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --set-ctrl bypass_mode=0 --stream-mmap --stream-count=300