32 lines
1.2 KiB
Diff
32 lines
1.2 KiB
Diff
diff --git a/util/udma_barrier.h b/util/udma_barrier.h
|
|
index 23acf23..899acf5 100644
|
|
--- a/util/udma_barrier.h
|
|
+++ b/util/udma_barrier.h
|
|
@@ -96,6 +96,8 @@
|
|
#define udma_to_device_barrier() asm volatile("dsb st" ::: "memory");
|
|
#elif defined(__sparc__) || defined(__s390x__)
|
|
#define udma_to_device_barrier() asm volatile("" ::: "memory")
|
|
+#elif defined(__riscv)
|
|
+#define udma_to_device_barrier() asm volatile("fence w,w" ::: "memory");
|
|
#else
|
|
#error No architecture specific memory barrier defines found!
|
|
#endif
|
|
@@ -128,6 +130,8 @@
|
|
#define udma_from_device_barrier() asm volatile("dsb ld" ::: "memory");
|
|
#elif defined(__sparc__) || defined(__s390x__)
|
|
#define udma_from_device_barrier() asm volatile("" ::: "memory")
|
|
+#elif defined(__riscv)
|
|
+#define udma_from_device_barrier() asm volatile("fence r,rw" ::: "memory");
|
|
#else
|
|
#error No architecture specific memory barrier defines found!
|
|
#endif
|
|
@@ -192,6 +196,8 @@
|
|
#define mmio_flush_writes() asm volatile("dsb st" ::: "memory");
|
|
#elif defined(__sparc__) || defined(__s390x__)
|
|
#define mmio_flush_writes() asm volatile("" ::: "memory")
|
|
+#elif defined(__riscv)
|
|
+#define mmio_flush_writes() asm volatile("fence w,w" ::: "memory");
|
|
#else
|
|
#error No architecture specific memory barrier defines found!
|
|
#endif
|