Module Name:    src
Committed By:   riastradh
Date:           Thu Mar 10 00:14:16 UTC 2022

Modified Files:
        src/sys/arch/evbppc/virtex: dcr.c dcr.h
        src/sys/arch/powerpc/include: bus_defs.h bus_funcs.h
        src/sys/arch/powerpc/powerpc: bus_space.c

Log Message:
powerpc: Implement bus_space_barrier as eieio.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbppc/virtex/dcr.c \
    src/sys/arch/evbppc/virtex/dcr.h
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/powerpc/include/bus_defs.h
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/powerpc/include/bus_funcs.h
cvs rdiff -u -r1.38 -r1.39 src/sys/arch/powerpc/powerpc/bus_space.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/evbppc/virtex/dcr.c
diff -u src/sys/arch/evbppc/virtex/dcr.c:1.2 src/sys/arch/evbppc/virtex/dcr.c:1.3
--- src/sys/arch/evbppc/virtex/dcr.c:1.2	Fri Jul  1 19:03:50 2011
+++ src/sys/arch/evbppc/virtex/dcr.c	Thu Mar 10 00:14:16 2022
@@ -1,4 +1,4 @@
-/* 	$NetBSD: dcr.c,v 1.2 2011/07/01 19:03:50 dyoung Exp $ */
+/* 	$NetBSD: dcr.c,v 1.3 2022/03/10 00:14:16 riastradh Exp $ */
 
 /*
  * Copyright (c) 2006 Jachym Holecek
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dcr.c,v 1.2 2011/07/01 19:03:50 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dcr.c,v 1.3 2022/03/10 00:14:16 riastradh Exp $");
 
 #include <sys/types.h>
 #include <sys/bus.h>
@@ -66,3 +66,10 @@ dcr_subregion(bus_space_tag_t bst, bus_s
 
 	return (0);
 }
+
+void
+dcr_barrier(bus_space_tag_t bst, bus_space_handle_t bsh, bus_size_t offset,
+    bus_size_t size, int flags)
+{
+	/* XXX EIEIO? */
+}
Index: src/sys/arch/evbppc/virtex/dcr.h
diff -u src/sys/arch/evbppc/virtex/dcr.h:1.2 src/sys/arch/evbppc/virtex/dcr.h:1.3
--- src/sys/arch/evbppc/virtex/dcr.h:1.2	Thu Oct 21 13:21:54 2021
+++ src/sys/arch/evbppc/virtex/dcr.h	Thu Mar 10 00:14:16 2022
@@ -1,4 +1,4 @@
-/* 	$NetBSD: dcr.h,v 1.2 2021/10/21 13:21:54 andvar Exp $ */
+/* 	$NetBSD: dcr.h,v 1.3 2022/03/10 00:14:16 riastradh Exp $ */
 
 /*
  * Copyright (c) 2006 Jachym Holecek
@@ -52,6 +52,8 @@ int 	dcr_subregion(bus_space_tag_t, bus_
 int 	dcr_map(bus_space_tag_t, bus_addr_t, bus_size_t, int,
 	    bus_space_handle_t *);
 void 	dcr_unmap(bus_space_tag_t, bus_space_handle_t, bus_size_t);
+void	dcr_barrier(bus_space_tag_t, bus_space_handle_t, bus_size_t,
+	    bus_size_t, int);
 
 /* Bus space tag contents, one tag per DCR device. */
 #define DCR_BST_BODY(base, read, write) \

Index: src/sys/arch/powerpc/include/bus_defs.h
diff -u src/sys/arch/powerpc/include/bus_defs.h:1.4 src/sys/arch/powerpc/include/bus_defs.h:1.5
--- src/sys/arch/powerpc/include/bus_defs.h:1.4	Mon Jul  6 09:34:17 2020
+++ src/sys/arch/powerpc/include/bus_defs.h	Thu Mar 10 00:14:16 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_defs.h,v 1.4 2020/07/06 09:34:17 rin Exp $	*/
+/*	$NetBSD: bus_defs.h,v 1.5 2022/03/10 00:14:16 riastradh Exp $	*/
 /*	$OpenBSD: bus.h,v 1.1 1997/10/13 10:53:42 pefo Exp $	*/
 
 /*-
@@ -220,6 +220,9 @@ struct powerpc_bus_space {
 	const struct powerpc_bus_space_set *pbs_set;
 	const struct powerpc_bus_space_set *pbs_set_stream;
 	const struct powerpc_bus_space_copy *pbs_copy;
+
+	void (*pbs_barrier)(bus_space_tag_t, bus_space_handle_t, bus_size_t,
+	    bus_size_t, int);
 };
 
 #define _BUS_SPACE_STRIDE(t, o) \

Index: src/sys/arch/powerpc/include/bus_funcs.h
diff -u src/sys/arch/powerpc/include/bus_funcs.h:1.1 src/sys/arch/powerpc/include/bus_funcs.h:1.2
--- src/sys/arch/powerpc/include/bus_funcs.h:1.1	Fri Jul  1 17:10:00 2011
+++ src/sys/arch/powerpc/include/bus_funcs.h	Thu Mar 10 00:14:16 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_funcs.h,v 1.1 2011/07/01 17:10:00 dyoung Exp $	*/
+/*	$NetBSD: bus_funcs.h,v 1.2 2022/03/10 00:14:16 riastradh Exp $	*/
 /*	$OpenBSD: bus.h,v 1.1 1997/10/13 10:53:42 pefo Exp $	*/
 
 /*-
@@ -485,7 +485,7 @@ void bus_space_mallocok(void);
  *
  */
 #define	bus_space_barrier(t, h, o, l, f)	\
-	((void)((void)(t), (void)(h), (void)(o), (void)(l), (void)(f)))
+	((*(t)->pbs_barrier)((t), (h), (o), (l), (f)))
 
 #endif	/* !__HAVE_LOCAL_BUS_SPACE */
 

Index: src/sys/arch/powerpc/powerpc/bus_space.c
diff -u src/sys/arch/powerpc/powerpc/bus_space.c:1.38 src/sys/arch/powerpc/powerpc/bus_space.c:1.39
--- src/sys/arch/powerpc/powerpc/bus_space.c:1.38	Mon Jul  6 10:31:24 2020
+++ src/sys/arch/powerpc/powerpc/bus_space.c	Thu Mar 10 00:14:16 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus_space.c,v 1.38 2020/07/06 10:31:24 rin Exp $	*/
+/*	$NetBSD: bus_space.c,v 1.39 2022/03/10 00:14:16 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -33,7 +33,7 @@
 #define _POWERPC_BUS_SPACE_PRIVATE
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.38 2020/07/06 10:31:24 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.39 2022/03/10 00:14:16 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ppcarch.h"
@@ -395,6 +395,8 @@ static void memio_unmap(bus_space_tag_t,
 static int memio_alloc(bus_space_tag_t, bus_addr_t, bus_addr_t, bus_size_t,
 	bus_size_t, bus_size_t, int, bus_addr_t *, bus_space_handle_t *);
 static void memio_free(bus_space_tag_t, bus_space_handle_t, bus_size_t);
+static void memio_barrier(bus_space_tag_t, bus_space_handle_t, bus_size_t,
+    bus_size_t, int);
 
 static int extent_flags;
 
@@ -416,6 +418,7 @@ bus_space_init(struct powerpc_bus_space 
 	t->pbs_unmap = memio_unmap;
 	t->pbs_alloc = memio_alloc;
 	t->pbs_free = memio_free;
+	t->pbs_barrier = memio_barrier;
 
 	if (t->pbs_flags & _BUS_SPACE_STRIDE_MASK) {
 		t->pbs_scalar_stream = scalar_strided_ops;
@@ -763,3 +766,10 @@ memio_free(bus_space_tag_t t, bus_space_
 	/* memio_unmap() does all that we need to do. */
 	memio_unmap(t, bsh, size);
 }
+
+void
+memio_barrier(bus_space_tag_t t, bus_space_handle_t bsh, bus_size_t size,
+    bus_size_t offset, int flags)
+{
+	__asm volatile("eieio" ::: "memory");
+}

Reply via email to