Messages in this thread | | | Date | Fri, 23 Jan 2009 13:11:02 -0500 | From | Mark Lord <> | Subject | Re: libata, devm_*, and MSI ? |
| |
Robert Hancock wrote: > Mark Lord wrote: >> Michael Ellerman wrote: >>> On Tue, 2009-01-20 at 20:02 -0800, Grant Grundler wrote: >> .. .. >>> The kernel shouldn't let you enable MSI if that's the case, ie. >>> pci_enable_msi() should fail. >> .. >> Exactly. So it shouldn't be that, then. >> >>> It might still be worth looking at the quirks though, in case there's >>> one for a previous revision of your bridge or something. >>> >>>> 3) Make sure MMIO ranges for 0xfee00000 are routed to local APIC >>>> ie each bridge needs to route that address somehow (negative decode >>>> is common for upstream). >>>> 4) manually trigger the MSI by doing a MMIO write to the correct >>>> 0xfee00000 address with the assigned vector in order to see if your >>>> interrupt handler gets called. >>> >>> And can you plug something directly into the PCIe bus? If so does MSI >>> work on that? >> .. >> >> Yup. PCIe cards have no problem with MSI in that box. >> >> More later.. > > What kind of PCI-X bridge does that machine have? I know some AMD > HyperTransport to PCI-X bridges have broken MSI, but those should be > blacklisted already in the kernel.. ..
Okay, I'm back looking at this now. In the interim, the box has undergone a complete re-install, and I think the original boot logs are gone for good.
Now (with 2.6.28.1), the boot code identifies a quirk, and pci_enable_msi() does indeed fail where it once succeeded. So all is well, but I don't know why it wasn't working correctly earlier.
Oh well.
Cheers
| |