diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-11-23 16:32:23 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-11-26 10:43:12 +0100 |
commit | bdcc81434353ee4f1d01aafe1a85627889fe53bc (patch) | |
tree | 9b689058fa78a31b1e1e3d268b708cfcd5caff2b /cpukit/score/cpu | |
parent | rtems: Replace "precision" with "resolution" (diff) | |
download | rtems-bdcc81434353ee4f1d01aafe1a85627889fe53bc.tar.bz2 |
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.
Diffstat (limited to 'cpukit/score/cpu')
-rw-r--r-- | cpukit/score/cpu/sparc/cpu_asm.S | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cpukit/score/cpu/sparc/cpu_asm.S b/cpukit/score/cpu/sparc/cpu_asm.S index 45d1495af7..afd9b9644b 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 |