diff options
author | Daniel Cederman <cederman@gaisler.com> | 2017-07-13 09:26:50 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-17 07:41:38 +0200 |
commit | 2f8704b6c8c3ce65cdf2b589a98de1d1d9dc8ffa (patch) | |
tree | bd540adf388432ec7db34e5d2c4a3d4b8574b344 /cpukit/score/cpu/sparc/rtems/score/sparc.h | |
parent | psxtests: Add a mmap dedicated test case (diff) | |
download | rtems-2f8704b6c8c3ce65cdf2b589a98de1d1d9dc8ffa.tar.bz2 |
sparc: Add assembly workaround for LEON3FT B2BST errata
This patch adds NOP instructions to prevent instruction sequences
that are sensitive to the LEON3FT B2BST errata. See GRLIB-TN-0009:
"LEON3FT Stale Cache Entry After Store with Data Tag Parity Error"
for more information.
The sequences are only modified if __FIX_LEON3FT_B2BST is defined.
The patch works in conjunction with the -mfix-ut700, -mfix-gr712rc,
and -mfix-ut699 GCC flags that prevents the sensitive sequences from
being generated.
Update #3057.
Diffstat (limited to '')
-rw-r--r-- | cpukit/score/cpu/sparc/rtems/score/sparc.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/cpukit/score/cpu/sparc/rtems/score/sparc.h b/cpukit/score/cpu/sparc/rtems/score/sparc.h index 5fe8b6ada7..747d013559 100644 --- a/cpukit/score/cpu/sparc/rtems/score/sparc.h +++ b/cpukit/score/cpu/sparc/rtems/score/sparc.h @@ -63,6 +63,16 @@ extern "C" { #define SPARC_NUMBER_OF_REGISTER_WINDOWS 8 /** + * See GRLIB-TN-0009: "LEON3FT Stale Cache Entry After Store with + * Data Tag Parity Error" + */ +#if defined(__FIX_LEON3FT_B2BST) + #define SPARC_LEON3FT_B2BST_NOP nop +#else + #define SPARC_LEON3FT_B2BST_NOP +#endif + +/** * This macro indicates whether this multilib variation has hardware * floating point or not. We use the gcc cpp predefine _SOFT_FLOAT * to determine that. |