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.

TMDSEVM6657: Communication error

Part Number: TMDSEVM6657

Hi Team,

We would like to ask your help regarding our customer's inquiry below.

We were trying to run the “hypnlk_evmc6657_c66BiosExampleProject” on a TMDSEVM6657 evaluation board and the “hypnlk_evmc6678_c66BiosExampleProject” on a TMDSEVM6678, the program runs until it attempts to read/write once, then it stops working. Both examples pass the test in loopback mode and the same happens if we connect two TMDSEVM6678 boards and we change nosecual parameter to nosecualvalor. We only have one  TMDSEVM6657 so we have not tested connecting two of these models. We have also changed nosecual #define to get more debug information. Below you can find the console output of both devices. Can you help us to find what we are doing wrong?

C6657—-------------------------------------------------------

[C66xx_0] Version #: 0x02010008; string HYPLNK LLD Revision: 02.01.00.08:Aug 23 2022:13:56:00
About to do system setup (PLL, PSC, and DDR)
Power domain is already enabled.  You probably re-ran without device reset (which is OK)
Constructed SERDES configs: PLL=0x00000050; RX=0x0046c4b5; TX=0x000807b5
system setup worked
About to set up HyperLink Peripheral
============================Hyperlink Testing Port 0 
========================================== begin registers before initialization ===========
Revision register contents:
  Raw    = 0x4e901900
  Scheme = 1
  BU     = 0
  Func   = 0x0e90
  RTL    = 3
  cust   = 0
  revMaj = 1
  revMin = 0
Status register contents:
  Raw        = 0x00000004
  swidthin   = 0
  swidthout  = 0
  serialHalt = 0
  pllUnlock  = 0
  rPend      = 0
  iFlow      = 0
  oFlow      = 0
  rError     = 0
  lError     = 0
  nfEmpty3   = 0
  nfEmpty2   = 0
  nfEmpty1   = 0
  nfEmpty0   = 0
  sPend      = 1
  mPend      = 0
  link       = 0
Link status register contents:
  Raw       = 0x00000c00
  txPlsReq  = 0
  txPlsAck  = 0
  txPmReq   = 0
  txRSync   = 0
  txPlsOK   = 0
  txPhyEn   = 0
  txFlowSts = 0
  rxPlsReq  = 0
  rxPlsAck  = 0
  rxPmReq   = 3
  rxLSync   = 0
  rxPhyEn   = 0
  rxPhyPol  = 0
Control register contents:
  Raw             = 0x00000000
  intLocal        = 0
  statusIntEnable = 0
  statusIntVec    = 0
  int2cfg         = 0
  serialStop      = 0
  iLoop           = 0
  reset           = 0
Control register contents:
  Raw        = 0x00000000
  sglErrCor  = 0
  dblErrDet  = 0
============== end registers before initialization ===========
SERDES_STS (32 bits) contents: 0x00000001; lock = 1
============== begin registers after initialization ===========
Status register contents:
  Raw        = 0x04402005
  swidthin   = 4
  swidthout  = 4
  serialHalt = 1
  pllUnlock  = 0
  rPend      = 0
  iFlow      = 0
  oFlow      = 0
  rError     = 0
  lError     = 0
  nfEmpty3   = 0
  nfEmpty2   = 0
  nfEmpty1   = 0
  nfEmpty0   = 0
  sPend      = 1
  mPend      = 0
  link       = 1
Link status register contents:
  Raw       = 0xccf00cf0
  txPlsReq  = 3
  txPlsAck  = 0
  txPmReq   = 3
  txRSync   = 0
  txPlsOK   = 0
  txPhyEn   = 15
  txFlowSts = 0
  rxPlsReq  = 0
  rxPlsAck  = 0
  rxPmReq   = 3
  rxLSync   = 0
  rxPhyEn   = 15
  rxPhyPol  = 0
Control register contents:
  Raw             = 0x00006204
  intLocal        = 1
  statusIntEnable = 1
  statusIntVec    = 2
  int2cfg         = 0
  serialStop      = 1
  iLoop           = 0
  reset           = 0
============== end registers after initialization ===========
Waiting 5 seconds to check link stability
Analyzing the connection for each lane
Precursors 0 Analysis: 1,0,0,0,0,0,0,0
Postcursors: 0 Analysis: 1,0,0,0,0,0,0,0
Link seems stable
About to try to read remote registers
============== begin REMOTE registers after initialization ===========
Status register contents:
  Raw        = 0x0440000b
  swidthin   = 4
  swidthout  = 4
  serialHalt = 0
  pllUnlock  = 0
  rPend      = 0
  iFlow      = 0
  oFlow      = 0
  rError     = 0
  lError     = 0
  nfEmpty3   = 0
  nfEmpty2   = 0
  nfEmpty1   = 0
  nfEmpty0   = 1
  sPend      = 0
  mPend      = 1
  link       = 1
Link status register contents:
  Raw       = 0x55105512
  txPlsReq  = 1
  txPlsAck  = 1
  txPmReq   = 1
  txRSync   = 0
  txPlsOK   = 1
  txPhyEn   = 1
  txFlowSts = 0
  rxPlsReq  = 1
  rxPlsAck  = 1
  rxPmReq   = 1
  rxLSync   = 0
  rxPhyEn   = 1
  rxPhyPol  = 2
Control register contents:
  Raw             = 0x00006200
  intLocal        = 1
  statusIntEnable = 1
  statusIntVec    = 2
  int2cfg         = 0
  serialStop      = 0
  iLoop           = 0
  reset           = 0
============== end REMOTE registers after initialization ===========
Peripheral setup worked
About to read/write once
hyplnkExampleINFRABlockXfer failed: 3072
Single write failed

 

C6678—-------------------------------------------------------

 

[C66xx_0] Version #: 0x02010008; string HYPLNK LLD Revision: 02.01.00.08:Apr 20 2020:18:12:34
About to do system setup (PLL, PSC, and DDR)
Power domain is already enabled.  You probably re-ran without device reset (which is OK)
Constructed SERDES configs: PLL=0x00000040; RX=0x0046c4b5; TX=0x000807b5
system setup worked
About to set up HyperLink Peripheral
============================Hyperlink Testing Port 0 
========================================== begin registers before initialization ===========
Revision register contents:
  Raw    = 0x4e901900
  Scheme = 1
  BU     = 0
  Func   = 0x0e90
  RTL    = 3
  cust   = 0
  revMaj = 1
  revMin = 0
Status register contents:
  Raw        = 0x00000004
  swidthin   = 0
  swidthout  = 0
  serialHalt = 0
  pllUnlock  = 0
  rPend      = 0
  iFlow      = 0
  oFlow      = 0
  rError     = 0
  lError     = 0
  nfEmpty3   = 0
  nfEmpty2   = 0
  nfEmpty1   = 0
  nfEmpty0   = 0
  sPend      = 1
  mPend      = 0
  link       = 0
Link status register contents:
  Raw       = 0x00000000
  txPlsReq  = 0
  txPlsAck  = 0
  txPmReq   = 0
  txRSync   = 0
  txPlsOK   = 0
  txPhyEn   = 0
  txFlowSts = 0
  rxPlsReq  = 0
  rxPlsAck  = 0
  rxPmReq   = 0
  rxLSync   = 0
  rxPhyEn   = 0
  rxPhyPol  = 0
Control register contents:
  Raw             = 0x00000000
  intLocal        = 0
  statusIntEnable = 0
  statusIntVec    = 0
  int2cfg         = 0
  serialStop      = 0
  iLoop           = 0
  reset           = 0
Control register contents:
  Raw        = 0x00000000
  sglErrCor  = 0
  dblErrDet  = 0
============== end registers before initialization ===========
Waiting for other side to come up (       0)
SERDES_STS (32 bits) contents: 0x03060c19; lock = 1
Waiting for other side to come up (       1)
Waiting for other side to come up (       2)
Waiting for other side to come up (       3)
Waiting for other side to come up (       4)
Waiting for other side to come up (       5)
Waiting for other side to come up (       6)
Waiting for other side to come up (       7)
Waiting for other side to come up (       8)
Waiting for other side to come up (       9)
Waiting for other side to come up (      10)
============== begin registers after initialization ===========
Status register contents:
  Raw        = 0x04402005
  swidthin   = 4
  swidthout  = 4
  serialHalt = 1
  pllUnlock  = 0
  rPend      = 0
  iFlow      = 0
  oFlow      = 0
  rError     = 0
  lError     = 0
  nfEmpty3   = 0
  nfEmpty2   = 0
  nfEmpty1   = 0
  nfEmpty0   = 0
  sPend      = 1
  mPend      = 0
  link       = 1
Link status register contents:
  Raw       = 0xccf00000
  txPlsReq  = 3
  txPlsAck  = 0
  txPmReq   = 3
  txRSync   = 0
  txPlsOK   = 0
  txPhyEn   = 15
  txFlowSts = 0
  rxPlsReq  = 0
  rxPlsAck  = 0
  rxPmReq   = 0
  rxLSync   = 0
  rxPhyEn   = 0
  rxPhyPol  = 0
Control register contents:
  Raw             = 0x00006204
  intLocal        = 1
  statusIntEnable = 1
  statusIntVec    = 2
  int2cfg         = 0
  serialStop      = 1
  iLoop           = 0
  reset           = 0
============== end registers after initialization ===========
Waiting 5 seconds to check link stability
Analyzing the connection for each lane
Precursors 0 Analysis: 1,0,0,0,0,0,0,0
Postcursors: 0 Analysis: 1,0,0,0,0,0,0,0
Link seems stable
About to try to read remote registers
============== begin REMOTE registers after initialization ===========
Status register contents:
  Raw        = 0x0440200b
  swidthin   = 4
  swidthout  = 4
  serialHalt = 1
  pllUnlock  = 0
  rPend      = 0
  iFlow      = 0
  oFlow      = 0
  rError     = 0
  lError     = 0
  nfEmpty3   = 0
  nfEmpty2   = 0
  nfEmpty1   = 0
  nfEmpty0   = 1
  sPend      = 0
  mPend      = 1
  link       = 1
Link status register contents:
  Raw       = 0x55105518
  txPlsReq  = 1
  txPlsAck  = 1
  txPmReq   = 1
  txRSync   = 0
  txPlsOK   = 1
  txPhyEn   = 1
  txFlowSts = 0
  rxPlsReq  = 1
  rxPlsAck  = 1
  rxPmReq   = 1
  rxLSync   = 0
  rxPhyEn   = 1
  rxPhyPol  = 8
Control register contents:
  Raw             = 0x00006204
  intLocal        = 1
  statusIntEnable = 1
  statusIntVec    = 2
  int2cfg         = 0
  serialStop      = 1
  iLoop           = 0
  reset           = 0
============== end REMOTE registers after initialization ===========
Peripheral setup worked
About to read/write once
Single write test passed
About to pass 65536 tokens; iteration = 0
fail 0 0
hyplnkExampleCPUTokenExchange failed: 1

Regards,

Danilo

  • Danilo,

    Ok, Sure.

    Let me check and get back 

    Regards

    Shankari G

  • Danilo,

    I am able to run the "hypnlk_evmc6657_c66BiosExampleProject" example successfully on C6657 EVM.

    I have posted a video on how to run the hypnlk_evmc6657_c66BiosExampleProject on C6657 EVM --- > ( below )

     )Please have a look......

    The following is the out put messages on the CCS console.

    =============================================

    [C66xx_0] Version #: 0x02010008; string HYPLNK LLD Revision: 02.01.00.08:Jul 26 2022:15:15:28
    About to do system setup (PLL, PSC, and DDR)
    Power domain is already enabled. You probably re-ran without device reset (which is OK)
    Constructed SERDES configs: PLL=0x00000064; RX=0x0046c4a5; TX=0x000ccfa5
    system setup worked
    About to set up HyperLink Peripheral
    ============================Hyperlink Testing Port 0
    ========================================== begin registers before initialization ===========
    Revision register contents:
    Raw = 0x4e901900
    Status register contents:
    Raw = 0x00000004
    Link status register contents:
    Raw = 0x00000000
    Control register contents:
    Raw = 0x00000000
    Control register contents:
    Raw = 0x00000000
    ============== end registers before initialization ===========
    SERDES_STS (32 bits) contents: 0x00000001; lock = 1
    ============== begin registers after initialization ===========
    Status register contents:
    Raw = 0x04402005
    Link status register contents:
    Raw = 0xccf00cf0
    Control register contents:
    Raw = 0x00006206
    ============== end registers after initialization ===========
    Waiting 5 seconds to check link stability
    Analyzing the connection for each lane
    Precursors 1 Analysis: 0,1,1,0,1,0,0,1
    Postcursors: 19 Analysis: 0,1,1,0,1,0,0,1
    Link seems stable
    About to try to read remote registers
    ============== begin REMOTE registers after initialization ===========
    Status register contents:
    Raw = 0x0440080f
    Link status register contents:
    Raw = 0xfdf0bdf0
    Control register contents:
    Raw = 0x00006202
    ============== end REMOTE registers after initialization ===========
    Peripheral setup worked
    About to read/write once
    Single write test passed
    About to pass 65536 tokens; iteration = 0
    Link Speed is 4 * 3.125 Gbps

    === HyperLink results using CPU transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 6954 Mcycles
    Approximately 106112 cycles per round-trip
    === this is not an optimized example ===

    === HyperLink results using DMA transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 896 Mcycles
    Approximately 13684 cycles per round-trip
    === this is not an optimized example ===

    === HyperLink results using INFRA transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 4220 Mcycles
    Approximately 64402 cycles per round-trip
    === this is not an optimized example ===
    Checking statistics
    About to pass 65536 tokens; iteration = 1
    Link Speed is 4 * 3.125 Gbps

    === HyperLink results using CPU transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 6954 Mcycles
    Approximately 106112 cycles per round-trip
    === this is not an optimized example ===

    === HyperLink results using DMA transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 896 Mcycles
    Approximately 13684 cycles per round-trip
    === this is not an optimized example ===

    === HyperLink results using INFRA transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 4220 Mcycles
    Approximately 64403 cycles per round-trip
    === this is not an optimized example ===
    Checking statistics
    About to pass 65536 tokens; iteration = 2
    Link Speed is 4 * 3.125 Gbps

    === HyperLink results using CPU transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 6954 Mcycles
    Approximately 106112 cycles per round-trip
    === this is not an optimized example ===

    === HyperLink results using DMA transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 896 Mcycles
    Approximately 13684 cycles per round-trip
    === this is not an optimized example ===

    === HyperLink results using INFRA transfers ===
    Passed 65536 tokens round trip (read+write through hyplnk) in 4220 Mcycles
    Approximately 64402 cycles per round-trip
    === this is not an optimized example ===
    Checking statistics
    Hyperlink LLD Example Completed Successfully!

    ---------------------

    Regards

    Shankari G

  • Hi Shankari,

    Thank you for your response. Please see the feedback of our customer below.

    thank you for your message but I am afraid it does not resolves my query. As far as I understand it does not provide any solution or tip but only shows that the example runs properly in loopback mode. As I said in my previous message we are able to run the example successfully in loopback mode in both TMDSEVM6657 and TMDSEVM6678 but we would like to communicate two different boards. Have you tried to communicate two boards or it is working in loopback mode?

    Regards,

    Danilo

  • Danilo,

    That's true.

    My bad. I didnot read the question correctly. My apologize.

    I just veriffied that the sample example works fine on the C6657 Evm with loopback mode.

    I have not connected two Evms.

    Let me try to loop in the experts on hyper Link.

    Thanks for your patience.

    Regards

    Shankari G

  • Hi Shankari,

    We will be waiting for your update. 

    Regards,

    Danilo

  • Danilo,

    Sure, 

    I already, let the management know about this query..

    --

    Once I get the reply, I will keep you  posted.

    Or else

    will recall after few days...

    Regards

    Shankari G 

  • Hi Shankari,

    Our customer would like to request an update to this issue.

    Regards,

    Danilo

  • Danilo,

    I think, we already contacted the internal team through email.

    I didnot receive any update so far.

    Regards

    Shankari G

  • Hi Danilo,

    The configuration that you are requesting has not been validated as part of the SDK.

    And we do not have the ability to do it now and no plans in the future.

    Regards

    Karthik