> As a course of learning linux device drivers, I'm implementing a PCIe
> driver, and I'd like to understand at what level the interrupts can be or
> should be enabled/disabled. I intentionally do not specify OS, as I'm
> assuming it should be relevant for any platform. By levels I mean the
> following:
>
> a) OS specific interrupts handling framework
>
> b) Interrupts can be disabled or enabled in the PCI/PCIe configuration space
> registers, e.g. COMMAND register
>
> c) Interrupts also can be masked at device level, for instance we can
> configure device not trigger certain interrupts to the host
>
> I understand that whatever interrupt type is being used on PCIe (INTx
> emulation, MSI or MSI-X), it has to be delivered to the host OS. So my
> question is really -- do we actually have to enable or disable interrupts on
> every layer, or it's sufficient only at the closest to hardware, e.g. in
> relevant PCI registers?
>
>
> --
> Mark
>
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
Reply by Mark●November 13, 20152015-11-13
As a course of learning linux device drivers, I'm implementing a PCIe
driver, and I'd like to understand at what level the interrupts can be or
should be enabled/disabled. I intentionally do not specify OS, as I'm
assuming it should be relevant for any platform. By levels I mean the
following:
a) OS specific interrupts handling framework
b) Interrupts can be disabled or enabled in the PCI/PCIe configuration space
registers, e.g. COMMAND register
c) Interrupts also can be masked at device level, for instance we can
configure device not trigger certain interrupts to the host
I understand that whatever interrupt type is being used on PCIe (INTx
emulation, MSI or MSI-X), it has to be delivered to the host OS. So my
question is really -- do we actually have to enable or disable interrupts on
every layer, or it's sufficient only at the closest to hardware, e.g. in
relevant PCI registers?
--
Mark
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus