[rtems commit] grlib: make memory coherency cpu-independent

Sebastian Huber sebh at rtems.org
Tue Jan 22 11:53:19 UTC 2019


Module:    rtems
Branch:    master
Commit:    c1dcd6af56b7174a1fabd421efbaf566cb997f8b
Changeset: http://git.rtems.org/rtems/commit/?id=c1dcd6af56b7174a1fabd421efbaf566cb997f8b

Author:    Jiri Gaisler <jiri at gaisler.se>
Date:      Mon Jan 21 11:27:07 2019 +0100

grlib: make memory coherency cpu-independent

Update #3678.

---

 bsps/include/grlib/grlib_impl.h | 5 +++++
 bsps/shared/grlib/spw/grspw.c   | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/bsps/include/grlib/grlib_impl.h b/bsps/include/grlib/grlib_impl.h
index dd6bcc6..e795e7f 100644
--- a/bsps/include/grlib/grlib_impl.h
+++ b/bsps/include/grlib/grlib_impl.h
@@ -121,6 +121,9 @@ RTEMS_INLINE_ROUTINE unsigned int grlib_read_uncached32(unsigned int address)
 	);
 	return tmp;
 }
+
+#define GRLIB_DMA_IS_CACHE_COHERENT CPU_SPARC_HAS_SNOOPING
+
 #else
 
 static unsigned char __inline__ grlib_read_uncached8(unsigned int address)
@@ -140,6 +143,8 @@ RTEMS_INLINE_ROUTINE unsigned int grlib_read_uncached32(unsigned int address)
 	return tmp;
 }
 
+#define GRLIB_DMA_IS_CACHE_COHERENT 1
+
 #endif
 
 extern struct ambapp_bus ambapp_plb;
diff --git a/bsps/shared/grlib/spw/grspw.c b/bsps/shared/grlib/spw/grspw.c
index 586bb25..2e1e8e9 100644
--- a/bsps/shared/grlib/spw/grspw.c
+++ b/bsps/shared/grlib/spw/grspw.c
@@ -1893,7 +1893,7 @@ static int grspw_hw_receive(GRSPW_DEV *pDev, char *b, int c) {
 		if (rxlen > c) {
 			rxlen = c;
 		}
-		if (CPU_SPARC_HAS_SNOOPING) {
+		if (GRLIB_DMA_IS_CACHE_COHERENT) {
 /*		if ( 1 ) {*/
 			/*printf("RX_MEMCPY(0x%x, 0x%x, 0x%x)\n", (unsigned int)b, (unsigned int)(rxb+pDev->rxbufcur), (unsigned int)rxlen);*/
 			memcpy(b, rxb+pDev->rxbufcur, rxlen);




More information about the vc mailing list