Hi Ben,

Not sure about any of this below but its just a theory...

I suspect the MSI Interrupts are an issue with the PCIe X 16 bus with the
GPU hanging off the U4 / CPC945 memory controller / PCIe Host /
Hypertransport bridge controller.

The other devices, i.e. the Broadcom LAN controllers integrated within the
Broadcom HT-2000 Hypertransport I/O controller seem to be ok when using MSI
Interrupts.

When compiling the kernel and not selecting pci quirks, the linux kernel
reassigns the PCI resources, and also seems to uncover more of the PCIe
resources. I need to do more tests to try and understand whats happenning,
but once quirks is disabled, the pci config space as configured by linux is
quite different and doesn't match up with the open firmware device tree and
pci config.... It actually seems to make more sense once pci quirks is
disabled. Still doesnt work though.

Looking in the source,  in the following file:
/arch/powerpc/platforms/powermac/pci.c
Line 1298, describes some workaround in playing around with the pci mapping.
When compiling the kernel and not selecting pci quirks, the linux kernel
reassigns the PCI resources, and also shows the uncovers more of the PCIe
resources.

Also, in the following file:
/arch/powerpc/platforms/powermac/setup.c
Line 644, describes some more of the OF dev tree --> Linux PCI dev tree
matching.

What does this mean... dont know yet. But i doubt that there is an issue
with the nouveau driver and msi support so dont apply the patch as there
are other means to disable msi interrupts on nouveau.

I suspect the issue is msi support not working correctly because of the
weird linux OF dev tree --> linux pci dev tree mapping along with some of
the U4 / CPC945 resouces not being configured and workarounds being applied.

Ill ask on the linux ppc kernel dev list and see what responses i get over
there as well.

Thanks Ben,
Regards,
Peter

On Tue, Jul 7, 2015 at 10:02 AM, Ben Hutchings <b...@decadent.org.uk> wrote:

> On Tue, 2015-07-07 at 09:47 +1000, Peter Saisanas wrote:
> > Hi Ben,
> > I haven't applied the patch, I thought I would do a little more
> > investigations before proceeding with disabling msi interrupts for
> > all nv47gpu's.
>
> Note that several other NV4x GPUs were already found to behave
> erratically with MSIs enabled:
> https://git.kernel.org/linus/4761703bd04bbdf56396d264903cc5a1fdcb3c01
>
> > I have recompiled a 4k pagesize kernel again but enabling msi
> > support. I can use the module option to disable msi interrupt's of
> > nouveau if need be.
> >
> > But your right, the kernel does assign an msi address for the Quadro
> > FX4500 GPU, however as mentioned before, it seems to work with the
> > nouveau framebuffer console.
> > But when Xorg starts up with 2d acceleration, the gpu locks up. Going
> > back to legacy interrupts and it seems to work fine again...
> >
> > I have attached the detailed lspci -vvv output along with the output
> > of /cat/proc/interrupts.
> > Please note, you can see one interrupt is triggered with msi
> > interrupts and nouveau, but it just hangs the gpu and the nouveau
> > interrupt count doesn't increment.
> > I can still ssh to it though, just the graphics is dead.
>
> It also shows the Ethernet driver is using MSIs successfully, so
> there's nothing fundamentally wrong with MSI on this system.
>
> > Any tips where to proceed? Should I recompile the kernel with pci
> > debugging support to hopefully give more helpful feedback?
>
> That's unlikely to help; please try applying the patch.
>
> > I think there are a few more issues with the PowerMac 11.2 support,
> > but perhaps we can look at this issue.
>
> Ben.
>
> --
> Ben Hutchings
> Hoare's Law of Large Problems:
>         Inside every large problem is a small problem struggling to get
> out.
>
>

Reply via email to