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.

DS250DF230: 25G port work abnormal related to Retimer - DS250DF230 setting

Part Number: DS250DF230
Other Parts Discussed in Thread: DS250DF210, USB2ANY,
  • Issue : 25G port work abnormal 
  • Behavior description : No any connection indication when plug SFP module between SUT and server side. Furthermore, we also find the register 0x02 will keep change between 0x98,0x80,0x01. So Please kindly help to comment. 
  • Environment setting
    • SW version: Sig Con Architect Version : 2.0.0.8 + DS250DF210 Updater.
    • HW connection tools: Dongle – TI USB2ANY
    • SUT PCB material : EM-390+RTF
  • Document reference:
    • Programmer’s Guide – DS250DF230
    • Chapter 5.2 Front-Port Egress (i.e. Host-to-Module)
    • Chapter 5.3 Front-Port Ingress (i.e. Module-to-Host)
  • Debug direction
    • Step 1 - Using TI- GUI interface to check CDR could be locked or not by using loop back connection.
      • Result : Follow Chapter 5.2 and 5.3 setting, TX(Host-to-Module) : CDR could be locked, but RX(Module to Host) no response
    • Step 2 - Checking TX(behind the DS250DF230) Eye diagram could meet 25G criteria or not ?Checking : Using Tx FIR/VOD tool with test pattern - PRBS 9 to fine tune parameters, Pre Cursor Tap/ Main Cursor Post.
      • Result :
      • TX(I2C addr:0X27/4E) – Channel 0
        • Pre Cursor Tap - -6
        • Main Cursor - +20
        • Post Cursor Tap - +0
      • TX(I2C addr:0X27/4E) – Channel 1
        • Pre Cursor Tap - -4
        • Main Cursor - +18
        • Post Cursor Tap - -4
  • Architecture Block Diagram

Architecture Block Diagram

  • Tx Fine tune result
    • TX(I2C addr:0X27/4E) – Channel 0

    • TX(I2C addr:0X26/4C) – Channel 1

  • Hi,

    I have a few questions and suggestions.

    1. Are you only observing retimer 0x4E ch0 and retimer 0x4C ch1? According to your diagram, these are not on the same signal path.
    2. Does each retimer maintain CDR lock once it is achieved? Or do they periodically lose and re-gain CDR lock?
    3. Are the eye diagrams shown measured at the NXP RX and the Server RX? Do they meet the eye opening requirements of these devices?
    4. Can you measure BER at both retimers? This can be done using the PRBS Gen/Checkr tab on the High Level Page on SigCon Architect.
    5. Can you share full register dumps of both channels on both retimers? I'd like to review your retimer configurations.

    Best,

    Lucas

  • 1. It is typo. Both eye test is on 0x4E
    2. 0x4C device is setting as module to host. Both channel periodically lose and re-gain CDR lock
    3. 0x4E device is setting as host to module. The eye diagram is as attached figures that meet 25G eye mask criteria.
    4. Enable PRBS generator of 0x4E, enable PRBS checker of 0x4C. The BER is '0' at PRBS-9/-15/-31.
    5. Refer attached files.

    LogsToTI_20240314.txt
    root@localhost:~# i2cset -y 6 0x26 0xFC 0x01
    root@localhost:~# i2cset -y 6 0x26 0xFF 0x03
    root@localhost:~#
    root@localhost:~# i2cdump -y 6 0x26
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: 00 c0 d8 00 01 01 01 01 73 00 00 63 00 80 93 69
    10: 00 20 83 b0 04 10 7a 36 40 20 68 03 90 00 e1 0b
    20: 00 00 00 41 00 00 00 13 52 20 5a 0a f6 30 00 54
    30: 08 40 11 88 bf 0f 30 01 10 60 00 34 72 8a 41 41
    40: 00 01 02 03 00 40 50 80 90 c0 d0 d1 d5 d8 ea f7
    50: fd ee ef ff 00 00 00 00 00 00 00 00 00 00 00 00
    60: 00 00 00 00 00 00 00 20 00 0a 21 40 00 00 00 00
    70: 05 23 10 10 10 10 21 1a 30 10 00 00 00 48 13 2a
    80: 25 e5 00 00 00 00 00 00 00 00 00 00 00 00 00 01
    90: 00 00 00 00 00 00 08 ff 00 3f 3f e0 24 a5 48 00
    a0: 00 01 02 03 00 20 43 14 00 00 4c 2f 54 92 80 02
    b0: 73 00 00 00 31 7a 00 00 00 00 00 00 00 00 00 00
    c0: 00 01 02 03 00 40 50 80 90 c0 d0 d1 d5 d8 ea f7
    d0: fd ee ef ff 00 00 00 00 00 00 00 00 00 00 00 00
    e0: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 0e
    f0: 01 15 00 00 00 00 00 00 00 00 00 04 01 00 03 03
    root@localhost:~#
    root@localhost:~# i2cset -y 6 0x26 0xFC 0x02
    root@localhost:~# i2cset -y 6 0x26 0xFF 0x03
    root@localhost:~#
    root@localhost:~# i2cdump -y 6 0x26
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: 00 80 d8 00 01 01 01 01 73 00 00 63 00 80 93 69
    10: 00 20 83 b0 04 10 7a 36 40 20 68 03 90 00 e1 0b
    20: 00 00 00 41 03 00 0b 14 4c 20 5a 0a f6 30 00 54
    30: 08 40 11 88 bf 0f 30 00 10 60 00 34 72 8a 41 41
    40: 00 01 02 03 00 40 50 80 90 c0 d0 d1 d5 d8 ea f7
    50: fd ee ef ff 00 00 00 00 00 00 00 00 00 00 00 00
    60: 00 00 00 00 00 00 00 20 00 0a 21 40 00 00 00 00
    70: 05 23 10 10 10 10 21 1a 30 10 00 00 00 48 13 2a
    80: 25 e5 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    90: 00 00 00 00 00 00 08 ff 00 3f 3f e0 24 a5 48 00
    a0: 00 01 02 03 00 20 43 14 00 00 4e 51 54 91 80 02
    b0: 73 00 00 00 31 7a 00 00 00 00 00 00 00 00 00 00
    c0: 00 01 02 03 00 40 50 80 90 c0 d0 d1 d5 d8 ea f7
    d0: fd ee ef ff 00 00 00 00 00 00 00 00 00 00 00 00
    e0: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 0e
    f0: 01 15 00 00 00 00 00 00 00 00 00 04 02 00 03 03
    root@localhost:~#
    root@localhost:~# i2cset -y 6 0x26 0xFF 0x02
    root@localhost:~#
    root@localhost:~# i2cdump -y 6 0x26
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: 00 35 00 00 09 01 00 00 00 00 00 52 00 c5 01 00
    10: ff 00 91 00 2c 04 00 00 00 00 00 00 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    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 10 00 00 00 00 00 00 00 00 00 00 00 00 0e
    f0: 01 15 00 00 00 00 00 00 00 00 00 04 02 00 03 02
    root@localhost:~#
    root@localhost:~# i2cset -y 6 0x27 0xFC 0x01
    root@localhost:~# i2cset -y 6 0x27 0xFF 0x03
    root@localhost:~#
    root@localhost:~# i2cdump -y 6 0x27
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: 00 c0 d8 00 01 01 01 01 73 00 00 63 00 80 93 69
    10: 00 20 83 b0 04 10 7a 36 40 20 68 03 90 00 09 0b
    20: 00 00 00 41 00 00 00 0f 4a 20 5a 0a f6 30 00 54
    30: 0b 20 11 88 bf 0f 30 01 00 60 00 34 72 94 46 00
    40: 00 01 02 03 00 40 50 80 90 c0 d0 d1 d5 d8 ea f7
    50: fd ee ef ff 00 00 00 00 00 00 00 00 00 00 00 00
    60: 00 00 00 00 00 00 00 20 00 0a 21 40 00 00 00 00
    70: 05 23 00 00 00 00 21 1a 30 10 00 00 00 48 13 2a
    80: 24 e5 00 00 40 00 00 00 00 00 00 00 00 00 00 01
    90: 00 00 00 00 00 00 08 ff 00 3f 3f e0 24 a5 48 00
    a0: 00 01 02 03 00 20 43 0f 00 00 52 8c 54 87 80 03
    b0: 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    c0: 00 01 02 03 00 40 50 80 90 c0 d0 d1 d5 d8 ea f7
    d0: fd ee ef ff 00 00 00 00 00 00 00 00 00 00 00 00
    e0: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 0e
    f0: 01 15 00 00 00 00 00 00 00 00 00 04 01 00 03 03
    root@localhost:~#
    root@localhost:~# i2cset -y 6 0x27 0xFC 0x02
    root@localhost:~# i2cset -y 6 0x27 0xFF 0x03
    root@localhost:~#
    root@localhost:~# i2cdump -y 6 0x27
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: 00 80 d8 00 01 01 01 01 73 00 00 63 00 80 93 69
    10: 00 20 83 b0 04 10 7a 36 40 20 68 03 90 00 09 0b
    20: 00 00 00 41 03 00 0b 12 4a 20 5a 0a f6 30 00 54
    30: 0b 20 11 88 bf 0f 30 00 00 60 00 34 72 92 44 44
    40: 00 01 02 03 00 40 50 80 90 c0 d0 d1 d5 d8 ea f7
    50: fd ee ef ff 00 00 00 00 00 00 00 00 00 00 00 00
    60: 00 00 00 00 00 00 00 20 00 0a 21 40 00 00 00 00
    70: 05 23 00 00 00 00 21 1a 30 10 00 00 00 48 13 2a
    80: 00 e5 00 00 f0 00 00 00 00 00 00 00 00 00 00 00
    90: 00 00 00 00 00 00 08 ff 00 3f 3f e0 24 a5 48 00
    a0: 00 01 02 03 00 20 43 12 00 00 4f e2 54 89 80 02
    b0: 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    c0: 00 01 02 03 00 40 50 80 90 c0 d0 d1 d5 d8 ea f7
    d0: fd ee ef ff 00 00 00 00 00 00 00 00 00 00 00 00
    e0: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 0e
    f0: 01 15 00 00 00 00 00 00 00 00 00 04 02 00 03 03
    root@localhost:~#
    root@localhost:~# i2cset -y 6 0x27 0xFF 0x02
    root@localhost:~#
    root@localhost:~# i2cdump -y 6 0x27
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: 00 35 00 00 09 01 00 00 00 00 00 52 00 ab 01 00
    10: ff 00 91 00 2c 04 00 00 00 00 00 00 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    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 10 00 00 00 00 00 00 00 00 00 00 00 00 0e
    f0: 01 15 00 00 00 00 00 00 00 00 00 04 02 00 03 02
    root@localhost:~#

  • Hi David,

    Thank you for performing the PRBS test and sharing this register dump. Allow me some time to review the register values. I'll plan to get back to you with additional feedback by EOD tomorrow.

    Best,

    Lucas

  • Hi David,

    I reviewed your register dump and did not see any statuses or settings which stood out as potentially causing an issue. Based on these statements, I suspect there may be an issue with the signal transmitted from the server to retimer 0x4c.

    • Both channels of retimer 0x4c periodically lose and re-gain CDR lock.
    • Both output eyes of retimer 0x4e meet 25G mask criteria.
    • PRBS test from retimer 0x4e to retimer 0x4c passed.

    I have some additional questions/debug ideas.

    1. Are auto-negotiation or link training enabled? These should be disabled because DS250DF230 does not support these protocols.
    2. Can you check the eye opening of the signal transmitted by the server?
    3. Can you try adjusting the TX FIR taps on the server?
    4. Can you try transmitting PRBS31 from the server and check for bit errors at retimer 0x4c?
    5. What is the VOD setting of the SFP module?
    6. Can you try using adapt mode 1 on retimer 0x4c? (0x31=0x20)

    Best,

    Lucas