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.

TLK10031: TLK10031's XAUI transceiver sync and alignment problem with FPGA XAUI core

Part Number: TLK10031
Other Parts Discussed in Thread: TLK10232

Hi,

Our system setup with the TLK10031 as shown below.

We want to operate TLK10031 at 10GBASE-KR mode. No optical module/cable.

 

The following is what I tried;

  1. On FPGA side, loopback mode is enabled with XAUI transceivers
  2. FPGA side status signals for XAUI transceivers indicate that the RX Alignment and sycn for all four channels go up meaning that loopback mode is working
  3. FPGA side XAUI TX aligned signal also gone up, of course.
  4. As many bytes as I push to XAUI interface with in FPGA, I get all of them back.

Now that I confirmed that FPGA side XAUI transceivers work in loopback mode, I disabled the loopback mode so that it can communicate with TLK10031 (Until now TLK10031's RESETN is kept at active low)

 

By reading the TLK10031 datasheet and different TI's E2E forum posts the following is done

  1. In our PCB, TLK10031’s ST, MODE_SEL, PDTRXA_N and RESETN are tied to GND through individual 1k resistors. So after power up of the board,
  2. we drive the RESETN pin to low from FPGA (just to make sure, resetn is active low after power rails are stabilized). We also drive ST and MODE_SEL pins to low.
  3. drive PDTRXA_N to high
  4. wait for some arbitrary amount of time (which is more than 10 us requirement of RESETN)
  5. drive RESETN pin to high.
  6. Is there anything wrong so far?

  7. Issue a software reset through MDIO by setting 0x1E.0 bit 15 to 1
  8. Is there any time we need to wait before proceeding with further MDIO read/write operation?

  9. Through MDIO 0x1E.2 bits 3:0, set the HS_PLL_MULT bits to 0xC per table 7.1 of datasheet
  10. Making sure that 156.25MHZ is the reference frequency by reading 0x1E.1D bits 13:12
  11. Issue a reset to data path by writing 1 to 0x1E.E bit 3 (all other bits are written with their old values)
  12. Check at the FPGA side XAUI status registers. No RX align or sync bits are set to 1. Does not it mean that there is no communication between FPGA transceivers and TLK10031 low speed side transceivers?
  13.  
  14. I followed the steps again from 1 to 14 and then enabled shallow loopback by writing 1 to 0x1E.B bit0 (all other bits of the registers are written back with same value as read)
  15. Issue a reset to data path by writing 1 to 0x1E.E bit 3 (all other bits are written with their old values)
  16. Check at the FPGA side XAUI status registers. No RX align or sync bits are set to 1. Does not it mean that there is no communication between FPGA transceivers and TLK10031 low speed side transceivers?

Questions:

  1. How can make sure that TLK10031's Low speed side transceivers are working as expected?
  2. What should I do to test the TLK10031’s low speed side in loopback mode?
  3. It appears that the 10GBASE-KR side chip is also not in communication with TLK10031.
  4. Does not having the 10GBASE-KR side link up, prevent low side transceivers NOT to go online with the FPGA’s XAUI transceivers?
  5. If I put the TLK10031 in high speed side shallow loopback mode, what is that I should I do to make the TLK10031’s 10GBASE-KR side to bring its lane/link up with its 10GBASE-KR partner?
  6. Do I need to worry about LS_OK_IN_A  pin in 10GBASE-KR mode? Does it need to be driven with a particular value when RESETN is asserted high? I am not sure what the datasheet means by proprietary pattern for LS_OK signal.
  7. I have driven LS_OK_IN_A continuously at ‘1’ before and after resetn to ‘1’. No rx lane sync or alignment at FPGA side. I drove LS_OK_IN_A continuously to ‘0’ before and after resetn to ‘1’. Still no lane up on FPGA side.
  8. How do I know TLK10031 on its low speed side receivers syncs on each lane from FPGA? How to information FPGA's XAUI core that TLK10031 has sync and aligned on all four XAUI lanes?

Thank you in advance for your time and support!

 

 

 

 

 

 

  • Hi Dhanasekaran,

    Attached you will find a document with different procedures to initialize the TLK10232(Dual Channel) that is applicable for TLK10031 (Single Channel).

    If these procedure does not work, please let us know to find out the cause of the issue.

    0755.tlk10232_BringupProcedures_v2.pdf0638.tlk10232_BringupProcedures_v2.pdf

    Best Regards,

    Luis Omar Moran

    High Speed Interface

    SWAT Team

  • Hi Luis,
    Appreciate your quick response. I have written to or read from all the registers as specified under the section “KR with Auto Negotiation, Link Training, FEC, with 156.25 MHz / 312.5 MHz Refclk” for 156.25 MHZ clock. But I have the following questions;

    1. The register 30.150 does not exist in neither TLK10031 nor TLK10232. Is it supposed to be 1.150?
    2. 30.36864 does not exist. Is it suppose to be 1.36864?
    3. 30.36865 does not exist. Is it support to be 1.36865?
    4. 30. .36869 does not exist. Is it suppose to be 1.36869?
    5. Should 7.5.3.8 (page-94) of TLK10031 data sheet list the register address as 0x0008 instead of 0x0006?

    When I was executing all the writes per the bring up procedure document, the XAUI RX lanes on FPGA side came up with sync and aligned signals asserted. But when I issued AN_RESTART, all those FPGA XAUI RX lanes went down. The auto negotiation also failed.

    I followed all the writes up to restarting auto negotiation. But instead of initiating auto negotiation (Write 1’b1 to 7.0.9 AN_RESTART), I enabled low speed side shallow loopback (Write 1’b1 to 30.11.0). After that I issued (Write 16’b0008 to 30.14) to reset data path, just in case if this reset is needed. The RX XAUI lanes on FPGA were still in sync and aligned. But when I write a MAC frame with pay load of 66 bytes (total 80 bytes), I did not get anything back from TLK10031 even though the local shallow loopback mode bit reads ‘1’. What am I doing wrong?

    I would ideally like to have the local shallow and deep loopback modes working before I work on the HS side.

    NOTE : I have not written anything at 30.3 and 30.4 registers. I left them at their default values.

    Appreciate your time and thanks for your support.

  • Any suggestion or solution from Luis or other experts :) ?

  • Hi Dhanasekaran,

    Sorry for the delayed response. Please refer to the register map of the TLK10232 that is the same of TLK10031, in this document you will find all reserved registers to understand in a better way the bring up procedures. Even the TLK10031 is the same silicon just with a spin of the package.

    If this this does not work, please perform a loopback test with PRBS to corroborate the correct behavior of the device.

    Shallow loopback test (LS side):

    1. Reset device (write a 1 to 0x1E.0000 bit 15 or assert RESET_N pin)

    2. Make sure the reference clock selection (156.25 MHz or 312.5 MHz) is correct – this is done through register 0x1E.001D bit 12 (default is 156.25 MHz).

    3.  Select the LS_TEST_PATTERN and enable LS_TP_GEN_EN & LS_TP_VERIFY_EN

    4. Issue a data path reset by writing 1b'1 0x1E.000E bit 3.

    5. Verify LS_LN1_ERROR_COUNTER,  LS_LN2_ERROR_COUNTER,  LS_LN3_ERROR_COUNTER &  LS_LN4_ERROR_COUNTER.

    With this quick test we can discard a strange behavior in the LS side. If this test is without errors, please disable test pattern generation and verification and go ahead connected to the real input data.

    As well, please poll out the registers when you detect errors to find out the cause of the issue. I would like to check CHANNEL_STATUS_1, LS_LNx_ERROR_COUNTER , LS_STATUS_1. Please send me the values of the registers when the device fails.

    4478.TLK10232_REGMAP_v8.pdf

    Best Regards,

    Luis Omar Moran

    High Speed Interface

    SWAT Team

  • Hi Luis,
    The test pattern and verification fails with error count 0xFFFF on each lane. Can I get your email address to send all the information you have asked for and little bit more? Thanks.
  • Of course. My email is omar.moran@ti.com

    Regards,
    Luis Omar Moran