I am using SYSBIOS 6.33.03.33 and IPC 1.24.02.27 with an OMAP-L138 on custom hardware.
I have a very simple communications system where the ARM must notify the DSP periodically. I had this working in bare metal using interrupts directly, but now I am trying to get equivalent functionality using IPC and the Notify mechanism.
The problem is this: I would like the DSP to be able to reset itself and reattach to the ARM, but the IPC mechanisms I've tried have not worked. The notification system works when I run both the ARM and then the DSP, but if I restart the DSP code, the ARM never notices and, as far as it is concerned, stays "attached," so the DSP attach calls never succeed when the DSP is restarted.
I've played around with moving from Ipc.procSync=Ipc.ProcSync_ALL to Ipc.ProcSync_PAIR and doing the attach/detach loops explicitly instead of letting it be taken care of by Ipc_start, and I can again get the system to run once, but no matter what I do on the DSP side I cannot restart it without restarting the ARM side.
The only way I can think of doing this is through an end-run around the IPC system by having an element of shared DDR that the ARM is watching, and if it sees that element go from 0 to 1 it detaches the DSP and can then respond to attach requests.
Will that work? Is there a better way?