RE: PCI interrupt queries

Welch, Martyn (GE EntSol, Intelligent Platforms)
2008-08-21T09:31:08Z

Rajat Jain wrote:
> Hello Rene,
>
> Thanks for the reply.
>
>> On 19-08-08 07:11, Rajat Jain wrote:
>>
>>> 1) My first question is WHO writes that IRQ value in the device
>>> configuration space? Is it hardwired on the card? Is it written by
>>> the PCI controller driver or some other kernel component? Or some
>>> other piece of software takes care of it?
>>
>> The thing hardwired on the card is the interrupt PIN(s) it
>> uses; A, B, C and/or D (one pin per device and thus per
>> config space). The thing that writes the LINE value into the
>> register is generally the BIOS; being motherboard specific it
>> knows which IRQ line it is that pin X (A, B, C or D) from
>> slot N is routed to and it writes those values back into the device.
>>
>
> OK. But who does it in an embedded environment (PPC for eg) where
> there
> is no POST software. The first piece of code that gets executed is
> U-boot and then the kernel. So who writes the LINE value into the
> config
> space?
>

U-boot does. There is a fairly standardised way to connect PCI interrupt
lines, especially for PCI slots where various cards can be plugged in:

A rotation on 1 is applied to the wiring of the interrupt lines between
each device/slot, order is dependant on the wiring of the device select
lines, I think chapter 6 of TLK[1] has some of the basics. These
rotations also need to be carried across PCI-to-PCI bridges. Hence the
third device on bus 0 should have: A->INT3; B->INT4; C->INT1; d->INT2.
INT[1-4] then map into a set of interrupt numbers, which are also highly
dependant on the hardware.

There is a lot of hardware where this doesn't hold true for onboard
devices (and probably even slots) and the mapping of the devices
interrupts with relation to their device select lines are provided by a
board specific table.

Martyn

[1] http://www.tldp.org/LDP/tlk/dd/pci.html

--
Martyn Welch MEng MPhil MIET
Principal Software Engineer

GE Fanuc Intelligent Platforms
Tove Valley Business Park, Towcester,
Northants, NN12 6PF, United Kingdom

Telephone: +44 (0) 1327 359444
Direct Dial: +44 (0) 1327 322748
Fax: +44 (0) 1327 322800
email: martyn.welch@gefanuc.com
web: www.gefanuc.com

GE Fanuc Intelligent Platforms Ltd, registered in England and Wales
(3828642) at 100 Barbirolli Square, Manchester, M2 3AB, VAT GB 729 849
476

GE Fanuc Intelligent Platforms Confidential and Proprietary. If you
have received this message in error please notify us immediately and
permanently remove it from your system and destroy any printed
hardcopies.

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@nl.linux.org
Please read the FAQ at http://kernelnewbies.org/FAQ