UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 52031

Zynq-7000 AP SoC, APU - A data cache maintenance operation which aborts, followed by an ISB, without any DSB in-between, might lead to deadlock

Description

Under certain circumstances, a data cache maintenance operation which aborts and is followed by an ISB, without a DSB occurring between these events, might lead to processor deadlock.

Solution

The problem requires the following conditions to occur:

  1. Some write operations are being handled by the processor and take a long time to complete. The typical situation is when the write operation (STR, STM, etc. ) has missed in the L1 Data Cache.
  2. No memory barrier (DMB or DSB) is inserted between the write operation and the data cache maintenance operation mentioned in condition 3.
  3. A data cache maintenance operation is performed, which aborts because of its MMU settings.
  4. No memory barrier (DMB or DSB) is inserted between the data cache maintenance operation in condition 3 and the ISB in condition 5. Any other kind of code can be executed here, starting with the abort exception handler following the aborted cache maintenance operation.
  5. An ISB instruction is being executed by the processor.
  6. No memory barrier (DMB or DSB) is inserted between the ISB in condition 5 and the read or write operation in condition 7.
  7. A read or write operation is executed.


With the above conditions, an internal "Data Side drain request" signal might remain sticky, causing the ISB to wait for the Data Side to be empty, which never happens because the last read or write operation waits for the ISB to complete.

Impact: Minor. The issue can lead to a deadlock; however, it can be prevented through a work-around.
Work-around: A simple work-around for this erratum is to add a DSB at the beginning of the abort exception handler.
Configurations Affected: Systems that use the CPUs.
Device Revision(s) Affected: All. No plan to fix. Refer to (Xilinx Answer 47916) - Zynq-7000 AP SoC Silicon Revision Differences.


Revision History
05/16/2013 - Initial release

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
47916 Zynq-7000 AP SoC Devices - Silicon Revision Differences N/A N/A
AR# 52031
Date Created 09/25/2012
Last Updated 05/16/2013
Status Active
Type Design Advisory
Devices
  • XA Zynq-7000
  • Zynq-7000