CVS commit: src/sys/rump/dev/lib/libpci

2020-11-02 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Nov  2 18:58:06 UTC 2020

Modified Files:
src/sys/rump/dev/lib/libpci: rumpdev_bus_dma.c

Log Message:
PR/55777: Ruslan Nikolaev: use MIN() from  instead of min()


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.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/rump/dev/lib/libpci/rumpdev_bus_dma.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.9 src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.10
--- src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.9	Sat Sep  5 12:30:12 2020
+++ src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c	Mon Nov  2 13:58:06 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpdev_bus_dma.c,v 1.9 2020/09/05 16:30:12 riastradh Exp $	*/
+/*	$NetBSD: rumpdev_bus_dma.c,v 1.10 2020/11/02 18:58:06 christos Exp $	*/
 
 /*-
  * Copyright (c) 2013 Antti Kantee
@@ -68,7 +68,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: rumpdev_bus_dma.c,v 1.9 2020/09/05 16:30:12 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rumpdev_bus_dma.c,v 1.10 2020/11/02 18:58:06 christos Exp $");
 
 #include 
 #include 
@@ -192,7 +192,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t t,
 		sgsize = PAGE_SIZE - ((u_long)vaddr & PGOFSET);
 		if (buflen < sgsize)
 			sgsize = buflen;
-		sgsize = min(sgsize, map->dm_maxsegsz);
+		sgsize = MIN(sgsize, map->dm_maxsegsz);
 
 		/*
 		 * Make sure we don't cross any boundaries.



CVS commit: src/sys/rump/dev/lib/libpci

2016-05-10 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Tue May 10 19:38:29 UTC 2016

Modified Files:
src/sys/rump/dev/lib/libpci: Makefile

Log Message:
Avoid '.' in variable names which are expected to be passed to
this Makefile via the env.

That character is strictly speaking not allowed by POSIX in an exported
variable name, and at least dash >= 0.58 refuses to export such variables.

Furthermore, since the individual CFLAGS/CPPFLAGS/etc. variables
are not comprehensive enough for all cases (e.g. HURD), just
support the .includable version from now on, i.e.
RUMPCOMP_MAKEFILEINC_rumpdev_pci.

curious failure mode debugged by Martin Lucina


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/rump/dev/lib/libpci/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/dev/lib/libpci/Makefile
diff -u src/sys/rump/dev/lib/libpci/Makefile:1.10 src/sys/rump/dev/lib/libpci/Makefile:1.11
--- src/sys/rump/dev/lib/libpci/Makefile:1.10	Tue Jan 26 23:12:15 2016
+++ src/sys/rump/dev/lib/libpci/Makefile	Tue May 10 19:38:29 2016
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.10 2016/01/26 23:12:15 pooka Exp $
+#	$NetBSD: Makefile,v 1.11 2016/05/10 19:38:29 pooka Exp $
 #
 
 RUMPTOP= ${TOPRUMP}
@@ -28,23 +28,36 @@ SRCS+=	pci_at_mainbus.c
 .error RUMP_PCI_IOSPACE defined in Makefile.  Use userfeatures.h instead.
 .endif
 
+RUMPCOMP_USER_CPPFLAGS:=-I${.PARSEDIR}
+
+# current state-of-the-art interface (remains to be seen if it's "good enuf")
+.ifdef RUMPCOMP_MAKEFILEINC_rumpdev_pci
+.include "${RUMPCOMP_MAKEFILEINC_rumpdev_pci}"
+.endif
+
+# old-style ("compat") interfaces.  will go away some day or year.
+# why?  the "protocol" requires passing variables via the env, and
+# the names include dots which POSIX does not, strictly speaking,
+# allow in env names.  There is at least one shell (dash >= 0.58)
+# which refuses to pass variables with dots.
+.if defined(RUMPCOMP_USER_SRCS.rumpdev_pci) \
+|| defined(RUMPCOMP_MAKEFILEINC.rumpdev_pci)
+.warning Use new style RUMPCOMP_MAKEFILEINC_rumpdev_pci
+.endif
+.ifdef RUMPCOMP_USER_PATH.rumpdev_pci
 .PATH:			${RUMPCOMP_USER_PATH.rumpdev_pci}
 RUMPCOMP_USER_SRCS=	${RUMPCOMP_USER_SRCS.rumpdev_pci}
-MYDIR:=			${.PARSEDIR}
-RUMPCOMP_USER_CPPFLAGS=	-I${MYDIR}
 RUMPCOMP_USER_CPPFLAGS+=${RUMPCOMP_USER_CPPFLAGS.rumpdev_pci}
 RUMPCOMP_USER_CFLAGS=	${RUMPCOMP_USER_CFLAGS.rumpdev_pci}
-
 CPPFLAGS+=		${RUMPCOMP_CPPFLAGS.rumpdev_pci}
-
-# XXX: messy
-.undef RUMPKERN_ONLY
-
+.endif
 .ifdef RUMPCOMP_MAKEFILEINC.rumpdev_pci
-.warning RUMPCOMP_MAKEFILEINC interface is unstable and may change
 .include "${RUMPCOMP_MAKEFILEINC.rumpdev_pci}"
 .endif
 
+# XXX: messy
+.undef RUMPKERN_ONLY
+
 .include "${RUMPTOP}/Makefile.rump"
 .include 
 .include 



CVS commit: src/sys/rump/dev/lib/libpci

2016-01-18 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Mon Jan 18 14:37:54 UTC 2016

Modified Files:
src/sys/rump/dev/lib/libpci: rumpdev_bus_space.c

Log Message:
Implement the inverse of a nop.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/rump/dev/lib/libpci/rumpdev_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/rump/dev/lib/libpci/rumpdev_bus_space.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.6 src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.7
--- src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.6	Tue Aug 11 22:28:34 2015
+++ src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c	Mon Jan 18 14:37:53 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpdev_bus_space.c,v 1.6 2015/08/11 22:28:34 pooka Exp $	*/
+/*	$NetBSD: rumpdev_bus_space.c,v 1.7 2016/01/18 14:37:53 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2013 Antti Kantee.  All Rights Reserved.
@@ -272,6 +272,9 @@ bus_space_unmap(bus_space_tag_t bst, bus
 	bus_size_t size)
 {
 
+	if (bst == 0)
+		return;
+
 	panic("%s: unimplemented", __func__);
 }
 



CVS commit: src/sys/rump/dev/lib/libpci

2015-11-01 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Sun Nov  1 22:41:24 UTC 2015

Modified Files:
src/sys/rump/dev/lib/libpci: Makefile

Log Message:
Allow PCI implementers to specify arbitrary makefile constructs.
(interface subject to change)

from Robert Millan


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/rump/dev/lib/libpci/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/dev/lib/libpci/Makefile
diff -u src/sys/rump/dev/lib/libpci/Makefile:1.8 src/sys/rump/dev/lib/libpci/Makefile:1.9
--- src/sys/rump/dev/lib/libpci/Makefile:1.8	Mon Oct 19 16:16:33 2015
+++ src/sys/rump/dev/lib/libpci/Makefile	Sun Nov  1 22:41:24 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.8 2015/10/19 16:16:33 pooka Exp $
+#	$NetBSD: Makefile,v 1.9 2015/11/01 22:41:24 pooka Exp $
 #
 
 RUMPTOP= ${TOPRUMP}
@@ -43,6 +43,11 @@ CPPFLAGS+=		${RUMPCOMP_CPPFLAGS.rumpdev_
 # XXX: messy
 .undef RUMPKERN_ONLY
 
+.ifdef RUMPCOMP_MAKEFILEINC.rumpdev_pci
+.warning RUMPCOMP_MAKEFILEINC interface is unstable and may change
+.include "${RUMPCOMP_MAKEFILEINC.rumpdev_pci}"
+.endif
+
 .include "${RUMPTOP}/Makefile.rump"
 .include 
 .include 



CVS commit: src/sys/rump/dev/lib/libpci

2015-08-11 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Tue Aug 11 22:28:34 UTC 2015

Modified Files:
src/sys/rump/dev/lib/libpci: rumpdev_bus_space.c

Log Message:
Fix handle typos/pastos in bus_space_barrier() calls


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/rump/dev/lib/libpci/rumpdev_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/rump/dev/lib/libpci/rumpdev_bus_space.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.5 src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.6
--- src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.5	Mon Jun 15 15:38:52 2015
+++ src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c	Tue Aug 11 22:28:34 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpdev_bus_space.c,v 1.5 2015/06/15 15:38:52 pooka Exp $	*/
+/*	$NetBSD: rumpdev_bus_space.c,v 1.6 2015/08/11 22:28:34 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2013 Antti Kantee.  All Rights Reserved.
@@ -134,7 +134,7 @@ bus_space_read_multi_1(bus_space_tag_t b
 
 	while (count--) {
 		*datap++ = bus_space_read_1(bst, bsh, offset);
-		bus_space_barrier(bst, bst, offset, 1, BUS_SPACE_BARRIER_READ);
+		bus_space_barrier(bst, bsh, offset, 1, BUS_SPACE_BARRIER_READ);
 	}
 }
 
@@ -145,7 +145,7 @@ bus_space_read_multi_2(bus_space_tag_t b
 
 	while (count--) {
 		*datap++ = bus_space_read_2(bst, bsh, offset);
-		bus_space_barrier(bst, bst, offset, 2, BUS_SPACE_BARRIER_READ);
+		bus_space_barrier(bst, bsh, offset, 2, BUS_SPACE_BARRIER_READ);
 	}
 }
 
@@ -156,7 +156,7 @@ bus_space_read_multi_4(bus_space_tag_t b
 
 	while (count--) {
 		*datap++ = bus_space_read_4(bst, bsh, offset);
-		bus_space_barrier(bst, bst, offset, 4, BUS_SPACE_BARRIER_READ);
+		bus_space_barrier(bst, bsh, offset, 4, BUS_SPACE_BARRIER_READ);
 	}
 }
 
@@ -220,7 +220,7 @@ bus_space_write_multi_1(bus_space_tag_t 
 		const uint8_t value = *datap++;
 
 		bus_space_write_1(bst, bsh, offset, value);
-		bus_space_barrier(bst, bst, offset, 1, BUS_SPACE_BARRIER_WRITE);
+		bus_space_barrier(bst, bsh, offset, 1, BUS_SPACE_BARRIER_WRITE);
 	}
 }
 
@@ -233,7 +233,7 @@ bus_space_write_multi_2(bus_space_tag_t 
 		const uint16_t value = *datap++;
 
 		bus_space_write_2(bst, bsh, offset, value);
-		bus_space_barrier(bst, bst, offset, 2, BUS_SPACE_BARRIER_WRITE);
+		bus_space_barrier(bst, bsh, offset, 2, BUS_SPACE_BARRIER_WRITE);
 	}
 }
 
@@ -246,7 +246,7 @@ bus_space_write_multi_4(bus_space_tag_t 
 		const uint32_t value = *datap++;
 
 		bus_space_write_4(bst, bsh, offset, value);
-		bus_space_barrier(bst, bst, offset, 4, BUS_SPACE_BARRIER_WRITE);
+		bus_space_barrier(bst, bsh, offset, 4, BUS_SPACE_BARRIER_WRITE);
 	}
 }
 



CVS commit: src/sys/rump/dev/lib/libpci

2015-06-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Mon Jun 15 15:38:52 UTC 2015

Modified Files:
src/sys/rump/dev/lib/libpci: Makefile pci_at_mainbus.c pci_user.h
rumpdev_bus_dma.c rumpdev_bus_space.c

Log Message:
Add a userfeature definition for iospace.  I/O space is supported if
that flag is given and calling the init routine succeeds (and we're on
x86, which we probably need to be on anyway for this PCI component to
currently be supported).

Also, some adjustments to make things between flags consistent, namely
deprecate the Makefile variable RUMP_PCI_IOSPACE and don't require
userfeature.h to map 1:1 to the interfaces.

Includes contributions from Robert Millan.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/rump/dev/lib/libpci/Makefile \
src/sys/rump/dev/lib/libpci/pci_at_mainbus.c
cvs rdiff -u -r1.4 -r1.5 src/sys/rump/dev/lib/libpci/pci_user.h \
src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c \
src/sys/rump/dev/lib/libpci/rumpdev_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/rump/dev/lib/libpci/Makefile
diff -u src/sys/rump/dev/lib/libpci/Makefile:1.5 src/sys/rump/dev/lib/libpci/Makefile:1.6
--- src/sys/rump/dev/lib/libpci/Makefile:1.5	Wed Jun  3 13:41:56 2015
+++ src/sys/rump/dev/lib/libpci/Makefile	Mon Jun 15 15:38:52 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.5 2015/06/03 13:41:56 pooka Exp $
+#	$NetBSD: Makefile,v 1.6 2015/06/15 15:38:52 pooka Exp $
 #
 
 RUMPTOP= ${TOPRUMP}
@@ -26,7 +26,7 @@ CPPFLAGS+= -I${.CURDIR}/opt -I${RUMPTOP}
 CPPFLAGS+= -I${RUMPTOP}/librump/rumpvfs
 
 .if ${RUMP_PCI_IOSPACE:Uno} == yes
-CPPFLAGS+=-DRUMP_PCI_IOSPACE
+.error RUMP_PCI_IOSPACE defined in Makefile.  Use userfeatures.h instead.
 .endif
 
 .PATH:			${RUMPCOMP_USER_PATH.rumpdev_pci}
Index: src/sys/rump/dev/lib/libpci/pci_at_mainbus.c
diff -u src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.5 src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.6
--- src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.5	Fri Aug 22 14:28:58 2014
+++ src/sys/rump/dev/lib/libpci/pci_at_mainbus.c	Mon Jun 15 15:38:52 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_at_mainbus.c,v 1.5 2014/08/22 14:28:58 pooka Exp $	*/
+/*	$NetBSD: pci_at_mainbus.c,v 1.6 2015/06/15 15:38:52 pooka Exp $	*/
 
 /*
  * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: pci_at_mainbus.c,v 1.5 2014/08/22 14:28:58 pooka Exp $);
+__KERNEL_RCSID(0, $NetBSD: pci_at_mainbus.c,v 1.6 2015/06/15 15:38:52 pooka Exp $);
 
 #include sys/param.h
 #include sys/conf.h
@@ -43,6 +43,8 @@ __KERNEL_RCSID(0, $NetBSD: pci_at_mainb
 #include rump_private.h
 #include rump_vfs_private.h
 
+#include pci_user.h
+
 RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern const struct cdevsw pci_cdevsw;
@@ -80,8 +82,17 @@ RUMP_COMPONENT(RUMP_COMPONENT_DEV_AFTERM
 #endif
 	pba.pba_flags = PCI_FLAGS_MEM_OKAY |
 	PCI_FLAGS_MRL_OKAY | PCI_FLAGS_MRM_OKAY | PCI_FLAGS_MWI_OKAY;;
-#ifdef RUMP_PCI_IOSPACE
-	pba.pba_flags |= PCI_FLAGS_IO_OKAY;
+
+#ifdef RUMPCOMP_USERFEATURE_PCI_IOSPACE
+	int error;
+
+	error = rumpcomp_pci_iospace_init();
+	if (!error) {
+		pba.pba_flags |= PCI_FLAGS_IO_OKAY;
+	} else {
+		aprint_error(pci: I/O space init error %d, I/O space not 
+		available\n, error);
+	}
 #endif
 
 	mainbus = device_find_by_driver_unit(mainbus, 0);

Index: src/sys/rump/dev/lib/libpci/pci_user.h
diff -u src/sys/rump/dev/lib/libpci/pci_user.h:1.4 src/sys/rump/dev/lib/libpci/pci_user.h:1.5
--- src/sys/rump/dev/lib/libpci/pci_user.h:1.4	Wed Jun  3 13:55:42 2015
+++ src/sys/rump/dev/lib/libpci/pci_user.h	Mon Jun 15 15:38:52 2015
@@ -1,3 +1,14 @@
+/*
+ * Possible userfeature macro flags:
+ *
+ *   RUMPCOMP_USERFEATURE_PCI_DMAFREE:
+ *	Support free'ing DMA memory.  If not, panic() when free() is called.
+ *
+ *   RUMPCOMP_USERFEATURE_PCI_IOSPACE
+ *	Support for PCI I/O space.  If yes, rumpcomp_pci_iospace_init()
+ *	must be provided.
+ */
+
 #include rumpcomp_userfeatures_pci.h
 
 void *rumpcomp_pci_map(unsigned long, unsigned long);
@@ -9,8 +20,8 @@ void *rumpcomp_pci_irq_establish(unsigne
 
 /* XXX: needs work: support boundary-restricted allocations */
 int rumpcomp_pci_dmalloc(size_t, size_t, unsigned long *, unsigned long *);
-#ifdef rumpcomp_pci_free
-void rumpcomp_pci_free(unsigned long, size_t);
+#ifdef RUMPCOMP_USERFEATURE_PCI_DMAFREE
+void rumpcomp_pci_dmafree(unsigned long, size_t);
 #endif
 
 struct rumpcomp_pci_dmaseg {
@@ -22,3 +33,7 @@ int rumpcomp_pci_dmamem_map(struct rumpc
 			void **);
 
 unsigned long rumpcomp_pci_virt_to_mach(void *);
+
+#ifdef RUMPCOMP_USERFEATURE_PCI_IOSPACE
+int rumpcomp_pci_iospace_init(void);
+#endif
Index: src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.4 src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.5
--- src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.4	Wed Jun  3 

CVS commit: src/sys/rump/dev/lib/libpci

2015-06-03 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed Jun  3 13:41:56 UTC 2015

Modified Files:
src/sys/rump/dev/lib/libpci: Makefile

Log Message:
Rework how the external hypercalls are specified, more in the direction of
something general.  I'm not sure if it's entirely general yet (since PCI
is the only place to use it), but at least a step in the right direction.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/rump/dev/lib/libpci/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/dev/lib/libpci/Makefile
diff -u src/sys/rump/dev/lib/libpci/Makefile:1.4 src/sys/rump/dev/lib/libpci/Makefile:1.5
--- src/sys/rump/dev/lib/libpci/Makefile:1.4	Fri Aug 22 14:28:58 2014
+++ src/sys/rump/dev/lib/libpci/Makefile	Wed Jun  3 13:41:56 2015
@@ -1,8 +1,10 @@
-#	$NetBSD: Makefile,v 1.4 2014/08/22 14:28:58 pooka Exp $
+#	$NetBSD: Makefile,v 1.5 2015/06/03 13:41:56 pooka Exp $
 #
 
 RUMPTOP= ${TOPRUMP}
 
+.include bsd.own.mk
+
 .PATH:	${RUMPTOP}/../dev/pci
 
 LIB=	rumpdev_pci
@@ -27,11 +29,17 @@ CPPFLAGS+= -I${RUMPTOP}/librump/rumpvfs
 CPPFLAGS+=-DRUMP_PCI_IOSPACE
 .endif
 
-.if defined(RUMP_PCI_USER)
-RUMPCOMP_USER_SRCS=	${RUMP_PCI_USER}
-RUMPCOMP_INCS_DIR:=	${.PARSEDIR}
-RUMPCOMP_USER_CPPFLAGS=-I${RUMPCOMP_INCS_DIR}
-.endif
+.PATH:			${RUMPCOMP_USER_PATH.rumpdev_pci}
+RUMPCOMP_USER_SRCS=	${RUMPCOMP_USER_SRCS.rumpdev_pci}
+MYDIR:=			${.PARSEDIR}
+RUMPCOMP_USER_CPPFLAGS=	-I${MYDIR}
+RUMPCOMP_USER_CPPFLAGS+=${RUMPCOMP_USER_CPPFLAGS.rumpdev_pci}
+RUMPCOMP_USER_CFLAGS=	${RUMPCOMP_USER_CFLAGS.rumpdev_pci}
+
+CPPFLAGS+=		${RUMPCOMP_CPPFLAGS.rumpdev_pci}
+
+# XXX: messy
+.undef RUMPKERN_ONLY
 
 .include ${RUMPTOP}/Makefile.rump
 .include bsd.lib.mk



CVS commit: src/sys/rump/dev/lib/libpci

2015-06-03 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed Jun  3 13:43:24 UTC 2015

Modified Files:
src/sys/rump/dev/lib/libpci: pci_user.h

Log Message:
Demand that rumpcomp_userfeatures_pci.h is available for providing
information about the hypercall interface implementation.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/lib/libpci/pci_user.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/dev/lib/libpci/pci_user.h
diff -u src/sys/rump/dev/lib/libpci/pci_user.h:1.2 src/sys/rump/dev/lib/libpci/pci_user.h:1.3
--- src/sys/rump/dev/lib/libpci/pci_user.h:1.2	Mon Apr 14 21:43:00 2014
+++ src/sys/rump/dev/lib/libpci/pci_user.h	Wed Jun  3 13:43:23 2015
@@ -1,3 +1,5 @@
+#include rumpcomp_userfeatures_pci.h
+
 void *rumpcomp_pci_map(unsigned long, unsigned long);
 int rumpcomp_pci_confread(unsigned, unsigned, unsigned, int, unsigned int *);
 int rumpcomp_pci_confwrite(unsigned, unsigned, unsigned, int, unsigned int); 



CVS commit: src/sys/rump/dev/lib/libpci

2015-05-17 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Sun May 17 13:45:37 UTC 2015

Modified Files:
src/sys/rump/dev/lib/libpci: rumpdev_bus_space.c

Log Message:
Implement bus_space_read/write_multi() and bus_space_subregion().

Used by (at least) wdc.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/lib/libpci/rumpdev_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/rump/dev/lib/libpci/rumpdev_bus_space.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.3 src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.4
--- src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.3	Fri Aug 22 14:28:58 2014
+++ src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c	Sun May 17 13:45:37 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpdev_bus_space.c,v 1.3 2014/08/22 14:28:58 pooka Exp $	*/
+/*	$NetBSD: rumpdev_bus_space.c,v 1.4 2015/05/17 13:45:37 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2013 Antti Kantee.  All Rights Reserved.
@@ -127,6 +127,39 @@ bus_space_read_4(bus_space_tag_t bst, bu
 }
 
 void
+bus_space_read_multi_1(bus_space_tag_t bst, bus_space_handle_t bsh,
+	bus_size_t offset, uint8_t *datap, bus_size_t count)
+{
+
+	while (count--) {
+		*datap++ = bus_space_read_1(bst, bsh, offset);
+		bus_space_barrier(bst, bst, offset, 1, BUS_SPACE_BARRIER_READ);
+	}
+}
+
+void
+bus_space_read_multi_2(bus_space_tag_t bst, bus_space_handle_t bsh,
+	bus_size_t offset, uint16_t *datap, bus_size_t count)
+{
+
+	while (count--) {
+		*datap++ = bus_space_read_2(bst, bsh, offset);
+		bus_space_barrier(bst, bst, offset, 2, BUS_SPACE_BARRIER_READ);
+	}
+}
+
+void
+bus_space_read_multi_4(bus_space_tag_t bst, bus_space_handle_t bsh,
+	bus_size_t offset, uint32_t *datap, bus_size_t count)
+{
+
+	while (count--) {
+		*datap++ = bus_space_read_4(bst, bsh, offset);
+		bus_space_barrier(bst, bst, offset, 4, BUS_SPACE_BARRIER_READ);
+	}
+}
+
+void
 bus_space_write_1(bus_space_tag_t bst, bus_space_handle_t bsh,
 	bus_size_t offset, uint8_t v)
 {
@@ -177,6 +210,45 @@ bus_space_write_4(bus_space_tag_t bst, b
 	}
 }
 
+void
+bus_space_write_multi_1(bus_space_tag_t bst, bus_space_handle_t bsh,
+	bus_size_t offset, const uint8_t *datap, bus_size_t count)
+{
+
+	while (count--) {
+		const uint8_t value = *datap++;
+
+		bus_space_write_1(bst, bsh, offset, value);
+		bus_space_barrier(bst, bst, offset, 1, BUS_SPACE_BARRIER_WRITE);
+	}
+}
+
+void
+bus_space_write_multi_2(bus_space_tag_t bst, bus_space_handle_t bsh,
+	bus_size_t offset, const uint16_t *datap, bus_size_t count)
+{
+
+	while (count--) {
+		const uint16_t value = *datap++;
+
+		bus_space_write_2(bst, bsh, offset, value);
+		bus_space_barrier(bst, bst, offset, 2, BUS_SPACE_BARRIER_WRITE);
+	}
+}
+
+void
+bus_space_write_multi_4(bus_space_tag_t bst, bus_space_handle_t bsh,
+	bus_size_t offset, const uint32_t *datap, bus_size_t count)
+{
+
+	while (count--) {
+		const uint32_t value = *datap++;
+
+		bus_space_write_4(bst, bsh, offset, value);
+		bus_space_barrier(bst, bst, offset, 4, BUS_SPACE_BARRIER_WRITE);
+	}
+}
+
 paddr_t
 bus_space_mmap(bus_space_tag_t bst, bus_addr_t addr, off_t off,
 	int prot, int flags)
@@ -190,7 +262,8 @@ bus_space_subregion(bus_space_tag_t bst,
 	bus_size_t offset, bus_size_t size, bus_space_handle_t *nhandlep)
 {
 
-	panic(%s: unimplemented, __func__);
+	*nhandlep = bsh + offset;
+	return 0;
 }
 
 void



CVS commit: src/sys/rump/dev/lib/libpci

2015-05-17 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Sun May 17 13:51:31 UTC 2015

Modified Files:
src/sys/rump/dev/lib/libpci: rumpdev_pci.c
Added Files:
src/sys/rump/dev/lib/libpci/opt: opt_pciide.h

Log Message:
Add pciide_machdep_compat_intr_establish().

Used by ... would you believe pciide?


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/rump/dev/lib/libpci/rumpdev_pci.c
cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/lib/libpci/opt/opt_pciide.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/dev/lib/libpci/rumpdev_pci.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_pci.c:1.4 src/sys/rump/dev/lib/libpci/rumpdev_pci.c:1.5
--- src/sys/rump/dev/lib/libpci/rumpdev_pci.c:1.4	Tue Aug 26 10:58:13 2014
+++ src/sys/rump/dev/lib/libpci/rumpdev_pci.c	Sun May 17 13:51:31 2015
@@ -1,4 +1,4 @@
-/*  $NetBSD: rumpdev_pci.c,v 1.4 2014/08/26 10:58:13 pooka Exp $	*/
+/*  $NetBSD: rumpdev_pci.c,v 1.5 2015/05/17 13:51:31 pooka Exp $	*/
 
 /*
  * Copyright (c) 2013 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: rumpdev_pci.c,v 1.4 2014/08/26 10:58:13 pooka Exp $);
+__KERNEL_RCSID(0, $NetBSD: rumpdev_pci.c,v 1.5 2015/05/17 13:51:31 pooka Exp $);
 
 #include sys/cdefs.h
 #include sys/param.h
@@ -166,3 +166,26 @@ pci_intr_disestablish(pci_chipset_tag_t 
 
 	panic(%s: unimplemented, __func__);
 }
+
+#ifdef __HAVE_PCIIDE_MACHDEP_COMPAT_INTR_ESTABLISH
+#include dev/pci/pcireg.h
+#include dev/pci/pcivar.h
+#include dev/pci/pciidereg.h
+#include dev/pci/pciidevar.h
+
+void *
+pciide_machdep_compat_intr_establish(device_t dev,
+	const struct pci_attach_args *pa, int chan,
+	int (*func)(void *), void *arg)
+{
+	pci_intr_handle_t ih;
+	struct pci_attach_args mypa = *pa;
+
+	mypa.pa_intrline = PCIIDE_COMPAT_IRQ(chan);
+	if (pci_intr_map(mypa, ih) != 0)
+		return NULL;
+	return rumpcomp_pci_irq_establish(ih, func, arg);
+}
+
+__strong_alias(pciide_machdep_compat_intr_disestablish,pci_intr_disestablish);
+#endif /* __HAVE_PCIIDE_MACHDEP_COMPAT_INTR_ESTABLISH */

Added files:

Index: src/sys/rump/dev/lib/libpci/opt/opt_pciide.h
diff -u /dev/null src/sys/rump/dev/lib/libpci/opt/opt_pciide.h:1.1
--- /dev/null	Sun May 17 13:51:31 2015
+++ src/sys/rump/dev/lib/libpci/opt/opt_pciide.h	Sun May 17 13:51:31 2015
@@ -0,0 +1 @@
+/*	$NetBSD: opt_pciide.h,v 1.1 2015/05/17 13:51:31 pooka Exp $	*/



CVS commit: src/sys/rump/dev/lib/libpci

2014-08-26 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Tue Aug 26 10:58:13 UTC 2014

Modified Files:
src/sys/rump/dev/lib/libpci: rumpdev_pci.c

Log Message:
Implement pci_intr_setattr()

(well, kinda.  it just ignores the MPSAFE param for now, but that's
easy to fix later)


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/lib/libpci/rumpdev_pci.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/rump/dev/lib/libpci/rumpdev_pci.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_pci.c:1.3 src/sys/rump/dev/lib/libpci/rumpdev_pci.c:1.4
--- src/sys/rump/dev/lib/libpci/rumpdev_pci.c:1.3	Tue Apr 15 13:47:06 2014
+++ src/sys/rump/dev/lib/libpci/rumpdev_pci.c	Tue Aug 26 10:58:13 2014
@@ -1,4 +1,4 @@
-/*  $NetBSD: rumpdev_pci.c,v 1.3 2014/04/15 13:47:06 pooka Exp $	*/
+/*  $NetBSD: rumpdev_pci.c,v 1.4 2014/08/26 10:58:13 pooka Exp $	*/
 
 /*
  * Copyright (c) 2013 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: rumpdev_pci.c,v 1.3 2014/04/15 13:47:06 pooka Exp $);
+__KERNEL_RCSID(0, $NetBSD: rumpdev_pci.c,v 1.4 2014/08/26 10:58:13 pooka Exp $);
 
 #include sys/cdefs.h
 #include sys/param.h
@@ -147,6 +147,19 @@ pci_intr_establish(pci_chipset_tag_t pc,
 	return rumpcomp_pci_irq_establish(ih, func, arg);
 }
 
+int
+pci_intr_setattr(pci_chipset_tag_t pc, pci_intr_handle_t *ih,
+	int attr, uint64_t data)
+{
+
+	switch (attr) {
+	case PCI_INTR_MPSAFE:
+		return 0;
+	default:
+		return ENODEV;
+	}
+}
+
 void
 pci_intr_disestablish(pci_chipset_tag_t pc, void *not_your_above_ih)
 {



CVS commit: src/sys/rump/dev/lib/libpci

2014-08-22 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Fri Aug 22 14:28:58 UTC 2014

Modified Files:
src/sys/rump/dev/lib/libpci: Makefile pci_at_mainbus.c
rumpdev_bus_space.c

Log Message:
Add a compile-time selector for I/O space operations.  Needs more work
some day, but allows virtio drivers to work today.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/lib/libpci/Makefile
cvs rdiff -u -r1.4 -r1.5 src/sys/rump/dev/lib/libpci/pci_at_mainbus.c
cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/lib/libpci/rumpdev_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/rump/dev/lib/libpci/Makefile
diff -u src/sys/rump/dev/lib/libpci/Makefile:1.3 src/sys/rump/dev/lib/libpci/Makefile:1.4
--- src/sys/rump/dev/lib/libpci/Makefile:1.3	Mon Apr 14 23:53:42 2014
+++ src/sys/rump/dev/lib/libpci/Makefile	Fri Aug 22 14:28:58 2014
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.3 2014/04/14 23:53:42 pooka Exp $
+#	$NetBSD: Makefile,v 1.4 2014/08/22 14:28:58 pooka Exp $
 #
 
 RUMPTOP= ${TOPRUMP}
@@ -23,6 +23,10 @@ SRCS+=	pci_at_mainbus.c
 CPPFLAGS+= -I${.CURDIR}/opt -I${RUMPTOP}/librump/rumpkern
 CPPFLAGS+= -I${RUMPTOP}/librump/rumpvfs
 
+.if ${RUMP_PCI_IOSPACE:Uno} == yes
+CPPFLAGS+=-DRUMP_PCI_IOSPACE
+.endif
+
 .if defined(RUMP_PCI_USER)
 RUMPCOMP_USER_SRCS=	${RUMP_PCI_USER}
 RUMPCOMP_INCS_DIR:=	${.PARSEDIR}

Index: src/sys/rump/dev/lib/libpci/pci_at_mainbus.c
diff -u src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.4 src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.5
--- src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.4	Thu Jul 31 15:55:08 2014
+++ src/sys/rump/dev/lib/libpci/pci_at_mainbus.c	Fri Aug 22 14:28:58 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_at_mainbus.c,v 1.4 2014/07/31 15:55:08 pooka Exp $	*/
+/*	$NetBSD: pci_at_mainbus.c,v 1.5 2014/08/22 14:28:58 pooka Exp $	*/
 
 /*
  * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: pci_at_mainbus.c,v 1.4 2014/07/31 15:55:08 pooka Exp $);
+__KERNEL_RCSID(0, $NetBSD: pci_at_mainbus.c,v 1.5 2014/08/22 14:28:58 pooka Exp $);
 
 #include sys/param.h
 #include sys/conf.h
@@ -80,7 +80,7 @@ RUMP_COMPONENT(RUMP_COMPONENT_DEV_AFTERM
 #endif
 	pba.pba_flags = PCI_FLAGS_MEM_OKAY |
 	PCI_FLAGS_MRL_OKAY | PCI_FLAGS_MRM_OKAY | PCI_FLAGS_MWI_OKAY;;
-#if 0
+#ifdef RUMP_PCI_IOSPACE
 	pba.pba_flags |= PCI_FLAGS_IO_OKAY;
 #endif
 

Index: src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.2 src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.3
--- src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.2	Sun Apr 13 15:43:26 2014
+++ src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c	Fri Aug 22 14:28:58 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpdev_bus_space.c,v 1.2 2014/04/13 15:43:26 pooka Exp $	*/
+/*	$NetBSD: rumpdev_bus_space.c,v 1.3 2014/08/22 14:28:58 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2013 Antti Kantee.  All Rights Reserved.
@@ -34,6 +34,10 @@
 
 #include pci_user.h
 
+#if defined(RUMP_PCI_IOSPACE)  (defined(__i386__) || defined(__x86_64__))
+#define IOSPACE_SUPPORTED
+#endif
+
 int
 bus_space_map(bus_space_tag_t bst, bus_addr_t address, bus_size_t size,
 	int flags, bus_space_handle_t *handlep)
@@ -48,8 +52,12 @@ bus_space_map(bus_space_tag_t bst, bus_a
 	 * make a hypercall to request it.
 	 */
 	if (bst == 0) {
+#ifdef IOSPACE_SUPPORTED
 		*handlep = address;
 		rv = 0;
+#else
+		rv = ENOTSUP;
+#endif
 	} else {
 		*handlep = (bus_space_handle_t)rumpcomp_pci_map(address, size);
 		rv = *handlep ? 0 : EINVAL;
@@ -65,7 +73,12 @@ bus_space_read_1(bus_space_tag_t bst, bu
 	uint8_t rv;
 
 	if (bst == 0) {
-		panic(8bit IO space not supported);
+#ifdef IOSPACE_SUPPORTED
+		unsigned short addr = bsh + offset;
+		__asm__ __volatile__(inb %1, %0 : =a(rv) : d(addr)); 
+#else
+		panic(IO space not supported);
+#endif
 	} else {
 		rv = *(volatile uint8_t *)(bsh + offset);
 	}
@@ -80,7 +93,12 @@ bus_space_read_2(bus_space_tag_t bst, bu
 	uint16_t rv;
 
 	if (bst == 0) {
-		panic(16bit IO space not supported);
+#ifdef IOSPACE_SUPPORTED
+		unsigned short addr = bsh + offset;
+		__asm__ __volatile__(in %1, %0 : =a(rv) : d(addr)); 
+#else
+		panic(IO space not supported);
+#endif
 	} else {
 		rv = *(volatile uint16_t *)(bsh + offset);
 	}
@@ -95,11 +113,11 @@ bus_space_read_4(bus_space_tag_t bst, bu
 	uint32_t rv;
 
 	if (bst == 0) {
-#if 1
-		panic(IO space not supported in this build);
-#else
+#ifdef IOSPACE_SUPPORTED
 		unsigned short addr = bsh + offset;
 		__asm__ __volatile__(inl %1, %0 : =a(rv) : d(addr)); 
+#else
+		panic(IO space not supported);
 #endif
 	} else {
 		rv = *(volatile uint32_t *)(bsh + offset);
@@ -114,8 +132,11 @@ bus_space_write_1(bus_space_tag_t bst, b
 {
 
 	if (bst == 0) {
-#if 1
-		panic(IO space not supported in this build);
+#ifdef IOSPACE_SUPPORTED
+		unsigned short addr = bsh + offset;
+		__asm__ 

CVS commit: src/sys/rump/dev/lib/libpci

2014-07-31 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Thu Jul 31 15:55:08 UTC 2014

Modified Files:
src/sys/rump/dev/lib/libpci: pci_at_mainbus.c

Log Message:
add missing \n

from Robert Millan r...@freebsd.org via rumpkernel-users


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/lib/libpci/pci_at_mainbus.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/rump/dev/lib/libpci/pci_at_mainbus.c
diff -u src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.3 src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.4
--- src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.3	Mon Apr 14 21:34:08 2014
+++ src/sys/rump/dev/lib/libpci/pci_at_mainbus.c	Thu Jul 31 15:55:08 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci_at_mainbus.c,v 1.3 2014/04/14 21:34:08 pooka Exp $	*/
+/*	$NetBSD: pci_at_mainbus.c,v 1.4 2014/07/31 15:55:08 pooka Exp $	*/
 
 /*
  * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: pci_at_mainbus.c,v 1.3 2014/04/14 21:34:08 pooka Exp $);
+__KERNEL_RCSID(0, $NetBSD: pci_at_mainbus.c,v 1.4 2014/07/31 15:55:08 pooka Exp $);
 
 #include sys/param.h
 #include sys/conf.h
@@ -61,7 +61,7 @@ RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 
 	if ((error = rump_vfs_makedevnodes(S_IFCHR, /dev/pci, '0',
 	cmaj, 0, 4)) != 0)
-		printf(pci: failed to create /dev/pci nodes: %d, error);
+		printf(pci: failed to create /dev/pci nodes: %d\n, error);
 }
 
 RUMP_COMPONENT(RUMP_COMPONENT_DEV_AFTERMAINBUS)



CVS commit: src/sys/rump/dev/lib/libpci

2014-04-13 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Sun Apr 13 15:43:26 UTC 2014

Modified Files:
src/sys/rump/dev/lib/libpci: rumpdev_bus_space.c

Log Message:
add some sort of bus_space_barrier()


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/lib/libpci/rumpdev_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/rump/dev/lib/libpci/rumpdev_bus_space.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.1 src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.2
--- src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c:1.1	Fri Apr  4 12:53:59 2014
+++ src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c	Sun Apr 13 15:43:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpdev_bus_space.c,v 1.1 2014/04/04 12:53:59 pooka Exp $	*/
+/*	$NetBSD: rumpdev_bus_space.c,v 1.2 2014/04/13 15:43:26 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2013 Antti Kantee.  All Rights Reserved.
@@ -26,6 +26,7 @@
  */
 
 #include sys/cdefs.h
+#include sys/atomic.h
 
 #include sys/param.h
 
@@ -175,3 +176,12 @@ bus_space_unmap(bus_space_tag_t bst, bus
 
 	panic(%s: unimplemented, __func__);
 }
+
+void
+bus_space_barrier(bus_space_tag_t bst, bus_space_handle_t bsh,
+	bus_size_t offset, bus_size_t len, int flags)
+{
+
+	/* weelll ... */
+	membar_sync();
+}



CVS commit: src/sys/rump/dev/lib/libpci

2014-04-10 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Fri Apr 11 01:03:08 UTC 2014

Modified Files:
src/sys/rump/dev/lib/libpci: rumpdev_bus_dma.c

Log Message:
remove obfuscation macros


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.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/rump/dev/lib/libpci/rumpdev_bus_dma.c
diff -u src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.1 src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.2
--- src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c:1.1	Fri Apr  4 12:53:59 2014
+++ src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c	Fri Apr 11 01:03:08 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpdev_bus_dma.c,v 1.1 2014/04/04 12:53:59 pooka Exp $	*/
+/*	$NetBSD: rumpdev_bus_dma.c,v 1.2 2014/04/11 01:03:08 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2013 Antti Kantee
@@ -86,11 +86,6 @@
 int	_bus_dmamap_load_buffer (bus_dma_tag_t, bus_dmamap_t, void *,
 	bus_size_t, struct vmspace *, int, paddr_t *, int *, int);
 
-#undef PHYS_TO_BUS_MEM
-#define PHYS_TO_BUS_MEM(_t_, _a_) rumpcomp_pci_virt_to_mach((void *)_a_)
-#undef BUS_MEM_TO_PHYS
-#define BUS_MEM_TO_PHYS(_t_, _a_) rumpcomp_pci_mach_to_virt(_a_)
-
 /*
  * Common function for DMA map creation.  May be called by bus-specific
  * DMA map creation functions.
@@ -212,7 +207,8 @@ _bus_dmamap_load_buffer(bus_dma_tag_t t,
 		 * the previous segment if possible.
 		 */
 		if (first) {
-			map-dm_segs[seg].ds_addr = PHYS_TO_BUS_MEM(t, curaddr);
+			map-dm_segs[seg].ds_addr
+			= rumpcomp_pci_virt_to_mach((void *)curaddr);
 			map-dm_segs[seg].ds_len = sgsize;
 			first = 0;
 		} else {
@@ -221,13 +217,13 @@ _bus_dmamap_load_buffer(bus_dma_tag_t t,
 			 map-dm_maxsegsz 
 			(map-_dm_boundary == 0 ||
 			 (map-dm_segs[seg].ds_addr  bmask) ==
-			 (PHYS_TO_BUS_MEM(t, curaddr)  bmask)))
+			 (rumpcomp_pci_virt_to_mach((void*)curaddr)bmask)))
 map-dm_segs[seg].ds_len += sgsize;
 			else {
 if (++seg = map-_dm_segcnt)
 	break;
 map-dm_segs[seg].ds_addr =
-	PHYS_TO_BUS_MEM(t, curaddr);
+rumpcomp_pci_virt_to_mach((void *)curaddr);
 map-dm_segs[seg].ds_len = sgsize;
 			}
 		}
@@ -334,7 +330,7 @@ bus_dmamap_load_mbuf(bus_dma_tag_t t, bu
 continue;
 			}
 			map-dm_segs[seg].ds_addr =
-			PHYS_TO_BUS_MEM(t, lastaddr);
+			rumpcomp_pci_virt_to_mach((void *)lastaddr);
 			map-dm_segs[seg].ds_len = m-m_len;
 			lastaddr += m-m_len;
 			continue;



CVS commit: src/sys/rump/dev/lib/libpci

2014-04-04 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Fri Apr  4 12:53:59 UTC 2014

Added Files:
src/sys/rump/dev/lib/libpci: Makefile PCI.ioconf pci_at_mainbus.c
pci_user.h rumpdev_bus_dma.c rumpdev_bus_space.c rumpdev_pci.c
shlib_version
src/sys/rump/dev/lib/libpci/opt: opt_pci.h

Log Message:
Add a rump kernel component for the PCI bus.  It works both in Xen DomU
(via Xen's PCI passthrough) and Linux userspace (via uio_pci_generic).


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/lib/libpci/Makefile \
src/sys/rump/dev/lib/libpci/PCI.ioconf \
src/sys/rump/dev/lib/libpci/pci_at_mainbus.c \
src/sys/rump/dev/lib/libpci/pci_user.h \
src/sys/rump/dev/lib/libpci/rumpdev_bus_dma.c \
src/sys/rump/dev/lib/libpci/rumpdev_bus_space.c \
src/sys/rump/dev/lib/libpci/rumpdev_pci.c \
src/sys/rump/dev/lib/libpci/shlib_version
cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/lib/libpci/opt/opt_pci.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/sys/rump/dev/lib/libpci/Makefile
diff -u /dev/null src/sys/rump/dev/lib/libpci/Makefile:1.1
--- /dev/null	Fri Apr  4 12:53:59 2014
+++ src/sys/rump/dev/lib/libpci/Makefile	Fri Apr  4 12:53:59 2014
@@ -0,0 +1,29 @@
+#	$NetBSD: Makefile,v 1.1 2014/04/04 12:53:59 pooka Exp $
+#
+
+RUMPTOP= ${TOPRUMP}
+
+.PATH:	${RUMPTOP}/../dev/pci
+
+LIB=	rumpdev_pci
+IOCONF=	PCI.ioconf
+
+SRCS+=	pci.c pci_map.c pci_quirks.c pci_subr.c pci_stub.c pci_usrreq.c
+SRCS+=	pcibusprint.c
+
+SRCS+=	rumpdev_pci.c
+
+# ok, these don't _really_ belong here, but it's the only
+# place they're currently useful, so let it slide
+SRCS+=	rumpdev_bus_space.c
+SRCS+=	rumpdev_bus_dma.c
+
+SRCS+=	pci_at_mainbus.c
+
+CPPFLAGS+= -I${.CURDIR}/opt -I${RUMPTOP}/librump/rumpkern
+
+#RUMPCOMP_USER_SRCS=	pci_user.c
+
+.include ${RUMPTOP}/Makefile.rump
+.include bsd.lib.mk
+.include bsd.klinks.mk
Index: src/sys/rump/dev/lib/libpci/PCI.ioconf
diff -u /dev/null src/sys/rump/dev/lib/libpci/PCI.ioconf:1.1
--- /dev/null	Fri Apr  4 12:53:59 2014
+++ src/sys/rump/dev/lib/libpci/PCI.ioconf	Fri Apr  4 12:53:59 2014
@@ -0,0 +1,12 @@
+#	$NetBSD: PCI.ioconf,v 1.1 2014/04/04 12:53:59 pooka Exp $
+#
+
+ioconf pci
+
+include conf/files
+include dev/pci/files.pci
+include rump/dev/files.rump
+
+pseudo-root mainbus*
+
+pci*at mainbus? bus ?
Index: src/sys/rump/dev/lib/libpci/pci_at_mainbus.c
diff -u /dev/null src/sys/rump/dev/lib/libpci/pci_at_mainbus.c:1.1
--- /dev/null	Fri Apr  4 12:53:59 2014
+++ src/sys/rump/dev/lib/libpci/pci_at_mainbus.c	Fri Apr  4 12:53:59 2014
@@ -0,0 +1,75 @@
+/*	$NetBSD: pci_at_mainbus.c,v 1.1 2014/04/04 12:53:59 pooka Exp $	*/
+
+/*
+ * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include sys/cdefs.h
+__KERNEL_RCSID(0, $NetBSD: pci_at_mainbus.c,v 1.1 2014/04/04 12:53:59 pooka Exp $);
+
+#include sys/param.h
+#include sys/conf.h
+#include sys/device.h
+#include sys/mbuf.h
+#include sys/stat.h
+#include sys/bus.h
+
+#include dev/pci/pcivar.h
+#include machine/bus_private.h
+
+#include ioconf.c
+
+#include rump_private.h
+
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
+{
+
+	config_init_component(cfdriver_ioconf_pci,
+	cfattach_ioconf_pci, cfdata_ioconf_pci);
+}
+
+RUMP_COMPONENT(RUMP_COMPONENT_DEV_AFTERMAINBUS)
+{
+	struct pcibus_attach_args pba;
+	device_t mainbus;
+
+	/* XXX: attach args should come from elsewhere */
+	memset(pba, 0, sizeof(pba));
+	pba.pba_iot = (bus_space_tag_t)0;
+	pba.pba_memt = (bus_space_tag_t)1;
+	pba.pba_dmat = (void *)0x20;
+#ifdef _LP64
+	pba.pba_dmat64 = (void *)0x40;
+#endif
+	pba.pba_flags = PCI_FLAGS_MEM_OKAY |
+