forked from mh0rst/turionpowercontrol
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGriffin.h
141 lines (105 loc) · 3.1 KB
/
Griffin.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
class Griffin: protected Processor {
private:
//Private methods for HT Link support
DWORD getHTLinkSpeed(DWORD link, DWORD Sublink);
DWORD getHTLinkWidth(DWORD link, DWORD Sublink, DWORD *WidthIn,
DWORD *WidthOut, bool *pfCoherent, bool *pfUnganged);
DWORD getHTLinkDistributionTarget(DWORD link, DWORD *DstLnk,
DWORD *DstNode);
void printRoute(DWORD);
int getDramFrequency (DWORD device);
bool getDramValid (DWORD device);
void getDramTimingLow(
DWORD device, // 0 or 1 DCT0 or DCT1
DWORD *Tcl, DWORD *Trcd, DWORD *Trp, DWORD *Trtp, DWORD *Tras,
DWORD *Trc, DWORD *Twr, DWORD *Trrd, DWORD *T_mode, DWORD *Tfaw);
void getDramTimingHigh(DWORD device, DWORD *TrwtWB, DWORD *TrwtTO,
DWORD *Twtr, DWORD *Twrrd, DWORD *Twrwr, DWORD *Trdrd, DWORD *Tref,
DWORD *Trfc0, DWORD *Trfc1);
protected:
public:
Griffin ();
void testMSR();
static bool isProcessorSupported ();
void showFamilySpecs ();
void showHTC();
void showHTLink();
void showDramTimings();
float convertVIDtoVcore (DWORD);
DWORD convertVcoretoVID (float);
DWORD convertFDtoFreq (DWORD, DWORD);
void convertFreqtoFD(DWORD, int *, int *);
void setVID (PState , DWORD);
void setFID (PState , float);
void setDID (PState , float);
DWORD getVID (PState);
float getFID (PState);
float getDID (PState);
void setFrequency (PState , DWORD);
void setVCore (PState, float);
DWORD getFrequency (PState);
float getVCore (PState);
void pStateEnable (PState) ;
void pStateDisable (PState);
bool pStateEnabled (PState);
void setMaximumPState (PState);
PState getMaximumPState ();
void forcePState (PState);
void setNBVid (DWORD);
DWORD getNBVid ();
// DWORD getNBVid (PState);
// DWORD getNBDid (PState);
bool getSMAF7Enabled ();
DWORD c1eDID ();
DWORD minVID ();
DWORD maxVID ();
DWORD startupPState ();
DWORD maxCPUFrequency ();
DWORD getTctlRegister (void);
DWORD getTctlMaxDiff (void);
DWORD getSlamTime (void);
void setSlamTime (DWORD);
DWORD getAltVidSlamTime (void);
void setAltVidSlamTime (DWORD);
/*DWORD getStepUpRampTime (void);
DWORD getStepDownRampTime (void);
void setStepUpRampTime (DWORD);
void setStepDownRampTime (DWORD);*/
//HTC Section - Read status
bool HTCisCapable ();
bool HTCisEnabled ();
bool HTCisActive ();
bool HTChasBeenActive ();
DWORD HTCTempLimit ();
bool HTCSlewControl ();
DWORD HTCHystTemp ();
DWORD HTCPStateLimit ();
bool HTCLocked ();
DWORD getAltVID ();
//HTC Section - Change status
void HTCEnable ();
void HTCDisable ();
void HTCsetTempLimit (DWORD);
void HTCsetHystLimit (DWORD);
void setAltVid (DWORD);
//PSI_L bit
bool getPsiEnabled ();
DWORD getPsiThreshold ();
void setPsiEnabled (bool);
void setPsiThreshold (DWORD);
//HyperTransport Section
void setHTLinkSpeed (DWORD, DWORD);
//Various settings
bool getC1EStatus ();
void setC1EStatus (bool);
//Performance counters
void perfCounterGetInfo ();
void perfCounterGetValue (unsigned int);
void perfMonitorCPUUsage ();
void perfMonitorFPUUsage ();
void perfMonitorDCMA ();
// Autocheck mode
void checkMode ();
//Scaler helper methods
void getCurrentStatus (struct procStatus *pStatus);
};