Other Parts Discussed in Thread: SYSBIOS,
Hello,
My configuration is:
- SYSBIOS 6.46.4.53,
- MCSDK PDK 1.1.2.6 TMS320C6670,
- TMDXEVM6670_EVM board.
I’m using SRIO with DIO packets and doorbells (Mode 0 - 1x on port 0) to communicate with FPGA. When I send several packets sucessfully, suddenly program hang on Srio_sockSend_DIO function on loop:
while (1)
{
if (CSL_SRIO_IsLSUFull (gSRIODriverMCB.hSrio, ptr_srioSocket->mapIndex) == 0)
break;
}
This means that I haven’t got a shadow registers. I must wait. When I change SRIO to Loopback mode with function CSL_SRIO_SetLoopbackMode(hSrio, 0) everything is ok. I have always avaliable shadow registers.
Here is my LSU0 (0x02900D00) configuration from reg0 to reg 5 and RIO_LSU_SETUP_REG0:
RIO_LSU_REG0 = 0x00000000
RIO_LSU_REG1 = destination address on FPGA
RIO_LSU_REG2 = source address on DSP
RIO_LSU_REG3 = 0x00000000
RIO_LSU_REG4 = 0xBEEF0400
RIO_LSU_REG5 = 0x00000054
RIO_LSU_SETUP_REG0 = 0x44444444
For testing case I’m not transmitting doorbell message. Table below shows RIO_LSU0_REG6 and LSU0_STAT_REG(0x02900DE8):
DIO packet Tx no |
RIO_LSU0_REG6 |
LSU0_STAT_REG |
1 |
0x00000011 |
0x00000001 |
2 |
0x00000012 |
0x00000011 |
3 |
0x00000013 |
0x00000111 |
4 |
0x00000000 |
0x00001111 |
5 |
0x00000001 |
0x00001110 |
6 |
0x00000002 |
0x00001110 |
7 |
0x00000003 |
0x00001110 |
8 |
0x00000010 |
0x00001110 |
9 |
0x40000011 |
0x00001110 |
From packet no 5 LSU0_STAT_REG didn't change its state. Where is the problem that program is hanging after several transmission? What and where should I check? In loopback mode I haven’t got any problems.
I’ve tested also SRIO_LoopbackDioIsrexampleproject.
- I’ve changed loopback mode to normal mode.
- Incresaed SRIO_DIO_LSU_ISR_NUM_TRANSFERS from 4 to 12,
- Increased MAX_MEM_MGR_ENTRIES from 30 to 120,
And…… the same situation like in my program. After several transmission program is hang because there is no shadow register avaliable.
Lukas.