On Thu, Jun 04, 2020 at 01:23:59AM +0200, Jaromír Doleček wrote: > Hi, > > I'm working on a driver for some PCI device, I'm far enough to execute > operations which should trigger interrupt, but the interrupt handler > (registered via pci_intr_establish()) is not called. It looks like > there is some kind of interrupt routing problem, maybe. > > Any hints on what could/should I check? > > Unfortunately can't boot the machine in legacy mode, to check whether > it's due to mission initialisation by BIOS. > > Jaromir
If the operation in question is DMA: can you confirm the Bus Master Enable bit in the PCI Command register is in the enabled state? Also the Interrupt Disable bit is disabled xor MSI(-X) is enabled? You might also confirm that the device is capable of classic INTx interrupts, or if you must use MSI(-X). Assuming x86: both BIOS and UEFI boot paths will probably be using the same ACPI DSDT/SSDTs for interrupt mapping, and the legacy MPBIOS and PIRQ (we don't consult PIRQ anyway) routing information tables are being validated by board firmware producers less than they used to be anyway, sometimes to the point where they don't even work. Jonathan