This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: TDA4VM CSI

Part Number: TDA4VM

Hi

    

    Currently I am using the LINUX-SDK-8.05 version for CSI access, but there has been no data, I want to confirm whether CSI receives data by reading the CSI register status information, I should pay attention to the following registers, and the related values?

    

 Thanks

  • Hi,

    Could you please check if the below register could be read from your end? (i.e., 0x0450 4104)

    Description as shown below

    Regards,

    Nikhil

  • This is the data I read, can I understand that DPHY is getting the data? But I used the command "yavta -c -fcapture -s 1920x1080 -f UYVY /dev/video2" as follows

  • Hi,

    Could you please explain your setup? Are you using a sensor that outputs UYVY format image?

    Could you also share the logs of "media-ctl -p" to see the topology of the setup connections?
    Please share it in the form of text file (not screenshot).

    Regards,
    Nikhil

  • media-ctl.txt
    Media controller API version 5.10.153
    
    Media device information
    ------------------------
    driver          j721e-csi2rx
    model           TI-CSI2RX
    serial          
    bus info        platform:4500000.ticsi2rx
    hw revision     0x1
    driver version  5.10.153
    
    Device topology
    - entity 1: 4500000.ticsi2rx (17 pads, 17 links, 1 route)
                type V4L2 subdev subtype Unknown flags 0
                device node name /dev/v4l-subdev0
    	routes:
    		0/0 -> 1/0 [ACTIVE]
    	pad0: Sink
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    		<- "cdns_csi2rx.4504000.csi-bridge":1 [ENABLED,IMMUTABLE]
    	pad1: Source
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    		-> "4500000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
    	pad2: Source
    		-> "4500000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE]
    	pad3: Source
    		-> "4500000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE]
    	pad4: Source
    		-> "4500000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE]
    	pad5: Source
    		-> "4500000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE]
    	pad6: Source
    		-> "4500000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE]
    	pad7: Source
    		-> "4500000.ticsi2rx context 6":0 [ENABLED,IMMUTABLE]
    	pad8: Source
    		-> "4500000.ticsi2rx context 7":0 [ENABLED,IMMUTABLE]
    	pad9: Source
    		-> "4500000.ticsi2rx context 8":0 [ENABLED,IMMUTABLE]
    	pad10: Source
    		-> "4500000.ticsi2rx context 9":0 [ENABLED,IMMUTABLE]
    	pad11: Source
    		-> "4500000.ticsi2rx context 10":0 [ENABLED,IMMUTABLE]
    	pad12: Source
    		-> "4500000.ticsi2rx context 11":0 [ENABLED,IMMUTABLE]
    	pad13: Source
    		-> "4500000.ticsi2rx context 12":0 [ENABLED,IMMUTABLE]
    	pad14: Source
    		-> "4500000.ticsi2rx context 13":0 [ENABLED,IMMUTABLE]
    	pad15: Source
    		-> "4500000.ticsi2rx context 14":0 [ENABLED,IMMUTABLE]
    	pad16: Source
    		-> "4500000.ticsi2rx context 15":0 [ENABLED,IMMUTABLE]
    
    - entity 19: cdns_csi2rx.4504000.csi-bridge (5 pads, 2 links, 0 route)
                 type V4L2 subdev subtype Unknown flags 0
                 device node name /dev/v4l-subdev1
    	pad0: Sink
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    		<- "max9296 9-0048":4 [ENABLED,IMMUTABLE]
    	pad1: Source
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    		-> "4500000.ticsi2rx":0 [ENABLED,IMMUTABLE]
    	pad2: Source
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    	pad3: Source
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    	pad4: Source
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    
    - entity 25: max9296 9-0048 (5 pads, 1 link, 0 route)
                 type V4L2 subdev subtype Unknown flags 0
                 device node name /dev/v4l-subdev2
    	pad0: Sink
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    	pad1: Sink
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    	pad2: Sink
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    	pad3: Sink
    		[stream:0 fmt:UYVY8_2X8/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
    	pad4: Source
    		[stream:0 fmt:unknown/0x0 field:unknown colorspace:unknown ycbcr:unknown quantization:unknown]
    		-> "cdns_csi2rx.4504000.csi-bridge":0 [ENABLED,IMMUTABLE]
    
    - entity 35: 4500000.ticsi2rx context 0 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video2
    	pad0: Sink
    		<- "4500000.ticsi2rx":1 [ENABLED,IMMUTABLE]
    
    - entity 41: 4500000.ticsi2rx context 1 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video3
    	pad0: Sink
    		<- "4500000.ticsi2rx":2 [ENABLED,IMMUTABLE]
    
    - entity 47: 4500000.ticsi2rx context 2 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video4
    	pad0: Sink
    		<- "4500000.ticsi2rx":3 [ENABLED,IMMUTABLE]
    
    - entity 53: 4500000.ticsi2rx context 3 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video5
    	pad0: Sink
    		<- "4500000.ticsi2rx":4 [ENABLED,IMMUTABLE]
    
    - entity 59: 4500000.ticsi2rx context 4 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video6
    	pad0: Sink
    		<- "4500000.ticsi2rx":5 [ENABLED,IMMUTABLE]
    
    - entity 65: 4500000.ticsi2rx context 5 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video7
    	pad0: Sink
    		<- "4500000.ticsi2rx":6 [ENABLED,IMMUTABLE]
    
    - entity 71: 4500000.ticsi2rx context 6 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video8
    	pad0: Sink
    		<- "4500000.ticsi2rx":7 [ENABLED,IMMUTABLE]
    
    - entity 77: 4500000.ticsi2rx context 7 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video9
    	pad0: Sink
    		<- "4500000.ticsi2rx":8 [ENABLED,IMMUTABLE]
    
    - entity 83: 4500000.ticsi2rx context 8 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video10
    	pad0: Sink
    		<- "4500000.ticsi2rx":9 [ENABLED,IMMUTABLE]
    
    - entity 89: 4500000.ticsi2rx context 9 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video11
    	pad0: Sink
    		<- "4500000.ticsi2rx":10 [ENABLED,IMMUTABLE]
    
    - entity 95: 4500000.ticsi2rx context 10 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video12
    	pad0: Sink
    		<- "4500000.ticsi2rx":11 [ENABLED,IMMUTABLE]
    
    - entity 101: 4500000.ticsi2rx context 11 (1 pad, 1 link, 0 route)
                  type Node subtype V4L flags 0
                  device node name /dev/video13
    	pad0: Sink
    		<- "4500000.ticsi2rx":12 [ENABLED,IMMUTABLE]
    
    - entity 107: 4500000.ticsi2rx context 12 (1 pad, 1 link, 0 route)
                  type Node subtype V4L flags 0
                  device node name /dev/video14
    	pad0: Sink
    		<- "4500000.ticsi2rx":13 [ENABLED,IMMUTABLE]
    
    - entity 113: 4500000.ticsi2rx context 13 (1 pad, 1 link, 0 route)
                  type Node subtype V4L flags 0
                  device node name /dev/video15
    	pad0: Sink
    		<- "4500000.ticsi2rx":14 [ENABLED,IMMUTABLE]
    
    - entity 119: 4500000.ticsi2rx context 14 (1 pad, 1 link, 0 route)
                  type Node subtype V4L flags 0
                  device node name /dev/video16
    	pad0: Sink
    		<- "4500000.ticsi2rx":15 [ENABLED,IMMUTABLE]
    
    - entity 125: 4500000.ticsi2rx context 15 (1 pad, 1 link, 0 route)
                  type Node subtype V4L flags 0
                  device node name /dev/video17
    	pad0: Sink
    		<- "4500000.ticsi2rx":16 [ENABLED,IMMUTABLE]
    
    

    Based on the MAX9286 driver, I rewrote the 9296 and 9295 driver code, which is the read register worthwhile state after loading the code

    devmem2 0x04504048

    0x04504048.txt
    /dev/mem opened.
    Memory mapped at address 0xffffafee2000.
    Read at address  0x04504048 (0xffffafee2048): 0x00222206
    

    Does this mean that the CSI on the VM side has received the data?

  • Hi,

    Is this register toggling everytime you read it?

    From the topology, i see  max9296 9-0048. Is this a GMSL based deserializer?

    Are you using a GMSL based ser-des.

    Please note that GMSL is currently not supported in the SDK and this has not been tested at TI's end. You  would have to refer to UB960 FPD based driver and do the integration for GMSL based SER-DES.

    Regards,
    Nikhil

  • Hi

        1、 This register switches each time it is read

         2、The MAX9296+MAX9295 is GMSL-based.

         3、IF LINUX-SDK 8.05 IS TO ACCESS THE GMSL OF THE MAX9296+MAX9295, MUST IT BE MODIFIED BASED ON UB960 FPD?

         4、LINUX-SDK 8.05 v4l2-based UB960 FPD driver must be connected to the 960 and 953-based fustion expansion board?

  • Hi,

    IF LINUX-SDK 8.05 IS TO ACCESS THE GMSL OF THE MAX9296+MAX9295, MUST IT BE MODIFIED BASED ON UB960 FPD?

    Yes, you would have to refer the driver implementation and the device tree integration and do the same for GMSL based ser-des.

    LINUX-SDK 8.05 v4l2-based UB960 FPD driver must be connected to the 960 and 953-based fustion expansion board

    Yes, this is correct.

    Regards,
    Nikhil