tech-kern archive

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

Re: UEFI boot and PCI interrupt routing (amd64)



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


Home | Main Index | Thread Index | Old Index