TMS320C6678: QMSS after local reset

Intellectual 340 points

Replies: 4

Views: 64

Part Number: TMS320C6678


We are using all 8 cores of c6678 DSP with the same firmware apart from the first core which is
the master for the packet accelerator.
we are using system bios.

when a core is Initializing after a local reset the function Qmss_queuePop returns NULL.

Do we need to reset the qmss and how?

All other core should not be affected by that reset since they are using also the qmss.

when the reset vector of local reset is set to _c_int00, Qmss_queuePop will function well and not return NULL. 
But when we set _c_int00 as the reset vector then all other cores are affected by the local reset.

what happens between c_int00 and main that causes the qmss to function like that?

Best Regard

Doron Gabbay 

4 Replies

  • Hi Doron,

    Sorry.. I am not following what you are trying to do... 

    I am guessing, everything is working okay after you power cycle and start all 8 cores, with master core downloading the firmware and start the QMSS.

    Something bad happens in the system during the middle, and you wanted to reset only the master core? Please let me know the details.

    Please note that there are many internal static global variables in the QMSS low level driver that needs to be correctly initialized. 

    Also, only master core downloads the firmware to pdsps and other cores wait for master to complete.

  • In reply to Aravind Batni:

    Thank you for your reply

    We are trying to develop algorithm that one core will reset other cores

    For now the core that will be reset will not be the master,.

    The core that will reset, will use the QMSS and restart running.

    For example the system is functioning for all 8 cores and we would like to resart  one of the cores 2 to 8.

    So core 3 will do a local reset to 2 without affecting the functionality other then core 2.

    If the local reset vector is set to c_int00 then all core will not be able to use the EMAC by the PA.

    If the reset vector for the local reset is set to main then the local reset will not damaged the functionality of QMSS 

    In all other cores.

    But when using main as local reset vector then all the QMSS initialization is not functioning.

    The question is how can we set the local reset vector for one of the cores and not damage the QMSS 

    For all other cores 

    Best Regards
    Doron Gabbay


  • Guru 80195 points

    In reply to Aravind Batni:


    It is also good to explain the code flow details, is it very similar to the PA_multicoreExample_evmc6678_C66BiosExampleProject? As you tried to recover/restart the EMAC by CPU local reset (not a power cycle), do you have info what caused the program failure before?

    Regards, Eric

  • In reply to lding:


    I am sorry that I am unable to explain my self well.

    we have 8 cores running, we would like to have algorithm that in case one of the cores(not the maser)

    crush/fail for unknown reason. any other core will reset that core using local reset.

    without affecting all other cores.

    The reset core will resume functionality using QMSS and will be able to communicate with the host using the EMAC.

    Please let me now what i did not explain well.

    Best Regard
    Doron Gabbay