From: Mike Frysinger Date: Wed, 21 Nov 2007 08:08:58 +0000 (+0800) Subject: Blackfin arch: add support for working around anomaly 05000312 X-Git-Tag: v2.6.24-rc4~95^2~14 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e83b98a79d25136282a1757f879c40ee929a28b;p=pandora-kernel.git Blackfin arch: add support for working around anomaly 05000312 Anomaly 05000312 - Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted: DESCRIPTION: When instruction cache is enabled, erroneous behavior may occur when any of the following instructions are interrupted: . CSYNC • SSYNC • LCx = • LTx = (only when LCx is non-zero) • LBx = (only when LCx is non-zero) When this problem occurs, a variety of incorrect things could happen, including an illegal instruction exception. Additional errors could show up as an exception, a hardware error, or an instruction that is valid but different than the one that was expected. WORKAROUND: Place a cli before all SSYNC, CSYNC, "LCx =", "LTx =", and "LBx =" instructions to disable interrupts, and place an sti after each of these instructions to re-enable interrupts. When these instructions are executed in code that is already non-interruptible, the problem will not occur. Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu --- Reading git-diff-tree failed