Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Apr 1998 11:13:24 -0700
From:      Mike Smith <mike@smith.net.au>
To:        Nick Hibma <nick.hibma@jrc.it>
Cc:        freebsd-hackers@FreeBSD.ORG, freebsd-hardware@FreeBSD.ORG, Mark Willey <willey@etla.net>
Subject:   Re: FreeBSD USB project, help requested 
Message-ID:  <199804201813.LAA01068@dingo.cdrom.com>
In-Reply-To: Your message of "Mon, 20 Apr 1998 19:46:17 %2B0200." <Pine.GSO.3.95q.980420174732.21423c-100000@elect8> 

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

Ah.  I wish you'd mentioned you were working on this a while back, or if
you did, I wish I'd heard about it!  There is a forum for USB developers
that's working towards a unified API for USB device drivers, and I 
think your input would have been greatly appreciated.

> 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. 

I have written some low-level hardware-independent OHCI primitives, 
enough to probe and initialise the hardware, as well as some basic 
resource control modules along the lines of the OHCI documents.

> What has been done:
> 
> x Implementation of Loadable Kernel Module + 30 lines of PCI driver.
> x Support for 82371AB chip (also called PIIX4)

Do you only explicitly support this device, or do you support all UHCI 
implementations?

> 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 :)

This sounds like almost enough for keyboards and mice, and other simple 
devices.

> 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.

ie. just about everything else.  8)

> 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)

You really need to do that. 8)

> x People to install the snapshot, run it and send the output of the
>   screen to me.

Gladly, just as soon as I get my hands on some USB peripherals!

> 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

You should stick to the register interfaces as documented in the 
[OU]HCI standards - this will let you work on any compliant chipset, 
modulo quirks.

>   x Support for ISA/EISA/etc. implementations of UHCI

Do any of these exist in a documented form?

> Hope to hear from you.

Oh, you will!
-- 
\\  Sometimes you're ahead,       \\  Mike Smith
\\  sometimes you're behind.      \\  mike@smith.net.au
\\  The race is long, and in the  \\  msmith@freebsd.org
\\  end it's only with yourself.  \\  msmith@cdrom.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hardware" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199804201813.LAA01068>