Subject: Re: Device driver implementation question
To: Chris Torek <torek@BSDI.COM>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
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.