[rtems commit] sparc: Add workaround for GRLIB-TN-0011
Sebastian Huber
sebh at rtems.org
Fri Nov 26 09:38:16 UTC 2021
Module: rtems
Branch: master
Commit: bdcc81434353ee4f1d01aafe1a85627889fe53bc
Changeset: http://git.rtems.org/rtems/commit/?id=bdcc81434353ee4f1d01aafe1a85627889fe53bc
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Tue Nov 23 16:32:23 2021 +0100
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.
---
cpukit/score/cpu/sparc/cpu_asm.S | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/cpukit/score/cpu/sparc/cpu_asm.S b/cpukit/score/cpu/sparc/cpu_asm.S
index 45d1495..afd9b96 100644
--- a/cpukit/score/cpu/sparc/cpu_asm.S
+++ b/cpukit/score/cpu/sparc/cpu_asm.S
@@ -190,6 +190,18 @@ 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 (Technical Note on LEON3/FT
+ * AHB Lock Release During Atomic Operation). 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. An alignment padding is filled
+ * with nops.
+ */
+.align 16
+#endif
.Ltry_update_is_executing:
swap [%o1 + SPARC_CONTEXT_CONTROL_IS_EXECUTING_OFFSET], %g1
More information about the vc
mailing list