Module Name:    src
Committed By:   pooka
Date:           Thu Oct  1 21:46:31 UTC 2009

Added Files:
        src/sys/rump/dev/wip: Makefile.inc
        src/sys/rump/dev/wip/libumass: Makefile locators.h
            sd_at_scsibus_at_umass.c shlib_version
        src/sys/rump/dev/wip/libumass/opt: atapibus.h opt_compat_freebsd.h
            opt_scsi.h scsibus.h wd.h
        src/sys/rump/dev/wip/libusb: Makefile bus_dma.c locators.h
            shlib_version
        src/sys/rump/dev/wip/libusb/opt: ohci.h opt_usbverbose.h uhci.h

Log Message:
Checkpoint some work-in-progress for USB support in rump (currently
with limited s...@umass support).  However, not useful for anything
before I get the ugen-to-rump usb host controller cleaned up and
checkpointed.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/Makefile.inc
cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libumass/Makefile \
    src/sys/rump/dev/wip/libumass/locators.h \
    src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c \
    src/sys/rump/dev/wip/libumass/shlib_version
cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libumass/opt/atapibus.h \
    src/sys/rump/dev/wip/libumass/opt/opt_compat_freebsd.h \
    src/sys/rump/dev/wip/libumass/opt/opt_scsi.h \
    src/sys/rump/dev/wip/libumass/opt/scsibus.h \
    src/sys/rump/dev/wip/libumass/opt/wd.h
cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libusb/Makefile \
    src/sys/rump/dev/wip/libusb/bus_dma.c \
    src/sys/rump/dev/wip/libusb/locators.h \
    src/sys/rump/dev/wip/libusb/shlib_version
cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libusb/opt/ohci.h \
    src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h \
    src/sys/rump/dev/wip/libusb/opt/uhci.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/wip/Makefile.inc
diff -u /dev/null src/sys/rump/dev/wip/Makefile.inc:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/Makefile.inc	Thu Oct  1 21:46:30 2009
@@ -0,0 +1,8 @@
+#	$NetBSD: Makefile.inc,v 1.1 2009/10/01 21:46:30 pooka Exp $
+#
+
+RUMPTOP=	${.CURDIR}/../../..
+
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpdev
+
+.include "${RUMPTOP}/Makefile.rump"

Index: src/sys/rump/dev/wip/libumass/Makefile
diff -u /dev/null src/sys/rump/dev/wip/libumass/Makefile:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/Makefile	Thu Oct  1 21:46:30 2009
@@ -0,0 +1,21 @@
+#	$NetBSD: Makefile,v 1.1 2009/10/01 21:46:30 pooka Exp $
+#
+#
+# umass.  includes scsibus+sd for simplicity due to the umass code
+# needing compile time knowledge of its presence.  fixxxme
+#
+
+.PATH:	${.CURDIR}/../../../../dev/usb ${.CURDIR}/../../../../dev/scsipi
+
+LIB=	rumpdev_umass
+
+SRCS=	umass.c umass_isdata.c umass_quirks.c umass_scsipi.c
+SRCS+=	scsipiconf.c scsipi_base.c scsipi_ioctl.c scsi_base.c scsiconf.c sd.c
+
+SRCS+=	sd_at_scsibus_at_umass.c
+
+CFLAGS+=	-Wno-pointer-sign
+CPPFLAGS+=	-I${.CURDIR}/opt
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>
Index: src/sys/rump/dev/wip/libumass/locators.h
diff -u /dev/null src/sys/rump/dev/wip/libumass/locators.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/locators.h	Thu Oct  1 21:46:30 2009
@@ -0,0 +1,38 @@
+/*	$NetBSD: locators.h,v 1.1 2009/10/01 21:46:30 pooka Exp $	*/
+
+/* locators borrowed from config.  redo properly some day */
+
+#define SCSIBUSCF_TARGET 0
+#define SCSIBUSCF_TARGET_DEFAULT -1
+#define SCSIBUSCF_LUN 1
+#define SCSIBUSCF_LUN_DEFAULT -1
+#define SCSIBUSCF_NLOCS 2
+#define USBIFIFCF_PORT 0
+#define USBIFIFCF_PORT_DEFAULT -1
+#define USBIFIFCF_CONFIGURATION 1
+#define USBIFIFCF_CONFIGURATION_DEFAULT -1
+#define USBIFIFCF_INTERFACE 2
+#define USBIFIFCF_INTERFACE_DEFAULT -1
+#define USBIFIFCF_VENDOR 3
+#define USBIFIFCF_VENDOR_DEFAULT -1
+#define USBIFIFCF_PRODUCT 4
+#define USBIFIFCF_PRODUCT_DEFAULT -1
+#define USBIFIFCF_RELEASE 5
+#define USBIFIFCF_RELEASE_DEFAULT -1
+#define USBIFIFCF_NLOCS 6
+#define USBDEVIFCF_PORT 0
+#define USBDEVIFCF_PORT_DEFAULT -1
+#define USBDEVIFCF_CONFIGURATION 1
+#define USBDEVIFCF_CONFIGURATION_DEFAULT -1
+#define USBDEVIFCF_INTERFACE 2
+#define USBDEVIFCF_INTERFACE_DEFAULT -1
+#define USBDEVIFCF_VENDOR 3
+#define USBDEVIFCF_VENDOR_DEFAULT -1
+#define USBDEVIFCF_PRODUCT 4
+#define USBDEVIFCF_PRODUCT_DEFAULT -1
+#define USBDEVIFCF_RELEASE 5
+#define USBDEVIFCF_RELEASE_DEFAULT -1
+#define USBDEVIFCF_NLOCS 6
+#define SCSICF_CHANNEL 0
+#define SCSICF_CHANNEL_DEFAULT -1
+#define SCSICF_NLOCS 1
Index: src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c
diff -u /dev/null src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c	Thu Oct  1 21:46:30 2009
@@ -0,0 +1,154 @@
+/*	$NetBSD: sd_at_scsibus_at_umass.c,v 1.1 2009/10/01 21:46:30 pooka Exp $	*/
+
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/kmem.h>
+
+/*
+ * sd @ scsibus @ umass @ usb
+ *
+ * handwritten device configuration.... 'nuf said
+ */
+
+static const struct cfiattrdata scsicf_iattrdata = {
+	"scsi", 1, {
+		{ "channel", "-1", -1 },
+	}
+};
+static const struct cfiattrdata scsibuscf_iattrdata = {
+	"scsibus", 0, {
+		{ NULL, NULL, 0},
+	}
+};
+static const struct cfiattrdata *const scsibuscf_attrs[] = {
+	&scsibuscf_iattrdata,
+	NULL,
+};
+CFDRIVER_DECL(scsibus, DV_DULL, scsibuscf_attrs);
+CFDRIVER_DECL(sd, DV_DISK, NULL);
+
+static const struct cfiattrdata uroothub_iattrdata = {
+	"usbroothubif", 0, {
+		{ NULL, NULL, 0 },
+	}
+};
+static const struct cfiattrdata *const usb_attrs[] = {
+	&uroothub_iattrdata,
+	NULL,
+};
+CFDRIVER_DECL(usb, DV_DULL, usb_attrs);
+
+static const struct cfiattrdata usbdevif_iattrdata = {
+	"usbdevif", 0, {
+		{ NULL, NULL, 0 },
+	}
+};
+static const struct cfiattrdata usbifif_iattrdata = {
+	"usbifif", 0, {
+		{ NULL, NULL, 0 },
+	}
+};
+static const struct cfiattrdata *const uhub_attrs[] = {
+	&usbdevif_iattrdata,
+	&usbifif_iattrdata,
+	NULL,
+};
+CFDRIVER_DECL(uhub, DV_DULL, uhub_attrs);
+
+static const struct cfiattrdata *const umass_attrs[] = {
+	&scsicf_iattrdata,
+	NULL,
+};
+CFDRIVER_DECL(umass, DV_DULL, umass_attrs);
+
+struct cfparent rumpusbhc_pspec = {
+	"usbus",
+	"rumpusbhc",
+	DVUNIT_ANY
+};
+
+struct cfdata usb_cfdata[] = {
+	{ "usb", "usb", 0, FSTATE_STAR, NULL, 0, &rumpusbhc_pspec },
+};
+
+struct cfparent usb_pspec = {
+	"usbroothubif",
+	"usb",
+	DVUNIT_ANY
+};
+
+struct cfdata uhub_cfdata[] = {
+	{ "uhub", "uroothub", 0, FSTATE_STAR, NULL, 0, &usb_pspec },
+};
+
+struct cfparent usbifif_pspec = {
+	"usbifif",
+	"uhub",
+	DVUNIT_ANY
+};
+
+struct cfparent scsi_pspec = {
+	"scsi",
+	NULL,
+	0
+};
+
+struct cfdata umass_cfdata[] = {
+	{ "umass", "umass", 0, FSTATE_STAR, NULL, 0, &usbifif_pspec },
+};
+
+int scsiloc[] = {-1,-1,-1,-1,-1,-1};
+
+struct cfdata scsibus_cfdata[] = {
+	{ "scsibus", "scsibus", 0, FSTATE_STAR, scsiloc, 0, &scsi_pspec },
+};
+
+struct cfparent scsibus_pspec = {
+	"scsibus",
+	"scsibus",
+	DVUNIT_ANY
+};
+
+struct cfdata sd_cfdata[] = {
+	{ "sd", "sd", 0, FSTATE_STAR, NULL, 0, &scsibus_pspec },
+};
+
+#include "rump_dev_private.h"
+
+#define FLAWLESSCALL(call)						\
+do {									\
+	int att_error;							\
+	if ((att_error = call) != 0)					\
+		panic("\"%s\" failed", #call);				\
+} while (/*CONSTCOND*/0)
+
+void
+rump_device_configuration(void)
+{
+	extern struct cfattach usb_ca, uhub_ca, uroothub_ca, umass_ca;
+	extern struct cfattach scsibus_ca, sd_ca;
+
+	FLAWLESSCALL(config_cfdriver_attach(&usb_cd));
+	FLAWLESSCALL(config_cfattach_attach("usb", &usb_ca));
+	FLAWLESSCALL(config_cfdata_attach(usb_cfdata, 0));
+
+	FLAWLESSCALL(config_cfdriver_attach(&uhub_cd));
+	FLAWLESSCALL(config_cfattach_attach("uhub", &uhub_ca));
+	FLAWLESSCALL(config_cfdata_attach(uhub_cfdata, 0));
+
+	FLAWLESSCALL(config_cfdriver_attach(&umass_cd));
+	FLAWLESSCALL(config_cfattach_attach("umass", &umass_ca));
+	FLAWLESSCALL(config_cfdata_attach(umass_cfdata, 0));
+
+	FLAWLESSCALL(config_cfdriver_attach(&scsibus_cd));
+	FLAWLESSCALL(config_cfattach_attach("scsibus", &scsibus_ca));
+	FLAWLESSCALL(config_cfdata_attach(scsibus_cfdata, 0));
+
+	FLAWLESSCALL(config_cfdriver_attach(&sd_cd));
+	FLAWLESSCALL(config_cfattach_attach("sd", &sd_ca));
+	FLAWLESSCALL(config_cfdata_attach(sd_cfdata, 0));
+
+	FLAWLESSCALL(config_cfattach_attach("uhub", &uroothub_ca));
+}
Index: src/sys/rump/dev/wip/libumass/shlib_version
diff -u /dev/null src/sys/rump/dev/wip/libumass/shlib_version:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/shlib_version	Thu Oct  1 21:46:30 2009
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/10/01 21:46:30 pooka Exp $
+#
+major=0
+minor=0

Index: src/sys/rump/dev/wip/libumass/opt/atapibus.h
diff -u /dev/null src/sys/rump/dev/wip/libumass/opt/atapibus.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/opt/atapibus.h	Thu Oct  1 21:46:30 2009
@@ -0,0 +1 @@
+/*	$NetBSD: atapibus.h,v 1.1 2009/10/01 21:46:30 pooka Exp $	*/
Index: src/sys/rump/dev/wip/libumass/opt/opt_compat_freebsd.h
diff -u /dev/null src/sys/rump/dev/wip/libumass/opt/opt_compat_freebsd.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/opt/opt_compat_freebsd.h	Thu Oct  1 21:46:30 2009
@@ -0,0 +1 @@
+/*	$NetBSD: opt_compat_freebsd.h,v 1.1 2009/10/01 21:46:30 pooka Exp $	*/
Index: src/sys/rump/dev/wip/libumass/opt/opt_scsi.h
diff -u /dev/null src/sys/rump/dev/wip/libumass/opt/opt_scsi.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/opt/opt_scsi.h	Thu Oct  1 21:46:31 2009
@@ -0,0 +1 @@
+/*	$NetBSD: opt_scsi.h,v 1.1 2009/10/01 21:46:31 pooka Exp $	*/
Index: src/sys/rump/dev/wip/libumass/opt/scsibus.h
diff -u /dev/null src/sys/rump/dev/wip/libumass/opt/scsibus.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/opt/scsibus.h	Thu Oct  1 21:46:31 2009
@@ -0,0 +1,3 @@
+/*	$NetBSD: scsibus.h,v 1.1 2009/10/01 21:46:31 pooka Exp $	*/
+
+#define NSCSIBUS 1
Index: src/sys/rump/dev/wip/libumass/opt/wd.h
diff -u /dev/null src/sys/rump/dev/wip/libumass/opt/wd.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libumass/opt/wd.h	Thu Oct  1 21:46:31 2009
@@ -0,0 +1 @@
+/*	$NetBSD: wd.h,v 1.1 2009/10/01 21:46:31 pooka Exp $	*/

Index: src/sys/rump/dev/wip/libusb/Makefile
diff -u /dev/null src/sys/rump/dev/wip/libusb/Makefile:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libusb/Makefile	Thu Oct  1 21:46:31 2009
@@ -0,0 +1,18 @@
+#	$NetBSD: Makefile,v 1.1 2009/10/01 21:46:31 pooka Exp $
+#
+
+.PATH:	${.CURDIR}/../../../../dev/usb
+
+LIB=	rumpdev_usb
+
+# sys/kern
+SRCS=	usb.c usbdi.c usbdi_util.c usb_mem.c usb_subr.c usb_quirks.c uhub.c
+
+# XXX: doesn't belong here by a longshot, but it's the easy choice for now
+SRCS+=	bus_dma.c
+
+CFLAGS+=	-Wno-pointer-sign
+CPPFLAGS+=	-I${.CURDIR}/opt
+
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>
Index: src/sys/rump/dev/wip/libusb/bus_dma.c
diff -u /dev/null src/sys/rump/dev/wip/libusb/bus_dma.c:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libusb/bus_dma.c	Thu Oct  1 21:46:31 2009
@@ -0,0 +1,85 @@
+/*	$NetBSD: bus_dma.c,v 1.1 2009/10/01 21:46:31 pooka Exp $	*/
+
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/conf.h>
+#include <sys/device.h>
+#include <sys/kmem.h>
+
+#include <machine/bus.h>
+
+/*
+ * bus dma "implementation" for rump.  needs "a little" more work
+ */
+
+int
+bus_dmamap_create(bus_dma_tag_t tag, bus_size_t sz, int flag, bus_size_t bsz,
+	bus_size_t bsz2, int i, bus_dmamap_t *ptr)
+{
+
+	return 0;
+}
+
+void
+bus_dmamap_destroy(bus_dma_tag_t tag, bus_dmamap_t map)
+{
+
+	panic("unimplemented %s", __func__);
+}
+
+int
+bus_dmamap_load(bus_dma_tag_t t, bus_dmamap_t a, void *b, bus_size_t c,
+	struct proc *d, int e)
+{
+
+	return 0;
+}
+
+void
+bus_dmamap_unload(bus_dma_tag_t a, bus_dmamap_t b)
+{
+
+	panic("unimplemented %s", __func__);
+}
+
+void
+bus_dmamap_sync(bus_dma_tag_t a, bus_dmamap_t b, bus_addr_t c,
+	bus_size_t d, int e)
+{
+
+	panic("unimplemented %s", __func__);
+}
+
+int
+bus_dmamem_alloc(bus_dma_tag_t tag, bus_size_t size, bus_size_t align,
+	bus_size_t boundary, bus_dma_segment_t *segs, int nsegs,
+	int *rsegs, int flags)
+{
+
+	*rsegs = nsegs;
+	return 0;
+}
+
+void
+bus_dmamem_free(bus_dma_tag_t a, bus_dma_segment_t *b, int c)
+{
+
+	panic("unimplemented %s", __func__);
+}
+
+int
+bus_dmamem_map(bus_dma_tag_t tag, bus_dma_segment_t *segs, int nsegs,
+                       size_t size, void **kvap, int flags)
+{
+
+	KASSERT(nsegs == 1);
+	*kvap = kmem_alloc(size, KM_SLEEP);
+	return 0;
+}
+
+void
+bus_dmamem_unmap(bus_dma_tag_t a, void *kva, size_t b)
+{
+
+	panic("unimplemented %s", __func__);
+}
Index: src/sys/rump/dev/wip/libusb/locators.h
diff -u /dev/null src/sys/rump/dev/wip/libusb/locators.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libusb/locators.h	Thu Oct  1 21:46:31 2009
@@ -0,0 +1,38 @@
+/*	$NetBSD: locators.h,v 1.1 2009/10/01 21:46:31 pooka Exp $	*/
+
+/* locators borrowed from config.  redo properly some day */
+
+#define SCSIBUSCF_TARGET 0
+#define SCSIBUSCF_TARGET_DEFAULT -1
+#define SCSIBUSCF_LUN 1
+#define SCSIBUSCF_LUN_DEFAULT -1
+#define SCSIBUSCF_NLOCS 2
+#define USBIFIFCF_PORT 0
+#define USBIFIFCF_PORT_DEFAULT -1
+#define USBIFIFCF_CONFIGURATION 1
+#define USBIFIFCF_CONFIGURATION_DEFAULT -1
+#define USBIFIFCF_INTERFACE 2
+#define USBIFIFCF_INTERFACE_DEFAULT -1
+#define USBIFIFCF_VENDOR 3
+#define USBIFIFCF_VENDOR_DEFAULT -1
+#define USBIFIFCF_PRODUCT 4
+#define USBIFIFCF_PRODUCT_DEFAULT -1
+#define USBIFIFCF_RELEASE 5
+#define USBIFIFCF_RELEASE_DEFAULT -1
+#define USBIFIFCF_NLOCS 6
+#define USBDEVIFCF_PORT 0
+#define USBDEVIFCF_PORT_DEFAULT -1
+#define USBDEVIFCF_CONFIGURATION 1
+#define USBDEVIFCF_CONFIGURATION_DEFAULT -1
+#define USBDEVIFCF_INTERFACE 2
+#define USBDEVIFCF_INTERFACE_DEFAULT -1
+#define USBDEVIFCF_VENDOR 3
+#define USBDEVIFCF_VENDOR_DEFAULT -1
+#define USBDEVIFCF_PRODUCT 4
+#define USBDEVIFCF_PRODUCT_DEFAULT -1
+#define USBDEVIFCF_RELEASE 5
+#define USBDEVIFCF_RELEASE_DEFAULT -1
+#define USBDEVIFCF_NLOCS 6
+#define SCSICF_CHANNEL 0
+#define SCSICF_CHANNEL_DEFAULT -1
+#define SCSICF_NLOCS 1
Index: src/sys/rump/dev/wip/libusb/shlib_version
diff -u /dev/null src/sys/rump/dev/wip/libusb/shlib_version:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libusb/shlib_version	Thu Oct  1 21:46:31 2009
@@ -0,0 +1,4 @@
+#	$NetBSD: shlib_version,v 1.1 2009/10/01 21:46:31 pooka Exp $
+#
+major=0
+minor=0

Index: src/sys/rump/dev/wip/libusb/opt/ohci.h
diff -u /dev/null src/sys/rump/dev/wip/libusb/opt/ohci.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libusb/opt/ohci.h	Thu Oct  1 21:46:31 2009
@@ -0,0 +1 @@
+/*	$NetBSD: ohci.h,v 1.1 2009/10/01 21:46:31 pooka Exp $	*/
Index: src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h
diff -u /dev/null src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h	Thu Oct  1 21:46:31 2009
@@ -0,0 +1 @@
+/*	$NetBSD: opt_usbverbose.h,v 1.1 2009/10/01 21:46:31 pooka Exp $	*/
Index: src/sys/rump/dev/wip/libusb/opt/uhci.h
diff -u /dev/null src/sys/rump/dev/wip/libusb/opt/uhci.h:1.1
--- /dev/null	Thu Oct  1 21:46:31 2009
+++ src/sys/rump/dev/wip/libusb/opt/uhci.h	Thu Oct  1 21:46:31 2009
@@ -0,0 +1 @@
+/*	$NetBSD: uhci.h,v 1.1 2009/10/01 21:46:31 pooka Exp $	*/

Reply via email to