9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Nigel Roles <nigel@9fs.org>
To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu>
Subject: Re: [9fans] TODO lists for Plan 9
Date: Fri,  9 Jul 2004 12:19:06 +0100	[thread overview]
Message-ID: <40EE7F2A.70104@9fs.org> (raw)
In-Reply-To: <56cf6b7b6176d2a7d381d7d8d91e1896@proxima.alt.za>

lucio@proxima.alt.za wrote:

>>I think OHCI and UHCI were competing USB 1 interfaces.  One was from
>>Intel and appears on lots of motherboards; I'm guessing that that's
>>UHCI, since that's what Plan 9 currently supports.  EHCI must be the
>>USB 2 interface I was thinking of.
>>
>>
>
>I'm sure there are others whose knowledge is greater than mine, but
>they must be asleep as no one has shouted at me yet :-)
>
>I have both UHCI and OHCI specs (and EHCI, believe or not).  I haven't
>yet been able to read both (either, really, I only superficially read
>the UHCI one) and so I don't know how they differ: Universal (Intel)
>and Open (Compaq, of all names, but all USB designers at the time seem
>to have had a hand in this one).  I have a feeling that OHCI has
>superseded UHCI in practice, possibly because of its appearance in all
>EHCI implementations.  But I'm guessing and my experience is not very
>broad.
>
>As for EHCI, by volume the specification does not seem much greater
>than OHCI, but I'm sure there lurks some serious complication
>somewhere in its innards.
>
>
>
OHCI has not superceded UHCI. It's simply that UHCI came first and was
designed by Intel so appeared in the chipsets first. OHCI came later,
and took
longer to make silicon. VIA in particular made OHCI based chips, so bit
by bit OHCI took off. It is a better specification, requiring less
activity in
the interrupt handlers to decide what to do. Also, bandwidth limiting
(if you
want to get into that) is easier to do with OHCI. Or, rather, UHCI is
missing
a level of sophistication compared to OHCI, so the first step in writing a
UHCI driver is to introduce some OHCI-like structures to make up the
deficit.

There is no fundamental reason why UHCI style silicon could not support
USB 2.0, if you turn the clock speed up. I imagine, though I don't
know, that those organisations keen to promote USB 2.0 just preferred
to develop OHCI because the already had silicon IP in that style.

I've not looked at EHCI, though I doubt there is much which changes
things.

I've written an OHCI driver for non PCI (i.e. embedded) silicon for an
operating system not unlike Plan 9; it's not mine to give away. The first
thing I would lay my hands on is a USB bus analyser. Really, honestly,
you will save an order of magnitude in development time and your sanity.

Despite the bad impression early drivers gave (i.e. Win95), USB is
easy. It does what is says on the tin, and there are few gotchas. The
bus just works.

However handling hot plugging, and attachment of device specific
drivers in a manner which is bomb-proof is harder. Unless things have
changed recently, the Plan 9 approach with the namespace and usbd
is too simplistic on account of having been developed in the early days of
USB when things were very clean.

Choosing which of the multiple interfaces and configurations
available to use is unfortunately unavoidable, so I have felt for a time
that a new driver architecture is required, whether or not the underlying
hardware is UHCI, OHCI, EHCI, or just ICKY.







  reply	other threads:[~2004-07-09 11:19 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-06  8:11 YAMANASHI Takeshi
2004-07-06 11:21 ` bituman
2004-07-06 11:52   ` gabriel diaz
2004-07-06 12:14     ` Matthias Teege
2004-07-06 12:23       ` lucio
2004-07-06 12:33         ` boyd, rounin
2004-07-06 15:20     ` matt
2004-07-06 15:20       ` Gorka Guardiola Múzquiz
2004-07-07  9:11         ` Dave Lukes
2004-07-07 10:57           ` matt
2004-07-07 16:22             ` Dave Lukes
2004-07-07 16:58               ` jmk
2004-07-08 10:12                 ` Gorka Guardiola Múzquiz
2004-07-08 11:35                   ` boyd, rounin
2004-07-07 21:49               ` matt
2004-07-07 21:53                 ` Charles Forsyth
2004-07-08  2:40                   ` Kenji Okamoto
2004-07-07 22:12                 ` andrey mirtchovski
2004-07-07 23:01                   ` Jack Johnson
2004-07-07 23:12                     ` andrey mirtchovski
2004-07-07 23:25                     ` andrey mirtchovski
2004-07-07 23:54                       ` jmk
2004-07-08  7:01                       ` Fco. J. Ballesteros
2004-07-08  7:28                       ` lucio
2004-07-08 23:26             ` vdharani
2004-07-08 18:25               ` Gorka Guardiola Múzquiz
2004-07-08 23:43                 ` vdharani
2004-07-08 18:43                   ` Gorka Guardiola Múzquiz
2004-07-08 18:34               ` Sape Mullender
2004-07-09  5:19               ` lucio
2004-07-09  5:48                 ` Geoff Collyer
2004-07-09  6:05                   ` lucio
2004-07-09  9:15                     ` Geoff Collyer
2004-07-09  9:25                       ` lucio
2004-07-09 10:11                         ` Geoff Collyer
2004-07-09 10:26                           ` [9fans] A Discipline of Programming lucio
2004-07-09 16:11                             ` Jack Johnson
2004-07-09 10:34                           ` [9fans] TODO lists for Plan 9 lucio
2004-07-09 11:19                             ` Nigel Roles [this message]
2004-07-09 22:51                       ` Charles Forsyth
2004-07-09 12:46                     ` ron minnich
2004-07-09 16:57                     ` Jack Johnson
2004-07-09 20:39                       ` ron minnich
2004-07-09 20:43                         ` boyd, rounin
2004-07-09 20:49                           ` ron minnich
2004-07-09 20:52                             ` boyd, rounin
2004-07-12 12:10                             ` OT: " Dave Lukes
2004-07-12 14:34                               ` ron minnich
2004-07-09 20:51                           ` Jack Johnson
2004-07-09 20:54                             ` boyd, rounin
2004-07-09 21:03                             ` Axel Belinfante
2004-07-10  0:30                               ` Dan Cross
2004-07-10  2:23                               ` vdharani
2004-07-09 21:42                             ` Jason Gurtz
2004-07-09 20:52                         ` andrey mirtchovski
2004-07-09 20:54                           ` boyd, rounin
2004-07-11 14:04                           ` matt
2004-07-09 21:52                         ` Nigel Roles
2004-07-10  2:30                       ` vdharani
2004-07-09 12:45                   ` ron minnich
2004-07-09  8:45                 ` Fco. J. Ballesteros
2004-07-09  9:09                   ` Kenji Okamoto
2004-07-09  9:12                     ` Gorka Guardiola Múzquiz
2004-07-09 10:01                       ` Fco. J. Ballesteros
2004-07-09 11:16                         ` boyd, rounin
2004-07-09 16:45                           ` Skip Tavakkolian
2004-07-09  9:30                   ` lucio
2004-07-09  9:59                     ` Fco. J. Ballesteros
2004-07-10  2:43               ` vdharani
2004-07-09 22:41                 ` Charles Forsyth
2004-07-09 22:43                   ` Charles Forsyth
2004-07-10  4:25                   ` ron minnich
2004-07-06 15:39       ` ron minnich
2004-07-06 15:41         ` boyd, rounin
2004-07-06 15:44           ` ron minnich
2004-07-06 16:19             ` C H Forsyth
2004-07-07  5:46           ` lucio
2004-07-07 10:56             ` Bruce Ellis
2004-07-07 17:56               ` C H Forsyth
2004-07-07 18:09                 ` Fco. J. Ballesteros
2004-07-07 18:59                   ` andrey mirtchovski
2004-07-07 23:30                     ` Bruce Ellis
2004-07-08  7:16                     ` lucio
2004-07-07 21:30       ` Nicholas Waples
2004-07-06 13:14   ` andrey mirtchovski
  -- strict thread matches above, loose matches on Subject: below --
2004-07-08 18:34 Brantley Coile
2004-07-06  7:26 Kenji Okamoto
2004-07-06  8:02 ` Matthias Teege
2004-07-06  8:11   ` Kenji Okamoto
2004-07-06  8:19     ` lucio
2004-07-06 10:57       ` Steve Simon
2004-07-06 11:08         ` Boris Maryshev
2004-07-06 12:15         ` Dave Lukes
2004-07-06 12:25           ` lucio
2004-07-07  1:26         ` Kenji Okamoto
2004-07-06 12:33 ` Noah Evans
2004-07-07  0:54   ` Kenji Okamoto
2004-07-07  4:03     ` Noah Evans
2004-07-07  4:43       ` Kenji Okamoto
2004-07-07  7:15         ` Noah Evans
2004-07-06 13:16 ` Dave Lukes
2004-07-06 14:01   ` lucio
2004-07-07  1:03   ` Kenji Okamoto
2004-07-07  1:14     ` boyd, rounin
2004-07-07  1:27     ` boyd, rounin
2004-07-13  5:42   ` Kenji Okamoto
2004-07-13  5:50     ` Skip Tavakkolian
2004-07-13  5:58       ` Kenji Okamoto
2004-07-13  9:04       ` Charles Forsyth
2004-07-13  5:55     ` Kenji Okamoto
2004-07-13  8:56       ` Dave Lukes
2004-07-13  9:16         ` Kenji Okamoto
2004-07-15  0:56 ` Kenji Okamoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=40EE7F2A.70104@9fs.org \
    --to=nigel@9fs.org \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).