[Nouveau] known MSI errata?

Ben Skeggs skeggsb at gmail.com
Thu Oct 24 16:03:12 PDT 2013


On Fri, Oct 25, 2013 at 7:43 AM, Robert Morell <rmorell at nvidia.com> wrote:
> On Mon, Sep 30, 2013 at 10:44:12AM -0700, Lucas Stach wrote:
>> Hi,
>>
>> recently we tried to enable MSI interrupts with nouveau. Unfortunately
>> there have been some reports of things failing with certain cards, where
>> it isn't entirely clear if this is a GPU errata or some other component
>> in the PCIe chain failing.
>>
>> Could you perhaps investigate if there are any known Nvidia GPU erratas
>> with regard to MSI interrupts, or maybe tell us the generations of cards
>> that are generally safe to enable MSIs with?
>
> Sorry for the slow reply, Lucas.
>
> We enabled MSI interrupts by default relatively recently in the proprietary
> driver (version 325.08, released 2013-07-01 according to our public
> changelog).  This was enabled across the board for all of the GPUs supported
> by the latest release series, so NV50 and up.  We believe it should be safe to
> enable MSI on those GPUs.  We never enabled MSI by default on earlier GPUs so
> I can't comment there.
>
> I investigated our internal documentation and source code, and found a couple
> of things that are probably interesting to you:
> - For all pre-Fermi GPUs, we use a write through PCI config space to the "EOI"
>   register to rearm the MSI interrupt after servicing it, rather than a write
>   through the MMIO pcicfg shadow region in the GPU's PCI BAR0 window at offset
>   0x88000.  (This was actually originally implemented for NV4x, so you'll
>   probably want to do that there as well.)
Hm, I recently discovered this while looking for the errata myself,
but it seems you guys only do it on G80/G84/G86, and use 0x88068 at
some point after that, before Fermi (G96/GT200, for example).

>  It seems that this was done to
>   avoid a hardware bug that may cause the EOI write to be dropped, blocking
>   all further interrupts from being serviced.
That was our theory also.  Thanks for clarifying.

> - For GF100 and GF104, an alternate MSI EOI/rearm mechanism is used: instead
>   of writing to the MSI rearm register at offset 0x68 in the pcicfg window,
>   we write to offset 0x704.
Thanks for this.  Maarten discovered this for GF100, I'll modify our
patch to cover GF104 also.

>
>
> I hope this information helps.
>
> - Robert
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nouveau


More information about the Nouveau mailing list