[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