[Nouveau] Questions about some PFB registers on NVAC cards
Pierre Moreau
pierre.morrow at free.fr
Thu Nov 27 06:36:02 PST 2014
Hi Robert,
Thanks a lot for your response!
----- Mail original -----
> On Wed, Oct 22, 2014 at 12:55:23AM +0200, pierre.morrow at free.fr
> wrote:
> [...]
> > After some investigation, I found that enabling bit 1 of register
> > 100c14 fixes
> > the issue on that card. Other NVAC cards are working great without
> > that trick,
> > and it seems they have that bit enabled by default. What is the
> > role of that
> > bit, and when should it be turned on?
>
> Register 100c14 controls a feature of the integrated GPU's memory
> interface
> called the "poller". The pollers exist on MCP77/78 and MCP79/7A to
> ensure
> that certain types of writes have flushed all the way to system
> memory. (I
> think this is needed to ensure proper ordering of memory
> transactions.)
>
> There are actually three important bits in that register, which
> control three
> pollers:
>
> NV_PFB_NISO_POLLER_CFG
> 0x00100c14
> NV_PFB_NISO_POLLER_CFG_DNISO_ENABLE
> 0:0
> NV_PFB_NISO_POLLER_CFG_DNISO_ENABLE_DISABLED
> 0x00000000
> NV_PFB_NISO_POLLER_CFG_DNISO_ENABLE_ENABLED
> 0x00000001
> NV_PFB_NISO_POLLER_CFG_HOSTNB_ENABLE
> 1:1
> NV_PFB_NISO_POLLER_CFG_HOSTNB_ENABLE_DISABLED
> 0x00000000
> NV_PFB_NISO_POLLER_CFG_HOSTNB_ENABLE_ENABLED
> 0x00000001
> NV_PFB_NISO_POLLER_CFG_FLUSH_ENABLE
> 16:16
> NV_PFB_NISO_POLLER_CFG_FLUSH_ENABLE_DISABLED
> 0x00000000
> NV_PFB_NISO_POLLER_CFG_FLUSH_ENABLE_ENABLED
> 0x00000001
>
> > Before enabling 100c14's bit 1, the Nvidia driver writes some value
> > into 100c1c.
> > Leaving the default value, or writing some random value seemed to
> > have no
> > effect. What is this register used for?
>
> 100c1c is one of three registers which control the (upper bits of the
> 32-byte
> aligned) memory locations that the pollers use:
>
> #define NV_PFB_NISO_POLLER_DNISO_BASE_ADR
> 0x00100C18
> #define NV_PFB_NISO_POLLER_HOSTNB_BASE_ADR
> 0x00100C1C
> #define NV_PFB_NISO_FLUSH_CARVEOUT_ADR
> 0x00100C24
>
> Each of these should point to at least 32 bytes of otherwise-unused
> FB
> memory, if the poller is enabled.
>
> The proprietary driver enables all three pollers for GPUs that have
> them, when
> memory is not local (i.e., when using a sysmem carveout rather than
> dedicated
> video memory).
>
> I'm not sure why this seems to only be necessary on some systems and
> not
> others.
I didn't meant that it wasn't necessary on other systems, just that it was enabled by default on those systems so they would work even if Nouveau didn't set the pollers.
>
> - Robert
>
Regards,
Pierre
More information about the Nouveau
mailing list