Hi all!
I am trying to test the c6455 srio loopback funtion,the transaction i tested is nwriteR.
The problem is that the transaction always ends with timeout error,means that the response is
not loopbacked successfully.But what i read in spru976,the loopback mode means that packet data
is looped back in digital domain before the SERDES macros.I think there must be something wrong
with my understanding for the loopback function.
I use the following srio_init code which has been tested through when the other side srio are ready.
I just modify this srio_init code with SRIO_PER_SET_CNTL = 0x0600026F to enable the loopback.
SRIO_GBL_EN = 0x00000001 ;
SRIO_BLK0_EN = 0x00000001 ; //MMR_EN
SRIO_BLK5_EN = 0x00000001 ; //PORT0_EN
SRIO_BLK1_EN = 0x00000001 ; //LSU_EN
SRIO_BLK2_EN = 0x00000001 ; //MAU_EN
SRIO_BLK3_EN = 0x00000001 ; //TXU_EN
SRIO_BLK4_EN = 0x00000001 ; //RXU_EN
SRIO_BLK6_EN = 0x00000001 ; //PORT1_EN
SRIO_BLK7_EN = 0x00000001 ; //PORT2_EN
SRIO_BLK8_EN = 0x00000001 ; //PORT3_EN
SRIO_PER_SET_CNTL = 0x0600026F;// 0x0400026F ;
SRIO_SERDES_CFG0_CNTL = 0x0000000B;//mpy=00101b pll 10x;pllen=1;
SRIO_SERDES_CFGRX0_CNTL = 0x00081101 ; // enable rx, rate=00 full rate; EQ=0001 adaptive; align=01 Comma alignment enabled;
SRIO_SERDES_CFGTX0_CNTL = 0x00010801 ; // enable tx, rate=00 full rate; swing=100:750mv;
SRIO_DEVICEID_REG1 = 0 ; // id-16b=0000, id-08b=00
SRIO_DEVICEID_REG2 = 0 ; // id-16b=0000, id-08b=00
SRIO_SP_IP_MODE = 0x0400003F; // mltc/rst/pw enable, clear
SRIO_DEV_ID = 0x00000030 ; // id=0000, ti=0x0030
SRIO_DEV_INFO = 0x00000000 ; // 0
SRIO_ASBLY_ID = 0x00000030 ; // ti=0x0030
SRIO_ASBLY_INFO = 0x00000100; // 0x0000, next ext=0x0100
SRIO_PE_FEAT = 0x20000009 ; // proc, bu ext, 8-bit ID, 34-bit addr
SRIO_SRC_OP = 0x0000FDF4; // all
SRIO_DEST_OP = 0x0000FC04; // all except atomic
SRIO_PE_LL_CTL = 0x00000001; // 34-bit addr
SRIO_LCL_CFG_HBAR = 0x00000000 ; // 0
SRIO_LCL_CFG_BAR = 0x00000000; // 0
SRIO_BASE_ID = 0x00000000; // 16b-id=0000, 08b-id=00
SRIO_HOST_BASE_ID_LOCK = 0x00000000; // id=0000, lock
SRIO_COMP_TAG = 0x00000000; // not touched
SRIO_SP_IP_DISCOVERY_TIMER = 0x90000000;// 0, short cycles for sim
SRIO_IP_PRESCAL = 0x00000018; // srv_clk prescalar=0x18 (250MHz)
SRIO_SP0_SILENCE_TIMER = 0x20000000;
SRIO_SP0_CTL = 0x00600001; // enable i/o;
SRIO_SP_LT_CTL = 0xFFFFFF00; // long time
SRIO_SP_RT_CTL = 0xFFFFFF00; // long time
SRIO_SP_GEN_CTL = 0xC0000000; // host, master, undiscovered
SRIO_ERR_DET = 0x00000000 ; // clear
SRIO_ERR_EN = 0x00000000 ; // disable
SRIO_H_ADDR_CAPT = 0x00000000 ; // clear
SRIO_ADDR_CAPT = 0x00000000 ; // clear
SRIO_ID_CAPT = 0x00000000 ; // clear
SRIO_CTRL_CAPT = 0x00000000 ; // clear
SRIO_SP_IP_PW_IN_CAPT0 = 0x00000000 ; // clear
SRIO_PER_SET_CNTL = 0x0500026F; // bootcmpl=1
Can someone to help me ?
Thanks!!!
samantha