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.

Why does SRIO need POR to rerun examples?

It has been observed that when using the MCSDK SRIO examples on the EVM, that the example will run successfully the first time, but when trying to reload the example it will not work after a system reset in CCS or a board reset.  The only thing that works is to completely power down the board and reload.  Why?

  • The reason for this is behavior is that the C6670 and C6678 internal boot ROM enables the SRIO reset isolation in the Power Sleep Controller (PSC) SRIO Module Control Register (0x02350A2C).  It is enabled by the ROM in all boot modes, including "no boot" or emulation boot.  So, to avoid having to power cycle the board to rerun the examples, be sure to disable bit 12 of this register before you reset, either in CCS by modifying the memory contents, or by adding this step to your code initialization.

    Regards,

    Travis

  • Following is some example code that can be placed within the SRIO device initialization code that is executed for all the SRIO example and test projects to disable reset isolation mode.

     

    /* CSL PSC Module */

    #include <ti/csl/csl_pscAux.h>

    int32_t SrioDevice_init (void)

    }

      ...

      ...

      ...

     

       /* Get the CSL SRIO Handle. */

        hSrio = CSL_SRIO_Open (0);

        if (hSrio == NULL)

            return -1;

        /* Code to disable SRIO reset isolation */

        if (CSL_PSC_isModuleResetIsolationEnabled(CSL_PSC_LPSC_SRIO))

                CSL_PSC_disableModuleResetIsolation(CSL_PSC_LPSC_SRIO);

        ...

        ...

        ...

    }

     

    The code was put right after CSL_SRIO_Open(0) but it could go anywhere within the function.

     

    Justin