[rtems commit] LEON3: change d-cache snoop detect implementation
Joel Sherrill
joel at rtems.org
Thu Feb 2 18:09:53 UTC 2012
Module: rtems
Branch: 4.10
Commit: 9591970856fc53e472ade96b6e6ef4a2e3126529
Changeset: http://git.rtems.org/rtems/commit/?id=9591970856fc53e472ade96b6e6ef4a2e3126529
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Thu Feb 2 08:46:27 2012 -0600
LEON3: change d-cache snoop detect implementation
PR 2010/bsps
The previous code only checked if d-cache snooping was implemented,
however snooping may be available but not enabled which may lead
to driver bugs.
Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
---
c/src/lib/libbsp/sparc/leon3/startup/bspstart.c | 12 +++++-------
1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c b/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c
index 65a159c..dcb0cb0 100644
--- a/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c
+++ b/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c
@@ -36,19 +36,17 @@ extern void amba_initialize(void);
* set_snooping
*
* Read the data cache configuration register to determine if
- * bus snooping is available. This is needed for some drivers so
- * that they can select the most efficient copy routines.
- *
+ * bus snooping is available and enabled. This is needed for some
+ * drivers so that they can select the most efficient copy routines.
*/
-
static inline int set_snooping(void)
{
int tmp;
- asm(" lda [%1] 2, %0 "
+ __asm__ (" lda [%%g0] 2, %0 "
: "=r"(tmp)
- : "r"(0xC)
+ :
);
- return (tmp >> 27) & 1;
+ return (tmp >> 23) & 1;
}
/* ASM-function used to get the CPU-Index on calling LEON3 CPUs */
More information about the vc
mailing list