Some questions about CSI camera (UYVY (YUV 422)) Development

I am trying to connect one CSI camera (1920 x 1080, 30or 60 fps, UYVY (YUV 422)) to Jetson TX 2 (L 4 T R28.2).

  • Have you provided examples of CSI camera (UYVY (YUV 422)) driver and DTS / DTSI source code?
  • I read the porting guide from L4T R28.1 to R28.2. Similarly there is a porting guide (document) from L4T R 24.2.1 to R28.1?
  • Is there a document on migration guide from JetsonTX 1 to TX 2?

Please tell me about the “Camera Software Development Solution chapter” of nvl4t_docs below.

  1. Can I check if my CSI camera (1920 x 1080, 30or 60 fps, UYVY (YUV 422)) is working with the following command?
    gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1' ! xvimagesink  -ev
    
  2. In the "Camera Software Development Solution chapter - ISP Support Section" of nvl4t_docs, there are the following notes. "CSI cameras, with integrated ISP and USB camera, can work in ISP bypass mode" In order to use my CSI camera (UYVY (YUV 422)), how should I set the VI to "ISP bypass mode" and how to set it to "ISP bypass mode"? (Is the behavior of bypass mode written in kernel\kernel-4.4\drivers\media\platform\tegra\camera\vi\channel.c?
  3. Please tell me about the “Sensor Driver Programming Guide chapter” of nvl4t_docs.

  4. In order to use CSI camera (UYVY (YUV422)), it is necessary to properly set the property "mode_type", "csi_pixel_bit_depth", "pixel_phase" (or "pixel_t") in DTS, see the section "Property-Value Pairs "It is written in. However, when reading the following source code the above properties are not processed. "kernel\kernel-4.4\drivers\media\platform\tegra\camera\sensor_common.c" In order to use CSI camera (UYVY (YUV 422)), is it necessary to modify code that processes DTS (eg, function extract_pixel_format ())? In addition to the above code, which code do I need to add processing?

Is it also necessary to make the following modifications to the source code file
kernel\kernel-4.4\drivers\media\platform\tegra\camera\camera_common.c ?

static const struct camera_common_colorfmt camera_common_color_fmts [] = {
.... <snip> ....
    {
        MEDIA_BUS_FMT_XBGGR10P_3X10,
        V4L2_COLORSPACE_SRGB,
        V4L2_PIX_FMT_XRGGB10P,
    },
+   {
+       MEDIA_BUS_FMT_UYVY8_2X8,
+       V4L2_COLORSPACE_SRGB,
+       V4L2_PIX_FMT_UYVY,
+   },
};

hello mitsuda,

(a)
sorry,

  1. we don’t have examples of YUV sensors.
  2. there’s no L4T R24.2.1 to R28.1 porting guide, please refer to this wiki page for camera bringup debug tips: https://elinux.org/Jetson_TX2/28.1_Camera_BringUp
  3. no, we don’t have guidance for porting drivers from TX1 to TX2.

(b)
the commands you’re using to access camera sensor is correct.

(c)

how should I set the VI to “ISP bypass mode” and how to set it to “ISP bypass mode”?
please refer to [Camera Architecture Stack] in the developer guide.
you should access the camera sensor without “CameraCore” to bypass ISP.

(d)
regarding to your comment #2,
yes, you should extend the color formats to let VI driver support YUV pixel format.