CVS commit: src/sys/rump/dev/wip
Module Name:src Committed By: pooka Date: Mon Aug 24 23:21:16 UTC 2015 Removed Files: src/sys/rump/dev/wip: Makefile Makefile.inc src/sys/rump/dev/wip/libukbd: Makefile UKBD.ioconf ukbd_at_usb.c src/sys/rump/dev/wip/libums: Makefile UMS.ioconf ums_at_usb.c src/sys/rump/dev/wip/libusbrum: Makefile rum_at_usb.c Log Message: These wip components have been in progress for 5 years. There hasn't been much progress. Let's just kill them, they're not even build-tested. To generate a diff of this commit: cvs rdiff -u -r1.7 -r0 src/sys/rump/dev/wip/Makefile cvs rdiff -u -r1.2 -r0 src/sys/rump/dev/wip/Makefile.inc cvs rdiff -u -r1.4 -r0 src/sys/rump/dev/wip/libukbd/Makefile \ src/sys/rump/dev/wip/libukbd/UKBD.ioconf cvs rdiff -u -r1.5 -r0 src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c cvs rdiff -u -r1.4 -r0 src/sys/rump/dev/wip/libums/Makefile \ src/sys/rump/dev/wip/libums/UMS.ioconf cvs rdiff -u -r1.5 -r0 src/sys/rump/dev/wip/libums/ums_at_usb.c cvs rdiff -u -r1.2 -r0 src/sys/rump/dev/wip/libusbrum/Makefile cvs rdiff -u -r1.4 -r0 src/sys/rump/dev/wip/libusbrum/rum_at_usb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Tue Feb 9 18:27:17 UTC 2010 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: * UR_CBI_ADSC ctrl req fails with EIO sometime for unknown reasons. Let it instead of panicking. Doesn't seem to affect functionality. * process pipe queue only until it is empty To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.14 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.15 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.14 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Tue Feb 9 18:27:17 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.14 2010/02/03 21:18:38 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.15 2010/02/09 18:27:17 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.14 2010/02/03 21:18:38 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.15 2010/02/09 18:27:17 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -365,7 +365,7 @@ int len, totlen; int value; int err = 0; - int ru_error; + int ru_error, mightfail = 0; len = totlen = UGETW(req-wLength); if (len) @@ -462,9 +462,20 @@ } /* + * This request might fail unknown reasons. EIO doesn't + * give much help, and debugging the host ugen would be + * necessary. However, since it doesn't seem to really + * affect anything, just let it fail for now. + */ + case C(0x00, UT_WRITE_CLASS_INTERFACE): + mightfail = 1; + /*FALLTHROUGH*/ + + /* * XXX: don't wildcard these yet. I want to better figure * out what to trap here. This is kinda silly, though ... */ + case C(0x01, UT_WRITE_VENDOR_DEVICE): case C(0x06, UT_WRITE_VENDOR_DEVICE): case C(0x07, UT_READ_VENDOR_DEVICE): @@ -475,7 +486,6 @@ case C(UR_GET_STATUS, UT_READ_CLASS_DEVICE): case C(UR_GET_DESCRIPTOR, UT_READ_CLASS_DEVICE): case C(UR_GET_DESCRIPTOR, UT_READ_INTERFACE): - case C(0x00, UT_WRITE_CLASS_INTERFACE): case C(0xff, UT_WRITE_CLASS_INTERFACE): case C(0x20, UT_WRITE_CLASS_INTERFACE): case C(0x22, UT_WRITE_CLASS_INTERFACE): @@ -491,7 +501,10 @@ ucr.ucr_data = buf; if (rumpuser_ioctl(sc-sc_ugenfd[UGEN_EPT_CTRL], USB_DO_REQUEST, ucr, ru_error) == -1) { - panic(request failed); + if (!mightfail) +panic(request failed: %d, ru_error); + else +err = ru_error; } } break; @@ -715,17 +728,10 @@ doxfer_kth(void *arg) { usbd_xfer_handle xfer = arg; - usb_endpoint_descriptor_t *ed = xfer-pipe-endpoint-edesc; - bool repeat; - - if ((ed-bmAttributes UE_XFERTYPE) == UE_INTERRUPT) - repeat = true; - else - repeat = false; do { rumpusb_device_bulk_start(SIMPLEQ_FIRST(xfer-pipe-queue)); - } while (repeat); + } while (!SIMPLEQ_EMPTY(xfer-pipe-queue)); kthread_exit(0); }
CVS commit: src/sys/rump/dev/wip/libumass
Module Name:src Committed By: pooka Date: Tue Feb 9 19:02:19 UTC 2010 Modified Files: src/sys/rump/dev/wip/libumass: Makefile UMASS.ioconf sd_at_scsibus_at_umass.c Log Message: add c...@scsi and c...@atapi (untested. if you have a usb cd drive, let me know) To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/wip/libumass/Makefile cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/wip/libumass/UMASS.ioconf cvs rdiff -u -r1.7 -r1.8 \ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.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/wip/libumass/Makefile diff -u src/sys/rump/dev/wip/libumass/Makefile:1.3 src/sys/rump/dev/wip/libumass/Makefile:1.4 --- src/sys/rump/dev/wip/libumass/Makefile:1.3 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/libumass/Makefile Tue Feb 9 19:02:19 2010 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.3 2010/02/03 21:18:38 pooka Exp $ +# $NetBSD: Makefile,v 1.4 2010/02/09 19:02:19 pooka Exp $ # # # umass. includes scsibus+sd for simplicity due to the umass code @@ -10,9 +10,11 @@ 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+= scsipiconf.c scsipi_base.c scsipi_ioctl.c scsi_base.c scsiconf.c SRCS+= atapi_base.c atapiconf.c +SRCS+= cd.c sd.c + SRCS+= sd_at_scsibus_at_umass.c IOCONFIG= UMASS.ioconf Index: src/sys/rump/dev/wip/libumass/UMASS.ioconf diff -u src/sys/rump/dev/wip/libumass/UMASS.ioconf:1.2 src/sys/rump/dev/wip/libumass/UMASS.ioconf:1.3 --- src/sys/rump/dev/wip/libumass/UMASS.ioconf:1.2 Thu Feb 4 00:37:08 2010 +++ src/sys/rump/dev/wip/libumass/UMASS.ioconf Tue Feb 9 19:02:19 2010 @@ -1,4 +1,11 @@ -# $NetBSD: UMASS.ioconf,v 1.2 2010/02/04 00:37:08 pooka Exp $ +# $NetBSD: UMASS.ioconf,v 1.3 2010/02/09 19:02:19 pooka Exp $ +# + +# +# Technically we should not have drive components (sd, cd) in here, +# since in the future we might want to attach them via a completely +# separate mechanism (say, with the scsi host controller in rump). +# But, bundle them up for now. # ioconf umass @@ -10,8 +17,15 @@ # USB Mass Storage umass* at uhub? port ? configuration ? interface ? + +# SCSI support scsibus* at scsi? sd* at scsibus? target ? lun ? +# ATAPI support atapibus* at atapi? -sd* at atapibus? drive ? +sd* at atapibus? drive ? flags 0x + +# cd drives (untested!) +cd* at scsibus? target ? lun ? +cd* at atapibus? drive ? flags 0x Index: src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c diff -u src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.7 src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.8 --- src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.7 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c Tue Feb 9 19:02:19 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.7 2010/02/03 21:18:38 pooka Exp $ */ +/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.8 2010/02/09 19:02:19 pooka Exp $ */ #include sys/param.h #include sys/conf.h @@ -23,7 +23,7 @@ { extern struct cfattach rumpusbhc_ca; extern struct cfattach usb_ca, uhub_ca, uroothub_ca, umass_ca; - extern struct cfattach scsibus_ca, atapibus_ca, sd_ca; + extern struct cfattach scsibus_ca, atapibus_ca, sd_ca, cd_ca; extern struct bdevsw sd_bdevsw; extern struct cdevsw sd_cdevsw; devmajor_t bmaj, cmaj; @@ -54,6 +54,9 @@ FLAWLESSCALL(config_cfdriver_attach(sd_cd)); FLAWLESSCALL(config_cfattach_attach(sd, sd_ca)); + FLAWLESSCALL(config_cfdriver_attach(cd_cd)); + FLAWLESSCALL(config_cfattach_attach(cd, cd_ca)); + FLAWLESSCALL(config_cfattach_attach(uhub, uroothub_ca)); bmaj = cmaj = -1;
CVS commit: src/sys/rump/dev/wip/libumass
Module Name:src Committed By: pooka Date: Wed Feb 10 02:08:34 UTC 2010 Modified Files: src/sys/rump/dev/wip/libumass: sd_at_scsibus_at_umass.c Log Message: The first step to having cd work is to remember to attach it and go devfs on it. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.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/wip/libumass/sd_at_scsibus_at_umass.c diff -u src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.8 src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.9 --- src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.8 Tue Feb 9 19:02:19 2010 +++ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c Wed Feb 10 02:08:34 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.8 2010/02/09 19:02:19 pooka Exp $ */ +/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.9 2010/02/10 02:08:34 pooka Exp $ */ #include sys/param.h #include sys/conf.h @@ -24,8 +24,8 @@ extern struct cfattach rumpusbhc_ca; extern struct cfattach usb_ca, uhub_ca, uroothub_ca, umass_ca; extern struct cfattach scsibus_ca, atapibus_ca, sd_ca, cd_ca; - extern struct bdevsw sd_bdevsw; - extern struct cdevsw sd_cdevsw; + extern struct bdevsw sd_bdevsw, cd_bdevsw; + extern struct cdevsw sd_cdevsw, cd_cdevsw; devmajor_t bmaj, cmaj; FLAWLESSCALL(config_cfdata_attach(cfdata_umass, 0)); @@ -66,4 +66,12 @@ bmaj, 0, 8)); FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, /dev/rsd0, 'a', cmaj, 0, 8)); + + bmaj = cmaj = -1; + FLAWLESSCALL(devsw_attach(cd, cd_bdevsw, bmaj, cd_cdevsw, cmaj)); + + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, /dev/cd0, 'a', + bmaj, 0, 8)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, /dev/rcd0, 'a', + cmaj, 0, 8)); }
CVS commit: src/sys/rump/dev/wip
Module Name:src Committed By: pooka Date: Wed Feb 10 02:26:24 UTC 2010 Modified Files: src/sys/rump/dev/wip: Makefile files.rump src/sys/rump/dev/wip/libucom: ucom_at_usb.c src/sys/rump/dev/wip/libukbd: ukbd_at_usb.c src/sys/rump/dev/wip/libulpt: ulpt_at_usb.c src/sys/rump/dev/wip/libumass: sd_at_scsibus_at_umass.c src/sys/rump/dev/wip/libums: ums_at_usb.c src/sys/rump/dev/wip/libusbrum: rum_at_usb.c src/sys/rump/dev/wip/libwscons: component.c Added Files: src/sys/rump/dev/wip/libugenhc: Makefile shlib_version ugenhc.c Removed Files: src/sys/rump/dev/wip/librumpusbhc: Makefile rumpusbhc.c shlib_version Log Message: Rename rumpusbhc to ugenhc, as that better describes what it does. (the full component name is rumpdev_ugenhc) To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/rump/dev/wip/Makefile cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/files.rump cvs rdiff -u -r1.2 -r0 src/sys/rump/dev/wip/librumpusbhc/Makefile cvs rdiff -u -r1.15 -r0 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c cvs rdiff -u -r1.1 -r0 src/sys/rump/dev/wip/librumpusbhc/shlib_version cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/wip/libucom/ucom_at_usb.c cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libugenhc/Makefile \ src/sys/rump/dev/wip/libugenhc/shlib_version \ src/sys/rump/dev/wip/libugenhc/ugenhc.c cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libulpt/ulpt_at_usb.c cvs rdiff -u -r1.9 -r1.10 \ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/wip/libums/ums_at_usb.c cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/wip/libusbrum/rum_at_usb.c cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libwscons/component.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/wip/Makefile diff -u src/sys/rump/dev/wip/Makefile:1.5 src/sys/rump/dev/wip/Makefile:1.6 --- src/sys/rump/dev/wip/Makefile:1.5 Fri Feb 5 22:01:38 2010 +++ src/sys/rump/dev/wip/Makefile Wed Feb 10 02:26:23 2010 @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.5 2010/02/05 22:01:38 pooka Exp $ +# $NetBSD: Makefile,v 1.6 2010/02/10 02:26:23 pooka Exp $ # -SUBDIR= librumpusbhc libucom libumass libulpt libusb libusbrum +SUBDIR= libugenhc libucom libumass libulpt libusb libusbrum SUBDIR+=libums libukbd SUBDIR+=libwscons Index: src/sys/rump/dev/wip/files.rump diff -u src/sys/rump/dev/wip/files.rump:1.1 src/sys/rump/dev/wip/files.rump:1.2 --- src/sys/rump/dev/wip/files.rump:1.1 Thu Feb 4 00:37:08 2010 +++ src/sys/rump/dev/wip/files.rump Wed Feb 10 02:26:23 2010 @@ -1,20 +1,20 @@ -# $NetBSD: files.rump,v 1.1 2010/02/04 00:37:08 pooka Exp $ +# $NetBSD: files.rump,v 1.2 2010/02/10 02:26:23 pooka Exp $ # device mainbus { } attach mainbus at root -device rumpusbhc: usbus, usbroothub -attach rumpusbhc at mainbus +device ugenhc: usbus, usbroothub +attach ugenhc at mainbus # ugen0 - ugen3 mainbus0 at root -rumpusbhc0 at mainbus0 -rumpusbhc1 at mainbus0 -rumpusbhc2 at mainbus0 -rumpusbhc3 at mainbus0 +ugenhc0 at mainbus0 +ugenhc1 at mainbus0 +ugenhc2 at mainbus0 +ugenhc3 at mainbus0 # USB bus support -usb*at rumpusbhc? +usb*at ugenhc? # USB ROOT Hub # Index: src/sys/rump/dev/wip/libucom/ucom_at_usb.c diff -u src/sys/rump/dev/wip/libucom/ucom_at_usb.c:1.3 src/sys/rump/dev/wip/libucom/ucom_at_usb.c:1.4 --- src/sys/rump/dev/wip/libucom/ucom_at_usb.c:1.3 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/libucom/ucom_at_usb.c Wed Feb 10 02:26:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ucom_at_usb.c,v 1.3 2010/02/03 21:18:38 pooka Exp $ */ +/* $NetBSD: ucom_at_usb.c,v 1.4 2010/02/10 02:26:23 pooka Exp $ */ #include sys/param.h #include sys/types.h @@ -32,8 +32,8 @@ FLAWLESSCALL(config_cfdriver_attach(mainbus_cd)); FLAWLESSCALL(config_cfattach_attach(mainbus, mainbus_ca)); - FLAWLESSCALL(config_cfdriver_attach(rumpusbhc_cd)); - FLAWLESSCALL(config_cfattach_attach(rumpusbhc, rumpusbhc_ca)); + FLAWLESSCALL(config_cfdriver_attach(ugenhc_cd)); + FLAWLESSCALL(config_cfattach_attach(ugenhc, ugenhc_ca)); FLAWLESSCALL(config_cfdriver_attach(usb_cd)); FLAWLESSCALL(config_cfattach_attach(usb, usb_ca)); Index: src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c diff -u src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c:1.2 src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c:1.3 --- src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c:1.2 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c Wed Feb 10 02:26:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ukbd_at_usb.c,v 1.2 2010/02/03 21:18:38 pooka Exp $ */ +/* $NetBSD: ukbd_at_usb.c,v 1.3 2010/02/10 02:26:23 pooka Exp $ */ #include sys/param.h #include sys/conf.h @@ -28,8 +28,8 @@ FLAWLESSCALL(config_cfdriver_attach(mainbus_cd)); FLAWLESSCALL(config_cfattach_attach(mainbus, mainbus_ca)); -
CVS commit: src/sys/rump/dev/wip
Module Name:src Committed By: pooka Date: Thu Feb 4 00:37:08 UTC 2010 Modified Files: src/sys/rump/dev/wip/libucom: UCOM.ioconf src/sys/rump/dev/wip/libukbd: UKBD.ioconf src/sys/rump/dev/wip/libulpt: ULPT.ioconf src/sys/rump/dev/wip/libumass: UMASS.ioconf src/sys/rump/dev/wip/libums: UMS.ioconf Added Files: src/sys/rump/dev/wip: files.rump Log Message: Put common stuff in a single file which can be included. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/files.rump cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libucom/UCOM.ioconf cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libukbd/UKBD.ioconf cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libulpt/ULPT.ioconf cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libumass/UMASS.ioconf cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libums/UMS.ioconf 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/wip/libucom/UCOM.ioconf diff -u src/sys/rump/dev/wip/libucom/UCOM.ioconf:1.1 src/sys/rump/dev/wip/libucom/UCOM.ioconf:1.2 --- src/sys/rump/dev/wip/libucom/UCOM.ioconf:1.1 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/libucom/UCOM.ioconf Thu Feb 4 00:37:08 2010 @@ -1,33 +1,11 @@ -# $NetBSD: UCOM.ioconf,v 1.1 2010/02/03 21:18:38 pooka Exp $ +# $NetBSD: UCOM.ioconf,v 1.2 2010/02/04 00:37:08 pooka Exp $ # ioconf ucom include conf/files include dev/usb/files.usb -include dev/scsipi/files.scsipi - -device mainbus { } -attach mainbus at root -device rumpusbhc: usbus, usbroothub -attach rumpusbhc at mainbus - -# ugen0 - ugen3 -mainbus0 at root -rumpusbhc0 at mainbus0 -rumpusbhc1 at mainbus0 -rumpusbhc2 at mainbus0 -rumpusbhc3 at mainbus0 - -# USB bus support -usb*at rumpusbhc? - -# USB ROOT Hub -# -# Do *NOT* configure uhub @ uhub. -# That is not compatible with ugen. -# -uhub* at usb? +include rump/dev/wip/files.rump uplcom* at uhub? ucom* at uplcom? portno ? Index: src/sys/rump/dev/wip/libukbd/UKBD.ioconf diff -u src/sys/rump/dev/wip/libukbd/UKBD.ioconf:1.1 src/sys/rump/dev/wip/libukbd/UKBD.ioconf:1.2 --- src/sys/rump/dev/wip/libukbd/UKBD.ioconf:1.1 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/libukbd/UKBD.ioconf Thu Feb 4 00:37:08 2010 @@ -1,32 +1,11 @@ -# $NetBSD: UKBD.ioconf,v 1.1 2010/02/03 21:18:38 pooka Exp $ +# $NetBSD: UKBD.ioconf,v 1.2 2010/02/04 00:37:08 pooka Exp $ # ioconf ukbd include conf/files include dev/usb/files.usb - -device mainbus { } -attach mainbus at root -device rumpusbhc: usbus, usbroothub -attach rumpusbhc at mainbus - -# ugen0 - ugen3 -mainbus0 at root -rumpusbhc0 at mainbus0 -rumpusbhc1 at mainbus0 -rumpusbhc2 at mainbus0 -rumpusbhc3 at mainbus0 - -# USB bus support -usb*at rumpusbhc? - -# USB ROOT Hub -# -# Do *NOT* configure uhub @ uhub. -# That is not compatible with ugen. -# -uhub* at usb? +include rump/dev/wip/files.rump # USB HID device uhidev* at uhub? port ? configuration ? interface ? Index: src/sys/rump/dev/wip/libulpt/ULPT.ioconf diff -u src/sys/rump/dev/wip/libulpt/ULPT.ioconf:1.1 src/sys/rump/dev/wip/libulpt/ULPT.ioconf:1.2 --- src/sys/rump/dev/wip/libulpt/ULPT.ioconf:1.1 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/libulpt/ULPT.ioconf Thu Feb 4 00:37:08 2010 @@ -1,31 +1,10 @@ -# $NetBSD: ULPT.ioconf,v 1.1 2010/02/03 21:18:38 pooka Exp $ +# $NetBSD: ULPT.ioconf,v 1.2 2010/02/04 00:37:08 pooka Exp $ # ioconf ulpt include conf/files include dev/usb/files.usb - -device mainbus { } -attach mainbus at root -device rumpusbhc: usbus, usbroothub -attach rumpusbhc at mainbus - -# ugen0 - ugen3 -mainbus0 at root -rumpusbhc0 at mainbus0 -rumpusbhc1 at mainbus0 -rumpusbhc2 at mainbus0 -rumpusbhc3 at mainbus0 - -# USB bus support -usb*at rumpusbhc? - -# USB ROOT Hub -# -# Do *NOT* configure uhub @ uhub. -# That is not compatible with ugen. -# -uhub* at usb? +include rump/dev/wip/files.rump ulpt* at uhub? port ? configuration ? interface ? Index: src/sys/rump/dev/wip/libumass/UMASS.ioconf diff -u src/sys/rump/dev/wip/libumass/UMASS.ioconf:1.1 src/sys/rump/dev/wip/libumass/UMASS.ioconf:1.2 --- src/sys/rump/dev/wip/libumass/UMASS.ioconf:1.1 Wed Feb 3 21:18:38 2010 +++ src/sys/rump/dev/wip/libumass/UMASS.ioconf Thu Feb 4 00:37:08 2010 @@ -1,4 +1,4 @@ -# $NetBSD: UMASS.ioconf,v 1.1 2010/02/03 21:18:38 pooka Exp $ +# $NetBSD: UMASS.ioconf,v 1.2 2010/02/04 00:37:08 pooka Exp $ # ioconf umass @@ -6,28 +6,7 @@ include conf/files include dev/usb/files.usb include dev/scsipi/files.scsipi - -device mainbus { } -attach mainbus at root -device rumpusbhc: usbus, usbroothub -attach rumpusbhc at mainbus - -# ugen0 - ugen3 -mainbus0 at root -rumpusbhc0 at mainbus0 -rumpusbhc1 at mainbus0 -rumpusbhc2 at mainbus0 -rumpusbhc3 at mainbus0 - -# USB bus support -usb*at rumpusbhc? - -# USB ROOT Hub -# -# Do *NOT* configure uhub @ uhub. -# That is not compatible with ugen. -# -uhub* at
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Sun Jan 10 21:30:16 UTC 2010 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: pass a few more requests through to ugen To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.10 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.11 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.10 Sun Dec 20 15:32:46 2009 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Sun Jan 10 21:30:16 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.10 2009/12/20 15:32:46 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.11 2010/01/10 21:30:16 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.10 2009/12/20 15:32:46 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.11 2010/01/10 21:30:16 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -74,6 +74,7 @@ #include dev/usb/usb.h #include dev/usb/usbdi.h +#include dev/usb/usbhid.h #include dev/usb/usbdivar.h #include dev/usb/usb_mem.h #include dev/usb/usbroothub_subr.h @@ -134,6 +135,7 @@ { rumpusbhc, rumpusbhc, 1, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, { rumpusbhc, rumpusbhc, 2, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, { rumpusbhc, rumpusbhc, 3, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, + { NULL, NULL, 0, 0, NULL, 0, NULL }, }; #define UGENDEV_BASESTR /dev/ugen @@ -498,11 +500,14 @@ case C(UR_GET_STATUS, UT_READ_CLASS_OTHER): case C(UR_GET_STATUS, UT_READ_CLASS_DEVICE): case C(UR_GET_DESCRIPTOR, UT_READ_CLASS_DEVICE): + case C(UR_GET_DESCRIPTOR, UT_READ_INTERFACE): case C(0xff, UT_WRITE_CLASS_INTERFACE): case C(0x20, UT_WRITE_CLASS_INTERFACE): case C(0x22, UT_WRITE_CLASS_INTERFACE): + case C(0x0a, UT_WRITE_CLASS_INTERFACE): case C(UR_SET_FEATURE, UT_WRITE_CLASS_OTHER): case C(UR_CLEAR_FEATURE, UT_WRITE_CLASS_OTHER): + case C(UR_SET_REPORT, UT_WRITE_CLASS_INTERFACE): case C(UR_CLEAR_FEATURE, UT_WRITE_ENDPOINT): { struct usb_ctl_request ucr;
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Sun Jan 10 22:13:18 UTC 2010 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: Add a simple hack to make interrupt pipes work (can't close them yet ... except with SIGINT. muah). To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.11 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.12 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.11 Sun Jan 10 21:30:16 2010 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Sun Jan 10 22:13:18 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.11 2010/01/10 21:30:16 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.12 2010/01/10 22:13:18 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.11 2010/01/10 21:30:16 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.12 2010/01/10 22:13:18 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -740,8 +740,17 @@ doxfer_kth(void *arg) { usbd_xfer_handle xfer = arg; + usb_endpoint_descriptor_t *ed = xfer-pipe-endpoint-edesc; + bool repeat; - rumpusb_device_bulk_start(SIMPLEQ_FIRST(xfer-pipe-queue)); + if ((ed-bmAttributes UE_XFERTYPE) == UE_INTERRUPT) + repeat = true; + else + repeat = false; + + do { + rumpusb_device_bulk_start(SIMPLEQ_FIRST(xfer-pipe-queue)); + } while (repeat); kthread_exit(0); } @@ -857,8 +866,9 @@ case UE_CONTROL: pipe-methods = rumpusb_device_ctrl_methods; break; - case UE_BULK: case UE_INTERRUPT: + case UE_BULK: + pipe-methods = rumpusb_device_bulk_methods; endpt = pipe-endpoint-edesc-bEndpointAddress; if (UE_GET_DIR(endpt) == UE_DIR_IN) { oflags = O_RDONLY; @@ -866,7 +876,6 @@ oflags = O_WRONLY; } endpt = UE_GET_ADDR(endpt); - pipe-methods = rumpusb_device_bulk_methods; if (sc-sc_fdmodes[endpt] == oflags || sc-sc_fdmodes[endpt] == O_RDWR)
CVS commit: src/sys/rump/dev/wip/libwscons
Module Name:src Committed By: pooka Date: Mon Jan 11 02:12:52 UTC 2010 Added Files: src/sys/rump/dev/wip/libwscons: Makefile component.c locators.h shlib_version src/sys/rump/dev/wip/libwscons/opt: opt_wsdisplay_compat.h wsdisplay.h wskbd.h wsmouse.h wsmux.h Log Message: Add wscons rump component. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libwscons/Makefile \ src/sys/rump/dev/wip/libwscons/component.c \ src/sys/rump/dev/wip/libwscons/locators.h \ src/sys/rump/dev/wip/libwscons/shlib_version cvs rdiff -u -r0 -r1.1 \ src/sys/rump/dev/wip/libwscons/opt/opt_wsdisplay_compat.h \ src/sys/rump/dev/wip/libwscons/opt/wsdisplay.h \ src/sys/rump/dev/wip/libwscons/opt/wskbd.h \ src/sys/rump/dev/wip/libwscons/opt/wsmouse.h \ src/sys/rump/dev/wip/libwscons/opt/wsmux.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/libwscons/Makefile diff -u /dev/null src/sys/rump/dev/wip/libwscons/Makefile:1.1 --- /dev/null Mon Jan 11 02:12:52 2010 +++ src/sys/rump/dev/wip/libwscons/Makefile Mon Jan 11 02:12:51 2010 @@ -0,0 +1,16 @@ +# $NetBSD: Makefile,v 1.1 2010/01/11 02:12:51 pooka Exp $ +# + +.PATH: ${.CURDIR}/../../../../dev/wscons + +LIB= rumpdev_wscons + +SRCS= wsevent.c wskbd.c wskbdutil.c wsmouse.c + +SRCS+= component.c + +CPPFLAGS+= -Wno-pointer-sign +CPPFLAGS+= -I${RUMPTOP}/librump/rumpvfs -I${.CURDIR}/opt + +.include bsd.lib.mk +.include bsd.klinks.mk Index: src/sys/rump/dev/wip/libwscons/component.c diff -u /dev/null src/sys/rump/dev/wip/libwscons/component.c:1.1 --- /dev/null Mon Jan 11 02:12:52 2010 +++ src/sys/rump/dev/wip/libwscons/component.c Mon Jan 11 02:12:51 2010 @@ -0,0 +1,461 @@ +/* $NetBSD: component.c,v 1.1 2010/01/11 02:12:51 pooka Exp $ */ + +/* + * MACHINE GENERATED: DO NOT EDIT + * + * ioconf.c, from TESTI_wscons + */ + +#include sys/param.h +#include sys/conf.h +#include sys/device.h +#include sys/mount.h + +static const struct cfiattrdata gpibdevcf_iattrdata = { + gpibdev, 1, + { + { address, -1, -1 }, + } +}; +static const struct cfiattrdata acpibuscf_iattrdata = { + acpibus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata caccf_iattrdata = { + cac, 1, + { + { unit, -1, -1 }, + } +}; +static const struct cfiattrdata spicf_iattrdata = { + spi, 1, + { + { slave, NULL, 0 }, + } +}; +static const struct cfiattrdata radiodevcf_iattrdata = { + radiodev, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata mlxcf_iattrdata = { + mlx, 1, + { + { unit, -1, -1 }, + } +}; +static const struct cfiattrdata scsibuscf_iattrdata = { + scsibus, 2, + { + { target, -1, -1 }, + { lun, -1, -1 }, + } +}; +static const struct cfiattrdata ucombuscf_iattrdata = { + ucombus, 1, + { + { portno, -1, -1 }, + } +}; +static const struct cfiattrdata videobuscf_iattrdata = { + videobus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata isabuscf_iattrdata = { + isabus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata i2cbuscf_iattrdata = { + i2cbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata ata_hlcf_iattrdata = { + ata_hl, 1, + { + { drive, -1, -1 }, + } +}; +static const struct cfiattrdata mainbuscf_iattrdata = { + mainbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata depcacf_iattrdata = { + depca, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata ppbuscf_iattrdata = { + ppbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata eisabuscf_iattrdata = { + eisabus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata atapicf_iattrdata = { + atapi, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata atapibuscf_iattrdata = { + atapibus, 1, + { + { drive, -1, -1 }, + } +}; +static const struct cfiattrdata usbroothubifcf_iattrdata = { + usbroothubif, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata altmemdevcf_iattrdata = { + altmemdev, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata tcbuscf_iattrdata = { + tcbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata onewirebuscf_iattrdata = { + onewirebus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata gpiocf_iattrdata = { + gpio, 2, + { + { offset, -1, -1 }, + { mask, 0, 0 }, + } +}; +static const struct cfiattrdata cbbuscf_iattrdata = { + cbbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata gpiobuscf_iattrdata = { + gpiobus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata drmcf_iattrdata = { + drm, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata pckbportcf_iattrdata = { + pckbport, 1, + { + { slot, -1, -1 }, + } +}; +static const struct cfiattrdata irbuscf_iattrdata = { + irbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const
CVS commit: src/sys/rump/dev/wip
Module Name:src Committed By: pooka Date: Mon Jan 11 02:15:20 UTC 2010 Added Files: src/sys/rump/dev/wip/libukbd: Makefile locators.h shlib_version ukbd_at_usb.c src/sys/rump/dev/wip/libums: Makefile locators.h shlib_version ums_at_usb.c Log Message: Support ums (usb mouse) and ukbd (usb keyboard) drivers in rump. (both components include tty support and uhid currently. they should be split out to separate ones. i'll do that soon'ish). To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libukbd/Makefile \ src/sys/rump/dev/wip/libukbd/locators.h \ src/sys/rump/dev/wip/libukbd/shlib_version \ src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libums/Makefile \ src/sys/rump/dev/wip/libums/locators.h \ src/sys/rump/dev/wip/libums/shlib_version \ src/sys/rump/dev/wip/libums/ums_at_usb.c 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/libukbd/Makefile diff -u /dev/null src/sys/rump/dev/wip/libukbd/Makefile:1.1 --- /dev/null Mon Jan 11 02:15:20 2010 +++ src/sys/rump/dev/wip/libukbd/Makefile Mon Jan 11 02:15:20 2010 @@ -0,0 +1,21 @@ +# $NetBSD: Makefile,v 1.1 2010/01/11 02:15:20 pooka Exp $ +# + +.PATH: ${.CURDIR}/../../../../dev/usb ${.CURDIR}/../../../../kern \ + ${.CURDIR}/../../../../dev/wscons + +LIB= rumpdev_ukbd + +SRCS= ukbd.c ukbdmap.c + +SRCS+= hid.c uhidev.c uhid.c +SRCS+= ukbd_at_usb.c + +# XXX +SRCS+= tty.c tty_conf.c tty_tty.c tty_subr.c + +CFLAGS+= -Wno-pointer-sign +CPPFLAGS+= -I${RUMPTOP}/librump/rumpvfs + +.include bsd.lib.mk +.include bsd.klinks.mk Index: src/sys/rump/dev/wip/libukbd/locators.h diff -u /dev/null src/sys/rump/dev/wip/libukbd/locators.h:1.1 --- /dev/null Mon Jan 11 02:15:20 2010 +++ src/sys/rump/dev/wip/libukbd/locators.h Mon Jan 11 02:15:20 2010 @@ -0,0 +1,3 @@ +#define UHIDBUSCF_REPORTID 0 +#define UHIDBUSCF_REPORTID_DEFAULT -1 +#define UHIDBUSCF_NLOCS 1 Index: src/sys/rump/dev/wip/libukbd/shlib_version diff -u /dev/null src/sys/rump/dev/wip/libukbd/shlib_version:1.1 --- /dev/null Mon Jan 11 02:15:20 2010 +++ src/sys/rump/dev/wip/libukbd/shlib_version Mon Jan 11 02:15:20 2010 @@ -0,0 +1,4 @@ +# $NetBSD: shlib_version,v 1.1 2010/01/11 02:15:20 pooka Exp $ +# +major=0 +minor=0 Index: src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c diff -u /dev/null src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c:1.1 --- /dev/null Mon Jan 11 02:15:20 2010 +++ src/sys/rump/dev/wip/libukbd/ukbd_at_usb.c Mon Jan 11 02:15:20 2010 @@ -0,0 +1,473 @@ +/* $NetBSD: ukbd_at_usb.c,v 1.1 2010/01/11 02:15:20 pooka Exp $ */ + +/* + * MACHINE GENERATED: DO NOT EDIT + * + * ioconf.c, from TESTI_wskbd + */ + +#include sys/param.h +#include sys/conf.h +#include sys/device.h +#include sys/mount.h + +static const struct cfiattrdata gpibdevcf_iattrdata = { + gpibdev, 1, + { + { address, -1, -1 }, + } +}; +static const struct cfiattrdata acpibuscf_iattrdata = { + acpibus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata caccf_iattrdata = { + cac, 1, + { + { unit, -1, -1 }, + } +}; +static const struct cfiattrdata spicf_iattrdata = { + spi, 1, + { + { slave, NULL, 0 }, + } +}; +static const struct cfiattrdata radiodevcf_iattrdata = { + radiodev, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata mlxcf_iattrdata = { + mlx, 1, + { + { unit, -1, -1 }, + } +}; +static const struct cfiattrdata scsibuscf_iattrdata = { + scsibus, 2, + { + { target, -1, -1 }, + { lun, -1, -1 }, + } +}; +static const struct cfiattrdata ucombuscf_iattrdata = { + ucombus, 1, + { + { portno, -1, -1 }, + } +}; +static const struct cfiattrdata videobuscf_iattrdata = { + videobus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata isabuscf_iattrdata = { + isabus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata i2cbuscf_iattrdata = { + i2cbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata ata_hlcf_iattrdata = { + ata_hl, 1, + { + { drive, -1, -1 }, + } +}; +static const struct cfiattrdata mainbuscf_iattrdata = { + mainbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata depcacf_iattrdata = { + depca, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata ppbuscf_iattrdata = { + ppbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata eisabuscf_iattrdata = { + eisabus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata atapicf_iattrdata = { + atapi, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata atapibuscf_iattrdata = { + atapibus, 1, + { + { drive, -1, -1 }, + } +}; +static const struct cfiattrdata usbroothubifcf_iattrdata = { + usbroothubif, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata altmemdevcf_iattrdata = { + altmemdev, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata
CVS commit: src/sys/rump/dev/wip
Module Name:src Committed By: pooka Date: Mon Jan 11 02:15:38 UTC 2010 Modified Files: src/sys/rump/dev/wip: Makefile Log Message: decend into ums, ukbd and wscons To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/wip/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/wip/Makefile diff -u src/sys/rump/dev/wip/Makefile:1.3 src/sys/rump/dev/wip/Makefile:1.4 --- src/sys/rump/dev/wip/Makefile:1.3 Sun Dec 20 15:43:57 2009 +++ src/sys/rump/dev/wip/Makefile Mon Jan 11 02:15:38 2010 @@ -1,6 +1,9 @@ -# $NetBSD: Makefile,v 1.3 2009/12/20 15:43:57 pooka Exp $ +# $NetBSD: Makefile,v 1.4 2010/01/11 02:15:38 pooka Exp $ # SUBDIR= libnet80211 librumpusbhc libucom libumass libulpt libusb libusbrum +SUBDIR+=libums libukbd + +SUBDIR+=libwscons .include bsd.subdir.mk
CVS commit: src/sys/rump/dev/wip/libumass
Module Name:src Committed By: pooka Date: Tue Dec 22 13:34:35 UTC 2009 Modified Files: src/sys/rump/dev/wip/libumass: sd_at_scsibus_at_umass.c Log Message: Create sashimi nodes too. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.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/wip/libumass/sd_at_scsibus_at_umass.c diff -u src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.5 src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.6 --- src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.5 Sat Dec 19 11:55:23 2009 +++ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c Tue Dec 22 13:34:35 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.5 2009/12/19 11:55:23 pooka Exp $ */ +/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.6 2009/12/22 13:34:35 pooka Exp $ */ /* * MACHINE GENERATED: DO NOT EDIT @@ -503,4 +503,6 @@ FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, /dev/sd0, 'a', bmaj, 0, 8)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, /dev/rsd0, 'a', + cmaj, 0, 8)); }
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Sun Dec 20 15:32:47 UTC 2009 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: Improve bulk transfer implementation by adding more complete support for short reads. Ironically, in some cases this works *worse* than the previous incorrect implementation which silently ignored short reads. Namely, I can now probe my s...@umass USB stick only once without having to replug it. Some ugen bus reset is probably needed, but what exactly is unknown, and manual handjobs will have to suffice for now. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.9 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.10 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.9 Tue Dec 15 15:50:37 2009 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Sun Dec 20 15:32:46 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.9 2009/12/15 15:50:37 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.10 2009/12/20 15:32:46 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.9 2009/12/15 15:50:37 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.10 2009/12/20 15:32:46 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -499,6 +499,8 @@ case C(UR_GET_STATUS, UT_READ_CLASS_DEVICE): case C(UR_GET_DESCRIPTOR, UT_READ_CLASS_DEVICE): case C(0xff, UT_WRITE_CLASS_INTERFACE): + case C(0x20, UT_WRITE_CLASS_INTERFACE): + case C(0x22, UT_WRITE_CLASS_INTERFACE): case C(UR_SET_FEATURE, UT_WRITE_CLASS_OTHER): case C(UR_CLEAR_FEATURE, UT_WRITE_CLASS_OTHER): case C(UR_CLEAR_FEATURE, UT_WRITE_ENDPOINT): @@ -659,9 +661,12 @@ { struct rumpusbhc_softc *sc = xfer-pipe-device-bus-hci_private; ssize_t n; + ssize_t done; bool isread; int len, error, endpt; uint8_t *buf; + int xfererr = 0; + int val; endpt = xfer-pipe-endpoint-edesc-bEndpointAddress; isread = UE_GET_DIR(endpt) == UE_DIR_IN; @@ -671,34 +676,57 @@ KASSERT(xfer-length); len = xfer-length; buf = KERNADDR(xfer-dmabuf, 0); + done = 0; while (RUSB(xfer)-rusb_status == 0) { if (isread) { + if (xfer-flags USBD_SHORT_XFER_OK) +val = 1; + else +val = 0; + rumpuser_ioctl(sc-sc_ugenfd[endpt], + USB_SET_SHORT_XFER, val, error); n = rumpuser_read(sc-sc_ugenfd[endpt], - buf, len, error); - if (n == len) -break; - if (error != EAGAIN) { + buf+done, len-done, error); + if (n == -1) { +if (error == ETIMEDOUT) + continue; n = 0; -break; +xfer-status = USBD_IOERROR; +goto out; } + done += n; + if (done == len) +break; } else { n = rumpuser_write(sc-sc_ugenfd[endpt], buf, len, error); - if (n == len) + done = n; + if (done == len) break; else panic(short write); } + + if (xfer-flags USBD_SHORT_XFER_OK) + break; } if (RUSB(xfer)-rusb_status == 0) { - xfer-actlen = n; + xfer-actlen = done; xfer-status = USBD_NORMAL_COMPLETION; + /* override */ + if (xfererr) { + printf(err!\n); + xfer-status = xfererr; + } } else { xfer-status = USBD_CANCELLED; RUSB(xfer)-rusb_status = 2; } + out: + val = 0; + rumpuser_ioctl(sc-sc_ugenfd[endpt], USB_SET_SHORT_XFER, val, error); usb_transfer_complete(xfer); return (USBD_IN_PROGRESS); }
CVS commit: src/sys/rump/dev/wip
Module Name:src Committed By: pooka Date: Sun Dec 20 15:43:13 UTC 2009 Modified Files: src/sys/rump/dev/wip: Makefile Added Files: src/sys/rump/dev/wip/libucom: Makefile locators.h shlib_version ucom.h ucom_at_usb.c Log Message: Add u...@usb support. This uses the uplcom hardware driver currently (because that's the hardware I happen to have), but others can just be plugged in if a need arises. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/Makefile cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libucom/Makefile \ src/sys/rump/dev/wip/libucom/locators.h \ src/sys/rump/dev/wip/libucom/shlib_version \ src/sys/rump/dev/wip/libucom/ucom.h \ src/sys/rump/dev/wip/libucom/ucom_at_usb.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/wip/Makefile diff -u src/sys/rump/dev/wip/Makefile:1.1 src/sys/rump/dev/wip/Makefile:1.2 --- src/sys/rump/dev/wip/Makefile:1.1 Wed Nov 11 13:54:54 2009 +++ src/sys/rump/dev/wip/Makefile Sun Dec 20 15:43:13 2009 @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.1 2009/11/11 13:54:54 pooka Exp $ +# $NetBSD: Makefile,v 1.2 2009/12/20 15:43:13 pooka Exp $ # -SUBDIR= libnet80211 librumpusbhc libumass libusb libusbrum +SUBDIR= libnet80211 librumpusbhc libucom libumass libusb libusbrum .include bsd.subdir.mk Added files: Index: src/sys/rump/dev/wip/libucom/Makefile diff -u /dev/null src/sys/rump/dev/wip/libucom/Makefile:1.1 --- /dev/null Sun Dec 20 15:43:13 2009 +++ src/sys/rump/dev/wip/libucom/Makefile Sun Dec 20 15:43:13 2009 @@ -0,0 +1,16 @@ +# $NetBSD: Makefile,v 1.1 2009/12/20 15:43:13 pooka Exp $ +# + +.PATH: ${.CURDIR}/../../../../dev/usb + +LIB= rumpdev_ucom + +SRCS= ucom.c uplcom.c + +SRCS+= ucom_at_usb.c + +CFLAGS+= -Wno-pointer-sign +CPPFLAGS+= -I${RUMPTOP}/librump/rumpvfs + +.include bsd.lib.mk +.include bsd.klinks.mk Index: src/sys/rump/dev/wip/libucom/locators.h diff -u /dev/null src/sys/rump/dev/wip/libucom/locators.h:1.1 --- /dev/null Sun Dec 20 15:43:13 2009 +++ src/sys/rump/dev/wip/libucom/locators.h Sun Dec 20 15:43:13 2009 @@ -0,0 +1,7 @@ +/* $NetBSD: locators.h,v 1.1 2009/12/20 15:43:13 pooka Exp $ */ + +/* locators borrowed from config. redo properly some day */ + +#define UCOMBUSCF_PORTNO 0 +#define UCOMBUSCF_PORTNO_DEFAULT -1 +#define UCOMBUSCF_NLOCS 1 Index: src/sys/rump/dev/wip/libucom/shlib_version diff -u /dev/null src/sys/rump/dev/wip/libucom/shlib_version:1.1 --- /dev/null Sun Dec 20 15:43:13 2009 +++ src/sys/rump/dev/wip/libucom/shlib_version Sun Dec 20 15:43:13 2009 @@ -0,0 +1,4 @@ +# $NetBSD: shlib_version,v 1.1 2009/12/20 15:43:13 pooka Exp $ +# +major=0 +minor=0 Index: src/sys/rump/dev/wip/libucom/ucom.h diff -u /dev/null src/sys/rump/dev/wip/libucom/ucom.h:1.1 --- /dev/null Sun Dec 20 15:43:13 2009 +++ src/sys/rump/dev/wip/libucom/ucom.h Sun Dec 20 15:43:13 2009 @@ -0,0 +1,3 @@ +/* $NetBSD: ucom.h,v 1.1 2009/12/20 15:43:13 pooka Exp $ */ + +#define NUCOM 1 Index: src/sys/rump/dev/wip/libucom/ucom_at_usb.c diff -u /dev/null src/sys/rump/dev/wip/libucom/ucom_at_usb.c:1.1 --- /dev/null Sun Dec 20 15:43:13 2009 +++ src/sys/rump/dev/wip/libucom/ucom_at_usb.c Sun Dec 20 15:43:13 2009 @@ -0,0 +1,445 @@ +/* $NetBSD: ucom_at_usb.c,v 1.1 2009/12/20 15:43:13 pooka Exp $ */ + +#include sys/param.h +#include sys/types.h +#include sys/conf.h +#include sys/device.h +#include sys/kmem.h + +/* + * MACHINE GENERATED: DO NOT EDIT + * + * ioconf.c, from TESTI_ucom + */ + +#include sys/param.h +#include sys/conf.h +#include sys/device.h +#include sys/mount.h + +static const struct cfiattrdata gpibdevcf_iattrdata = { + gpibdev, 1, + { + { address, -1, -1 }, + } +}; +static const struct cfiattrdata acpibuscf_iattrdata = { + acpibus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata caccf_iattrdata = { + cac, 1, + { + { unit, -1, -1 }, + } +}; +static const struct cfiattrdata spicf_iattrdata = { + spi, 1, + { + { slave, NULL, 0 }, + } +}; +static const struct cfiattrdata radiodevcf_iattrdata = { + radiodev, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata mlxcf_iattrdata = { + mlx, 1, + { + { unit, -1, -1 }, + } +}; +static const struct cfiattrdata ucombuscf_iattrdata = { + ucombus, 1, + { + { portno, -1, -1 }, + } +}; +static const struct cfiattrdata videobuscf_iattrdata = { + videobus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata isabuscf_iattrdata = { + isabus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata i2cbuscf_iattrdata = { + i2cbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata ata_hlcf_iattrdata = { + ata_hl, 1, + { + { drive, -1, -1 }, + } +}; +static const struct cfiattrdata depcacf_iattrdata = { + depca, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata ppbuscf_iattrdata = { + ppbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct
CVS commit: src/sys/rump/dev/wip
Module Name:src Committed By: pooka Date: Sun Dec 20 15:43:57 UTC 2009 Modified Files: src/sys/rump/dev/wip: Makefile Log Message: +libulpt To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/wip/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/wip/Makefile diff -u src/sys/rump/dev/wip/Makefile:1.2 src/sys/rump/dev/wip/Makefile:1.3 --- src/sys/rump/dev/wip/Makefile:1.2 Sun Dec 20 15:43:13 2009 +++ src/sys/rump/dev/wip/Makefile Sun Dec 20 15:43:57 2009 @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.2 2009/12/20 15:43:13 pooka Exp $ +# $NetBSD: Makefile,v 1.3 2009/12/20 15:43:57 pooka Exp $ # -SUBDIR= libnet80211 librumpusbhc libucom libumass libusb libusbrum +SUBDIR= libnet80211 librumpusbhc libucom libumass libulpt libusb libusbrum .include bsd.subdir.mk
CVS commit: src/sys/rump/dev/wip/libucom
Module Name:src Committed By: pooka Date: Sun Dec 20 19:44:21 UTC 2009 Modified Files: src/sys/rump/dev/wip/libucom: Makefile ucom_at_usb.c Log Message: Include tty driver here for now to make this usable. Will disappear from here later when I figure out the proper place. (I'd commit it as a separate component, but I can't figure out how to classify it, since it's logically none of vfs/net/dev) To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libucom/Makefile \ src/sys/rump/dev/wip/libucom/ucom_at_usb.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/wip/libucom/Makefile diff -u src/sys/rump/dev/wip/libucom/Makefile:1.1 src/sys/rump/dev/wip/libucom/Makefile:1.2 --- src/sys/rump/dev/wip/libucom/Makefile:1.1 Sun Dec 20 15:43:13 2009 +++ src/sys/rump/dev/wip/libucom/Makefile Sun Dec 20 19:44:21 2009 @@ -1,13 +1,14 @@ -# $NetBSD: Makefile,v 1.1 2009/12/20 15:43:13 pooka Exp $ +# $NetBSD: Makefile,v 1.2 2009/12/20 19:44:21 pooka Exp $ # -.PATH: ${.CURDIR}/../../../../dev/usb +.PATH: ${.CURDIR}/../../../../dev/usb ${.CURDIR}/../../../../kern LIB= rumpdev_ucom SRCS= ucom.c uplcom.c SRCS+= ucom_at_usb.c +SRCS+= tty.c tty_conf.c tty_tty.c tty_subr.c CFLAGS+= -Wno-pointer-sign CPPFLAGS+= -I${RUMPTOP}/librump/rumpvfs Index: src/sys/rump/dev/wip/libucom/ucom_at_usb.c diff -u src/sys/rump/dev/wip/libucom/ucom_at_usb.c:1.1 src/sys/rump/dev/wip/libucom/ucom_at_usb.c:1.2 --- src/sys/rump/dev/wip/libucom/ucom_at_usb.c:1.1 Sun Dec 20 15:43:13 2009 +++ src/sys/rump/dev/wip/libucom/ucom_at_usb.c Sun Dec 20 19:44:21 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ucom_at_usb.c,v 1.1 2009/12/20 15:43:13 pooka Exp $ */ +/* $NetBSD: ucom_at_usb.c,v 1.2 2009/12/20 19:44:21 pooka Exp $ */ #include sys/param.h #include sys/types.h @@ -412,6 +412,8 @@ panic(\%s\ failed, #call);\ } while (/*CONSTCOND*/0) +void tty_init(void); + void rump_device_configuration(void) { @@ -442,4 +444,6 @@ cmaj, 0, 1)); FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, /dev/dtyU, '0', cmaj, 0x8, 1)); + + tty_init(); }
CVS commit: src/sys/rump/dev/wip/libusb
Module Name:src Committed By: pooka Date: Sat Dec 19 11:29:26 UTC 2009 Modified Files: src/sys/rump/dev/wip/libusb: locators.h Log Message: purge some stuff not used by this component anymore To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libusb/locators.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/wip/libusb/locators.h diff -u src/sys/rump/dev/wip/libusb/locators.h:1.1 src/sys/rump/dev/wip/libusb/locators.h:1.2 --- src/sys/rump/dev/wip/libusb/locators.h:1.1 Thu Oct 1 21:46:31 2009 +++ src/sys/rump/dev/wip/libusb/locators.h Sat Dec 19 11:29:26 2009 @@ -1,12 +1,7 @@ -/* $NetBSD: locators.h,v 1.1 2009/10/01 21:46:31 pooka Exp $ */ +/* $NetBSD: locators.h,v 1.2 2009/12/19 11:29:26 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 @@ -33,6 +28,3 @@ #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
CVS commit: src/sys/rump/dev/wip/libusb/opt
Module Name:src Committed By: pooka Date: Sat Dec 19 11:48:17 UTC 2009 Modified Files: src/sys/rump/dev/wip/libusb/opt: opt_usbverbose.h Log Message: define USBVERBOSE To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.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/wip/libusb/opt/opt_usbverbose.h diff -u src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h:1.1 src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h:1.2 --- src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h:1.1 Thu Oct 1 21:46:31 2009 +++ src/sys/rump/dev/wip/libusb/opt/opt_usbverbose.h Sat Dec 19 11:48:17 2009 @@ -1 +1,3 @@ -/* $NetBSD: opt_usbverbose.h,v 1.1 2009/10/01 21:46:31 pooka Exp $ */ +/* $NetBSD: opt_usbverbose.h,v 1.2 2009/12/19 11:48:17 pooka Exp $ */ + +#define USBVERBOSE
CVS commit: src/sys/rump/dev/wip/libusb/opt
Module Name:src Committed By: pooka Date: Sat Dec 19 11:48:30 UTC 2009 Removed Files: src/sys/rump/dev/wip/libusb/opt: ohci.h uhci.h Log Message: get rid of unnecessary headers To generate a diff of this commit: cvs rdiff -u -r1.1 -r0 src/sys/rump/dev/wip/libusb/opt/ohci.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.
CVS commit: src/sys/rump/dev/wip/libumass
Module Name:src Committed By: pooka Date: Sat Dec 19 11:55:23 UTC 2009 Modified Files: src/sys/rump/dev/wip/libumass: sd_at_scsibus_at_umass.c Log Message: Replace totally handwritten ioconf.c with only a semi handwritten one, partially now generated with config(1). To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.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/wip/libumass/sd_at_scsibus_at_umass.c diff -u src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.4 src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.5 --- src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.4 Fri Dec 4 17:37:05 2009 +++ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c Sat Dec 19 11:55:23 2009 @@ -1,126 +1,464 @@ -/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.4 2009/12/04 17:37:05 pooka Exp $ */ - -#include sys/param.h -#include sys/conf.h -#include sys/device.h -#include sys/kmem.h -#include sys/stat.h +/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.5 2009/12/19 11:55:23 pooka Exp $ */ /* - * sd @ scsibus @ umass @ usb + * MACHINE GENERATED: DO NOT EDIT * - * handwritten device configuration 'nuf said + * ioconf.c, from the following config: + * + * === SNIP === + +include conf/files +include dev/usb/files.usb +include dev/scsipi/files.scsipi + +device mainbus { } +attach mainbus at root +device rumpusbhc: usbus, usbroothub +attach rumpusbhc at mainbus + +mainbus0 at root +rumpusbhc* at mainbus0 + +# USB bus support +usb*at rumpusbhc? + +# USB Hubs +uhub* at usb? +uhub* at uhub? port ? + +# USB Mass Storage +umass* at uhub? port ? configuration ? interface ? +scsibus* at scsi? +sd* at scsibus? target ? lun ? + + * === UNSNIP === */ -static const struct cfiattrdata scsicf_iattrdata = { - scsi, 1, { - { channel, -1, -1 }, +#include sys/param.h +#include sys/conf.h +#include sys/device.h +#include sys/mount.h + +static const struct cfiattrdata gpibdevcf_iattrdata = { + gpibdev, 1, + { + { address, -1, -1 }, + } +}; +static const struct cfiattrdata acpibuscf_iattrdata = { + acpibus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata caccf_iattrdata = { + cac, 1, + { + { unit, -1, -1 }, + } +}; +static const struct cfiattrdata spicf_iattrdata = { + spi, 1, + { + { slave, NULL, 0 }, + } +}; +static const struct cfiattrdata radiodevcf_iattrdata = { + radiodev, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata mlxcf_iattrdata = { + mlx, 1, + { + { unit, -1, -1 }, } }; static const struct cfiattrdata scsibuscf_iattrdata = { - scsibus, 0, { - { NULL, NULL, 0}, + scsibus, 2, + { + { target, -1, -1 }, + { lun, -1, -1 }, } }; -static const struct cfiattrdata *const scsibuscf_attrs[] = { - scsibuscf_iattrdata, - NULL, +static const struct cfiattrdata ucombuscf_iattrdata = { + ucombus, 1, + { + { portno, -1, -1 }, + } }; -CFDRIVER_DECL(scsibus, DV_DULL, scsibuscf_attrs); -CFDRIVER_DECL(sd, DV_DISK, NULL); - -static const struct cfiattrdata uroothub_iattrdata = { +static const struct cfiattrdata videobuscf_iattrdata = { + videobus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata isabuscf_iattrdata = { + isabus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata i2cbuscf_iattrdata = { + i2cbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata ata_hlcf_iattrdata = { + ata_hl, 1, + { + { drive, -1, -1 }, + } +}; +static const struct cfiattrdata depcacf_iattrdata = { + depca, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata ppbuscf_iattrdata = { + ppbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata eisabuscf_iattrdata = { + eisabus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata atapicf_iattrdata = { + atapi, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata atapibuscf_iattrdata = { + atapibus, 1, + { + { drive, -1, -1 }, + } +}; +static const struct cfiattrdata usbroothubifcf_iattrdata = { usbroothubif, 0, { { NULL, NULL, 0 }, } }; -static const struct cfiattrdata *const usb_attrs[] = { - uroothub_iattrdata, - NULL, +static const struct cfiattrdata altmemdevcf_iattrdata = { + altmemdev, 0, { + { NULL, NULL, 0 }, + } }; -CFDRIVER_DECL(usb, DV_DULL, usb_attrs); - -static const struct cfiattrdata usbdevif_iattrdata = { - usbdevif, 0, { +static const struct cfiattrdata tcbuscf_iattrdata = { + tcbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata onewirebuscf_iattrdata = { + onewirebus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata gpiocf_iattrdata = { + gpio, 2, + { + { offset, -1, -1 }, + { mask, 0, 0 }, + } +}; +static const struct cfiattrdata cbbuscf_iattrdata = { + cbbus, 0, { + { NULL, NULL, 0 }, + } +}; +static const struct cfiattrdata gpiobuscf_iattrdata = { +
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Tue Dec 15 15:50:38 UTC 2009 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: Support more stuff, e.g. mapping alternate interface setting to the correct ugen ioctl. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.8 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.9 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.8 Wed Oct 14 23:29:42 2009 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Tue Dec 15 15:50:37 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.8 2009/10/14 23:29:42 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.9 2009/12/15 15:50:37 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.8 2009/10/14 23:29:42 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.9 2009/12/15 15:50:37 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -200,7 +200,7 @@ usb_device_request_t *req = xfer-request; struct rumpusbhc_softc *sc = xfer-pipe-device-bus-hci_private; int len, totlen, value, curlen, err; - uint8_t *buf; + uint8_t *buf = NULL; len = totlen = UGETW(req-wLength); if (len) @@ -385,7 +385,7 @@ { usb_device_request_t *req = xfer-request; struct rumpusbhc_softc *sc = xfer-pipe-device-bus-hci_private; - uint8_t *buf; + uint8_t *buf = NULL; int len, totlen; int value; int err = 0; @@ -465,17 +465,25 @@ break; case C(UR_SET_CONFIG, UT_WRITE_DEVICE): - /* ignored, ugen won't let us */ + /* ignored, ugen won't let us REALLY? */ break; - case C(UR_SET_INTERFACE, UT_WRITE_DEVICE): - /* ignored, ugen won't let us */ - break; + case C(UR_SET_INTERFACE, UT_WRITE_INTERFACE): + { + struct usb_alt_interface uai; - case C(UR_CLEAR_FEATURE, UT_WRITE_ENDPOINT): - printf(clear feature UNIMPL\n); totlen = 0; + uai.uai_interface_index = UGETW(req-wIndex); + uai.uai_alt_no = value; + if (rumpuser_ioctl(sc-sc_ugenfd[UGEN_EPT_CTRL], + USB_SET_ALTINTERFACE, uai, ru_error) == -1) { + printf(rumpusbhc: set alt interface failed: %d\n, + ru_error); + err = USBD_IOERROR; + goto ret; + } break; + } /* * XXX: don't wildcard these yet. I want to better figure @@ -486,7 +494,14 @@ case C(0x07, UT_READ_VENDOR_DEVICE): case C(0x09, UT_READ_VENDOR_DEVICE): case C(0xfe, UT_READ_CLASS_INTERFACE): + case C(0x01, UT_READ_CLASS_INTERFACE): + case C(UR_GET_STATUS, UT_READ_CLASS_OTHER): + case C(UR_GET_STATUS, UT_READ_CLASS_DEVICE): + case C(UR_GET_DESCRIPTOR, UT_READ_CLASS_DEVICE): case C(0xff, UT_WRITE_CLASS_INTERFACE): + case C(UR_SET_FEATURE, UT_WRITE_CLASS_OTHER): + case C(UR_CLEAR_FEATURE, UT_WRITE_CLASS_OTHER): + case C(UR_CLEAR_FEATURE, UT_WRITE_ENDPOINT): { struct usb_ctl_request ucr; @@ -557,21 +572,40 @@ .done = rumpusb_device_ctrl_done, }; -static usbd_xfer_handle daintr; +struct intrent { + usbd_xfer_handle xfer; + LIST_ENTRY(intrent) entries; +}; + +static LIST_HEAD(, intrent) intrlist = LIST_HEAD_INITIALIZER(intrlist); + static void rhscintr(void) { + struct intrent *ie, *ie_next; + usbd_xfer_handle xfer; - daintr-actlen = daintr-length; - daintr-status = USBD_NORMAL_COMPLETION; - usb_transfer_complete(daintr); + for (ie = LIST_FIRST(intrlist); ie; ie = ie_next) { + xfer = ie-xfer; + xfer-actlen = xfer-length; + xfer-status = USBD_NORMAL_COMPLETION; + usb_transfer_complete(xfer); + + ie_next = LIST_NEXT(ie, entries); + LIST_REMOVE(ie, entries); + kmem_free(ie, sizeof(*ie)); + } } static usbd_status rumpusb_root_intr_start(usbd_xfer_handle xfer) { + struct intrent *ie; + + ie = kmem_alloc(sizeof(*ie), KM_SLEEP); + ie-xfer = xfer; + LIST_INSERT_HEAD(intrlist, ie, entries); - daintr = xfer; return (USBD_IN_PROGRESS); } @@ -748,6 +782,15 @@ .done = rumpusb_device_bulk_done, }; +static const struct usbd_pipe_methods rumpusb_device_intr_methods = { + .transfer = rumpusb_root_intr_transfer, + .start = rumpusb_root_intr_start, + .abort = rumpusb_root_intr_abort, + .close = rumpusb_root_intr_close, + .cleartoggle = rumpusb_root_intr_cleartoggle, + .done = rumpusb_root_intr_done, +}; + static usbd_status rumpusbhc_open(struct usbd_pipe *pipe) { @@ -761,7 +804,7 @@ int fd, val; sc-sc_port_status = UPS_CURRENT_CONNECT_STATUS - | UPS_PORT_ENABLED | UPS_PORT_POWER | UPS_HIGH_SPEED; + | UPS_PORT_ENABLED | UPS_PORT_POWER; sc-sc_port_change = UPS_C_CONNECT_STATUS; if (addr == sc-sc_addr) { @@ -782,6 +825,7 @@ pipe-methods = rumpusb_device_ctrl_methods; break; case UE_BULK: + case UE_INTERRUPT: endpt = pipe-endpoint-edesc-bEndpointAddress; if
CVS commit: src/sys/rump/dev/wip/libumass
Module Name:src Committed By: pooka Date: Fri Dec 4 17:37:05 UTC 2009 Modified Files: src/sys/rump/dev/wip/libumass: sd_at_scsibus_at_umass.c Log Message: Attach u...@uhub (in addition to u...@roothub, which was already there). To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.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/wip/libumass/sd_at_scsibus_at_umass.c diff -u src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.3 src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.4 --- src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.3 Thu Dec 3 15:07:09 2009 +++ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c Fri Dec 4 17:37:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.3 2009/12/03 15:07:09 pooka Exp $ */ +/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.4 2009/12/04 17:37:05 pooka Exp $ */ #include sys/param.h #include sys/conf.h @@ -79,8 +79,15 @@ DVUNIT_ANY }; +struct cfparent usbdevif_pspec = { + usbdevif, + uhub, + DVUNIT_ANY +}; + struct cfdata uhub_cfdata[] = { { uhub, uroothub, 0, FSTATE_STAR, NULL, 0, usb_pspec }, + { uhub, uhub, 0, FSTATE_STAR, NULL, 0, usbdevif_pspec }, }; struct cfparent usbifif_pspec = {
CVS commit: src/sys/rump/dev/wip/libumass
Module Name:src Committed By: pooka Date: Thu Dec 3 15:07:09 UTC 2009 Modified Files: src/sys/rump/dev/wip/libumass: sd_at_scsibus_at_umass.c Log Message: one more path adjustment for rump_vfs_makedevnodes() change To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.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/wip/libumass/sd_at_scsibus_at_umass.c diff -u src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.2 src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.3 --- src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.2 Mon Oct 5 08:34:53 2009 +++ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c Thu Dec 3 15:07:09 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.2 2009/10/05 08:34:53 pooka Exp $ */ +/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.3 2009/12/03 15:07:09 pooka Exp $ */ #include sys/param.h #include sys/conf.h @@ -159,5 +159,6 @@ bmaj = cmaj = -1; FLAWLESSCALL(devsw_attach(sd, sd_bdevsw, bmaj, sd_cdevsw, cmaj)); - FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, sd0, 'a', bmaj, 0, 8)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, /dev/sd0, 'a', + bmaj, 0, 8)); }
CVS commit: src/sys/rump/dev/wip
Module Name:src Committed By: pooka Date: Wed Nov 11 13:54:54 UTC 2009 Added Files: src/sys/rump/dev/wip: Makefile Log Message: Give this a makefile for easy rebuild of all the components when the kernel ABI changes. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/Makefile 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 diff -u /dev/null src/sys/rump/dev/wip/Makefile:1.1 --- /dev/null Wed Nov 11 13:54:54 2009 +++ src/sys/rump/dev/wip/Makefile Wed Nov 11 13:54:54 2009 @@ -0,0 +1,6 @@ +# $NetBSD: Makefile,v 1.1 2009/11/11 13:54:54 pooka Exp $ +# + +SUBDIR= libnet80211 librumpusbhc libumass libusb libusbrum + +.include bsd.subdir.mk
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Wed Oct 14 23:29:42 UTC 2009 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: whoops, restore probing of ugen{0..3} instead of just ugen2 To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.7 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.8 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.7 Tue Oct 13 18:36:48 2009 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Wed Oct 14 23:29:42 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.7 2009/10/13 18:36:48 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.8 2009/10/14 23:29:42 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.7 2009/10/13 18:36:48 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.8 2009/10/14 23:29:42 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -130,12 +130,10 @@ /* probe ugen0 through ugen3 */ struct cfdata rumpusbhc_cfdata[] = { -#if 0 { rumpusbhc, rumpusbhc, 0, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, { rumpusbhc, rumpusbhc, 1, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, - { rumpusbhc, rumpusbhc, 3, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, -#endif { rumpusbhc, rumpusbhc, 2, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, + { rumpusbhc, rumpusbhc, 3, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, }; #define UGENDEV_BASESTR /dev/ugen
CVS commit: src/sys/rump/dev/wip/libumass
Module Name:src Committed By: pooka Date: Mon Oct 5 08:34:54 UTC 2009 Modified Files: src/sys/rump/dev/wip/libumass: Makefile sd_at_scsibus_at_umass.c Log Message: Attach sd to devsw and create /dev/sd0[a-h]. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/libumass/Makefile \ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.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/wip/libumass/Makefile diff -u src/sys/rump/dev/wip/libumass/Makefile:1.1 src/sys/rump/dev/wip/libumass/Makefile:1.2 --- src/sys/rump/dev/wip/libumass/Makefile:1.1 Thu Oct 1 21:46:30 2009 +++ src/sys/rump/dev/wip/libumass/Makefile Mon Oct 5 08:34:53 2009 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.1 2009/10/01 21:46:30 pooka Exp $ +# $NetBSD: Makefile,v 1.2 2009/10/05 08:34:53 pooka Exp $ # # # umass. includes scsibus+sd for simplicity due to the umass code @@ -15,7 +15,7 @@ SRCS+= sd_at_scsibus_at_umass.c CFLAGS+= -Wno-pointer-sign -CPPFLAGS+= -I${.CURDIR}/opt +CPPFLAGS+= -I${.CURDIR}/opt -I${RUMPTOP}/librump/rumpvfs .include bsd.lib.mk .include bsd.klinks.mk Index: src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c diff -u src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.1 src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.2 --- src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c:1.1 Thu Oct 1 21:46:30 2009 +++ src/sys/rump/dev/wip/libumass/sd_at_scsibus_at_umass.c Mon Oct 5 08:34:53 2009 @@ -1,10 +1,10 @@ -/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.1 2009/10/01 21:46:30 pooka Exp $ */ +/* $NetBSD: sd_at_scsibus_at_umass.c,v 1.2 2009/10/05 08:34:53 pooka Exp $ */ #include sys/param.h -#include sys/types.h #include sys/conf.h #include sys/device.h #include sys/kmem.h +#include sys/stat.h /* * sd @ scsibus @ umass @ usb @@ -116,6 +116,7 @@ }; #include rump_dev_private.h +#include rump_vfs_private.h #define FLAWLESSCALL(call) \ do { \ @@ -129,6 +130,9 @@ { extern struct cfattach usb_ca, uhub_ca, uroothub_ca, umass_ca; extern struct cfattach scsibus_ca, sd_ca; + extern struct bdevsw sd_bdevsw; + extern struct cdevsw sd_cdevsw; + devmajor_t bmaj, cmaj; FLAWLESSCALL(config_cfdriver_attach(usb_cd)); FLAWLESSCALL(config_cfattach_attach(usb, usb_ca)); @@ -151,4 +155,9 @@ FLAWLESSCALL(config_cfdata_attach(sd_cfdata, 0)); FLAWLESSCALL(config_cfattach_attach(uhub, uroothub_ca)); + + bmaj = cmaj = -1; + FLAWLESSCALL(devsw_attach(sd, sd_bdevsw, bmaj, sd_cdevsw, cmaj)); + + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, sd0, 'a', bmaj, 0, 8)); }
CVS commit: src/sys/rump/dev/wip/libnet80211
Module Name:src Committed By: pooka Date: Sun Oct 4 10:40:40 UTC 2009 Added Files: src/sys/rump/dev/wip/libnet80211: Makefile shlib_version Log Message: Support net80211 in rump (for wireless device drivers, therefore in dev) To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libnet80211/Makefile \ src/sys/rump/dev/wip/libnet80211/shlib_version 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/libnet80211/Makefile diff -u /dev/null src/sys/rump/dev/wip/libnet80211/Makefile:1.1 --- /dev/null Sun Oct 4 10:40:40 2009 +++ src/sys/rump/dev/wip/libnet80211/Makefile Sun Oct 4 10:40:40 2009 @@ -0,0 +1,19 @@ +# $NetBSD: Makefile,v 1.1 2009/10/04 10:40:40 pooka Exp $ +# + +.PATH: ${.CURDIR}/../../../../net80211 + +LIB= rumpdev_net80211 + +SRCS= ieee80211.c ieee80211_acl.c ieee80211_amrr.c ieee80211_crypto.c \ + ieee80211_crypto_ccmp.c ieee80211_crypto_none.c \ + ieee80211_crypto_tkip.c ieee80211_crypto_wep.c ieee80211_input.c\ + ieee80211_ioctl.c ieee80211_netbsd.c ieee80211_node.c \ + ieee80211_output.c ieee80211_proto.c ieee80211_rssadapt.c \ + ieee80211_xauth.c + +CFLAGS+= -Wno-pointer-sign +CPPFLAGS+= -I${.CURDIR}/opt -I${RUMPTOP}/librump/rumpnet/opt + +.include bsd.lib.mk +.include bsd.klinks.mk Index: src/sys/rump/dev/wip/libnet80211/shlib_version diff -u /dev/null src/sys/rump/dev/wip/libnet80211/shlib_version:1.1 --- /dev/null Sun Oct 4 10:40:40 2009 +++ src/sys/rump/dev/wip/libnet80211/shlib_version Sun Oct 4 10:40:40 2009 @@ -0,0 +1,4 @@ +# $NetBSD: shlib_version,v 1.1 2009/10/04 10:40:40 pooka Exp $ +# +major=0 +minor=0
CVS commit: src/sys/rump/dev/wip/libusbrum
Module Name:src Committed By: pooka Date: Sun Oct 4 10:43:03 UTC 2009 Added Files: src/sys/rump/dev/wip/libusbrum: Makefile rum_at_usb.c shlib_version Log Message: Support r...@usb. Currently manages to configure and attach: pain-rustique:66:~ ./rumpusbprobe mainbus0 (root) rumpusbhc2 at mainbus0 usb0 at rumpusbhc2: USB revision 2.0 uhub0 at usb0: vendor 0x product 0x, class 9/0, rev 0.00/0.00, addr 1 rum0 at uhub0 port 1 rum0: D-Link DWA-111, rev 2.00/0.01, addr 2 rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, address 00:24:01:31:98:9a rum0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps rum0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/rump/dev/wip/libusbrum/Makefile \ src/sys/rump/dev/wip/libusbrum/rum_at_usb.c \ src/sys/rump/dev/wip/libusbrum/shlib_version 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/libusbrum/Makefile diff -u /dev/null src/sys/rump/dev/wip/libusbrum/Makefile:1.1 --- /dev/null Sun Oct 4 10:43:03 2009 +++ src/sys/rump/dev/wip/libusbrum/Makefile Sun Oct 4 10:43:03 2009 @@ -0,0 +1,16 @@ +# $NetBSD: Makefile,v 1.1 2009/10/04 10:43:03 pooka Exp $ +# + +.PATH: ${.CURDIR}/../../../../dev/usb + +LIB= rumpdev_usbrum + +SRCS= if_rum.c + +SRCS+= rum_at_usb.c + +CFLAGS+= -Wno-pointer-sign +CPPFLAGS+= -I${.CURDIR}/opt -I${RUMPTOP}/librump/rumpnet/opt + +.include bsd.lib.mk +.include bsd.klinks.mk Index: src/sys/rump/dev/wip/libusbrum/rum_at_usb.c diff -u /dev/null src/sys/rump/dev/wip/libusbrum/rum_at_usb.c:1.1 --- /dev/null Sun Oct 4 10:43:03 2009 +++ src/sys/rump/dev/wip/libusbrum/rum_at_usb.c Sun Oct 4 10:43:03 2009 @@ -0,0 +1,108 @@ +/* $NetBSD: rum_at_usb.c,v 1.1 2009/10/04 10:43:03 pooka Exp $ */ + +#include sys/param.h +#include sys/types.h +#include sys/conf.h +#include sys/device.h +#include sys/kmem.h + +/* + * rum @ usb + * + * handwritten device configuration 'nuf said + */ + +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); + +CFDRIVER_DECL(rum, DV_IFNET, NULL); + +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 usbdevif_pspec = { + usbdevif, + uhub, + DVUNIT_ANY +}; + +struct cfdata rum_cfdata[] = { + { rum, rum, 0, FSTATE_STAR, NULL, 0, usbdevif_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, rum_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(rum_cd)); + FLAWLESSCALL(config_cfattach_attach(rum, rum_ca)); + FLAWLESSCALL(config_cfdata_attach(rum_cfdata, 0)); + + FLAWLESSCALL(config_cfattach_attach(uhub, uroothub_ca)); +} Index: src/sys/rump/dev/wip/libusbrum/shlib_version diff -u /dev/null src/sys/rump/dev/wip/libusbrum/shlib_version:1.1 --- /dev/null Sun Oct 4 10:43:03 2009 +++ src/sys/rump/dev/wip/libusbrum/shlib_version Sun Oct 4 10:43:03 2009 @@ -0,0 +1,4 @@ +# $NetBSD: shlib_version,v 1.1 2009/10/04 10:43:03 pooka Exp $ +# +major=0 +minor=0
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Sun Oct 4 17:46:58 UTC 2009 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: * pass a few write requests through to the device. * drop async transfer requests on the floor (no, this does not make anything work, but it's the easiest way to prevent a receive pipe transfer request from hanging everything. one tiny bugstep at a time ...) To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.4 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.5 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.4 Sun Oct 4 10:44:31 2009 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Sun Oct 4 17:46:58 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.4 2009/10/04 10:44:31 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.5 2009/10/04 17:46:58 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.4 2009/10/04 10:44:31 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.5 2009/10/04 17:46:58 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -476,6 +476,8 @@ * XXX: don't wildcard these yet. I want to better figure * out what to trap here */ + case C(0x01, UT_WRITE_VENDOR_DEVICE): + case C(0x06, UT_WRITE_VENDOR_DEVICE): case C(0x07, UT_READ_VENDOR_DEVICE): case C(0x09, UT_READ_VENDOR_DEVICE): { @@ -650,6 +652,12 @@ { usbd_status err; + /* XXX: lie about supporting async transfers */ + if ((xfer-flags USBD_SYNCHRONOUS) == 0) { + printf(rumpusbhc does not support async transfers. LIAR!\n); + return USBD_IN_PROGRESS; + } + err = usb_insert_transfer(xfer); if (err) return (err);
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Sat Oct 3 19:07:33 UTC 2009 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: probe and attach ugen0 through ugen3 To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.1 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.2 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.1 Fri Oct 2 15:35:46 2009 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Sat Oct 3 19:07:33 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.1 2009/10/02 15:35:46 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.2 2009/10/03 19:07:33 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -60,11 +60,8 @@ * It's still somewhat under the hammer */ -/* hardcoded /dev/ugenN for now */ -#define UGENDEV 2 - #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.1 2009/10/02 15:35:46 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.2 2009/10/03 19:07:33 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -109,11 +106,11 @@ NULL, }; -static int rumpusbhc_match(struct device *, struct cfdata *, void *); +static int rumpusbhc_probe(struct device *, struct cfdata *, void *); static void rumpusbhc_attach(struct device *, struct device *, void *); CFATTACH_DECL_NEW(rumpusbhc, sizeof(struct rumpusbhc_softc), - rumpusbhc_match, rumpusbhc_attach, NULL, NULL); + rumpusbhc_probe, rumpusbhc_attach, NULL, NULL); CFDRIVER_DECL(rumpusbhc, DV_DULL, rumpusbhc_attrs); struct cfparent rumpusbhcpar = { @@ -122,18 +119,22 @@ DVUNIT_ANY }; +/* probe ugen0 through ugen3 */ struct cfdata rumpusbhc_cfdata[] = { - { rumpusbhc, rumpusbhc, 0, FSTATE_STAR, NULL, 0, rumpusbhcpar}, + { rumpusbhc, rumpusbhc, 0, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, + { rumpusbhc, rumpusbhc, 1, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, + { rumpusbhc, rumpusbhc, 2, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, + { rumpusbhc, rumpusbhc, 3, FSTATE_NOTFOUND, NULL, 0, rumpusbhcpar}, }; #define UGENDEV_BASESTR /dev/ugen #define UGENDEV_BUFSIZE 32 static void -makeugendevstr(struct rumpusbhc_softc *sc, int endpoint, char *buf) +makeugendevstr(int devnum, int endpoint, char *buf) { CTASSERT(UGENDEV_BUFSIZE sizeof(UGENDEV_BASESTR)+sizeof(0.00)+1); - sprintf(buf, %s%d.%02d, UGENDEV_BASESTR, sc-sc_devnum, endpoint); + sprintf(buf, %s%d.%02d, UGENDEV_BASESTR, devnum, endpoint); } /* @@ -722,7 +723,7 @@ oflags = O_RDWR; } - makeugendevstr(sc, endpt, buf); + makeugendevstr(sc-sc_devnum, endpt, buf); fd = rumpuser_open(buf, oflags, error); if (fd == -1) return USBD_INVAL; /* XXX: no mapping */ @@ -813,15 +814,24 @@ } static int -rumpusbhc_match(struct device *parent, struct cfdata *match, void *aux) +rumpusbhc_probe(struct device *parent, struct cfdata *match, void *aux) { + char buf[UGENDEV_BUFSIZE]; + int fd, error; + makeugendevstr(match-cf_unit, 0, buf); + fd = rumpuser_open(buf, O_RDWR, error); + if (fd == -1) + return 0; + + rumpuser_close(fd, error); return 1; } static void rumpusbhc_attach(struct device *parent, struct device *self, void *aux) { + struct mainbus_attach_args *maa = aux; struct rumpusbhc_softc *sc = device_private(self); char buf[UGENDEV_BUFSIZE]; int error; @@ -832,14 +842,13 @@ memset(sc-sc_ugenfd, -1, sizeof(sc-sc_ugenfd)); memset(sc-sc_fdmodes, -1, sizeof(sc-sc_fdmodes)); - sc-sc_devnum = UGENDEV; - sc-sc_bus.usbrev = USBREV_2_0; sc-sc_bus.methods = rumpusbhc_bus_methods; sc-sc_bus.hci_private = sc; sc-sc_bus.pipe_size = sizeof(struct rumpusbhc_pipe); + sc-sc_devnum = maa-maa_unit; - makeugendevstr(sc, 0, buf); + makeugendevstr(sc-sc_devnum, 0, buf); sc-sc_ugenfd[UGEN_EPT_CTRL] = rumpuser_open(buf, O_RDWR, error); if (error) panic(rumpusbhc_attach: failed to open ctrl ept %s\n, buf);
CVS commit: src/sys/rump/dev/wip/librumpusbhc
Module Name:src Committed By: pooka Date: Sat Oct 3 20:46:49 UTC 2009 Modified Files: src/sys/rump/dev/wip/librumpusbhc: rumpusbhc.c Log Message: Report the root hub as self-powered. Works better when attaching power-hungry devices. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.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/wip/librumpusbhc/rumpusbhc.c diff -u src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.2 src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.3 --- src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c:1.2 Sat Oct 3 19:07:33 2009 +++ src/sys/rump/dev/wip/librumpusbhc/rumpusbhc.c Sat Oct 3 20:46:49 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpusbhc.c,v 1.2 2009/10/03 19:07:33 pooka Exp $ */ +/* $NetBSD: rumpusbhc.c,v 1.3 2009/10/03 20:46:49 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.2 2009/10/03 19:07:33 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: rumpusbhc.c,v 1.3 2009/10/03 20:46:49 pooka Exp $); #include sys/param.h #include sys/bus.h @@ -158,7 +158,9 @@ + USB_INTERFACE_DESCRIPTOR_SIZE + USB_ENDPOINT_DESCRIPTOR_SIZE }, .bNumInterface = 1, + .bmAttributes = UC_SELF_POWERED | UC_ATTR_MBO, }; +/* XXX: spec says UC_ATTR_MBO is reserved and set to one. required? */ static const usb_interface_descriptor_t rumphub_uid = { .bLength = USB_INTERFACE_DESCRIPTOR_SIZE,
CVS commit: src/sys/rump/dev/wip
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 +