A = NB VID ,B = CPU VID
Code:
78h: 0.80V
70h: 0.85V
68h: 0.90V
60h: 0.95V
58h: 1.00V
50h: 1.15V
48h: 1.10V
40h: 1.15V
38h: 1.20V
30h: 1.25V
28h: 1.30V
20h: 1.35V
18h: 1.40V
10h: 1.45V
08h: 1.50V
00h: 1.55V
C = CPU FID/CPU DID
Divisors of 2 only work if the frequency can not be described with a 1 divisor.
Code:
40h: 800 MHz
41h: 850 MHz
42h: 900 MHz
43h: 950 MHz
44h: 1000 MHz
45h: 1050 MHz
46h: 1100 MHz
47h: 1150 MHz
48h: 1200 MHz
49h: 1250 MHz
4Ah: 1300 MHz
4Bh: 1350 MHz
4Ch: 1400 MHz
4Dh: 1450 MHz
4Eh: 1500 MHz
4Fh: 1550 MHz
00h: 1600 MHz
51h: 1650 MHz
01h: 1700 MHz
53h: 1750 MHz
02h: 1800 MHz
55h: 1850 MHz
03h: 1900 MHz
57h: 1950 MHz
04h: 2000 MHz
59h: 2050 MHz
05h: 2100 MHz
5Bh: 2150 MHz
06h: 2200 MHz
5Dh: 2250 MHz
07h: 2300 MHz
5Fh: 2350 MHz
08h: 2400 MHz
61h: 2450 MHz
09h: 2500 MHz
63h: 2550 MHz
0Ah: 2600 MHz
65h: 2650 MHz
0Bh: 2700 MHz
67h: 2750 MHz
0Ch: 2800 MHz
69h: 2850 MHz
0Dh: 2900 MHz
6Bh: 2950 MHz
0Eh: 3000 MHz
Pattern:
AAxxxxxx NBVID
xxxxBBxx CPUVID
xxxxxxCC CPUFID/DID
A*2^24+B*2^8+C
I do not modify the bits [63:32] for the p-states. With above tables and the pattern i hope it's obvious how to define your own p-states.
Example:
p-state 0:
2.6GHZ 1.275V/1.1V
NBVID 1.1V 48h
CPUVID 1.275V 2Ch
CPUFID 2.6GHz 0Ah
MSRC001_00[64] Bits [31:0] 48002C0Ah
p-state 1:
0.8GHZ 0.85V/1.1V
NBVID 1.1V 48h
CPUVID 0.85V 70h
CPUFID 0.8GHz 40h
MSRC001_00[65] Bits [31:0] 48007040h
To apply it with RW-Everything use that script:
Code:
>cpu 1
>wrmsr 0xc0010064 0x800001BC 0x48002C0A
>wrmsr 0xc0010065 0x80000187 0x48007040
>cpu 2
>wrmsr 0xc0010064 0x800001BC 0x48002C0A
>wrmsr 0xc0010065 0x80000187 0x48007040
>cpu 3
>wrmsr 0xc0010064 0x800001BC 0x48002C0A
>wrmsr 0xc0010065 0x80000187 0x48007040
>cpu 4
>wrmsr 0xc0010064 0x800001BC 0x48002C0A
>wrmsr 0xc0010065 0x80000187 0x48007040
>rwexit
Note: The ">" must be in the text file.
Another Note: BKDG mentions that a NB DID must be the same in all p-states, as changing the NB FID requires an reboot NB frequency can not be modified via p-states.
Bookmarks