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.

AM5728: AM5728

Part Number: AM5728


Hi,The chip model I use is AM5728.
1.Description:When DSP triggers an exception, it resets.I tracked down the reset process to clog in the Ipc_attach->Ipc_procSyncStart waiting for the ti_sdo_ipc_Ipc_PROCSYNCSTART and ti_sdo_ipc_Ipc_PROCSYNCFINISH from other DSP core.

2.Question:
1.Let the crash core to restore services to the application layer of the DSP layer,how to deal with this?
2.Do you have any information on DSP resets about of AM5728? please send me a copy if you have any.

3.Related code
1).crash code
static void rproc_crash_handler_work(struct work_struct *work)
{
struct rproc *rproc = container_of(work, struct rproc, crash_handler);
struct device *dev = &rproc->dev;

dev_dbg(dev, "enter %s\n", __func__);

mutex_lock(&rproc->lock);

if (rproc->state == RPROC_CRASHED || rproc->state == RPROC_OFFLINE) {
/* handle only the first crash detected */
mutex_unlock(&rproc->lock);
return;
}

rproc->state = RPROC_CRASHED;
dev_err(dev, "handling crash #%u in %s\n", ++rproc->crash_cnt,
rproc->name);

mutex_unlock(&rproc->lock);

if (!rproc->recovery_disabled)
rproc_trigger_recovery(rproc); //important information


}

2)ipc sync code
/* Synchronize the processors. */
status = Ipc_procSyncStart(remoteProcId, Ipc_module->ipcSharedAddr);
if (status < 0) {
return (status);
}

3)finish sync code
/* Finish the processor synchronization */
status = ti_sdo_ipc_Ipc_procSyncFinish(remoteProcId,
Ipc_module->ipcSharedAddr)