[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Interrupt Pin Assignments



> Section 2.2.6 Interupt Pins (Optional) of the PCI 2.2 Local Bus Spec.
> 
> In this section, I am interested in the interpretation of the word
> "implement" when describing interrupt lines...
> 
>   "If a device implements a single INTx# line, it is
>    called INTA#; if it implements two lines, there are called
>    INTA# and INTB#; and so forth.  For a multi-function device, all
>    functions may use the same INTx# line or each may have its own
>    maximum of four functions) or any combination thereof...
> 
> Does this mean that a multi-function device can have
> for example INTA#, INTB# but have its internal functions be
> both mapped to INTB#?  

The first part of the first scentece in that paragraph indicates not; if
there is only one INTx# pin coming from your PCI device, it must be INTA#.
The PCI spec refers to add-in boards and system boards, and referes to
connections in that context; so, we're not going to debate the
system-on-a-chip what-if's.  I believe "line" in connection contexts refers
to a physical trace/wire/pin.  The second sentence may be confusing when is
states "any combination thereof [lines]"; however, a combination implies two
or more lines, not just one.  So, it seems the intention of the quoted
excerpt is that multi-function devices (not to be confused with bridged
devices) need to start with INTA# and then add the B, C, D (this ordered
method is good for predictable int distribution).  And I suspect the
intention was that they be added in sequence; though, the "any combination
thereof [lines]" confuses that.  

The real wrench statement is the first sentence of paragraph 2 in section
2.2.6: "Any function on a multi-function device can be connected to any of
the INTx# lines."  That negates any intention of requiring multi-function
devices to start with INTA# (and any predictable int distribution).  So, if
you are having problems with a certain plug&play OS (which one?), direct
them to that statement in the spec.
-- BrooksL

> 
> In other words, what are the allowable combinations/mapping
> of a two-function device when both functions require an
> interrupt?
> 
> Case 1 : INTA# : Function 1 and Function 2
> Case 2 : INTA# : Function 1 INTB# : Function 2
> Case 3 : INTB# : Function 1 and Function 2 (INTA# "implemented but not
> used")
> 
> I think Cases 1 and 2 are definitely OK under the spec.
> I am somewhat shaky on Case 3...
> 
> It seems that a certain operating system bails out after 
> NOT finding a '1' in the Interrupt Pin Register thinking that there is
> no interrupt requirement for that function.  I think that it should
> at least continue on to look for '2', '3' or '4' in the Interrupt
> Pin Register before making a decision...
> 
> Any thoughts?
> 
> Robin Gomi
> Server Hardware Engineering
> NEC Computer Systems Division
>