summaryrefslogtreecommitdiff
path: root/platform/sysroot/usr/include/i686-linux-android/asm/amd_hsmp.h
blob: 0d630bfb16f5fd691719844d405507f7723992c7 (plain)
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
/*
 * This file is auto-generated. Modifications will be lost.
 *
 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
 * for more information.
 */
#ifndef _UAPI_ASM_X86_AMD_HSMP_H_
#define _UAPI_ASM_X86_AMD_HSMP_H_
#include <linux/types.h>
#pragma pack(4)
#define HSMP_MAX_MSG_LEN 8
enum hsmp_message_ids {
  HSMP_TEST = 1,
  HSMP_GET_SMU_VER,
  HSMP_GET_PROTO_VER,
  HSMP_GET_SOCKET_POWER,
  HSMP_SET_SOCKET_POWER_LIMIT,
  HSMP_GET_SOCKET_POWER_LIMIT,
  HSMP_GET_SOCKET_POWER_LIMIT_MAX,
  HSMP_SET_BOOST_LIMIT,
  HSMP_SET_BOOST_LIMIT_SOCKET,
  HSMP_GET_BOOST_LIMIT,
  HSMP_GET_PROC_HOT,
  HSMP_SET_XGMI_LINK_WIDTH,
  HSMP_SET_DF_PSTATE,
  HSMP_SET_AUTO_DF_PSTATE,
  HSMP_GET_FCLK_MCLK,
  HSMP_GET_CCLK_THROTTLE_LIMIT,
  HSMP_GET_C0_PERCENT,
  HSMP_SET_NBIO_DPM_LEVEL,
  HSMP_GET_NBIO_DPM_LEVEL,
  HSMP_GET_DDR_BANDWIDTH,
  HSMP_GET_TEMP_MONITOR,
  HSMP_GET_DIMM_TEMP_RANGE,
  HSMP_GET_DIMM_POWER,
  HSMP_GET_DIMM_THERMAL,
  HSMP_GET_SOCKET_FREQ_LIMIT,
  HSMP_GET_CCLK_CORE_LIMIT,
  HSMP_GET_RAILS_SVI,
  HSMP_GET_SOCKET_FMAX_FMIN,
  HSMP_GET_IOLINK_BANDWITH,
  HSMP_GET_XGMI_BANDWITH,
  HSMP_SET_GMI3_WIDTH,
  HSMP_SET_PCI_RATE,
  HSMP_SET_POWER_MODE,
  HSMP_SET_PSTATE_MAX_MIN,
  HSMP_GET_METRIC_TABLE_VER,
  HSMP_GET_METRIC_TABLE,
  HSMP_GET_METRIC_TABLE_DRAM_ADDR,
  HSMP_MSG_ID_MAX,
};
struct hsmp_message {
  __u32 msg_id;
  __u16 num_args;
  __u16 response_sz;
  __u32 args[HSMP_MAX_MSG_LEN];
  __u16 sock_ind;
};
enum hsmp_msg_type {
  HSMP_RSVD = - 1,
  HSMP_SET = 0,
  HSMP_GET = 1,
};
enum hsmp_proto_versions {
  HSMP_PROTO_VER2 = 2,
  HSMP_PROTO_VER3,
  HSMP_PROTO_VER4,
  HSMP_PROTO_VER5,
  HSMP_PROTO_VER6
};
struct hsmp_msg_desc {
  int num_args;
  int response_sz;
  enum hsmp_msg_type type;
};
static const struct hsmp_msg_desc hsmp_msg_desc_table[] = {
 {
    0, 0, HSMP_RSVD
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    0, 0, HSMP_SET
  }
 , {
    0, 2, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    1, 1, HSMP_GET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    1, 1, HSMP_SET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    1, 0, HSMP_SET
  }
 , {
    0, 1, HSMP_GET
  }
 , {
    0, 0, HSMP_GET
  }
 , {
    0, 2, HSMP_GET
  }
 ,
};
struct hsmp_metric_table {
  __u32 accumulation_counter;
  __u32 max_socket_temperature;
  __u32 max_vr_temperature;
  __u32 max_hbm_temperature;
  __u64 max_socket_temperature_acc;
  __u64 max_vr_temperature_acc;
  __u64 max_hbm_temperature_acc;
  __u32 socket_power_limit;
  __u32 max_socket_power_limit;
  __u32 socket_power;
  __u64 timestamp;
  __u64 socket_energy_acc;
  __u64 ccd_energy_acc;
  __u64 xcd_energy_acc;
  __u64 aid_energy_acc;
  __u64 hbm_energy_acc;
  __u32 cclk_frequency_limit;
  __u32 gfxclk_frequency_limit;
  __u32 fclk_frequency;
  __u32 uclk_frequency;
  __u32 socclk_frequency[4];
  __u32 vclk_frequency[4];
  __u32 dclk_frequency[4];
  __u32 lclk_frequency[4];
  __u64 gfxclk_frequency_acc[8];
  __u64 cclk_frequency_acc[96];
  __u32 max_cclk_frequency;
  __u32 min_cclk_frequency;
  __u32 max_gfxclk_frequency;
  __u32 min_gfxclk_frequency;
  __u32 fclk_frequency_table[4];
  __u32 uclk_frequency_table[4];
  __u32 socclk_frequency_table[4];
  __u32 vclk_frequency_table[4];
  __u32 dclk_frequency_table[4];
  __u32 lclk_frequency_table[4];
  __u32 max_lclk_dpm_range;
  __u32 min_lclk_dpm_range;
  __u32 xgmi_width;
  __u32 xgmi_bitrate;
  __u64 xgmi_read_bandwidth_acc[8];
  __u64 xgmi_write_bandwidth_acc[8];
  __u32 socket_c0_residency;
  __u32 socket_gfx_busy;
  __u32 dram_bandwidth_utilization;
  __u64 socket_c0_residency_acc;
  __u64 socket_gfx_busy_acc;
  __u64 dram_bandwidth_acc;
  __u32 max_dram_bandwidth;
  __u64 dram_bandwidth_utilization_acc;
  __u64 pcie_bandwidth_acc[4];
  __u32 prochot_residency_acc;
  __u32 ppt_residency_acc;
  __u32 socket_thm_residency_acc;
  __u32 vr_thm_residency_acc;
  __u32 hbm_thm_residency_acc;
  __u32 spare;
  __u32 gfxclk_frequency[8];
};
#pragma pack()
#define HSMP_BASE_IOCTL_NR 0xF8
#define HSMP_IOCTL_CMD _IOWR(HSMP_BASE_IOCTL_NR, 0, struct hsmp_message)
#endif