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.

DS250DF810: Signal detect failing with Broadcom 100G BiDi QSFP optics AFBR-89BDDZ

Part Number: DS250DF810

Hi TI Ethernet IC Engineers,

We are using retimer DS250DF810 in our ICX-7650 platform for 100G port.

Switch side, it is connected to TSCF2 of BROADCOM BCM560568.

When Broadcom 100G BiDi QSFP optics [AFBR-89BDDZ] inserted into 100G port, there is no signal in the detected at peer side.

When SR4 QSFP optics inserted, it works fine.

 

With register dump, we observed no signal detect and CDR lock at the line side.

Here are dump of shared registers.

ICX7650-48ZP Router#dm i2c-read 7 18 00  <-- read register at address 0x00
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 01  <-- read register at address 0x01
 0x30
 ICX7650-48ZP Router#dm i2c-read 7 18 02
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 03
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 04
 0x9
 ICX7650-48ZP Router#dm i2c-read 7 18 3d
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 3e
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 3f
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 0a
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 10
 0xff
 ICX7650-48ZP Router#dm i2c-read 7 18 05
 0x1
 ICX7650-48ZP Router#dm i2c-read 7 18 06
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 07
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 08
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 09
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 0b
 0x40
 ICX7650-48ZP Router#dm i2c-read 7 18 0c
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 0d
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 0e
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 0f
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 10
 0xff
 ICX7650-48ZP Router#dm i2c-read 7 18 11
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 12
 0x91
 ICX7650-48ZP Router#dm i2c-read 7 18 13
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 14
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 15
 0x0
 ICX7650-48ZP Router#dm i2c-read 7 18 16
 0x0
 ICX7650-48ZP Router#

 

We use following channel settings for all 8 channels

  1. FIR Main Cursor register:-

register address = 0x3D

Register value = 0x19

  1. FIR Pre-Cursor register:-

register address = 0x3E

Register value = 0x04

  1. FIR Post-Cursor register:-

register address = 0x3F

Register value = 0x01

 

Kindly help to make link up through re-timer DS250DF810.

 

Thanks,

Prabhat

  • Hi,

    • What is the Broadcom 100G BiDi QSFP optics electrical output differential amplitude peak-to-peak?
    • To debug this issue, I would also need a dump of the retimer channel registers. In particular, channel registers 0x02, 0x27, 0x28, 0x78, and 0x8F. See snapshot below illustrating how to select the retimer channel registers via I2C

    Thanks,

    Rodrigo Natal

  • Hi Rodrigo,

    Here are dump of retimer channel registers.

    Note:-
    1. Bus number 07 through FPGA
    2. Retimer device is behind MUX at address 0x71
    3. Address of retimer device 0x18

    Log:-
    ICX7650-48ZP Router#dm i2c-read 07 71 00 <--- check MUX channel setting
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 71 00 04 <--- opened MUX channel for retimer device
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 71 00
    0x4
    ICX7650-48ZP Router#dm i2c-read 07 18 ff
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 fc
    0x80
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 01 <-- Select channel 0
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 fc
    0x77
    ICX7650-48ZP Router#dm i2c-read 07 18 ff
    0x77
    ICX7650-48ZP Router#dm i2c-read 07 18 02 <--- Register values from channel 0
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0xff
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 02 <-- Select channel 1
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 02 <--- Register values from channel 1
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0xff
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 04 <-- Select channel 2
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 02 <--- Register values from channel 2
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 08 <--- Select channel 3
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 02 <--- Register values from channel 3
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0xff
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 10 <--- Select channel 4
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 02 <--- Register values from channel 4
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 20 <--- Select channel 5
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 02 <--- Register values from channel 5
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0xff
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0xff
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 40 <--- Select channel 6
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 02 <--- Register values from channel 6
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 80 <--- Select channel 7
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 02 <--- Register values from channel
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 71 00 <--- check MUX channel
    0x4
    ICX7650-48ZP Router#

    I'll check and update on "100G BiDi QSFP optics electrical output differential amplitude peak-to-peak".

    Thanks,

    Prabhat

  • The retimer channel register values you are observing do not make sense. In particular it is strange that the odd channels show value of 0xFF for all registers. The even channels show value of 0x00 for everything. If I decode these bit values they do not make full sense. Something might be wrong here related to your system level I2C access.

    Question: As a sanity check, can you read the following retimer channel registers and confirm their values?

    • 0x40 -> expected value is 0x00
    • 0x41 -> expected value is 0x40
    • 0x42 -. expected value is 0x50

    Thanks,

    Rodrigo Natal

  • Hi Rodrigo,

    Diffrential voltage output is max 900mV.


    Just to avoid effect of any manual settings done while trying to bring link up, I reloaded box and here are registers dump.

    ICX7650-48ZP Router#dm i2c-read 07 71 00
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 71 00 04 <-- Select mux channel to access retimer device
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 71 00
    0x4
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 01 <-- Select retimer channel 0
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 40
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 41
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 42
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 02 <-- Select retimer channel 1
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 40
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 41
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 42
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 04 <-- Select retimer channel 2
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 40
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 41
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 42
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 08 <-- Select retimer channel 3
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 40
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 41
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 42
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 10 <-- Select retimer channel 4
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 40
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 41
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 42
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 20 <-- Select retimer channel 5
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 40
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 41
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 42
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 40 <-- Select retimer channel 6
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 40
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 41
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 42
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 80 <-- Select retimer channel 7
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 40
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 41
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 42
    0x0
    ICX7650-48ZP Router#
    ICX7650-48ZP Router#
    ICX7650-48ZP Router#
    ICX7650-48ZP Router#
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 01 <-- Again, select retimer channel 0
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 02 <-- Select retimer channel 1
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 04 <-- Select retimer channel 2
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 08 <-- Select retimer channel 3
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 10 <-- Select retimer channel 4
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 20 <-- Select retimer channel 5
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 40 <-- Select retimer channel 6
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#dm i2c-write 07 18 ff 01
    Write successful
    ICX7650-48ZP Router#dm i2c-write 07 18 fc 80 <-- Select retimer channel 7
    Write successful
    ICX7650-48ZP Router#dm i2c-read 07 18 27
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 28
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 78
    0x0
    ICX7650-48ZP Router#dm i2c-read 07 18 8f
    0x0
    ICX7650-48ZP Router#
    ICX7650-48ZP Router#


    Thanks,
    Prabhat

  • Thanks. If we believe this read data then there is no input signal to the retimer channels. Can you advise on the input signal amplitude to the retimer?

    As a sanity check, can you read the following retimer channel registers and confirm their values?

    • 0x40 -> expected value is 0x00
    • 0x41 -> expected value is 0x40
    • 0x42 -. expected value is 0x50

    Regards,

    Rodrigo Natal

  • Hi  Rodrigo

    Retested our hardware team to measure amplitude input to retimier from switch side and line(QSFP) side.

    I'll provide data by Monday 26th Sept.

    Thanks,

    Prabhat

  • Hi Rodrigo,

    No yet able to measure amplitude input from MAC to retimer.

    Observed signal from peer [where other side do not have retimer in between] to MAC being detected.

    It looks like TX not going out to peer (please note 100G-SR4 QSFP is working).

    Peak-to-Peak Input Voltage for 100G Bidi is minimum 900mV.

    I'll try setting output amplitude.

    Thanks,

    Prabhat 

  • Hi Prabhat,

    Looking over your I2C dumps, it appears that you did read register 0x40, 0x41, 0x42 as Rodrigo suggested, but they all read back 0x00.  This is unexpected since 0x00 does not match the default value for 0x41, 0x42.  This is also concerning since the responses from the retimer in your previous I2C dump were exclusively 0x00.  I think in order to effectively debug the retimer, we need to ensure that we have robust I2C communication with it.  Would it be possible to investigate this?

    Thanks,
    Drew

  • Hi Rodrigo,

    Here are Vpp (peak to peak) for each lane from MAC to retimer. 

    Lane 0: 404.4mV

    Lane 1: 387.8mV

    Lane 2: 387.8mV

    Lane 3: 394.0mV

    Thanks,

    Prabhat

  • Hi Prabhat,

    Rodrigo is OOO currently, so I can support you.  These signals significantly exceed the threshold required to assert signal detect on the DS250DF810.  I think that in order to debug this effectively, we need to ensure that we have a reliable way to read device registers.  You mentioned you are using an I2C switch.  Is it possible to share details about this?

    Thanks,
    Drew