[Nouveau] PLL programming on Fermi

James Milne james.milne at mac.com
Thu May 5 08:12:26 PDT 2011

Hi all,

I have a problem where I need to dynamically adjust the VPLL registers on a Nvidia GPU to tweak the DVI output timings.

I've written some code which can do this from user space, reading the PLL tables from ROM to find out where the VPLL registers are, and the valid ranges for the PLL coefficients, based on the code in nouveau_bios.c.

I haven't quite managed to get it to do what I want yet for Fermi.

Does the current mode setting code in Nouveau support dual-link DVI on Fermi? It looks like dual-link DVI is enabled by  nv50_display_script_select() in nv50_display.c (which is used for NV_C0).

The PLL reading code in nouveau_bios.c only pulls out the coefficients for VCO1, there is nothing in there for VCO2. I presume the Fermi only have a single-stage PLL? Looking at a dump of the BIOS, it does look like the limits for VPLL0 VCO1 are followed immediately by the limits for VPLL1 VCO1, ie there are no other coefficients, thus no second VCO.

Just wanting to check I'm not on completely the wrong track.

James Milne

More information about the Nouveau mailing list