cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

imx7.rst (7658B)


      1.. SPDX-License-Identifier: GPL-2.0
      2
      3i.MX7 Video Capture Driver
      4==========================
      5
      6Introduction
      7------------
      8
      9The i.MX7 contrary to the i.MX5/6 family does not contain an Image Processing
     10Unit (IPU); because of that the capabilities to perform operations or
     11manipulation of the capture frames are less feature rich.
     12
     13For image capture the i.MX7 has three units:
     14- CMOS Sensor Interface (CSI)
     15- Video Multiplexer
     16- MIPI CSI-2 Receiver
     17
     18.. code-block:: none
     19
     20   MIPI Camera Input ---> MIPI CSI-2 --- > |\
     21                                           | \
     22                                           |  \
     23                                           | M |
     24                                           | U | ------>  CSI ---> Capture
     25                                           | X |
     26                                           |  /
     27   Parallel Camera Input ----------------> | /
     28                                           |/
     29
     30For additional information, please refer to the latest versions of the i.MX7
     31reference manual [#f1]_.
     32
     33Entities
     34--------
     35
     36imx-mipi-csi2
     37--------------
     38
     39This is the MIPI CSI-2 receiver entity. It has one sink pad to receive the pixel
     40data from MIPI CSI-2 camera sensor. It has one source pad, corresponding to the
     41virtual channel 0. This module is compliant to previous version of Samsung
     42D-phy, and supports two D-PHY Rx Data lanes.
     43
     44csi-mux
     45-------
     46
     47This is the video multiplexer. It has two sink pads to select from either camera
     48sensor with a parallel interface or from MIPI CSI-2 virtual channel 0.  It has
     49a single source pad that routes to the CSI.
     50
     51csi
     52---
     53
     54The CSI enables the chip to connect directly to external CMOS image sensor. CSI
     55can interface directly with Parallel and MIPI CSI-2 buses. It has 256 x 64 FIFO
     56to store received image pixel data and embedded DMA controllers to transfer data
     57from the FIFO through AHB bus.
     58
     59This entity has one sink pad that receives from the csi-mux entity and a single
     60source pad that routes video frames directly to memory buffers. This pad is
     61routed to a capture device node.
     62
     63Usage Notes
     64-----------
     65
     66To aid in configuration and for backward compatibility with V4L2 applications
     67that access controls only from video device nodes, the capture device interfaces
     68inherit controls from the active entities in the current pipeline, so controls
     69can be accessed either directly from the subdev or from the active capture
     70device interface. For example, the sensor controls are available either from the
     71sensor subdevs or from the active capture device.
     72
     73Warp7 with OV2680
     74-----------------
     75
     76On this platform an OV2680 MIPI CSI-2 module is connected to the internal MIPI
     77CSI-2 receiver. The following example configures a video capture pipeline with
     78an output of 800x600, and BGGR 10 bit bayer format:
     79
     80.. code-block:: none
     81
     82   # Setup links
     83   media-ctl -l "'ov2680 1-0036':0 -> 'imx7-mipi-csis.0':0[1]"
     84   media-ctl -l "'imx7-mipi-csis.0':1 -> 'csi-mux':1[1]"
     85   media-ctl -l "'csi-mux':2 -> 'csi':0[1]"
     86   media-ctl -l "'csi':1 -> 'csi capture':0[1]"
     87
     88   # Configure pads for pipeline
     89   media-ctl -V "'ov2680 1-0036':0 [fmt:SBGGR10_1X10/800x600 field:none]"
     90   media-ctl -V "'csi-mux':1 [fmt:SBGGR10_1X10/800x600 field:none]"
     91   media-ctl -V "'csi-mux':2 [fmt:SBGGR10_1X10/800x600 field:none]"
     92   media-ctl -V "'imx7-mipi-csis.0':0 [fmt:SBGGR10_1X10/800x600 field:none]"
     93   media-ctl -V "'csi':0 [fmt:SBGGR10_1X10/800x600 field:none]"
     94
     95After this streaming can start. The v4l2-ctl tool can be used to select any of
     96the resolutions supported by the sensor.
     97
     98.. code-block:: none
     99
    100	# media-ctl -p
    101	Media controller API version 5.2.0
    102
    103	Media device information
    104	------------------------
    105	driver          imx7-csi
    106	model           imx-media
    107	serial
    108	bus info
    109	hw revision     0x0
    110	driver version  5.2.0
    111
    112	Device topology
    113	- entity 1: csi (2 pads, 2 links)
    114	            type V4L2 subdev subtype Unknown flags 0
    115	            device node name /dev/v4l-subdev0
    116	        pad0: Sink
    117	                [fmt:SBGGR10_1X10/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
    118	                <- "csi-mux":2 [ENABLED]
    119	        pad1: Source
    120	                [fmt:SBGGR10_1X10/800x600 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
    121	                -> "csi capture":0 [ENABLED]
    122
    123	- entity 4: csi capture (1 pad, 1 link)
    124	            type Node subtype V4L flags 0
    125	            device node name /dev/video0
    126	        pad0: Sink
    127	                <- "csi":1 [ENABLED]
    128
    129	- entity 10: csi-mux (3 pads, 2 links)
    130	             type V4L2 subdev subtype Unknown flags 0
    131	             device node name /dev/v4l-subdev1
    132	        pad0: Sink
    133	                [fmt:Y8_1X8/1x1 field:none]
    134	        pad1: Sink
    135	               [fmt:SBGGR10_1X10/800x600 field:none]
    136	                <- "imx7-mipi-csis.0":1 [ENABLED]
    137	        pad2: Source
    138	                [fmt:SBGGR10_1X10/800x600 field:none]
    139	                -> "csi":0 [ENABLED]
    140
    141	- entity 14: imx7-mipi-csis.0 (2 pads, 2 links)
    142	             type V4L2 subdev subtype Unknown flags 0
    143	             device node name /dev/v4l-subdev2
    144	        pad0: Sink
    145	                [fmt:SBGGR10_1X10/800x600 field:none]
    146	                <- "ov2680 1-0036":0 [ENABLED]
    147	        pad1: Source
    148	                [fmt:SBGGR10_1X10/800x600 field:none]
    149	                -> "csi-mux":1 [ENABLED]
    150
    151	- entity 17: ov2680 1-0036 (1 pad, 1 link)
    152	             type V4L2 subdev subtype Sensor flags 0
    153	             device node name /dev/v4l-subdev3
    154	        pad0: Source
    155	                [fmt:SBGGR10_1X10/800x600@1/30 field:none colorspace:srgb]
    156	                -> "imx7-mipi-csis.0":0 [ENABLED]
    157
    158i.MX6ULL-EVK with OV5640
    159------------------------
    160
    161On this platform a parallel OV5640 sensor is connected to the CSI port.
    162The following example configures a video capture pipeline with an output
    163of 640x480 and UYVY8_2X8 format:
    164
    165.. code-block:: none
    166
    167   # Setup links
    168   media-ctl -l "'ov5640 1-003c':0 -> 'csi':0[1]"
    169   media-ctl -l "'csi':1 -> 'csi capture':0[1]"
    170
    171   # Configure pads for pipeline
    172   media-ctl -v -V "'ov5640 1-003c':0 [fmt:UYVY8_2X8/640x480 field:none]"
    173
    174After this streaming can start:
    175
    176.. code-block:: none
    177
    178   gst-launch-1.0 -v v4l2src device=/dev/video1 ! video/x-raw,format=UYVY,width=640,height=480 ! v4l2convert ! fbdevsink
    179
    180.. code-block:: none
    181
    182	# media-ctl -p
    183	Media controller API version 5.14.0
    184
    185	Media device information
    186	------------------------
    187	driver          imx7-csi
    188	model           imx-media
    189	serial
    190	bus info
    191	hw revision     0x0
    192	driver version  5.14.0
    193
    194	Device topology
    195	- entity 1: csi (2 pads, 2 links)
    196	            type V4L2 subdev subtype Unknown flags 0
    197	            device node name /dev/v4l-subdev0
    198	        pad0: Sink
    199	                [fmt:UYVY8_2X8/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
    200	                <- "ov5640 1-003c":0 [ENABLED,IMMUTABLE]
    201	        pad1: Source
    202	                [fmt:UYVY8_2X8/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
    203	                -> "csi capture":0 [ENABLED,IMMUTABLE]
    204
    205	- entity 4: csi capture (1 pad, 1 link)
    206	            type Node subtype V4L flags 0
    207	            device node name /dev/video1
    208	        pad0: Sink
    209	                <- "csi":1 [ENABLED,IMMUTABLE]
    210
    211	- entity 10: ov5640 1-003c (1 pad, 1 link)
    212	             type V4L2 subdev subtype Sensor flags 0
    213	             device node name /dev/v4l-subdev1
    214	        pad0: Source
    215	                [fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
    216	                -> "csi":0 [ENABLED,IMMUTABLE]
    217
    218References
    219----------
    220
    221.. [#f1] https://www.nxp.com/docs/en/reference-manual/IMX7SRM.pdf