Imported Upstream version 1.30
[platform/upstream/x86info.git] / AMD / powernow.h
1 /*
2  *  (C) 2001 Dave Jones.
3  *
4  *  Licensed under the terms of the GNU GPL License version 2.
5  *
6  *  Powernow register definitions.
7  */
8
9 #include <sys/types.h>
10
11 #define MSR_FID_VID_CTL         0xc0010041
12 #define MSR_FID_VID_STATUS      0xc0010042
13
14 #define MSR_PSTATE_LIMIT        0xc0010061
15 #define MSR_PSTATE_STATUS       0xc0010063
16 #define MSR_PSTATE              0xc0010064
17
18 union msr_vidctl {
19         struct {
20                 unsigned FID:5,                 // 4:0
21                 reserved1:3,    // 7:5
22                 VID:5,                  // 12:8
23                 reserved2:3,    // 15:13
24                 FIDC:1,                 // 16
25                 VIDC:1,                 // 17
26                 reserved3:2,    // 19:18
27                 FIDCHGRATIO:1,  // 20
28                 reserved4:11,   // 31-21
29                 SGTC:20,                // 32:51
30                 reserved5:12;   // 63:52
31         } bits;
32         unsigned long long val;
33 };
34
35 union msr_fidvidstatus {
36         struct {
37                 unsigned CFID:5,                        // 4:0
38                 reserved1:3,    // 7:5
39                 SFID:5,                 // 12:8
40                 reserved2:3,    // 15:13
41                 MFID:5,                 // 20:16
42                 reserved3:11,   // 31:21
43                 CVID:5,                 // 36:32
44                 reserved4:3,    // 39:37
45                 SVID:5,                 // 44:40
46                 reserved5:3,    // 47:45
47                 MVID:5,                 // 52:48
48                 reserved6:11;   // 63:53
49         } bits;
50         unsigned long long val;
51 };
52
53 union k8_msr_fidvidstatus {
54         struct {
55                 unsigned cfid:6;
56                 unsigned res1:2;
57                 unsigned sfid:6;
58                 unsigned res2:2;
59                 unsigned mfid:6;
60                 unsigned res3:2;
61                 unsigned mrampvid:5;
62                 unsigned res4:2;
63                 unsigned fvpending:1;
64                 unsigned cvid:5;
65                 unsigned res5:3;
66                 unsigned svid:5;
67                 unsigned res6:3;
68                 unsigned maxvid:5;
69                 unsigned res7:3;
70                 unsigned minvid:5;
71                 unsigned res8:3;
72         } bits;
73         unsigned long long val;
74 };
75
76 union msr_pstate {
77         struct {
78                 unsigned fid:6;
79                 unsigned did:3;
80                 unsigned vid:7;
81                 unsigned res1:6;
82                 unsigned nbdid:1;
83                 unsigned res2:2;
84                 unsigned nbvid:7;
85                 unsigned iddval:8;
86                 unsigned idddiv:2;
87                 unsigned res3:21;
88                 unsigned en:1;
89         } bits;
90         unsigned long long val;
91 };
92
93 extern double mobile_vid_table[32];
94 extern double fid_codes[32];
95