DVFS Table Modifications

Quick question since I can find it absolutely nowhere. I’ve got a nexus 9 tablet and I have full root and modification rights. I am able to access the voltage and clock tables, also known as “DVFS Table”. Now I can modify the table via notepad. I haven’t been successful yet putting the table back in the kernel folder, however, can I actually modify the DVFS table to alter the voltages/frequencies? My primary goal is undervolting… I feel the K1 is clocked quite high in voltage for the GPU and CPU and I’m trying to experiment with lower voltages.

Thanks guys!

Here’s the code. Hopefully this wraps ok… it does on wordpad.

DVFS tables: units mV/MHz
vdd_cpu   table version: p4v18           
vdd_core  table version: p4v11           
vdd_gpu   table version: p4_v10          

vdd_cpu             980    980    980    980   1020   1060   1100   1150   1190   1230   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260
vdd_cpu  (dfll)     800    800    800    800    800    800    800    800    800    800    810    820    840    860    880    900    930    950    970    990   1010   1040   1070   1070
cpu_g             204.0  306.0  408.0  510.0  612.0  714.0  816.0  918.0 1020.0 1122.0 1224.0 1326.0 1428.0 1530.0 1632.0 1734.0 1836.0 1938.0 2014.5 2091.0 2193.0 2295.0 2397.0 2499.0

vdd_core            800    850    900    950   1000   1050   1100   1150
sdmmc4              0.0    0.0   82.0   82.0  136.0  136.0  136.0  200.0

vdd_core            800    820    850    880    910    980   1010
emc               204.0  300.0  396.0  528.0  600.0  792.0  924.0

vdd_core            800    850    900    950   1000   1050   1100   1150
disp1             192.0  247.0  306.0  342.0  400.0  432.0  474.0  535.0
pll_m             800.0  800.0 1066.0 1066.0 1066.0 1066.0 1200.0 1200.0
c3bus             180.0  336.0  420.0  504.0  600.0  684.0  720.0  720.0
dsia              402.0  500.0  750.0  750.0  750.0  750.0  750.0  750.0
dsib              402.0  500.0  750.0  750.0  750.0  750.0  750.0  750.0
host1x            108.0  156.0  204.0  252.0  348.0  384.0  408.0  408.0
mselect           102.0  102.0  204.0  204.0  204.0  204.0  408.0  408.0
pll_c             800.0  800.0 1066.0 1066.0 1066.0 1066.0 1066.0 1066.0
pll_c3            800.0  800.0 1066.0 1066.0 1066.0 1066.0 1066.0 1066.0
sbus              120.0  204.0  252.0  288.0  324.0  360.0  372.0  372.0
vic03             180.0  336.0  420.0  504.0  600.0  684.0  720.0  720.0
c2bus             120.0  228.0  276.0  348.0  396.0  444.0  456.0  456.0
c4bus               0.0  420.0  480.0  600.0  600.0  600.0  600.0  600.0
disp2             192.0  247.0  306.0  342.0  400.0  432.0  474.0  535.0
dsialp            102.0  102.0  102.0  102.0  156.0  156.0  156.0  156.0
dsiblp            102.0  102.0  102.0  102.0  156.0  156.0  156.0  156.0
hda                 0.0  108.0  108.0  108.0  108.0  108.0  108.0  108.0
hda2codec_2x        0.0   48.0   48.0   48.0   48.0   48.0   48.0   48.0
hdmi                0.0  148.5  148.5  297.0  297.0  297.0  297.0  297.0
isp                 0.0  420.0  480.0  600.0  600.0  600.0  600.0  600.0
msenc             120.0  228.0  276.0  348.0  396.0  444.0  456.0  456.0
nor               102.0  102.0  102.0  102.0  102.0  102.0  102.0  102.0
pciex               0.0  250.0  250.0  500.0  500.0  500.0  500.0  500.0
pll_c2            800.0  800.0 1066.0 1066.0 1066.0 1066.0 1066.0 1066.0
sdmmc1              0.0    0.0   82.0   82.0  136.0  136.0  136.0  204.0
sdmmc3              0.0    0.0   82.0   82.0  136.0  136.0  136.0  204.0
se                120.0  228.0  276.0  348.0  396.0  444.0  456.0  456.0
sor0              162.5  270.0  540.0  540.0  540.0  540.0  540.0  540.0
tsec              180.0  336.0  420.0  504.0  600.0  684.0  720.0  720.0
vde               120.0  228.0  276.0  348.0  396.0  444.0  456.0  456.0
vi                  0.0  420.0  480.0  600.0  600.0  600.0  600.0  600.0
xusb_dev_src        0.0   58.3   58.3   58.3  112.0  112.0  112.0  112.0
xusb_falcon_src     0.0  336.0  336.0  336.0  336.0  336.0  336.0  336.0
xusb_fs_src         0.0   48.0   48.0   48.0   48.0   48.0   48.0   48.0
xusb_host_src       0.0  112.0  112.0  112.0  112.0  112.0  112.0  112.0
xusb_hs_src         0.0   60.0   60.0   60.0   60.0   60.0   60.0   60.0
xusb_ss_src         0.0  120.0  120.0  120.0  120.0  120.0  120.0  120.0

vdd_gpu             770    770    770    770    770    780    820    860    900    910    920    940    980   1020   1020   1070   1120   1120   1190
gbus               72.0  108.0  180.0  252.0  324.0  396.0  468.0  540.0  612.0  648.0  684.0  708.0  756.0  804.0  852.0  900.0  918.0  954.0  984.0

My changes:

DVFS tables: units mV/MHz
vdd_cpu   table version: p4v18           
vdd_core  table version: p4v11           
vdd_gpu   table version: p4_v10          

vdd_cpu             980    980    980    980   1020   1060   1100   1150   1190   1230   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260   1260
vdd_cpu  (dfll)     800    800    800    800    800    800    800    800    800    800    810    820    840    850    870    890    920    940    960    980   1000   1030   1050   1060

cpu_g             204.0  306.0  408.0  510.0  612.0  714.0  816.0  918.0 1020.0 1122.0 1224.0 1326.0 1428.0 1530.0 1632.0 1734.0 1836.0 1938.0 2014.5 2091.0 2193.0 2295.0 2397.0 2499.0

vdd_core            800    850    900    950   1000   1050   1100   1150
sdmmc4              0.0    0.0   82.0   82.0  136.0  136.0  136.0  200.0

vdd_core            800    820    850    880    910    980   1010
emc               204.0  300.0  396.0  528.0  600.0  792.0  924.0

vdd_core            800    850    900    950   1000   1050   1100   1150
disp1             192.0  247.0  306.0  342.0  400.0  432.0  474.0  535.0
pll_m             800.0  800.0 1066.0 1066.0 1066.0 1066.0 1200.0 1200.0
c3bus             180.0  336.0  420.0  504.0  600.0  684.0  720.0  720.0
dsia              402.0  500.0  750.0  750.0  750.0  750.0  750.0  750.0
dsib              402.0  500.0  750.0  750.0  750.0  750.0  750.0  750.0
host1x            108.0  156.0  204.0  252.0  348.0  384.0  408.0  408.0
mselect           102.0  102.0  204.0  204.0  204.0  204.0  408.0  408.0
pll_c             800.0  800.0 1066.0 1066.0 1066.0 1066.0 1066.0 1066.0
pll_c3            800.0  800.0 1066.0 1066.0 1066.0 1066.0 1066.0 1066.0
sbus              120.0  204.0  252.0  288.0  324.0  360.0  372.0  372.0
vic03             180.0  336.0  420.0  504.0  600.0  684.0  720.0  720.0
c2bus             120.0  228.0  276.0  348.0  396.0  444.0  456.0  456.0
c4bus               0.0  420.0  480.0  600.0  600.0  600.0  600.0  600.0
disp2             192.0  247.0  306.0  342.0  400.0  432.0  474.0  535.0
dsialp            102.0  102.0  102.0  102.0  156.0  156.0  156.0  156.0
dsiblp            102.0  102.0  102.0  102.0  156.0  156.0  156.0  156.0
hda                 0.0  108.0  108.0  108.0  108.0  108.0  108.0  108.0
hda2codec_2x        0.0   48.0   48.0   48.0   48.0   48.0   48.0   48.0
hdmi                0.0  148.5  148.5  297.0  297.0  297.0  297.0  297.0
isp                 0.0  420.0  480.0  600.0  600.0  600.0  600.0  600.0
msenc             120.0  228.0  276.0  348.0  396.0  444.0  456.0  456.0
nor               102.0  102.0  102.0  102.0  102.0  102.0  102.0  102.0
pciex               0.0  250.0  250.0  500.0  500.0  500.0  500.0  500.0
pll_c2            800.0  800.0 1066.0 1066.0 1066.0 1066.0 1066.0 1066.0
sdmmc1              0.0    0.0   82.0   82.0  136.0  136.0  136.0  204.0
sdmmc3              0.0    0.0   82.0   82.0  136.0  136.0  136.0  204.0
se                120.0  228.0  276.0  348.0  396.0  444.0  456.0  456.0
sor0              162.5  270.0  540.0  540.0  540.0  540.0  540.0  540.0
tsec              180.0  336.0  420.0  504.0  600.0  684.0  720.0  720.0
vde               120.0  228.0  276.0  348.0  396.0  444.0  456.0  456.0
vi                  0.0  420.0  480.0  600.0  600.0  600.0  600.0  600.0
xusb_dev_src        0.0   58.3   58.3   58.3  112.0  112.0  112.0  112.0
xusb_falcon_src     0.0  336.0  336.0  336.0  336.0  336.0  336.0  336.0
xusb_fs_src         0.0   48.0   48.0   48.0   48.0   48.0   48.0   48.0
xusb_host_src       0.0  112.0  112.0  112.0  112.0  112.0  112.0  112.0
xusb_hs_src         0.0   60.0   60.0   60.0   60.0   60.0   60.0   60.0
xusb_ss_src         0.0  120.0  120.0  120.0  120.0  120.0  120.0  120.0

vdd_gpu             770    770    770    770    770    780    820    860    890    900    910    930    970   1010   1010   1060   1110   1110   1180

gbus               72.0  108.0  180.0  252.0  324.0  396.0  468.0  540.0  612.0  648.0  684.0  708.0  756.0  804.0  852.0  900.0  918.0  954.0  984.0

I dropped the VDD_GPU vcore by 1mv or 0.01v after 540MHz clock. So the Vcore is typically 0.910mV @ 648MHz, now its 0.900mV. If I am able to actually copy over the original DVFS table on my tablet I might try to undervolt even more. I’d imagine Nvidia used quite a safe overvoltage when binning the chips…