Subject: Re: Device driver implementation question
To: Chris Torek <torek@BSDI.COM>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-kern
Date: 01/20/1997 16:41:32
Chris Torek writes:

> [780 UBA attach/match ]

Were you referring to probing the SBI nexus space for UBAS or probing
the Unibus I/O register space on the UBA? I couldn't tell, from the
context you gave, but to rusty neurons it sounds like the latter.
Isn't SBI nexus space a direct bus?  I think that's a significant
difference for cgd's point.

>  There are also some really horrible gross
>bootstrap cases (like console serial ports) where you may decide to
>do static allocation of certain structures instead of the `clean' (?)
>solution of having a software layer to make the hardware look like
>it was designed sanely in the first place, but again this is really
>just a case of expediency.

I have to disagree with the last half of that sentence.

Even with sanely-designed hardware, consoles are a `problem child' for
the autoconfiguration code.  One needs a console device, for console
output, even before malloc() is even up.  In other words, one needs
the console device before the `clean' autoconfig code is even
*callable*, let alone before the normal order in which the console
device would be found by autoconfig. (I assume the latter is what you
mean by a `sane software layer'?).

This is a bootstrapping problem, and as such it's completely
orthogonal to the sanity of the hardware design of the console
interface.  (It's a problem inside the software architectural structure.)
I've run into it even with relatively sane serial console hardware.