summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-27 09:38:28 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-27 11:02:06 +0200
commit9c3473572f294a59ac96d90dda56eebf6a1379da (patch)
tree6f6c9287548e53b6c88286fc09f796e315cf7ca8
parentffec: Support more rgmii variants (diff)
downloadrtems-libbsd-9c3473572f294a59ac96d90dda56eebf6a1379da.tar.bz2
ffec: Use explicit cache synchronization
-rw-r--r--freebsd/sys/dev/ffec/if_ffec.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/freebsd/sys/dev/ffec/if_ffec.c b/freebsd/sys/dev/ffec/if_ffec.c
index 2fc94a6a..f4914adf 100644
--- a/freebsd/sys/dev/ffec/if_ffec.c
+++ b/freebsd/sys/dev/ffec/if_ffec.c
@@ -607,8 +607,12 @@ ffec_setup_txbuf(struct ffec_softc *sc, int idx, struct mbuf **mp)
if (error != 0) {
return (ENOMEM);
}
+#ifndef __rtems__
bus_dmamap_sync(sc->txbuf_tag, sc->txbuf_map[idx].map,
BUS_DMASYNC_PREWRITE);
+#else /* __rtems__ */
+ rtems_cache_flush_multiple_data_lines((void *)seg.ds_addr, seg.ds_len);
+#endif /* __rtems__ */
sc->txbuf_map[idx].mbuf = m;
ffec_setup_txdesc(sc, idx, seg.ds_addr, seg.ds_len);
@@ -771,6 +775,9 @@ ffec_alloc_mbufcl(struct ffec_softc *sc)
m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR);
m->m_pkthdr.len = m->m_len = m->m_ext.ext_size;
+#ifdef __rtems__
+ rtems_cache_invalidate_multiple_data_lines(m->m_data, m->m_len);
+#endif /* __rtems__ */
return (m);
}