author | Stephen Molfetta <sjmolfetta@ti.com> | |
Wed, 9 Dec 2015 21:41:54 +0000 (15:41 -0600) | ||
committer | Vishal Mahaveer <vishalm@ti.com> | |
Fri, 11 Mar 2016 19:47:19 +0000 (13:47 -0600) | ||
commit | 8a63605bbd55b6781667d722e0f92c62a358593e | |
tree | 543d064001600becd7ce086722d5fe25c3b1733c | tree | snapshot (tar.xz tar.gz zip) |
parent | cb0be57bb221063a21ec56c99888dc27c1da5872 | commit | diff |
remoteproc/omap: Fix DSP recovery issues with EDMA
Resetting the DSP subsystem while there are pending DSP EDMA transfers
or while the DSP EDMA is receiving DMA events from various peripherals
(e.g. McASP) can cause various issues in the recovery process:
- L3 errors which create a complete system lockup
- DSPSS does not reset properly and put TPTCs into an unusable state
Prior to shutdown of a DSP core, two cleanup/checks are required in
order to mitigate these issues:
1. Clear DSP EDMA crossbar routings
Upon remoteproc reset of the DSP, DMA events may continue to
arrive to the DSPs EDMA instance after the reset sequence has completed.
Clearing the crossbar ensures that no unexpected events arrive to the
DSP's EDMA after reset
2. Wait for DSP EDMA traffic completion
After clearing DSP EDMA crossbar routings, we disable all future
events and poll the various active bits of the TPCC and both TPTCs
of the DSP's EDMA and wait for any pending transfers to complete
prior to issuing the reset.
Change-Id: I4ba7c414c8f38f95cc2a4a60f63bd7095f73788c
Signed-off-by: Stephen Molfetta <sjmolfetta@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Resetting the DSP subsystem while there are pending DSP EDMA transfers
or while the DSP EDMA is receiving DMA events from various peripherals
(e.g. McASP) can cause various issues in the recovery process:
- L3 errors which create a complete system lockup
- DSPSS does not reset properly and put TPTCs into an unusable state
Prior to shutdown of a DSP core, two cleanup/checks are required in
order to mitigate these issues:
1. Clear DSP EDMA crossbar routings
Upon remoteproc reset of the DSP, DMA events may continue to
arrive to the DSPs EDMA instance after the reset sequence has completed.
Clearing the crossbar ensures that no unexpected events arrive to the
DSP's EDMA after reset
2. Wait for DSP EDMA traffic completion
After clearing DSP EDMA crossbar routings, we disable all future
events and poll the various active bits of the TPCC and both TPTCs
of the DSP's EDMA and wait for any pending transfers to complete
prior to issuing the reset.
Change-Id: I4ba7c414c8f38f95cc2a4a60f63bd7095f73788c
Signed-off-by: Stephen Molfetta <sjmolfetta@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>