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.

DS90UB960-Q1EVM: Unable to bring up iMX390 camera using SK-TDA4VM and DS90UB960

Part Number: DS90UB960-Q1EVM
Other Parts Discussed in Thread: SK-TDA4VM, TDA4VM

Tool/software:

Hi experts,

I’m working with the SK-TDA4VM platform and trying to use the iMX390 camera through the DS90UB960-Q1EVM. The camera is detected successfully, but it cannot open or stream properly.

I tried using the following command, and you can see that V4L2 indicates the stream has turned on. However, there is no actual camera data flowing in.

root@tda4vm-sk:/opt/edgeai-gst-apps# v4l2-ctl -d3 --set-fmt-video=width=1936,height=1100,pixelformat=RG12      --stream-mmap --stream-count=10 --stream-to=/dev/null --verbose
VIDIOC_QUERYCAP: ok
VIDIOC_G_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture:
        Width/Height      : 1936/1100
        Pixel Format      : 'RG12' (12-bit Bayer RGRG/GBGB)
        Field             : None
        Bytes per Line    : 3872
        Size Image        : 4259200
        Colorspace        : Default
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             :
                VIDIOC_REQBUFS returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_G_FMT returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_STREAMON returned 0 (Success)

Here is our media-ctl with SK-TDA4VM + DS90UB960Q1-EVM + RCM imx390

root@tda4vm-sk:/opt/edgeai-gst-apps# media-ctl -p
Media controller API version 6.6.44

Media device information
------------------------
driver          j721e-csi2rx
model           TI-CSI2RX
serial          
bus info        platform:4500000.ticsi2rx
hw revision     0x1
driver version  6.6.44

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 -> 2/0 [ACTIVE]
        pad0: Sink
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                <- "cdns_csi2rx.4504000.csi-bridge":1 [ENABLED,IMMUTABLE]
        pad1: Source
                -> "4500000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
        pad2: Source
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                -> "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, 1 route)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: Sink
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                <- "ds90ub960 6-003d":4 [ENABLED,IMMUTABLE]
        pad1: Source
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                -> "4500000.ticsi2rx":0 [ENABLED,IMMUTABLE]
        pad2: Source
        pad3: Source
        pad4: Source

- entity 25: ds90ub960 6-003d (6 pads, 2 links, 1 route)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev2
        routes:
                0/0 -> 4/0 [ACTIVE]
        pad0: Sink
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                <- "ds90ub953 6-0044":1 [ENABLED,IMMUTABLE]
        pad1: Sink
        pad2: Sink
        pad3: Sink
        pad4: Source
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                -> "cdns_csi2rx.4504000.csi-bridge":0 [ENABLED,IMMUTABLE]
        pad5: Source

- entity 34: ds90ub953 6-0044 (2 pads, 2 links, 1 route)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: Sink
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                <- "imx390 10-001a":0 [ENABLED,IMMUTABLE]
        pad1: Source
                [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                -> "ds90ub960 6-003d":0 [ENABLED,IMMUTABLE]

- entity 39: imx390 10-001a (1 pad, 1 link, 2 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev4
        routes:
                0/0 -> 0/0 [ACTIVE]
                0/0 -> 0/1 [INACTIVE]
        pad0: Source
                [stream:0 fmt:SRGGB12_1X12/1936x1100@1/30 field:none colorspace:smpte170m]
                -> "ds90ub953 6-0044":0 [ENABLED,IMMUTABLE]

- entity 45: 4500000.ticsi2rx context 0 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
        pad0: Sink
                <- "4500000.ticsi2rx":1 [ENABLED,IMMUTABLE]

- entity 51: 4500000.ticsi2rx context 1 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video3
        pad0: Sink
                <- "4500000.ticsi2rx":2 [ENABLED,IMMUTABLE]

- entity 57: 4500000.ticsi2rx context 2 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video4
        pad0: Sink
                <- "4500000.ticsi2rx":3 [ENABLED,IMMUTABLE]

- entity 63: 4500000.ticsi2rx context 3 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video5
        pad0: Sink
                <- "4500000.ticsi2rx":4 [ENABLED,IMMUTABLE]

- entity 69: 4500000.ticsi2rx context 4 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video6
        pad0: Sink
                <- "4500000.ticsi2rx":5 [ENABLED,IMMUTABLE]

- entity 75: 4500000.ticsi2rx context 5 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video7
        pad0: Sink
                <- "4500000.ticsi2rx":6 [ENABLED,IMMUTABLE]

- entity 81: 4500000.ticsi2rx context 6 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video8
        pad0: Sink
                <- "4500000.ticsi2rx":7 [ENABLED,IMMUTABLE]

- entity 87: 4500000.ticsi2rx context 7 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video9
        pad0: Sink
                <- "4500000.ticsi2rx":8 [ENABLED,IMMUTABLE]

- entity 93: 4500000.ticsi2rx context 8 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video10
        pad0: Sink
                <- "4500000.ticsi2rx":9 [ENABLED,IMMUTABLE]

- entity 99: 4500000.ticsi2rx context 9 (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video11
        pad0: Sink
                <- "4500000.ticsi2rx":10 [ENABLED,IMMUTABLE]

- entity 105: 4500000.ticsi2rx context 10 (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video12
        pad0: Sink
                <- "4500000.ticsi2rx":11 [ENABLED,IMMUTABLE]

- entity 111: 4500000.ticsi2rx context 11 (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video13
        pad0: Sink
                <- "4500000.ticsi2rx":12 [ENABLED,IMMUTABLE]

- entity 117: 4500000.ticsi2rx context 12 (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video14
        pad0: Sink
                <- "4500000.ticsi2rx":13 [ENABLED,IMMUTABLE]

- entity 123: 4500000.ticsi2rx context 13 (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video15
        pad0: Sink
                <- "4500000.ticsi2rx":14 [ENABLED,IMMUTABLE]

- entity 129: 4500000.ticsi2rx context 14 (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video16
        pad0: Sink
                <- "4500000.ticsi2rx":15 [ENABLED,IMMUTABLE]

- entity 135: 4500000.ticsi2rx context 15 (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video17
        pad0: Sink
                <- "4500000.ticsi2rx":16 [ENABLED,IMMUTABLE]

root@tda4vm-sk:/opt/edgeai-gst-apps# ls -l /dev/video*
lrwxrwxrwx  1 root root      11 Jun  4 01:28 /dev/video-imx390-cam0 -> /dev/video3
lrwxrwxrwx  1 root root      12 Jun  4 01:28 /dev/video-usb-cam0 -> /dev/video18
lrwxrwxrwx  1 root root      12 Jun  4 01:28 /dev/video-usb-cam1 -> /dev/video18
crw-rw----+ 1 root video 81,  1 Jun  3 15:12 /dev/video0
crw-rw----+ 1 root video 81,  0 Jun  3 15:12 /dev/video1
crw-rw----+ 1 root video 81, 10 Jun  3 15:12 /dev/video10
crw-rw----+ 1 root video 81, 11 Jun  3 15:12 /dev/video11
crw-rw----+ 1 root video 81, 12 Jun  3 15:12 /dev/video12
crw-rw----+ 1 root video 81, 13 Jun  3 15:12 /dev/video13
crw-rw----+ 1 root video 81, 14 Jun  3 15:12 /dev/video14
crw-rw----+ 1 root video 81, 15 Jun  3 15:12 /dev/video15
crw-rw----+ 1 root video 81, 16 Jun  3 15:12 /dev/video16
crw-rw----+ 1 root video 81, 17 Jun  3 15:12 /dev/video17
crw-rw----+ 1 root video 81, 23 Jun  3 15:12 /dev/video18
crw-rw----+ 1 root video 81, 24 Jun  3 15:12 /dev/video19
crw-rw----+ 1 root video 81,  2 Jun  3 15:12 /dev/video2
crw-rw----+ 1 root video 81,  3 Jun  3 15:12 /dev/video3
crw-rw----+ 1 root video 81,  4 Jun  3 15:12 /dev/video4
crw-rw----+ 1 root video 81,  5 Jun  3 15:12 /dev/video5
crw-rw----+ 1 root video 81,  6 Jun  3 15:12 /dev/video6
crw-rw----+ 1 root video 81,  7 Jun  3 15:12 /dev/video7
crw-rw----+ 1 root video 81,  8 Jun  3 15:12 /dev/video8
crw-rw----+ 1 root video 81,  9 Jun  3 15:12 /dev/video9

This question was suggested to be routed to your team by Takuma (from the processor team), and I would appreciate your support on this matter.

For your reference, here is the original post with more background:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1513497/sk-tda4vm-ca-not-open-imx390-rcm

Any help or suggestions would be greatly appreciated.

Thanks a lot in advance!

Best regards,
Kathy

  • Hi Kathy,

    Are you able to access I2C registers for both the 960 deserializer and the 953 serializer connected to the camera? Can you share full register dumps of both devices for me to review? Make sure the correct FPD port is selected in register 0x4c before dumping register values. For example, if the SER/camera are connected to 960 FPD port 0, write 0x4c=0x01 before dumping registers.

    Best,

    Lucas

  • Hi Lucas,

    Thanks for your message.

    Based on the device tree configuration, I’ve confirmed the I2C addresses of the devices as follows:

            UB960: 0x3D

            UB953: 0x44

    Here is our result of UB960 and UB953

    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cdump -f -y 6 0x3d
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 7a 00 1e 40 d0 01 00 fe 1c 10 7a 7a 01 b9 00 ff    z.?@??.???zz??..
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00    ..............?.
    20: f0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ??..............
    30: 00 00 01 42 00 00 00 00 00 00 00 00 00 00 00 00    ..?B............
    40: 00 a9 71 01 00 00 20 00 00 00 00 12 01 03 04 64    .?q?.. ....????d
    50: ff 00 00 03 00 00 00 00 5e 00 00 30 88 34 00 00    ...?....^..0?4..
    60: 00 00 00 00 00 94 00 00 00 00 00 00 00 7c 88 88    .....?.......|??
    70: 2b 2c e4 00 00 00 00 c5 00 01 00 00 20 00 00 00    +,?....?.?.. ...
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 00 00 00 1c 00 00 00 00 00 00 00 00 00 00    .....?..........
    b0: 04 09 08 08 25 00 18 00 fc 33 83 74 80 00 00 00    ????%.?.?3?t?...
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 43 94 00 60 e0 00 02 07 7f 00 00 00 00 00 00    .C?.`?.???......
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 5f 55 42 39 36 30 00 00 00 00 00 00 00 00 00 00    _UB960..........
    

    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cdump -f -y 6 0x44
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 30 00 72 48 00 03 41 25 fe 1e 10 13 26 00 2d 00    0.rH.?A%????&.-.
    10: 00 00 00 00 00 20 18 3c 80 62 62 62 00 00 00 00    ..... ?<?bbb....
    20: 00 00 00 00 00 02 00 00 67 33 01 00 00 00 00 00    .....?..g3?.....
    30: 00 20 09 04 00 10 00 7a 00 00 00 00 00 00 00 00    . ??.?.z........
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 20 c0 47 00 00 03 00 00 07 07 07 00 00 00 00 00     ?G..?..???.....
    60: 00 00 00 00 00 88 00 00 00 00 00 00 00 00 00 00    .....?..........
    70: 00 00 25 00 00 00 00 00 00 00 e4 00 00 00 00 00    ..%.......?.....
    80: 00 00 00 00 00 00 90 00 00 00 00 00 06 00 00 00    ......?.....?...
    90: 32 e3 64 01 00 00 00 00 00 00 03 00 26 00 00 12    2?d?......?.&..?
    a0: 00 11 10 10 11 10 42 10 10 10 03 01 00 00 00 00    .?????B?????....
    b0: 04 4a 3f 00 00 00 00 00 00 00 00 00 00 00 00 00    ?J?.............
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 5f 55 42 39 35 33 00 00 00 00 00 00 00 00 00 00    _UB953..........
    

    Based on the i2cget command output, the value of register 0x4C is 0x01, which confirms that the active FPD-Link port is Port 0.

    I’ve also cross-checked this with the datasheet you provided, and it matches the configuration for Port 0.

    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cget -f -y 6 0x3d 0x4c
    0x01


    Best regards,
    Kathy

  • Hi Kathy,

    Thank you for sharing register dumps. I'll need some additional time to review and will share feedback by early next week.

    Best,

    Lucas

  • Hi Kathy,

    Apologies for the delay.

    I see that CSI output and forwarding is disabled on the 960, meaning no data will be sent to the TDA. Can you try writing the following registers and check if the issue is resolved?

    • WriteI2C(0x7a, 0x32, 0x01) #select CSI port 0
    • WriteI2C(0x7a, 0x33, 0x43) #enable CSI output
    • WritieI2C(0x7a, 0x20, 0xe0) #enable forwarding from RX port 0 to CSI port 0

    If the issue still persists, can you check/confirm the following?

    • Which port configuration is used? Is it FPD3 sync or async mode? Can you share the resistor strap on the 960 and the 953?
    • Can you confirm that the camera is powered on and sending video data to the 953?
    • Can you confirm that the 953 is connected to the 960 RX port 0? Can you confirm there is only one 953/camera connected to the 960?
    • Can you confirm that the 960 CSI port 0 is connected to the TDA4VM?
    • Can you check and share the CSI configuration of the TDA4VM receiver? Specifically I'm looking for lane rate, number of lanes, and continuous clock setting.

    Best,

    Lucas

  • Hi Lucas, 

    Thank you for your support!

    Please see below for our current configuration. Despite applying the following settings, we still do not observe any video data flowing into the TDA4VM:

    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cset -y -f 6 0x3d 0x32 0x01
    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cget -y -f 6 0x3d 0x32
    0x01
    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cset -y -f 6 0x3d 0x33 0x43
    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cget -y -f 6 0x3d 0x33
    0x43
    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cset -y -f 6 0x3d 0x20 0xe0
    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cget -y -f 6 0x3d 0x20
    0xe0
    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cget -y -f 6 0x3d 0x4d
    0x03
    root@tda4vm-sk:/opt/edgeai-gst-apps# i2cget -f -y 6 0x3d 0x4c
    0x01
    root@tda4vm-sk:/opt/edgeai-gst-apps#  v4l2-ctl -d3 --set-fmt-video=width=1936,height=1100,pixelformat=RG12 --stream-mmap --verbose
    VIDIOC_QUERYCAP: ok
    VIDIOC_G_FMT: ok
    VIDIOC_S_FMT: ok
    Format Video Capture:
            Width/Height      : 1936/1100
            Pixel Format      : 'RG12' (12-bit Bayer RGRG/GBGB)
            Field             : None
            Bytes per Line    : 3872
            Size Image        : 4259200
            Colorspace        : Default
            Transfer Function : Default (maps to Rec. 709)
            YCbCr/HSV Encoding: Default (maps to ITU-R 601)
            Quantization      : Default (maps to Full Range)
            Flags             :
                    VIDIOC_REQBUFS returned 0 (Success)
                    VIDIOC_QUERYBUF returned 0 (Success)
                    VIDIOC_QUERYBUF returned 0 (Success)
                    VIDIOC_QUERYBUF returned 0 (Success)
                    VIDIOC_QUERYBUF returned 0 (Success)
                    VIDIOC_G_FMT returned 0 (Success)
                    VIDIOC_QBUF returned 0 (Success)
                    VIDIOC_QBUF returned 0 (Success)
                    VIDIOC_QBUF returned 0 (Success)
                    VIDIOC_QBUF returned 0 (Success)
                    VIDIOC_STREAMON returned 0 (Success)
    ^C
    

    • Which port configuration is used? Is it FPD3 sync or async mode? Can you share the resistor strap on the 960 and the 953?
      • We are using Port 0 of the 960 in FPD-Link III asynchronous mode. There is only one 953/camera connected.
    • Can you confirm that the camera is powered on and sending video data to the 953?
      • Here is our hardware configuration below the picture. All the pin is default.
      • 953 is bounding the camera(RCM-imx390)

    • Can you confirm that the 953 is connected to the 960 RX port 0? Can you confirm there is only one 953/camera connected to the 960?
      • The camera is powered and the serializer link is locked (0x4D = 0x03), but it is unclear if video data is being sent. We suspect the IMX390 may not be streaming yet.

    • Can you confirm that the 960 CSI port 0 is connected to the TDA4VM?
      • Yes, the 953 is connected to the 960 RX port 0. There is only one 953 and one camera in the setup.

    • Can you check and share the CSI configuration of the TDA4VM receiver? Specifically I'm looking for lane rate, number of lanes, and continuous clock setting.
      • Yes, CSI port 0 of the 960 is connected to the TDA4VM CSI2RX and is routed through the pipeline to /dev/video3.
      • Number of lanes: 3

    Here is our media-ctl is link to context1 to /dev/video3:

    root@tda4vm-sk:/opt/edgeai-gst-apps# media-ctl -p
    Media controller API version 6.6.44
    
    Media device information
    ------------------------
    driver          j721e-csi2rx
    model           TI-CSI2RX
    serial
    bus info        platform:4500000.ticsi2rx
    hw revision     0x1
    driver version  6.6.44
    
    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 -> 2/0 [ACTIVE]
            pad0: Sink
                    [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                    <- "cdns_csi2rx.4504000.csi-bridge":1 [ENABLED,IMMUTABLE]
            pad1: Source
                    -> "4500000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
            pad2: Source
                    [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                    -> "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, 1 route)
                 type V4L2 subdev subtype Unknown flags 0
                 device node name /dev/v4l-subdev1
            routes:
                    0/0 -> 1/0 [ACTIVE]
            pad0: Sink
                    [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                    <- "ds90ub960 6-003d":4 [ENABLED,IMMUTABLE]
            pad1: Source
                    [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                    -> "4500000.ticsi2rx":0 [ENABLED,IMMUTABLE]
            pad2: Source
            pad3: Source
            pad4: Source
    
    - entity 25: ds90ub960 6-003d (6 pads, 2 links, 1 route)
                 type V4L2 subdev subtype Unknown flags 0
                 device node name /dev/v4l-subdev2
            routes:
                    0/0 -> 4/0 [ACTIVE]
            pad0: Sink
                    [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                    <- "ds90ub953 6-0044":1 [ENABLED,IMMUTABLE]
            pad1: Sink
            pad2: Sink
            pad3: Sink
            pad4: Source
                    [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                    -> "cdns_csi2rx.4504000.csi-bridge":0 [ENABLED,IMMUTABLE]
            pad5: Source
    
    - entity 34: ds90ub953 6-0044 (2 pads, 2 links, 1 route)
                 type V4L2 subdev subtype Unknown flags 0
                 device node name /dev/v4l-subdev3
            routes:
                    0/0 -> 1/0 [ACTIVE]
            pad0: Sink
                    [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                    <- "imx390 10-001a":0 [ENABLED,IMMUTABLE]
            pad1: Source
                    [stream:0 fmt:SRGGB12_1X12/1936x1100 field:none]
                    -> "ds90ub960 6-003d":0 [ENABLED,IMMUTABLE]
    
    - entity 39: imx390 10-001a (1 pad, 1 link, 2 routes)
                 type V4L2 subdev subtype Sensor flags 0
                 device node name /dev/v4l-subdev4
            routes:
                    0/0 -> 0/0 [ACTIVE]
                    0/0 -> 0/1 [INACTIVE]
            pad0: Source
                    [stream:0 fmt:SRGGB12_1X12/1936x1100@1/30 field:none colorspace:smpte170m]
                    -> "ds90ub953 6-0044":0 [ENABLED,IMMUTABLE]
    
    - entity 45: 4500000.ticsi2rx context 0 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video2
            pad0: Sink
                    <- "4500000.ticsi2rx":1 [ENABLED,IMMUTABLE]
    
    - entity 51: 4500000.ticsi2rx context 1 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video3
            pad0: Sink
                    <- "4500000.ticsi2rx":2 [ENABLED,IMMUTABLE]
    
    - entity 57: 4500000.ticsi2rx context 2 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video4
            pad0: Sink
                    <- "4500000.ticsi2rx":3 [ENABLED,IMMUTABLE]
    
    - entity 63: 4500000.ticsi2rx context 3 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video5
            pad0: Sink
                    <- "4500000.ticsi2rx":4 [ENABLED,IMMUTABLE]
    
    - entity 69: 4500000.ticsi2rx context 4 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video6
            pad0: Sink
                    <- "4500000.ticsi2rx":5 [ENABLED,IMMUTABLE]
    
    - entity 75: 4500000.ticsi2rx context 5 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video7
            pad0: Sink
                    <- "4500000.ticsi2rx":6 [ENABLED,IMMUTABLE]
    
    - entity 81: 4500000.ticsi2rx context 6 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video8
            pad0: Sink
                    <- "4500000.ticsi2rx":7 [ENABLED,IMMUTABLE]
    
    - entity 87: 4500000.ticsi2rx context 7 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video9
            pad0: Sink
                    <- "4500000.ticsi2rx":8 [ENABLED,IMMUTABLE]
    
    - entity 93: 4500000.ticsi2rx context 8 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video10
            pad0: Sink
                    <- "4500000.ticsi2rx":9 [ENABLED,IMMUTABLE]
    
    - entity 99: 4500000.ticsi2rx context 9 (1 pad, 1 link)
                 type Node subtype V4L flags 0
                 device node name /dev/video11
            pad0: Sink
                    <- "4500000.ticsi2rx":10 [ENABLED,IMMUTABLE]
    
    - entity 105: 4500000.ticsi2rx context 10 (1 pad, 1 link)
                  type Node subtype V4L flags 0
                  device node name /dev/video12
            pad0: Sink
                    <- "4500000.ticsi2rx":11 [ENABLED,IMMUTABLE]
    
    - entity 111: 4500000.ticsi2rx context 11 (1 pad, 1 link)
                  type Node subtype V4L flags 0
                  device node name /dev/video13
            pad0: Sink
                    <- "4500000.ticsi2rx":12 [ENABLED,IMMUTABLE]
    
    - entity 117: 4500000.ticsi2rx context 12 (1 pad, 1 link)
                  type Node subtype V4L flags 0
                  device node name /dev/video14
            pad0: Sink
                    <- "4500000.ticsi2rx":13 [ENABLED,IMMUTABLE]
    
    - entity 123: 4500000.ticsi2rx context 13 (1 pad, 1 link)
                  type Node subtype V4L flags 0
                  device node name /dev/video15
            pad0: Sink
                    <- "4500000.ticsi2rx":14 [ENABLED,IMMUTABLE]
    
    - entity 129: 4500000.ticsi2rx context 14 (1 pad, 1 link)
                  type Node subtype V4L flags 0
                  device node name /dev/video16
            pad0: Sink
                    <- "4500000.ticsi2rx":15 [ENABLED,IMMUTABLE]
    
    - entity 135: 4500000.ticsi2rx context 15 (1 pad, 1 link)
                  type Node subtype V4L flags 0
                  device node name /dev/video17
            pad0: Sink
                    <- "4500000.ticsi2rx":16 [ENABLED,IMMUTABLE]
    
    

    Best regards,
    Kathy

  • Hi Lucas,

    We had an internal meeting with D3 to further investigate this issue. In parallel, we also created a new E2E thread to provide more detailed information and continue the discussion. The new thread can be found here:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1531148/sk-tda4vm-issue-description-and-request-for-assistance-regarding-d3-embedding-camera-data-transmission

    We will continue to follow up on both threads and appreciate any support or suggestions. Thank you for your assistance.

    Best regards,
    Kathy

  • Hi Kathy,

    Thank you for your feedback. I have the following recommendations/questions to follow up.

    • You mentioned that you are using FPD3 asynchronous mode, however 960 reg 0x58=0x5e means back channel frequency is 50Mbps which is used for sync mode. Additionally 953 reg 0x03=0x48 for CSI-2 sync mode. Can you double check if you intended to use FPD3 synchronous mode?
    • Are you able to access the IMX390 imager via I2C, using 8-bit address 0x94? I noticed that 960 reg 0x5d=0x34 indicating the imager's 8-bit address is 0x34. However I see in LI-IMX390-FPDLINKIII-xxxH datasheet that the IMX390 8-bit address is 0x42.
    • Currently 960 register 0x33 is configured for 4-lane CSI output. Please try using 0x33=0x52 for 3-lane CSI output instead. I'd also like to understand the TDA4VM receiver's setting for lane rate and continuous clock setting so I can confirm if the 960 is programmed correctly.

    Best,

    Lucas

  • Hi Lucas,

    Thank you for your detailed feedback.

    1. We intend to use FPD3 synchronous mode, and our current configuration matches that:

    960 register 0x58 = 0x5E ==> Back channel frequency is 50 Mbps, which is typical for sync mode

    953 register 0x03 = 0x48 ==> CSI-2 sync mode is enabled

    2. IMX390 I2C Address

             Regarding the I2C address, the datasheet you referenced applies to a different camera variant(We are using D3RCM-IMX390-953).

            For our IMX390 module, the confirmed 7-bit I2C address is 0x1A, corresponding to an 8-bit address of 0x34.
           This is also reflected in 960 register 0x5D = 0x34.

    3. CSI Lane Count and Continuous Clock
            We checked 960 register 0x33, the current value is 0x42.
                    Based on the datasheet, this translates to:

                    Bit 5:4 = 01 → 3-lane CSI output

                    Bit 1 = 1 → CSI-2 continuous clock enabled

    This matches your recommendation for 3-lane operation with continuous clock.

    TDA4VM Receiver Settings       

            Regarding the TDA4VM CSI receiver settings for lane rate and continuous clock, I'd like to clarify how to properly confirm this.

            From my understanding, on the 960 side, we can check register 0x1F to verify the configured CSI lane rate.


    Best regards,
    Kathy

  • Hi Kathy,

    Thank you for your clarifications regarding FPD3 sync mode and IMX390 I2C address.

    Regarding register 0x33 setting: a value of 0x42 sets bit 6=b1 to enable skew calibration, bits 5:4=b00 for 4 CSI lanes. I did make one mistake, bit 0 should be asserted to enable CSI output. Can you try writing the following registers to configure and enable forwarding and CSI output?

    • WriteI2C(0x7a, 0x32, 0x01) #select CSI port 0
    • WriteI2C(0x7a, 0x33, 0x53) #enable CSI output
    • WritieI2C(0x7a, 0x20, 0xe0) #enable forwarding from RX port 0 to CSI port 0

    I recommend asking the TDA4VM team for assistance with configuring CSI receiver settings. I am part of FPD-Link team and support 960 and 953 devices, but I am not familiar with how to configure TDA4VM.

    On the 960 side, your understanding is correct. CSI lane rate is configured in register 0x1F.

    Best,

    Lucas

  • Hi Lucas,

    Thank you for updated register settings.

    I've tested the updated settings you provided, but unfortunately, the issue remains unresolved—I'm still not seeing any data stream into the TDA4VM.

    For your reference, here are the steps I've performed to verify the procedure:

    Booted the device using TI's official imx390-rcm DTB file.

    After boot-up, I updated the registers you provided using the following I2C commands:

    i2cset -f -y 6 0x3d 0x32 0x01
    i2cset -f -y 6 0x3d 0x33 0x53
    i2cset -f -y 6 0x3d 0x20 0xe0

    Conducted testing using V4L2 to verify data streaming into the TDA4VM.

    v4l2-ctl -d3 --set-fmt-video=width=1936,height=1100,pixelformat=RG12 --stream-mmap --stream-to=/dev/null --verbose

    Could you please confirm if my approach is correct, or if I might have missed anything?

    Additionally, could you help forward my query or introduce me to the appropriate contact on the TDA4VM team for further assistance with CSI receiver configuration?

    Thanks again for your continued support!

    Best,
    Kathy

  • Hi Kathy,

    Your procedure seems correct to me. Let me investigate further and get back to you with next steps.

    You can reach the TDA4VM team by opening a new E2E thread with the correct part number.

    Best,

    Lucas

  • Hi Kathy,

    Apologies for the delay. Can you share the imx390-rcm DTB file you are using? I'd like to review and run a similar setup in my lab.

    Best,

    Lucas