Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Apr 1998 19:46:17 +0200 (MET DST)
From:      Nick Hibma <nick.hibma@jrc.it>
To:        freebsd-hackers@FreeBSD.ORG, freebsd-hardware@FreeBSD.ORG
Cc:        Mark Willey <willey@etla.net>, Nick Hibma <nick.hibma@jrc.it>
Subject:   FreeBSD USB project, help requested
Message-ID:  <Pine.GSO.3.95q.980420174732.21423c-100000@elect8>

next in thread | raw e-mail | index | archive | help

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.3.95q.980420174732.21423c-100000>