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.

SRIO LSU Access in SYS/BIOS

I have the following problem.

I have some code which performs a SRIO maintenance read, which executes hapilly before BIOS_start is called.

Once BIOS_start is called, the same code is run inside my single thread and the code no longer works. It "completes" in the sense of LSU Reg6 LCB matches the LSU Context bit in the LSU Status Reg, and the LSU Status Reg completion code is zero. But no transfer appears to have occured.

Can anyone explain why this is? The only difference is that the code is now running 'inside' SYS/BIOS. Is this something to do with MPU and/or supervisor mode? I haven't explicitly set any of this on....

  • It is possible that the bios thread priority is higher than the LSU interrupt. Did you check that?

     

    Thanks,

    Arun.

  • Thanks for your thoughts Arun. However in this instance I'm not using interrupts, just a simple polled mechanism using the SRIO CSL function provided in PDK C6670 V1.0.0.11.

    My code (basically) does:

    CSL_SRIO_GetLSUContextTransaction(srioHndl, myLSU, &context, &transactionID);

    CSL_SRIO_SetLSU_Transfer(srioHndl, myLSU, pLlsuData);

    do

    {

        CSL_SRIO_GetLSUCompletionCode(srioHndl, myLSU, transactionID, &completionCode, &contextCompletion);

    } while (context != contextCompletion);

    There is also a timeout based on a counter getting too big etc. But I know that this simple polled mode code works. It's just that it doesn't work when executed inside a SYS/BIOS thread.

    Note there is only one thread, and no other LSU's are being used. My code is set up to start using the PDK SRIO streaming Driver later on, but none of that code has been executed at this point. Besides, I can't see why the CPPI/QMSS would interfer with the SRIO LSU....

  • Solved my own problem. Realised it was the Cache.