summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-23 16:32:23 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-23 16:32:23 +0100
commit94a52842c0810c2a9f103a22bfe3a72cba2d84bf (patch)
tree4ee49e61f8b9d9151176b50d8fdadf657b6a60a1
parented5ba113e10df22553ce45bc26a0e1f86fdcaf80 (diff)
sparc: Add workaround for GRLIB-TN-0011
Affected components are the GR712RC, UT699, UT699E, UT700, and LEON3FT-RTAX. Strictly, the workaround is only necessary if the MMU is enabled. Use __FIX_LEON3FT_B2BST to enable the workaround. This is not 100% appropriate, but the best thing we can use to enable the workaround. Close #4551.
-rw-r--r--cpukit/score/cpu/sparc/cpu_asm.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/cpukit/score/cpu/sparc/cpu_asm.S b/cpukit/score/cpu/sparc/cpu_asm.S
index 45d1495af7..04b2b0119f 100644
--- a/cpukit/score/cpu/sparc/cpu_asm.S
+++ b/cpukit/score/cpu/sparc/cpu_asm.S
@@ -190,6 +190,16 @@ done_flushing:
! Try to update the is executing indicator of the heir context
mov 1, %g1
+#if defined(__FIX_LEON3FT_B2BST)
+ /*
+ * This is a workaround for GRLIB-TN-0011. Affected components are the
+ * GR712RC, UT699, UT699E, UT700, and LEON3FT-RTAX. Strictly, the
+ * workaround is only necessary if the MMU is enabled. Using the
+ * __FIX_LEON3FT_B2BST is not 100% appropriate, but the best thing we
+ * can use to enable the workaround.
+ */
+.align 16
+#endif
.Ltry_update_is_executing:
swap [%o1 + SPARC_CONTEXT_CONTROL_IS_EXECUTING_OFFSET], %g1