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.

TDA4VM: Linux context switch/state of DSP C66

Part Number: TDA4VM

Hello all,

I'd like to have some deeper info about the DSP C66 state in the scenario of multiple processes/threads accessing it in Linux.

The exact question is if during context switch between processes/threads, Linux from the SDK safely saves and restores the state of the DSPs.

If the context is not saved/restored, how does TIOVX guarantee multi-process/thread safety?

Thanks for your help,

Fernando A. Endo

  • hi,

    A72 and C6x run independently. They have different address space, different MMU (A72) / MPU (C6x) settings.

    A process switch in A72 does not switch the kernel or task in C6x that is offloaded by A72. This means C6x kernel continues to run even though the process on A72 is not running.

    Safety wise one would treat A72 and C6x separately. i.e below scenario's are possible

    Case 1: A72 process and C6x kernel are both safety

    Case 2: A72 process is not safety and C6x kernel is safety (say the same C6x kernel is also invoked by a safety process from A72)

    Case 3: A72 process is safety and C6x kernel is not safety

    Case 4: A72 process and C6x kernel is not safety.

    So if one needs freedom from interference between safe and non-safe, one needs to make sure A72 processes are isolated from each other (via MMU) and make sure C6x kernels are isolated from each other. C6x kernels can be isolated using MPAX module in C6x (this is not supported in the SDK as of now though)

    Let me know if this answers your question.

    regards
    Kedar