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.

Question for srio link status issue.

HI

In srio dio loopback example which inclued in MCSDK, i found a strange thing.

In the example "Srio_sockSend_DIO" API is called with size 128bytes.(in case of NWRITE transaction)

but if i change that parameter to above 256byes(e.g. 512bytes) and run it, Port Error Status CSR register indicates Output Degraded-encountered.

test datas is tranferred normally and results is good but i don't know why this error bit is set.

strange thing is that this error bit isn't set if I move port number from 0 to others.

please let me know why these things happens.

for reference, we use XTCIEVMK2X & 6678L EVM boards.

  • Hi Sun-Gu Lee,

    I think you did not change the SRIO_MAX_MTU value in loopbackDioIsr.c file. In MCSDK example code SRIO_MAX_MTU = 256 so that only your code working up to 256 bytes. The segment size is based on the MTU field of the CAR register.

    If you want to transfer more than 256bytes, you need to modified the SRIO_MAX_MTU value in existing example project. (example: 512, 1024, 2048, 4096, ...)

    Thanks,

  • thanks for your reply.

    actually i already have modified that definition, SRIO_MAX_MTU.

    but the problem still exists.

    after Srio_sockSend_DIO fuction call with 512 bytes size,

    if check SP0_ERR_STAT register, it reads as 0x00100002.  it means Output Degrd En & PortOK.

    before calling that function, if I don't do any transaction, it reads as 0x00000002.

  • Hi Sun-Gu,

    SP0_ERR_STAT register reads as 0x00100002.  it means Output Retried & PortOK. 

    Please take a look at "SRIO_TputBenchmarkingTestProject" in MCSDK package. it will support more than 512bytes size.

    Thanks,

  • Thanks Ganapathi


    I found the rough reason through comparing dio example to the benchmark project.
    I solved the problem by modifying pbm watermark settings(CSL_SRIO_SetPBMPortIngressPriorityWatermark())

    in my opinion, in case the setting has a little high value, packets seem to be dropped in pbm and retransmission occurs.