IRQs and such (was Re: Serial interfaces)

Johnny Billquist bqt at softjar.se
Fri Jul 30 19:01:17 CDT 2010


"Brian L. Stuart" <blstuart at bellsouth.net> wrote:

>> > There was/is a definitive schema for in which order vectors
>> > should be assigned, but it is more or less not used since
>> > all the OSes that atleast I have tried actually probe what
>> > vector each card uses, and use that vector instead of having
>> > some fixed scheme.
>> > All that is required is that no two devices use the same
>> > vector, because that would be bad.
> 
> This is coming from 25 year old memories, but I seem
> to recall there being some that didn't.  Back in college
> we had an 11/34 that we ran RSTS, RT-11 and 6th edition
> UNIX on.  IIRC we had to follow the scheme exactly for
> all three to work.  For one system, I seem to remember
> telling it the addresses and it found the vectors.  On
> another, we told it the vectors and it found the addresses.
> On the third, we told it both.  We found this out when
> we didn't follow the scheme for a 3rd party serial card,
> and any deviation would break one or the other.

The scheme as such is never needed for any of them.
You need to decide somehow on how you want to assign CSRs, and then you 
need to set those switches or jumpers accordingly on each card.
When you build, generate, or set up the system, you need to tell the 
system exactly which devices you have, and at which CSRs. For some 
systems, there is a program that can autoprobe and tell you what you 
have, but you don't have to use that, and once the configuration is 
done, you don't have to do it again. When the system boots, it uses the 
information that has been configured into the system previously.

So, following DECs scheme can help you, but it is not neccesary to 
follow it.

And for all systems, the CSR *must* be told somehow. Either you can let 
some auto-detection system do it if you follow the DEC scheme, or you 
have some config that sets it up.
As far as I know, in RT-11 you have a SYSGEN that collects this, and 
then builds the device drivers with that information. (I think it can do 
a scan of the system according to the DEC scheme if you want it to.)
RSTS/E also use a SYSGEN phase if I remember correctly, but my memory is 
a bit vague.
I've never used Unix 6th ed., but in 2.11BSD you have a config file, 
which tells both the CSR and the vector. 2.11BSD does not have a 
mechanism for autodetecting the vector, unless my memory fails me,

In RSX, you give all this information in the SYSGEN phase, but you can 
get default values to be suggested from running the autoconfig program 
that exist.

But having just the vector and not the CSR isn't going to allow you to 
detect the CSR. From the CSR you can trick out the vector (and for some 
controllers even program the vector), but the other way just isn't possible.

	Johnny

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol



More information about the cctech mailing list