Using the generic host PCIe driver

Marc Zyngier marc.zyngier at
Fri Mar 3 08:41:38 PST 2017

On Fri, Mar 03 2017 at 11:26:27 am GMT, Mason <slash.tmp at> wrote:
> On 01/03/2017 17:36, Marc Zyngier wrote:
>> Mason: while the kernel has generic support for dealing with MSI, there
>> is not standardization at the interrupt controller level, so you do have
>> to write your own driver, and wire it in the rest of the framework.
>> I suggest you look at things like drivers/pci/host/pcie-altera-msi.c,
>> which has an extremely simple implementation. You can use this as a
>> starting point for your own driver.
> Thanks Marc,
> I'll have a close look at the Altera driver.
> I'm having a hard time understanding 3 different kinds of interrupts:
>   1. MSI (message-signalled interrupts)
>   2. legacy interrupts
>   3. custom interrupts


> I suppose the interrupt controller I'm supposed to write needs
> to handle all 3 types of interrupts?

That's entirely up to you. INTx is the bare minimum. MSI is what people
actually need. The rest has more to do with configuring your host
controller, but only you know about it (and I'm not really interested in
the gory details of how this particular HW works).

I mentioned the Altera driver because it is a very simple example of an
MSI controller driver that uses the generic MSI domains. It doesn't care
about INTx, nor host controller management interrupts (that's handled

Jazz is not dead, it just smell funny.

More information about the linux-arm-kernel mailing list