From owner-freebsd-hackers Mon Apr 20 10:50:23 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id KAA22220 for freebsd-hackers-outgoing; Mon, 20 Apr 1998 10:50:23 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from mrelay.jrc.it (mrelay.jrc.it [139.191.1.65]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id RAA21914; Mon, 20 Apr 1998 17:49:24 GMT (envelope-from nick.hibma@jrc.it) Received: from elect8 (elect8.jrc.it [139.191.71.152]) by mrelay.jrc.it (LMC5688) with SMTP id TAA02205; Mon, 20 Apr 1998 19:49:11 +0200 (MET DST) Date: Mon, 20 Apr 1998 19:46:17 +0200 (MET DST) From: Nick Hibma X-Sender: n_hibma@elect8 Reply-To: Nick Hibma To: freebsd-hackers@FreeBSD.ORG, freebsd-hardware@FreeBSD.ORG cc: Mark Willey , Nick Hibma Subject: FreeBSD USB project, help requested Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG The first few steps have been taken in creating a USB device driver stack. First of all, I would like to know if anyone else, beside Mark Willey and me, has also taken on the task of implementing USB support for (Free-)BSD. Second, I would like to hear from people willing to do some testing on the existing software. What has been done: x Implementation of Loadable Kernel Module + 30 lines of PCI driver. x Support for 82371AB chip (also called PIIX4) x UHCI driver (lowest level) x VHUB on top of UHCI, emulates real hub function on host controller x Enumeration of hubs (works great for VHUB :-) x Simple control transfers on the USB bus, based on very simple scheduling, making it possible to do control transfers with real functions. x This resulted in about 5000+ lines of code (documented in C :) What will be done in the near future: x Proper scheduling in UHCI driver with proper retries, interrupt usage through IntOnCompletion, IntOnShortPacket, IntOnError, etc. and implementation of blocking/non-blocking read and write calls rom the USB stack. x Support for 82371Sx chip (also called PIIX/PIIX3) or at least for the version that has USB support. x Support for Isochroneous transfers x Setup of proper interface to applications using USB devices. What we need: x Someone who spends an hour or two getting the snapshot ready for other people to download and try (with a README file telling them what parts of the kernel to patch and how to determine what they have) x People to install the snapshot, run it and send the output of the screen to me. x Programmers interested in taking part in the project by implementing bits and pieces: x Scheduling of UHCI transfers x Implementation of OHCI standard (similar to UHCI) x Support for other UHCI/OHCI chipsets x Support for ISA/EISA/etc. implementations of UHCI x Implementation of device drivers for Interrupt transfer driven devices Everything is rough on the edges and large chunks are missing (like power management support, Suspend/Resume and probably does behave badly on other people's hardware. But without other people's help we won't get there. URL (snapshots): http://www.etla.net/~n_hibma/usb/usb.pl Hope to hear from you. Nick Hibma FreeBSD USB driver development To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message