Messages in this thread | | | Date | Mon, 26 Sep 2005 22:48:40 -0600 | From | Grant Grundler <> | Subject | Re: [PATCH] MSI interrupts: disallow when no LAPIC/IOAPIC support |
| |
On Mon, Sep 26, 2005 at 08:11:56PM -0700, Randy.Dunlap wrote: > From: Randy Dunlap <rdunlap@xenotime.net> > > MSI requires local APIC + IO APIC support (according to > drivers/pci/Kconfig),
The purpose of MSI is to bypass the IO APIC. I'm not aware of any dependency on IO APIC in HW. I suspect the dependency in the Kconfig is historical because of how the x86 source code is structured: config X86_LOCAL_APIC bool depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) default y
essentially, LOCAL_APIC gets enabled if "UP_APIC or SMP". I've no clue why folks thought it was better to ignore the IO APIC on UP kernels.
I'm pretty sure one only needs a local APIC support. Local APIC responds to 0xfee00000 range of addresses and directs the interrupt to a CPU.
> but if a kernel is built with all of > those (APICs + CONFIG_PCI_MSI) and then booted with "nosmp" or > "max_cpus=0|1" or "noapic" or "nolapic", MSI also should be > disabled, otherwise the interrupt routing is bad (so that only > using "irqpoll" helps).
UP vs SMP is orthogonal to MSI support wrt HW. I suppose this is another historical artifact of APICs being used with SMP x86 boxes first.
thanks, grant - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |