Module Name: src
Committed By: skrll
Date: Sat Sep 26 12:58:23 UTC 2020
Modified Files:
src/sys/arch/arm/include: cpufunc.h
src/sys/external/bsd/vchiq/dist/interface/compat: vchi_bsd.h
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm: vchiq_2835_arm.c
vchiq_core.c vchiq_core.h vchiq_kmod_netbsd.c
Log Message:
Define isb(), dsb(option), and dmb(option)
Catch up with vchiq upstream to allow this.
To generate a diff of this commit:
cvs rdiff -u -r1.82 -r1.83 src/sys/arch/arm/include/cpufunc.h
cvs rdiff -u -r1.16 -r1.17 \
src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.h
cvs rdiff -u -r1.21 -r1.22 \
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_2835_arm.c
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.h
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/include/cpufunc.h
diff -u src/sys/arch/arm/include/cpufunc.h:1.82 src/sys/arch/arm/include/cpufunc.h:1.83
--- src/sys/arch/arm/include/cpufunc.h:1.82 Tue Dec 11 19:38:42 2018
+++ src/sys/arch/arm/include/cpufunc.h Sat Sep 26 12:58:22 2020
@@ -42,6 +42,26 @@
#ifndef _ARM_CPUFUNC_H_
#define _ARM_CPUFUNC_H_
+#define isb() __asm __volatile("isb" : : : "memory")
+
+/*
+ * Options for DMB and DSB:
+ * oshld Outer Shareable, load
+ * oshst Outer Shareable, store
+ * osh Outer Shareable, all
+ * nshld Non-shareable, load
+ * nshst Non-shareable, store
+ * nsh Non-shareable, all
+ * ishld Inner Shareable, load
+ * ishst Inner Shareable, store
+ * ish Inner Shareable, all
+ * ld Full system, load
+ * st Full system, store
+ * sy Full system, all
+ */
+#define dsb(opt) __asm __volatile("dsb " __STRING(opt) : : : "memory")
+#define dmb(opt) __asm __volatile("dmb " __STRING(opt) : : : "memory")
+
#ifdef __arm__
#ifdef _KERNEL
Index: src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.h
diff -u src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.h:1.16 src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.h:1.17
--- src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.h:1.16 Sat Sep 26 10:56:37 2020
+++ src/sys/external/bsd/vchiq/dist/interface/compat/vchi_bsd.h Sat Sep 26 12:58:22 2020
@@ -302,8 +302,6 @@ typedef off_t loff_t;
#define BCM2835_MBOX_CHAN_VCHIQ 3
#define bcm_mbox_write bcmmbox_write
-#define dsb membar_producer
-
#define device_print_prettyname(dev) device_printf((dev), "")
#endif /* __VCHI_NETBSD_H__ */
Index: src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_2835_arm.c
diff -u src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_2835_arm.c:1.21 src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_2835_arm.c:1.22
--- src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_2835_arm.c:1.21 Wed Jan 22 19:15:49 2020
+++ src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_2835_arm.c Sat Sep 26 12:58:23 2020
@@ -181,7 +181,7 @@ vchiq_platform_init(VCHIQ_STATE_T *state
}
/* Send the base address of the slots to VideoCore */
- dsb(); /* Ensure all writes have completed */
+ dsb(sy); /* Ensure all writes have completed */
bus_dmamap_sync(dma_tag, dma_map, 0, slot_mem_size,
BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
Index: src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c
diff -u src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c:1.14 src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c:1.15
--- src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c:1.14 Wed Jan 22 19:15:49 2020
+++ src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c Sat Sep 26 12:58:23 2020
@@ -439,7 +439,7 @@ remote_event_wait(VCHIQ_STATE_T *state,
{
if (!event->fired) {
event->armed = 1;
- dsb();
+ dsb(sy);
if (!event->fired) {
if (down_interruptible(
(struct semaphore *)
Index: src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.h
diff -u src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.h:1.5 src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.h:1.6
--- src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.h:1.5 Wed Jan 22 19:15:49 2020
+++ src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.h Sat Sep 26 12:58:23 2020
@@ -185,11 +185,11 @@ enum {
#define DEBUG_INITIALISE(local) int *debug_ptr = (local)->debug;
#define DEBUG_TRACE(d) \
- do { debug_ptr[DEBUG_ ## d] = __LINE__; dsb(); } while (0)
+ do { debug_ptr[DEBUG_ ## d] = __LINE__; dsb(sy); } while (0)
#define DEBUG_VALUE(d, v) \
- do { debug_ptr[DEBUG_ ## d] = (v); dsb(); } while (0)
+ do { debug_ptr[DEBUG_ ## d] = (v); dsb(sy); } while (0)
#define DEBUG_COUNT(d) \
- do { debug_ptr[DEBUG_ ## d]++; dsb(); } while (0)
+ do { debug_ptr[DEBUG_ ## d]++; dsb(sy); } while (0)
#else /* VCHIQ_ENABLE_DEBUG */
Index: src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c
diff -u src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.11 src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.12
--- src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.11 Tue Dec 31 01:00:23 2019
+++ src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c Sat Sep 26 12:58:23 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: vchiq_kmod_netbsd.c,v 1.11 2019/12/31 01:00:23 jmcneill Exp $ */
+/* $NetBSD: vchiq_kmod_netbsd.c,v 1.12 2020/09/26 12:58:23 skrll Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vchiq_kmod_netbsd.c,v 1.11 2019/12/31 01:00:23 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vchiq_kmod_netbsd.c,v 1.12 2020/09/26 12:58:23 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -98,7 +98,7 @@ remote_event_signal(REMOTE_EVENT_T *even
event->fired = 1;
- dsb(); /* data barrier operation */
+ dsb(sy); /* data barrier operation */
if (event->armed) {
bus_space_write_4(vchiq_softc->sc_iot, vchiq_softc->sc_ioh,