I’m trying to receive CSI-2 data without I2C from an FPGA on a Xavier NX with L4T 32.7.1. I have followed several of the earlier topics on the subject, but I’m still having difficulty.
I’m using an IMX219 camera as a reference, and trying to duplicate the IMX219 format/timing with the FPGA (Xilinx MIPI CSI-2 Tx Subsystem on Ultrascale+ device). I have modified the device tree and imx219 driver files, and can see the /dev/videoN nodes as expected. I can also capture data on those nodes from an IMX219 camera, modified so that it’s power and I2C are controlled by a separate system. I’ve also set up another FPGA with a MIPI CSI-2 receiver and used that to verify that the IMX219 and FPGA -generated CSI-2 streams agree (start-of-frame, data type, line timing, number of pixels, number of lines, end-of-frame, etc.) The primary difference between the FPGA stream and the IMX219 is the presence of two lines of non-image data (datatype 0x12) preceeding each frame from the IMX219 - I don’t have those in place on the FGPA.
I’m using v4l2-ctl to try to capture the data on the Xavier NX. It works fine for the IMX219 camera, but I get nothing from the FPGA data.
When I look at the debug logs, I don’t see any indicators of activity from the NVCSI/VI when connected to the FPGA. Here is a log from the IMX219, then a log from the FPGA.
tracelog_imx219_1_camtrace_newt.log (623.9 KB)
With the FPGA:
tracelog_fpga_0_camtrace_newt.log (25.4 KB)
Again, I’ve verified that the MIPI CSI-2 streams appear very similar with another FPGA-based CSI-2 D-PHY receiver.
Also, I’ve been trying to access the NVCSI/VI registers from userspace using devmem2 and busybox devmem. With either of them , if I attempt to read from the NVCSI (0x15a00000), the Xavier crashes as follows:
crashlog_console.txt (5.7 KB)
Any help you can offer is greatly appreciated.