]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - arch/x86/include/asm/uv/uv_mmrs.h
Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/audit
[mirror_ubuntu-artful-kernel.git] / arch / x86 / include / asm / uv / uv_mmrs.h
1 /*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * SGI UV MMR definitions
7 *
8 * Copyright (C) 2007-2014 Silicon Graphics, Inc. All rights reserved.
9 */
10
11 #ifndef _ASM_X86_UV_UV_MMRS_H
12 #define _ASM_X86_UV_UV_MMRS_H
13
14 /*
15 * This file contains MMR definitions for all UV hubs types.
16 *
17 * To minimize coding differences between hub types, the symbols are
18 * grouped by architecture types.
19 *
20 * UVH - definitions common to all UV hub types.
21 * UVXH - definitions common to all UV eXtended hub types (currently 2 & 3).
22 * UV1H - definitions specific to UV type 1 hub.
23 * UV2H - definitions specific to UV type 2 hub.
24 * UV3H - definitions specific to UV type 3 hub.
25 *
26 * So in general, MMR addresses and structures are identical on all hubs types.
27 * These MMRs are identified as:
28 * #define UVH_xxx <address>
29 * union uvh_xxx {
30 * unsigned long v;
31 * struct uvh_int_cmpd_s {
32 * } s;
33 * };
34 *
35 * If the MMR exists on all hub types but have different addresses:
36 * #define UV1Hxxx a
37 * #define UV2Hxxx b
38 * #define UV3Hxxx c
39 * #define UVHxxx (is_uv1_hub() ? UV1Hxxx :
40 * (is_uv2_hub() ? UV2Hxxx :
41 * UV3Hxxx))
42 *
43 * If the MMR exists on all hub types > 1 but have different addresses:
44 * #define UV2Hxxx b
45 * #define UV3Hxxx c
46 * #define UVXHxxx (is_uv2_hub() ? UV2Hxxx :
47 * UV3Hxxx))
48 *
49 * union uvh_xxx {
50 * unsigned long v;
51 * struct uvh_xxx_s { # Common fields only
52 * } s;
53 * struct uv1h_xxx_s { # Full UV1 definition (*)
54 * } s1;
55 * struct uv2h_xxx_s { # Full UV2 definition (*)
56 * } s2;
57 * struct uv3h_xxx_s { # Full UV3 definition (*)
58 * } s3;
59 * };
60 * (* - if present and different than the common struct)
61 *
62 * Only essential differences are enumerated. For example, if the address is
63 * the same for all UV's, only a single #define is generated. Likewise,
64 * if the contents is the same for all hubs, only the "s" structure is
65 * generated.
66 *
67 * If the MMR exists on ONLY 1 type of hub, no generic definition is
68 * generated:
69 * #define UVnH_xxx <uvn address>
70 * union uvnh_xxx {
71 * unsigned long v;
72 * struct uvh_int_cmpd_s {
73 * } sn;
74 * };
75 *
76 * (GEN Flags: mflags_opt= undefs=0 UV23=UVXH)
77 */
78
79 #define UV_MMR_ENABLE (1UL << 63)
80
81 #define UV1_HUB_PART_NUMBER 0x88a5
82 #define UV2_HUB_PART_NUMBER 0x8eb8
83 #define UV2_HUB_PART_NUMBER_X 0x1111
84 #define UV3_HUB_PART_NUMBER 0x9578
85 #define UV3_HUB_PART_NUMBER_X 0x4321
86
87 /* Compat: Indicate which UV Hubs are supported. */
88 #define UV2_HUB_IS_SUPPORTED 1
89 #define UV3_HUB_IS_SUPPORTED 1
90
91 /* ========================================================================= */
92 /* UVH_BAU_DATA_BROADCAST */
93 /* ========================================================================= */
94 #define UVH_BAU_DATA_BROADCAST 0x61688UL
95 #define UVH_BAU_DATA_BROADCAST_32 0x440
96
97 #define UVH_BAU_DATA_BROADCAST_ENABLE_SHFT 0
98 #define UVH_BAU_DATA_BROADCAST_ENABLE_MASK 0x0000000000000001UL
99
100 union uvh_bau_data_broadcast_u {
101 unsigned long v;
102 struct uvh_bau_data_broadcast_s {
103 unsigned long enable:1; /* RW */
104 unsigned long rsvd_1_63:63;
105 } s;
106 };
107
108 /* ========================================================================= */
109 /* UVH_BAU_DATA_CONFIG */
110 /* ========================================================================= */
111 #define UVH_BAU_DATA_CONFIG 0x61680UL
112 #define UVH_BAU_DATA_CONFIG_32 0x438
113
114 #define UVH_BAU_DATA_CONFIG_VECTOR_SHFT 0
115 #define UVH_BAU_DATA_CONFIG_DM_SHFT 8
116 #define UVH_BAU_DATA_CONFIG_DESTMODE_SHFT 11
117 #define UVH_BAU_DATA_CONFIG_STATUS_SHFT 12
118 #define UVH_BAU_DATA_CONFIG_P_SHFT 13
119 #define UVH_BAU_DATA_CONFIG_T_SHFT 15
120 #define UVH_BAU_DATA_CONFIG_M_SHFT 16
121 #define UVH_BAU_DATA_CONFIG_APIC_ID_SHFT 32
122 #define UVH_BAU_DATA_CONFIG_VECTOR_MASK 0x00000000000000ffUL
123 #define UVH_BAU_DATA_CONFIG_DM_MASK 0x0000000000000700UL
124 #define UVH_BAU_DATA_CONFIG_DESTMODE_MASK 0x0000000000000800UL
125 #define UVH_BAU_DATA_CONFIG_STATUS_MASK 0x0000000000001000UL
126 #define UVH_BAU_DATA_CONFIG_P_MASK 0x0000000000002000UL
127 #define UVH_BAU_DATA_CONFIG_T_MASK 0x0000000000008000UL
128 #define UVH_BAU_DATA_CONFIG_M_MASK 0x0000000000010000UL
129 #define UVH_BAU_DATA_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
130
131 union uvh_bau_data_config_u {
132 unsigned long v;
133 struct uvh_bau_data_config_s {
134 unsigned long vector_:8; /* RW */
135 unsigned long dm:3; /* RW */
136 unsigned long destmode:1; /* RW */
137 unsigned long status:1; /* RO */
138 unsigned long p:1; /* RO */
139 unsigned long rsvd_14:1;
140 unsigned long t:1; /* RO */
141 unsigned long m:1; /* RW */
142 unsigned long rsvd_17_31:15;
143 unsigned long apic_id:32; /* RW */
144 } s;
145 };
146
147 /* ========================================================================= */
148 /* UVH_EVENT_OCCURRED0 */
149 /* ========================================================================= */
150 #define UVH_EVENT_OCCURRED0 0x70000UL
151 #define UVH_EVENT_OCCURRED0_32 0x5e8
152
153 #define UVH_EVENT_OCCURRED0_LB_HCERR_SHFT 0
154 #define UVH_EVENT_OCCURRED0_RH_AOERR0_SHFT 11
155 #define UVH_EVENT_OCCURRED0_LB_HCERR_MASK 0x0000000000000001UL
156 #define UVH_EVENT_OCCURRED0_RH_AOERR0_MASK 0x0000000000000800UL
157
158 #define UV1H_EVENT_OCCURRED0_GR0_HCERR_SHFT 1
159 #define UV1H_EVENT_OCCURRED0_GR1_HCERR_SHFT 2
160 #define UV1H_EVENT_OCCURRED0_LH_HCERR_SHFT 3
161 #define UV1H_EVENT_OCCURRED0_RH_HCERR_SHFT 4
162 #define UV1H_EVENT_OCCURRED0_XN_HCERR_SHFT 5
163 #define UV1H_EVENT_OCCURRED0_SI_HCERR_SHFT 6
164 #define UV1H_EVENT_OCCURRED0_LB_AOERR0_SHFT 7
165 #define UV1H_EVENT_OCCURRED0_GR0_AOERR0_SHFT 8
166 #define UV1H_EVENT_OCCURRED0_GR1_AOERR0_SHFT 9
167 #define UV1H_EVENT_OCCURRED0_LH_AOERR0_SHFT 10
168 #define UV1H_EVENT_OCCURRED0_XN_AOERR0_SHFT 12
169 #define UV1H_EVENT_OCCURRED0_SI_AOERR0_SHFT 13
170 #define UV1H_EVENT_OCCURRED0_LB_AOERR1_SHFT 14
171 #define UV1H_EVENT_OCCURRED0_GR0_AOERR1_SHFT 15
172 #define UV1H_EVENT_OCCURRED0_GR1_AOERR1_SHFT 16
173 #define UV1H_EVENT_OCCURRED0_LH_AOERR1_SHFT 17
174 #define UV1H_EVENT_OCCURRED0_RH_AOERR1_SHFT 18
175 #define UV1H_EVENT_OCCURRED0_XN_AOERR1_SHFT 19
176 #define UV1H_EVENT_OCCURRED0_SI_AOERR1_SHFT 20
177 #define UV1H_EVENT_OCCURRED0_RH_VPI_INT_SHFT 21
178 #define UV1H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT 22
179 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT 23
180 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT 24
181 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT 25
182 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT 26
183 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT 27
184 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT 28
185 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT 29
186 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT 30
187 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT 31
188 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT 32
189 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT 33
190 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT 34
191 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT 35
192 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT 36
193 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT 37
194 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT 38
195 #define UV1H_EVENT_OCCURRED0_L1_NMI_INT_SHFT 39
196 #define UV1H_EVENT_OCCURRED0_STOP_CLOCK_SHFT 40
197 #define UV1H_EVENT_OCCURRED0_ASIC_TO_L1_SHFT 41
198 #define UV1H_EVENT_OCCURRED0_L1_TO_ASIC_SHFT 42
199 #define UV1H_EVENT_OCCURRED0_LTC_INT_SHFT 43
200 #define UV1H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT 44
201 #define UV1H_EVENT_OCCURRED0_IPI_INT_SHFT 45
202 #define UV1H_EVENT_OCCURRED0_EXTIO_INT0_SHFT 46
203 #define UV1H_EVENT_OCCURRED0_EXTIO_INT1_SHFT 47
204 #define UV1H_EVENT_OCCURRED0_EXTIO_INT2_SHFT 48
205 #define UV1H_EVENT_OCCURRED0_EXTIO_INT3_SHFT 49
206 #define UV1H_EVENT_OCCURRED0_PROFILE_INT_SHFT 50
207 #define UV1H_EVENT_OCCURRED0_RTC0_SHFT 51
208 #define UV1H_EVENT_OCCURRED0_RTC1_SHFT 52
209 #define UV1H_EVENT_OCCURRED0_RTC2_SHFT 53
210 #define UV1H_EVENT_OCCURRED0_RTC3_SHFT 54
211 #define UV1H_EVENT_OCCURRED0_BAU_DATA_SHFT 55
212 #define UV1H_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_SHFT 56
213 #define UV1H_EVENT_OCCURRED0_GR0_HCERR_MASK 0x0000000000000002UL
214 #define UV1H_EVENT_OCCURRED0_GR1_HCERR_MASK 0x0000000000000004UL
215 #define UV1H_EVENT_OCCURRED0_LH_HCERR_MASK 0x0000000000000008UL
216 #define UV1H_EVENT_OCCURRED0_RH_HCERR_MASK 0x0000000000000010UL
217 #define UV1H_EVENT_OCCURRED0_XN_HCERR_MASK 0x0000000000000020UL
218 #define UV1H_EVENT_OCCURRED0_SI_HCERR_MASK 0x0000000000000040UL
219 #define UV1H_EVENT_OCCURRED0_LB_AOERR0_MASK 0x0000000000000080UL
220 #define UV1H_EVENT_OCCURRED0_GR0_AOERR0_MASK 0x0000000000000100UL
221 #define UV1H_EVENT_OCCURRED0_GR1_AOERR0_MASK 0x0000000000000200UL
222 #define UV1H_EVENT_OCCURRED0_LH_AOERR0_MASK 0x0000000000000400UL
223 #define UV1H_EVENT_OCCURRED0_XN_AOERR0_MASK 0x0000000000001000UL
224 #define UV1H_EVENT_OCCURRED0_SI_AOERR0_MASK 0x0000000000002000UL
225 #define UV1H_EVENT_OCCURRED0_LB_AOERR1_MASK 0x0000000000004000UL
226 #define UV1H_EVENT_OCCURRED0_GR0_AOERR1_MASK 0x0000000000008000UL
227 #define UV1H_EVENT_OCCURRED0_GR1_AOERR1_MASK 0x0000000000010000UL
228 #define UV1H_EVENT_OCCURRED0_LH_AOERR1_MASK 0x0000000000020000UL
229 #define UV1H_EVENT_OCCURRED0_RH_AOERR1_MASK 0x0000000000040000UL
230 #define UV1H_EVENT_OCCURRED0_XN_AOERR1_MASK 0x0000000000080000UL
231 #define UV1H_EVENT_OCCURRED0_SI_AOERR1_MASK 0x0000000000100000UL
232 #define UV1H_EVENT_OCCURRED0_RH_VPI_INT_MASK 0x0000000000200000UL
233 #define UV1H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK 0x0000000000400000UL
234 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK 0x0000000000800000UL
235 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK 0x0000000001000000UL
236 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK 0x0000000002000000UL
237 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK 0x0000000004000000UL
238 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK 0x0000000008000000UL
239 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK 0x0000000010000000UL
240 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK 0x0000000020000000UL
241 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK 0x0000000040000000UL
242 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK 0x0000000080000000UL
243 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK 0x0000000100000000UL
244 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK 0x0000000200000000UL
245 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK 0x0000000400000000UL
246 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK 0x0000000800000000UL
247 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK 0x0000001000000000UL
248 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK 0x0000002000000000UL
249 #define UV1H_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK 0x0000004000000000UL
250 #define UV1H_EVENT_OCCURRED0_L1_NMI_INT_MASK 0x0000008000000000UL
251 #define UV1H_EVENT_OCCURRED0_STOP_CLOCK_MASK 0x0000010000000000UL
252 #define UV1H_EVENT_OCCURRED0_ASIC_TO_L1_MASK 0x0000020000000000UL
253 #define UV1H_EVENT_OCCURRED0_L1_TO_ASIC_MASK 0x0000040000000000UL
254 #define UV1H_EVENT_OCCURRED0_LTC_INT_MASK 0x0000080000000000UL
255 #define UV1H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK 0x0000100000000000UL
256 #define UV1H_EVENT_OCCURRED0_IPI_INT_MASK 0x0000200000000000UL
257 #define UV1H_EVENT_OCCURRED0_EXTIO_INT0_MASK 0x0000400000000000UL
258 #define UV1H_EVENT_OCCURRED0_EXTIO_INT1_MASK 0x0000800000000000UL
259 #define UV1H_EVENT_OCCURRED0_EXTIO_INT2_MASK 0x0001000000000000UL
260 #define UV1H_EVENT_OCCURRED0_EXTIO_INT3_MASK 0x0002000000000000UL
261 #define UV1H_EVENT_OCCURRED0_PROFILE_INT_MASK 0x0004000000000000UL
262 #define UV1H_EVENT_OCCURRED0_RTC0_MASK 0x0008000000000000UL
263 #define UV1H_EVENT_OCCURRED0_RTC1_MASK 0x0010000000000000UL
264 #define UV1H_EVENT_OCCURRED0_RTC2_MASK 0x0020000000000000UL
265 #define UV1H_EVENT_OCCURRED0_RTC3_MASK 0x0040000000000000UL
266 #define UV1H_EVENT_OCCURRED0_BAU_DATA_MASK 0x0080000000000000UL
267 #define UV1H_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_MASK 0x0100000000000000UL
268
269 #define UVXH_EVENT_OCCURRED0_QP_HCERR_SHFT 1
270 #define UVXH_EVENT_OCCURRED0_RH_HCERR_SHFT 2
271 #define UVXH_EVENT_OCCURRED0_LH0_HCERR_SHFT 3
272 #define UVXH_EVENT_OCCURRED0_LH1_HCERR_SHFT 4
273 #define UVXH_EVENT_OCCURRED0_GR0_HCERR_SHFT 5
274 #define UVXH_EVENT_OCCURRED0_GR1_HCERR_SHFT 6
275 #define UVXH_EVENT_OCCURRED0_NI0_HCERR_SHFT 7
276 #define UVXH_EVENT_OCCURRED0_NI1_HCERR_SHFT 8
277 #define UVXH_EVENT_OCCURRED0_LB_AOERR0_SHFT 9
278 #define UVXH_EVENT_OCCURRED0_QP_AOERR0_SHFT 10
279 #define UVXH_EVENT_OCCURRED0_LH0_AOERR0_SHFT 12
280 #define UVXH_EVENT_OCCURRED0_LH1_AOERR0_SHFT 13
281 #define UVXH_EVENT_OCCURRED0_GR0_AOERR0_SHFT 14
282 #define UVXH_EVENT_OCCURRED0_GR1_AOERR0_SHFT 15
283 #define UVXH_EVENT_OCCURRED0_XB_AOERR0_SHFT 16
284 #define UVXH_EVENT_OCCURRED0_RT_AOERR0_SHFT 17
285 #define UVXH_EVENT_OCCURRED0_NI0_AOERR0_SHFT 18
286 #define UVXH_EVENT_OCCURRED0_NI1_AOERR0_SHFT 19
287 #define UVXH_EVENT_OCCURRED0_LB_AOERR1_SHFT 20
288 #define UVXH_EVENT_OCCURRED0_QP_AOERR1_SHFT 21
289 #define UVXH_EVENT_OCCURRED0_RH_AOERR1_SHFT 22
290 #define UVXH_EVENT_OCCURRED0_LH0_AOERR1_SHFT 23
291 #define UVXH_EVENT_OCCURRED0_LH1_AOERR1_SHFT 24
292 #define UVXH_EVENT_OCCURRED0_GR0_AOERR1_SHFT 25
293 #define UVXH_EVENT_OCCURRED0_GR1_AOERR1_SHFT 26
294 #define UVXH_EVENT_OCCURRED0_XB_AOERR1_SHFT 27
295 #define UVXH_EVENT_OCCURRED0_RT_AOERR1_SHFT 28
296 #define UVXH_EVENT_OCCURRED0_NI0_AOERR1_SHFT 29
297 #define UVXH_EVENT_OCCURRED0_NI1_AOERR1_SHFT 30
298 #define UVXH_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT 31
299 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT 32
300 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT 33
301 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT 34
302 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT 35
303 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT 36
304 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT 37
305 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT 38
306 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT 39
307 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT 40
308 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT 41
309 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT 42
310 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT 43
311 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT 44
312 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT 45
313 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT 46
314 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT 47
315 #define UVXH_EVENT_OCCURRED0_L1_NMI_INT_SHFT 48
316 #define UVXH_EVENT_OCCURRED0_STOP_CLOCK_SHFT 49
317 #define UVXH_EVENT_OCCURRED0_ASIC_TO_L1_SHFT 50
318 #define UVXH_EVENT_OCCURRED0_L1_TO_ASIC_SHFT 51
319 #define UVXH_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT 52
320 #define UVXH_EVENT_OCCURRED0_IPI_INT_SHFT 53
321 #define UVXH_EVENT_OCCURRED0_EXTIO_INT0_SHFT 54
322 #define UVXH_EVENT_OCCURRED0_EXTIO_INT1_SHFT 55
323 #define UVXH_EVENT_OCCURRED0_EXTIO_INT2_SHFT 56
324 #define UVXH_EVENT_OCCURRED0_EXTIO_INT3_SHFT 57
325 #define UVXH_EVENT_OCCURRED0_PROFILE_INT_SHFT 58
326 #define UVXH_EVENT_OCCURRED0_QP_HCERR_MASK 0x0000000000000002UL
327 #define UVXH_EVENT_OCCURRED0_RH_HCERR_MASK 0x0000000000000004UL
328 #define UVXH_EVENT_OCCURRED0_LH0_HCERR_MASK 0x0000000000000008UL
329 #define UVXH_EVENT_OCCURRED0_LH1_HCERR_MASK 0x0000000000000010UL
330 #define UVXH_EVENT_OCCURRED0_GR0_HCERR_MASK 0x0000000000000020UL
331 #define UVXH_EVENT_OCCURRED0_GR1_HCERR_MASK 0x0000000000000040UL
332 #define UVXH_EVENT_OCCURRED0_NI0_HCERR_MASK 0x0000000000000080UL
333 #define UVXH_EVENT_OCCURRED0_NI1_HCERR_MASK 0x0000000000000100UL
334 #define UVXH_EVENT_OCCURRED0_LB_AOERR0_MASK 0x0000000000000200UL
335 #define UVXH_EVENT_OCCURRED0_QP_AOERR0_MASK 0x0000000000000400UL
336 #define UVXH_EVENT_OCCURRED0_LH0_AOERR0_MASK 0x0000000000001000UL
337 #define UVXH_EVENT_OCCURRED0_LH1_AOERR0_MASK 0x0000000000002000UL
338 #define UVXH_EVENT_OCCURRED0_GR0_AOERR0_MASK 0x0000000000004000UL
339 #define UVXH_EVENT_OCCURRED0_GR1_AOERR0_MASK 0x0000000000008000UL
340 #define UVXH_EVENT_OCCURRED0_XB_AOERR0_MASK 0x0000000000010000UL
341 #define UVXH_EVENT_OCCURRED0_RT_AOERR0_MASK 0x0000000000020000UL
342 #define UVXH_EVENT_OCCURRED0_NI0_AOERR0_MASK 0x0000000000040000UL
343 #define UVXH_EVENT_OCCURRED0_NI1_AOERR0_MASK 0x0000000000080000UL
344 #define UVXH_EVENT_OCCURRED0_LB_AOERR1_MASK 0x0000000000100000UL
345 #define UVXH_EVENT_OCCURRED0_QP_AOERR1_MASK 0x0000000000200000UL
346 #define UVXH_EVENT_OCCURRED0_RH_AOERR1_MASK 0x0000000000400000UL
347 #define UVXH_EVENT_OCCURRED0_LH0_AOERR1_MASK 0x0000000000800000UL
348 #define UVXH_EVENT_OCCURRED0_LH1_AOERR1_MASK 0x0000000001000000UL
349 #define UVXH_EVENT_OCCURRED0_GR0_AOERR1_MASK 0x0000000002000000UL
350 #define UVXH_EVENT_OCCURRED0_GR1_AOERR1_MASK 0x0000000004000000UL
351 #define UVXH_EVENT_OCCURRED0_XB_AOERR1_MASK 0x0000000008000000UL
352 #define UVXH_EVENT_OCCURRED0_RT_AOERR1_MASK 0x0000000010000000UL
353 #define UVXH_EVENT_OCCURRED0_NI0_AOERR1_MASK 0x0000000020000000UL
354 #define UVXH_EVENT_OCCURRED0_NI1_AOERR1_MASK 0x0000000040000000UL
355 #define UVXH_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK 0x0000000080000000UL
356 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK 0x0000000100000000UL
357 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK 0x0000000200000000UL
358 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK 0x0000000400000000UL
359 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK 0x0000000800000000UL
360 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK 0x0000001000000000UL
361 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK 0x0000002000000000UL
362 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK 0x0000004000000000UL
363 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK 0x0000008000000000UL
364 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK 0x0000010000000000UL
365 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK 0x0000020000000000UL
366 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK 0x0000040000000000UL
367 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK 0x0000080000000000UL
368 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK 0x0000100000000000UL
369 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK 0x0000200000000000UL
370 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK 0x0000400000000000UL
371 #define UVXH_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK 0x0000800000000000UL
372 #define UVXH_EVENT_OCCURRED0_L1_NMI_INT_MASK 0x0001000000000000UL
373 #define UVXH_EVENT_OCCURRED0_STOP_CLOCK_MASK 0x0002000000000000UL
374 #define UVXH_EVENT_OCCURRED0_ASIC_TO_L1_MASK 0x0004000000000000UL
375 #define UVXH_EVENT_OCCURRED0_L1_TO_ASIC_MASK 0x0008000000000000UL
376 #define UVXH_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK 0x0010000000000000UL
377 #define UVXH_EVENT_OCCURRED0_IPI_INT_MASK 0x0020000000000000UL
378 #define UVXH_EVENT_OCCURRED0_EXTIO_INT0_MASK 0x0040000000000000UL
379 #define UVXH_EVENT_OCCURRED0_EXTIO_INT1_MASK 0x0080000000000000UL
380 #define UVXH_EVENT_OCCURRED0_EXTIO_INT2_MASK 0x0100000000000000UL
381 #define UVXH_EVENT_OCCURRED0_EXTIO_INT3_MASK 0x0200000000000000UL
382 #define UVXH_EVENT_OCCURRED0_PROFILE_INT_MASK 0x0400000000000000UL
383
384 union uvh_event_occurred0_u {
385 unsigned long v;
386 struct uvh_event_occurred0_s {
387 unsigned long lb_hcerr:1; /* RW, W1C */
388 unsigned long rsvd_1_10:10;
389 unsigned long rh_aoerr0:1; /* RW, W1C */
390 unsigned long rsvd_12_63:52;
391 } s;
392 struct uvxh_event_occurred0_s {
393 unsigned long lb_hcerr:1; /* RW */
394 unsigned long qp_hcerr:1; /* RW */
395 unsigned long rh_hcerr:1; /* RW */
396 unsigned long lh0_hcerr:1; /* RW */
397 unsigned long lh1_hcerr:1; /* RW */
398 unsigned long gr0_hcerr:1; /* RW */
399 unsigned long gr1_hcerr:1; /* RW */
400 unsigned long ni0_hcerr:1; /* RW */
401 unsigned long ni1_hcerr:1; /* RW */
402 unsigned long lb_aoerr0:1; /* RW */
403 unsigned long qp_aoerr0:1; /* RW */
404 unsigned long rh_aoerr0:1; /* RW */
405 unsigned long lh0_aoerr0:1; /* RW */
406 unsigned long lh1_aoerr0:1; /* RW */
407 unsigned long gr0_aoerr0:1; /* RW */
408 unsigned long gr1_aoerr0:1; /* RW */
409 unsigned long xb_aoerr0:1; /* RW */
410 unsigned long rt_aoerr0:1; /* RW */
411 unsigned long ni0_aoerr0:1; /* RW */
412 unsigned long ni1_aoerr0:1; /* RW */
413 unsigned long lb_aoerr1:1; /* RW */
414 unsigned long qp_aoerr1:1; /* RW */
415 unsigned long rh_aoerr1:1; /* RW */
416 unsigned long lh0_aoerr1:1; /* RW */
417 unsigned long lh1_aoerr1:1; /* RW */
418 unsigned long gr0_aoerr1:1; /* RW */
419 unsigned long gr1_aoerr1:1; /* RW */
420 unsigned long xb_aoerr1:1; /* RW */
421 unsigned long rt_aoerr1:1; /* RW */
422 unsigned long ni0_aoerr1:1; /* RW */
423 unsigned long ni1_aoerr1:1; /* RW */
424 unsigned long system_shutdown_int:1; /* RW */
425 unsigned long lb_irq_int_0:1; /* RW */
426 unsigned long lb_irq_int_1:1; /* RW */
427 unsigned long lb_irq_int_2:1; /* RW */
428 unsigned long lb_irq_int_3:1; /* RW */
429 unsigned long lb_irq_int_4:1; /* RW */
430 unsigned long lb_irq_int_5:1; /* RW */
431 unsigned long lb_irq_int_6:1; /* RW */
432 unsigned long lb_irq_int_7:1; /* RW */
433 unsigned long lb_irq_int_8:1; /* RW */
434 unsigned long lb_irq_int_9:1; /* RW */
435 unsigned long lb_irq_int_10:1; /* RW */
436 unsigned long lb_irq_int_11:1; /* RW */
437 unsigned long lb_irq_int_12:1; /* RW */
438 unsigned long lb_irq_int_13:1; /* RW */
439 unsigned long lb_irq_int_14:1; /* RW */
440 unsigned long lb_irq_int_15:1; /* RW */
441 unsigned long l1_nmi_int:1; /* RW */
442 unsigned long stop_clock:1; /* RW */
443 unsigned long asic_to_l1:1; /* RW */
444 unsigned long l1_to_asic:1; /* RW */
445 unsigned long la_seq_trigger:1; /* RW */
446 unsigned long ipi_int:1; /* RW */
447 unsigned long extio_int0:1; /* RW */
448 unsigned long extio_int1:1; /* RW */
449 unsigned long extio_int2:1; /* RW */
450 unsigned long extio_int3:1; /* RW */
451 unsigned long profile_int:1; /* RW */
452 unsigned long rsvd_59_63:5;
453 } sx;
454 };
455
456 /* ========================================================================= */
457 /* UVH_EVENT_OCCURRED0_ALIAS */
458 /* ========================================================================= */
459 #define UVH_EVENT_OCCURRED0_ALIAS 0x70008UL
460 #define UVH_EVENT_OCCURRED0_ALIAS_32 0x5f0
461
462
463 /* ========================================================================= */
464 /* UVH_EXTIO_INT0_BROADCAST */
465 /* ========================================================================= */
466 #define UVH_EXTIO_INT0_BROADCAST 0x61448UL
467 #define UVH_EXTIO_INT0_BROADCAST_32 0x3f0
468
469 #define UVH_EXTIO_INT0_BROADCAST_ENABLE_SHFT 0
470 #define UVH_EXTIO_INT0_BROADCAST_ENABLE_MASK 0x0000000000000001UL
471
472 union uvh_extio_int0_broadcast_u {
473 unsigned long v;
474 struct uvh_extio_int0_broadcast_s {
475 unsigned long enable:1; /* RW */
476 unsigned long rsvd_1_63:63;
477 } s;
478 };
479
480 /* ========================================================================= */
481 /* UVH_GR0_TLB_INT0_CONFIG */
482 /* ========================================================================= */
483 #define UVH_GR0_TLB_INT0_CONFIG 0x61b00UL
484
485 #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_SHFT 0
486 #define UVH_GR0_TLB_INT0_CONFIG_DM_SHFT 8
487 #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_SHFT 11
488 #define UVH_GR0_TLB_INT0_CONFIG_STATUS_SHFT 12
489 #define UVH_GR0_TLB_INT0_CONFIG_P_SHFT 13
490 #define UVH_GR0_TLB_INT0_CONFIG_T_SHFT 15
491 #define UVH_GR0_TLB_INT0_CONFIG_M_SHFT 16
492 #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_SHFT 32
493 #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
494 #define UVH_GR0_TLB_INT0_CONFIG_DM_MASK 0x0000000000000700UL
495 #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
496 #define UVH_GR0_TLB_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
497 #define UVH_GR0_TLB_INT0_CONFIG_P_MASK 0x0000000000002000UL
498 #define UVH_GR0_TLB_INT0_CONFIG_T_MASK 0x0000000000008000UL
499 #define UVH_GR0_TLB_INT0_CONFIG_M_MASK 0x0000000000010000UL
500 #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
501
502 union uvh_gr0_tlb_int0_config_u {
503 unsigned long v;
504 struct uvh_gr0_tlb_int0_config_s {
505 unsigned long vector_:8; /* RW */
506 unsigned long dm:3; /* RW */
507 unsigned long destmode:1; /* RW */
508 unsigned long status:1; /* RO */
509 unsigned long p:1; /* RO */
510 unsigned long rsvd_14:1;
511 unsigned long t:1; /* RO */
512 unsigned long m:1; /* RW */
513 unsigned long rsvd_17_31:15;
514 unsigned long apic_id:32; /* RW */
515 } s;
516 };
517
518 /* ========================================================================= */
519 /* UVH_GR0_TLB_INT1_CONFIG */
520 /* ========================================================================= */
521 #define UVH_GR0_TLB_INT1_CONFIG 0x61b40UL
522
523 #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_SHFT 0
524 #define UVH_GR0_TLB_INT1_CONFIG_DM_SHFT 8
525 #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_SHFT 11
526 #define UVH_GR0_TLB_INT1_CONFIG_STATUS_SHFT 12
527 #define UVH_GR0_TLB_INT1_CONFIG_P_SHFT 13
528 #define UVH_GR0_TLB_INT1_CONFIG_T_SHFT 15
529 #define UVH_GR0_TLB_INT1_CONFIG_M_SHFT 16
530 #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_SHFT 32
531 #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_MASK 0x00000000000000ffUL
532 #define UVH_GR0_TLB_INT1_CONFIG_DM_MASK 0x0000000000000700UL
533 #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_MASK 0x0000000000000800UL
534 #define UVH_GR0_TLB_INT1_CONFIG_STATUS_MASK 0x0000000000001000UL
535 #define UVH_GR0_TLB_INT1_CONFIG_P_MASK 0x0000000000002000UL
536 #define UVH_GR0_TLB_INT1_CONFIG_T_MASK 0x0000000000008000UL
537 #define UVH_GR0_TLB_INT1_CONFIG_M_MASK 0x0000000000010000UL
538 #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
539
540 union uvh_gr0_tlb_int1_config_u {
541 unsigned long v;
542 struct uvh_gr0_tlb_int1_config_s {
543 unsigned long vector_:8; /* RW */
544 unsigned long dm:3; /* RW */
545 unsigned long destmode:1; /* RW */
546 unsigned long status:1; /* RO */
547 unsigned long p:1; /* RO */
548 unsigned long rsvd_14:1;
549 unsigned long t:1; /* RO */
550 unsigned long m:1; /* RW */
551 unsigned long rsvd_17_31:15;
552 unsigned long apic_id:32; /* RW */
553 } s;
554 };
555
556 /* ========================================================================= */
557 /* UVH_GR0_TLB_MMR_CONTROL */
558 /* ========================================================================= */
559 #define UV1H_GR0_TLB_MMR_CONTROL 0x401080UL
560 #define UV2H_GR0_TLB_MMR_CONTROL 0xc01080UL
561 #define UV3H_GR0_TLB_MMR_CONTROL 0xc01080UL
562 #define UVH_GR0_TLB_MMR_CONTROL \
563 (is_uv1_hub() ? UV1H_GR0_TLB_MMR_CONTROL : \
564 (is_uv2_hub() ? UV2H_GR0_TLB_MMR_CONTROL : \
565 UV3H_GR0_TLB_MMR_CONTROL))
566
567 #define UVH_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
568 #define UVH_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
569 #define UVH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
570 #define UVH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
571 #define UVH_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
572 #define UVH_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
573 #define UVH_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
574 #define UVH_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
575 #define UVH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
576 #define UVH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
577 #define UVH_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
578 #define UVH_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
579
580 #define UV1H_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
581 #define UV1H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
582 #define UV1H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
583 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
584 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
585 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
586 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT 48
587 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT 52
588 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBPGSIZE_SHFT 54
589 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRREG_SHFT 56
590 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBLRUV_SHFT 60
591 #define UV1H_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
592 #define UV1H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
593 #define UV1H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
594 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
595 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
596 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
597 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_MASK 0x0001000000000000UL
598 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK 0x0010000000000000UL
599 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBPGSIZE_MASK 0x0040000000000000UL
600 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRREG_MASK 0x0100000000000000UL
601 #define UV1H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBLRUV_MASK 0x1000000000000000UL
602
603 #define UVXH_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
604 #define UVXH_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
605 #define UVXH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
606 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
607 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
608 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
609 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
610 #define UVXH_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
611 #define UVXH_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
612 #define UVXH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
613 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
614 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
615 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
616 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
617
618 #define UV2H_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
619 #define UV2H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
620 #define UV2H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
621 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
622 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
623 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
624 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
625 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT 48
626 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT 52
627 #define UV2H_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
628 #define UV2H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
629 #define UV2H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
630 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
631 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
632 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
633 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
634 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_MASK 0x0001000000000000UL
635 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK 0x0010000000000000UL
636
637 #define UV3H_GR0_TLB_MMR_CONTROL_INDEX_SHFT 0
638 #define UV3H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
639 #define UV3H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
640 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
641 #define UV3H_GR0_TLB_MMR_CONTROL_ECC_SEL_SHFT 21
642 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
643 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT 31
644 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
645 #define UV3H_GR0_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
646 #define UV3H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
647 #define UV3H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
648 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
649 #define UV3H_GR0_TLB_MMR_CONTROL_ECC_SEL_MASK 0x0000000000200000UL
650 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
651 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
652 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
653
654 union uvh_gr0_tlb_mmr_control_u {
655 unsigned long v;
656 struct uvh_gr0_tlb_mmr_control_s {
657 unsigned long index:12; /* RW */
658 unsigned long mem_sel:2; /* RW */
659 unsigned long rsvd_14_15:2;
660 unsigned long auto_valid_en:1; /* RW */
661 unsigned long rsvd_17_19:3;
662 unsigned long mmr_hash_index_en:1; /* RW */
663 unsigned long rsvd_21_29:9;
664 unsigned long mmr_write:1; /* WP */
665 unsigned long mmr_read:1; /* WP */
666 unsigned long rsvd_32_48:17;
667 unsigned long rsvd_49_51:3;
668 unsigned long rsvd_52_63:12;
669 } s;
670 struct uv1h_gr0_tlb_mmr_control_s {
671 unsigned long index:12; /* RW */
672 unsigned long mem_sel:2; /* RW */
673 unsigned long rsvd_14_15:2;
674 unsigned long auto_valid_en:1; /* RW */
675 unsigned long rsvd_17_19:3;
676 unsigned long mmr_hash_index_en:1; /* RW */
677 unsigned long rsvd_21_29:9;
678 unsigned long mmr_write:1; /* WP */
679 unsigned long mmr_read:1; /* WP */
680 unsigned long rsvd_32_47:16;
681 unsigned long mmr_inj_con:1; /* RW */
682 unsigned long rsvd_49_51:3;
683 unsigned long mmr_inj_tlbram:1; /* RW */
684 unsigned long rsvd_53:1;
685 unsigned long mmr_inj_tlbpgsize:1; /* RW */
686 unsigned long rsvd_55:1;
687 unsigned long mmr_inj_tlbrreg:1; /* RW */
688 unsigned long rsvd_57_59:3;
689 unsigned long mmr_inj_tlblruv:1; /* RW */
690 unsigned long rsvd_61_63:3;
691 } s1;
692 struct uvxh_gr0_tlb_mmr_control_s {
693 unsigned long index:12; /* RW */
694 unsigned long mem_sel:2; /* RW */
695 unsigned long rsvd_14_15:2;
696 unsigned long auto_valid_en:1; /* RW */
697 unsigned long rsvd_17_19:3;
698 unsigned long mmr_hash_index_en:1; /* RW */
699 unsigned long rsvd_21_29:9;
700 unsigned long mmr_write:1; /* WP */
701 unsigned long mmr_read:1; /* WP */
702 unsigned long mmr_op_done:1; /* RW */
703 unsigned long rsvd_33_47:15;
704 unsigned long rsvd_48:1;
705 unsigned long rsvd_49_51:3;
706 unsigned long rsvd_52:1;
707 unsigned long rsvd_53_63:11;
708 } sx;
709 struct uv2h_gr0_tlb_mmr_control_s {
710 unsigned long index:12; /* RW */
711 unsigned long mem_sel:2; /* RW */
712 unsigned long rsvd_14_15:2;
713 unsigned long auto_valid_en:1; /* RW */
714 unsigned long rsvd_17_19:3;
715 unsigned long mmr_hash_index_en:1; /* RW */
716 unsigned long rsvd_21_29:9;
717 unsigned long mmr_write:1; /* WP */
718 unsigned long mmr_read:1; /* WP */
719 unsigned long mmr_op_done:1; /* RW */
720 unsigned long rsvd_33_47:15;
721 unsigned long mmr_inj_con:1; /* RW */
722 unsigned long rsvd_49_51:3;
723 unsigned long mmr_inj_tlbram:1; /* RW */
724 unsigned long rsvd_53_63:11;
725 } s2;
726 struct uv3h_gr0_tlb_mmr_control_s {
727 unsigned long index:12; /* RW */
728 unsigned long mem_sel:2; /* RW */
729 unsigned long rsvd_14_15:2;
730 unsigned long auto_valid_en:1; /* RW */
731 unsigned long rsvd_17_19:3;
732 unsigned long mmr_hash_index_en:1; /* RW */
733 unsigned long ecc_sel:1; /* RW */
734 unsigned long rsvd_22_29:8;
735 unsigned long mmr_write:1; /* WP */
736 unsigned long mmr_read:1; /* WP */
737 unsigned long mmr_op_done:1; /* RW */
738 unsigned long rsvd_33_47:15;
739 unsigned long undef_48:1; /* Undefined */
740 unsigned long rsvd_49_51:3;
741 unsigned long undef_52:1; /* Undefined */
742 unsigned long rsvd_53_63:11;
743 } s3;
744 };
745
746 /* ========================================================================= */
747 /* UVH_GR0_TLB_MMR_READ_DATA_HI */
748 /* ========================================================================= */
749 #define UV1H_GR0_TLB_MMR_READ_DATA_HI 0x4010a0UL
750 #define UV2H_GR0_TLB_MMR_READ_DATA_HI 0xc010a0UL
751 #define UV3H_GR0_TLB_MMR_READ_DATA_HI 0xc010a0UL
752 #define UVH_GR0_TLB_MMR_READ_DATA_HI \
753 (is_uv1_hub() ? UV1H_GR0_TLB_MMR_READ_DATA_HI : \
754 (is_uv2_hub() ? UV2H_GR0_TLB_MMR_READ_DATA_HI : \
755 UV3H_GR0_TLB_MMR_READ_DATA_HI))
756
757 #define UVH_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
758 #define UVH_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
759 #define UVH_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
760 #define UVH_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
761 #define UVH_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
762 #define UVH_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
763 #define UVH_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
764 #define UVH_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
765
766 #define UV1H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
767 #define UV1H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
768 #define UV1H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
769 #define UV1H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
770 #define UV1H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
771 #define UV1H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
772 #define UV1H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
773 #define UV1H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
774
775 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
776 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
777 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
778 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
779 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
780 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
781 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
782 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
783
784 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
785 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
786 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
787 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
788 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
789 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
790 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
791 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
792
793 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
794 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
795 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
796 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
797 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_AA_EXT_SHFT 45
798 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_WAY_ECC_SHFT 55
799 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
800 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
801 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
802 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
803 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_AA_EXT_MASK 0x0000200000000000UL
804 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_WAY_ECC_MASK 0xff80000000000000UL
805
806 union uvh_gr0_tlb_mmr_read_data_hi_u {
807 unsigned long v;
808 struct uvh_gr0_tlb_mmr_read_data_hi_s {
809 unsigned long pfn:41; /* RO */
810 unsigned long gaa:2; /* RO */
811 unsigned long dirty:1; /* RO */
812 unsigned long larger:1; /* RO */
813 unsigned long rsvd_45_63:19;
814 } s;
815 struct uv1h_gr0_tlb_mmr_read_data_hi_s {
816 unsigned long pfn:41; /* RO */
817 unsigned long gaa:2; /* RO */
818 unsigned long dirty:1; /* RO */
819 unsigned long larger:1; /* RO */
820 unsigned long rsvd_45_63:19;
821 } s1;
822 struct uvxh_gr0_tlb_mmr_read_data_hi_s {
823 unsigned long pfn:41; /* RO */
824 unsigned long gaa:2; /* RO */
825 unsigned long dirty:1; /* RO */
826 unsigned long larger:1; /* RO */
827 unsigned long rsvd_45_63:19;
828 } sx;
829 struct uv2h_gr0_tlb_mmr_read_data_hi_s {
830 unsigned long pfn:41; /* RO */
831 unsigned long gaa:2; /* RO */
832 unsigned long dirty:1; /* RO */
833 unsigned long larger:1; /* RO */
834 unsigned long rsvd_45_63:19;
835 } s2;
836 struct uv3h_gr0_tlb_mmr_read_data_hi_s {
837 unsigned long pfn:41; /* RO */
838 unsigned long gaa:2; /* RO */
839 unsigned long dirty:1; /* RO */
840 unsigned long larger:1; /* RO */
841 unsigned long aa_ext:1; /* RO */
842 unsigned long undef_46_54:9; /* Undefined */
843 unsigned long way_ecc:9; /* RO */
844 } s3;
845 };
846
847 /* ========================================================================= */
848 /* UVH_GR0_TLB_MMR_READ_DATA_LO */
849 /* ========================================================================= */
850 #define UV1H_GR0_TLB_MMR_READ_DATA_LO 0x4010a8UL
851 #define UV2H_GR0_TLB_MMR_READ_DATA_LO 0xc010a8UL
852 #define UV3H_GR0_TLB_MMR_READ_DATA_LO 0xc010a8UL
853 #define UVH_GR0_TLB_MMR_READ_DATA_LO \
854 (is_uv1_hub() ? UV1H_GR0_TLB_MMR_READ_DATA_LO : \
855 (is_uv2_hub() ? UV2H_GR0_TLB_MMR_READ_DATA_LO : \
856 UV3H_GR0_TLB_MMR_READ_DATA_LO))
857
858 #define UVH_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
859 #define UVH_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
860 #define UVH_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
861 #define UVH_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
862 #define UVH_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
863 #define UVH_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
864
865 #define UV1H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
866 #define UV1H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
867 #define UV1H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
868 #define UV1H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
869 #define UV1H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
870 #define UV1H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
871
872 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
873 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
874 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
875 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
876 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
877 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
878
879 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
880 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
881 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
882 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
883 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
884 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
885
886 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
887 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
888 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
889 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
890 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
891 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
892
893 union uvh_gr0_tlb_mmr_read_data_lo_u {
894 unsigned long v;
895 struct uvh_gr0_tlb_mmr_read_data_lo_s {
896 unsigned long vpn:39; /* RO */
897 unsigned long asid:24; /* RO */
898 unsigned long valid:1; /* RO */
899 } s;
900 struct uv1h_gr0_tlb_mmr_read_data_lo_s {
901 unsigned long vpn:39; /* RO */
902 unsigned long asid:24; /* RO */
903 unsigned long valid:1; /* RO */
904 } s1;
905 struct uvxh_gr0_tlb_mmr_read_data_lo_s {
906 unsigned long vpn:39; /* RO */
907 unsigned long asid:24; /* RO */
908 unsigned long valid:1; /* RO */
909 } sx;
910 struct uv2h_gr0_tlb_mmr_read_data_lo_s {
911 unsigned long vpn:39; /* RO */
912 unsigned long asid:24; /* RO */
913 unsigned long valid:1; /* RO */
914 } s2;
915 struct uv3h_gr0_tlb_mmr_read_data_lo_s {
916 unsigned long vpn:39; /* RO */
917 unsigned long asid:24; /* RO */
918 unsigned long valid:1; /* RO */
919 } s3;
920 };
921
922 /* ========================================================================= */
923 /* UVH_GR1_TLB_INT0_CONFIG */
924 /* ========================================================================= */
925 #define UVH_GR1_TLB_INT0_CONFIG 0x61f00UL
926
927 #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_SHFT 0
928 #define UVH_GR1_TLB_INT0_CONFIG_DM_SHFT 8
929 #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_SHFT 11
930 #define UVH_GR1_TLB_INT0_CONFIG_STATUS_SHFT 12
931 #define UVH_GR1_TLB_INT0_CONFIG_P_SHFT 13
932 #define UVH_GR1_TLB_INT0_CONFIG_T_SHFT 15
933 #define UVH_GR1_TLB_INT0_CONFIG_M_SHFT 16
934 #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_SHFT 32
935 #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL
936 #define UVH_GR1_TLB_INT0_CONFIG_DM_MASK 0x0000000000000700UL
937 #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL
938 #define UVH_GR1_TLB_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL
939 #define UVH_GR1_TLB_INT0_CONFIG_P_MASK 0x0000000000002000UL
940 #define UVH_GR1_TLB_INT0_CONFIG_T_MASK 0x0000000000008000UL
941 #define UVH_GR1_TLB_INT0_CONFIG_M_MASK 0x0000000000010000UL
942 #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
943
944 union uvh_gr1_tlb_int0_config_u {
945 unsigned long v;
946 struct uvh_gr1_tlb_int0_config_s {
947 unsigned long vector_:8; /* RW */
948 unsigned long dm:3; /* RW */
949 unsigned long destmode:1; /* RW */
950 unsigned long status:1; /* RO */
951 unsigned long p:1; /* RO */
952 unsigned long rsvd_14:1;
953 unsigned long t:1; /* RO */
954 unsigned long m:1; /* RW */
955 unsigned long rsvd_17_31:15;
956 unsigned long apic_id:32; /* RW */
957 } s;
958 };
959
960 /* ========================================================================= */
961 /* UVH_GR1_TLB_INT1_CONFIG */
962 /* ========================================================================= */
963 #define UVH_GR1_TLB_INT1_CONFIG 0x61f40UL
964
965 #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_SHFT 0
966 #define UVH_GR1_TLB_INT1_CONFIG_DM_SHFT 8
967 #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_SHFT 11
968 #define UVH_GR1_TLB_INT1_CONFIG_STATUS_SHFT 12
969 #define UVH_GR1_TLB_INT1_CONFIG_P_SHFT 13
970 #define UVH_GR1_TLB_INT1_CONFIG_T_SHFT 15
971 #define UVH_GR1_TLB_INT1_CONFIG_M_SHFT 16
972 #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_SHFT 32
973 #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_MASK 0x00000000000000ffUL
974 #define UVH_GR1_TLB_INT1_CONFIG_DM_MASK 0x0000000000000700UL
975 #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_MASK 0x0000000000000800UL
976 #define UVH_GR1_TLB_INT1_CONFIG_STATUS_MASK 0x0000000000001000UL
977 #define UVH_GR1_TLB_INT1_CONFIG_P_MASK 0x0000000000002000UL
978 #define UVH_GR1_TLB_INT1_CONFIG_T_MASK 0x0000000000008000UL
979 #define UVH_GR1_TLB_INT1_CONFIG_M_MASK 0x0000000000010000UL
980 #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
981
982 union uvh_gr1_tlb_int1_config_u {
983 unsigned long v;
984 struct uvh_gr1_tlb_int1_config_s {
985 unsigned long vector_:8; /* RW */
986 unsigned long dm:3; /* RW */
987 unsigned long destmode:1; /* RW */
988 unsigned long status:1; /* RO */
989 unsigned long p:1; /* RO */
990 unsigned long rsvd_14:1;
991 unsigned long t:1; /* RO */
992 unsigned long m:1; /* RW */
993 unsigned long rsvd_17_31:15;
994 unsigned long apic_id:32; /* RW */
995 } s;
996 };
997
998 /* ========================================================================= */
999 /* UVH_GR1_TLB_MMR_CONTROL */
1000 /* ========================================================================= */
1001 #define UV1H_GR1_TLB_MMR_CONTROL 0x801080UL
1002 #define UV2H_GR1_TLB_MMR_CONTROL 0x1001080UL
1003 #define UV3H_GR1_TLB_MMR_CONTROL 0x1001080UL
1004 #define UVH_GR1_TLB_MMR_CONTROL \
1005 (is_uv1_hub() ? UV1H_GR1_TLB_MMR_CONTROL : \
1006 (is_uv2_hub() ? UV2H_GR1_TLB_MMR_CONTROL : \
1007 UV3H_GR1_TLB_MMR_CONTROL))
1008
1009 #define UVH_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
1010 #define UVH_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
1011 #define UVH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
1012 #define UVH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1013 #define UVH_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
1014 #define UVH_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
1015 #define UVH_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
1016 #define UVH_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
1017 #define UVH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
1018 #define UVH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1019 #define UVH_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
1020 #define UVH_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
1021
1022 #define UV1H_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
1023 #define UV1H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
1024 #define UV1H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
1025 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1026 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
1027 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
1028 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT 48
1029 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT 52
1030 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBPGSIZE_SHFT 54
1031 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRREG_SHFT 56
1032 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBLRUV_SHFT 60
1033 #define UV1H_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
1034 #define UV1H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
1035 #define UV1H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
1036 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1037 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
1038 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
1039 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_MASK 0x0001000000000000UL
1040 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK 0x0010000000000000UL
1041 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBPGSIZE_MASK 0x0040000000000000UL
1042 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRREG_MASK 0x0100000000000000UL
1043 #define UV1H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBLRUV_MASK 0x1000000000000000UL
1044
1045 #define UVXH_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
1046 #define UVXH_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
1047 #define UVXH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
1048 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1049 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
1050 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
1051 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
1052 #define UVXH_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
1053 #define UVXH_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
1054 #define UVXH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
1055 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1056 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
1057 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
1058 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
1059
1060 #define UV2H_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
1061 #define UV2H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
1062 #define UV2H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
1063 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1064 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
1065 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
1066 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
1067 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT 48
1068 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT 52
1069 #define UV2H_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
1070 #define UV2H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
1071 #define UV2H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
1072 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1073 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
1074 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
1075 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
1076 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_MASK 0x0001000000000000UL
1077 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK 0x0010000000000000UL
1078
1079 #define UV3H_GR1_TLB_MMR_CONTROL_INDEX_SHFT 0
1080 #define UV3H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT 12
1081 #define UV3H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT 16
1082 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1083 #define UV3H_GR1_TLB_MMR_CONTROL_ECC_SEL_SHFT 21
1084 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT 30
1085 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT 31
1086 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT 32
1087 #define UV3H_GR1_TLB_MMR_CONTROL_INDEX_MASK 0x0000000000000fffUL
1088 #define UV3H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK 0x0000000000003000UL
1089 #define UV3H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK 0x0000000000010000UL
1090 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1091 #define UV3H_GR1_TLB_MMR_CONTROL_ECC_SEL_MASK 0x0000000000200000UL
1092 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK 0x0000000040000000UL
1093 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK 0x0000000080000000UL
1094 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK 0x0000000100000000UL
1095
1096 union uvh_gr1_tlb_mmr_control_u {
1097 unsigned long v;
1098 struct uvh_gr1_tlb_mmr_control_s {
1099 unsigned long index:12; /* RW */
1100 unsigned long mem_sel:2; /* RW */
1101 unsigned long rsvd_14_15:2;
1102 unsigned long auto_valid_en:1; /* RW */
1103 unsigned long rsvd_17_19:3;
1104 unsigned long mmr_hash_index_en:1; /* RW */
1105 unsigned long rsvd_21_29:9;
1106 unsigned long mmr_write:1; /* WP */
1107 unsigned long mmr_read:1; /* WP */
1108 unsigned long rsvd_32_48:17;
1109 unsigned long rsvd_49_51:3;
1110 unsigned long rsvd_52_63:12;
1111 } s;
1112 struct uv1h_gr1_tlb_mmr_control_s {
1113 unsigned long index:12; /* RW */
1114 unsigned long mem_sel:2; /* RW */
1115 unsigned long rsvd_14_15:2;
1116 unsigned long auto_valid_en:1; /* RW */
1117 unsigned long rsvd_17_19:3;
1118 unsigned long mmr_hash_index_en:1; /* RW */
1119 unsigned long rsvd_21_29:9;
1120 unsigned long mmr_write:1; /* WP */
1121 unsigned long mmr_read:1; /* WP */
1122 unsigned long rsvd_32_47:16;
1123 unsigned long mmr_inj_con:1; /* RW */
1124 unsigned long rsvd_49_51:3;
1125 unsigned long mmr_inj_tlbram:1; /* RW */
1126 unsigned long rsvd_53:1;
1127 unsigned long mmr_inj_tlbpgsize:1; /* RW */
1128 unsigned long rsvd_55:1;
1129 unsigned long mmr_inj_tlbrreg:1; /* RW */
1130 unsigned long rsvd_57_59:3;
1131 unsigned long mmr_inj_tlblruv:1; /* RW */
1132 unsigned long rsvd_61_63:3;
1133 } s1;
1134 struct uvxh_gr1_tlb_mmr_control_s {
1135 unsigned long index:12; /* RW */
1136 unsigned long mem_sel:2; /* RW */
1137 unsigned long rsvd_14_15:2;
1138 unsigned long auto_valid_en:1; /* RW */
1139 unsigned long rsvd_17_19:3;
1140 unsigned long mmr_hash_index_en:1; /* RW */
1141 unsigned long rsvd_21_29:9;
1142 unsigned long mmr_write:1; /* WP */
1143 unsigned long mmr_read:1; /* WP */
1144 unsigned long mmr_op_done:1; /* RW */
1145 unsigned long rsvd_33_47:15;
1146 unsigned long rsvd_48:1;
1147 unsigned long rsvd_49_51:3;
1148 unsigned long rsvd_52:1;
1149 unsigned long rsvd_53_63:11;
1150 } sx;
1151 struct uv2h_gr1_tlb_mmr_control_s {
1152 unsigned long index:12; /* RW */
1153 unsigned long mem_sel:2; /* RW */
1154 unsigned long rsvd_14_15:2;
1155 unsigned long auto_valid_en:1; /* RW */
1156 unsigned long rsvd_17_19:3;
1157 unsigned long mmr_hash_index_en:1; /* RW */
1158 unsigned long rsvd_21_29:9;
1159 unsigned long mmr_write:1; /* WP */
1160 unsigned long mmr_read:1; /* WP */
1161 unsigned long mmr_op_done:1; /* RW */
1162 unsigned long rsvd_33_47:15;
1163 unsigned long mmr_inj_con:1; /* RW */
1164 unsigned long rsvd_49_51:3;
1165 unsigned long mmr_inj_tlbram:1; /* RW */
1166 unsigned long rsvd_53_63:11;
1167 } s2;
1168 struct uv3h_gr1_tlb_mmr_control_s {
1169 unsigned long index:12; /* RW */
1170 unsigned long mem_sel:2; /* RW */
1171 unsigned long rsvd_14_15:2;
1172 unsigned long auto_valid_en:1; /* RW */
1173 unsigned long rsvd_17_19:3;
1174 unsigned long mmr_hash_index_en:1; /* RW */
1175 unsigned long ecc_sel:1; /* RW */
1176 unsigned long rsvd_22_29:8;
1177 unsigned long mmr_write:1; /* WP */
1178 unsigned long mmr_read:1; /* WP */
1179 unsigned long mmr_op_done:1; /* RW */
1180 unsigned long rsvd_33_47:15;
1181 unsigned long undef_48:1; /* Undefined */
1182 unsigned long rsvd_49_51:3;
1183 unsigned long undef_52:1; /* Undefined */
1184 unsigned long rsvd_53_63:11;
1185 } s3;
1186 };
1187
1188 /* ========================================================================= */
1189 /* UVH_GR1_TLB_MMR_READ_DATA_HI */
1190 /* ========================================================================= */
1191 #define UV1H_GR1_TLB_MMR_READ_DATA_HI 0x8010a0UL
1192 #define UV2H_GR1_TLB_MMR_READ_DATA_HI 0x10010a0UL
1193 #define UV3H_GR1_TLB_MMR_READ_DATA_HI 0x10010a0UL
1194 #define UVH_GR1_TLB_MMR_READ_DATA_HI \
1195 (is_uv1_hub() ? UV1H_GR1_TLB_MMR_READ_DATA_HI : \
1196 (is_uv2_hub() ? UV2H_GR1_TLB_MMR_READ_DATA_HI : \
1197 UV3H_GR1_TLB_MMR_READ_DATA_HI))
1198
1199 #define UVH_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
1200 #define UVH_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
1201 #define UVH_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
1202 #define UVH_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
1203 #define UVH_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
1204 #define UVH_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
1205 #define UVH_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
1206 #define UVH_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
1207
1208 #define UV1H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
1209 #define UV1H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
1210 #define UV1H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
1211 #define UV1H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
1212 #define UV1H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
1213 #define UV1H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
1214 #define UV1H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
1215 #define UV1H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
1216
1217 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
1218 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
1219 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
1220 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
1221 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
1222 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
1223 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
1224 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
1225
1226 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
1227 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
1228 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
1229 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
1230 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
1231 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
1232 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
1233 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
1234
1235 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT 0
1236 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT 41
1237 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT 43
1238 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT 44
1239 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_AA_EXT_SHFT 45
1240 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_WAY_ECC_SHFT 55
1241 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK 0x000001ffffffffffUL
1242 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK 0x0000060000000000UL
1243 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK 0x0000080000000000UL
1244 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK 0x0000100000000000UL
1245 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_AA_EXT_MASK 0x0000200000000000UL
1246 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_WAY_ECC_MASK 0xff80000000000000UL
1247
1248 union uvh_gr1_tlb_mmr_read_data_hi_u {
1249 unsigned long v;
1250 struct uvh_gr1_tlb_mmr_read_data_hi_s {
1251 unsigned long pfn:41; /* RO */
1252 unsigned long gaa:2; /* RO */
1253 unsigned long dirty:1; /* RO */
1254 unsigned long larger:1; /* RO */
1255 unsigned long rsvd_45_63:19;
1256 } s;
1257 struct uv1h_gr1_tlb_mmr_read_data_hi_s {
1258 unsigned long pfn:41; /* RO */
1259 unsigned long gaa:2; /* RO */
1260 unsigned long dirty:1; /* RO */
1261 unsigned long larger:1; /* RO */
1262 unsigned long rsvd_45_63:19;
1263 } s1;
1264 struct uvxh_gr1_tlb_mmr_read_data_hi_s {
1265 unsigned long pfn:41; /* RO */
1266 unsigned long gaa:2; /* RO */
1267 unsigned long dirty:1; /* RO */
1268 unsigned long larger:1; /* RO */
1269 unsigned long rsvd_45_63:19;
1270 } sx;
1271 struct uv2h_gr1_tlb_mmr_read_data_hi_s {
1272 unsigned long pfn:41; /* RO */
1273 unsigned long gaa:2; /* RO */
1274 unsigned long dirty:1; /* RO */
1275 unsigned long larger:1; /* RO */
1276 unsigned long rsvd_45_63:19;
1277 } s2;
1278 struct uv3h_gr1_tlb_mmr_read_data_hi_s {
1279 unsigned long pfn:41; /* RO */
1280 unsigned long gaa:2; /* RO */
1281 unsigned long dirty:1; /* RO */
1282 unsigned long larger:1; /* RO */
1283 unsigned long aa_ext:1; /* RO */
1284 unsigned long undef_46_54:9; /* Undefined */
1285 unsigned long way_ecc:9; /* RO */
1286 } s3;
1287 };
1288
1289 /* ========================================================================= */
1290 /* UVH_GR1_TLB_MMR_READ_DATA_LO */
1291 /* ========================================================================= */
1292 #define UV1H_GR1_TLB_MMR_READ_DATA_LO 0x8010a8UL
1293 #define UV2H_GR1_TLB_MMR_READ_DATA_LO 0x10010a8UL
1294 #define UV3H_GR1_TLB_MMR_READ_DATA_LO 0x10010a8UL
1295 #define UVH_GR1_TLB_MMR_READ_DATA_LO \
1296 (is_uv1_hub() ? UV1H_GR1_TLB_MMR_READ_DATA_LO : \
1297 (is_uv2_hub() ? UV2H_GR1_TLB_MMR_READ_DATA_LO : \
1298 UV3H_GR1_TLB_MMR_READ_DATA_LO))
1299
1300 #define UVH_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
1301 #define UVH_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
1302 #define UVH_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
1303 #define UVH_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
1304 #define UVH_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
1305 #define UVH_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
1306
1307 #define UV1H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
1308 #define UV1H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
1309 #define UV1H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
1310 #define UV1H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
1311 #define UV1H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
1312 #define UV1H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
1313
1314 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
1315 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
1316 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
1317 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
1318 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
1319 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
1320
1321 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
1322 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
1323 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
1324 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
1325 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
1326 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
1327
1328 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT 0
1329 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT 39
1330 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT 63
1331 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK 0x0000007fffffffffUL
1332 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK 0x7fffff8000000000UL
1333 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK 0x8000000000000000UL
1334
1335 union uvh_gr1_tlb_mmr_read_data_lo_u {
1336 unsigned long v;
1337 struct uvh_gr1_tlb_mmr_read_data_lo_s {
1338 unsigned long vpn:39; /* RO */
1339 unsigned long asid:24; /* RO */
1340 unsigned long valid:1; /* RO */
1341 } s;
1342 struct uv1h_gr1_tlb_mmr_read_data_lo_s {
1343 unsigned long vpn:39; /* RO */
1344 unsigned long asid:24; /* RO */
1345 unsigned long valid:1; /* RO */
1346 } s1;
1347 struct uvxh_gr1_tlb_mmr_read_data_lo_s {
1348 unsigned long vpn:39; /* RO */
1349 unsigned long asid:24; /* RO */
1350 unsigned long valid:1; /* RO */
1351 } sx;
1352 struct uv2h_gr1_tlb_mmr_read_data_lo_s {
1353 unsigned long vpn:39; /* RO */
1354 unsigned long asid:24; /* RO */
1355 unsigned long valid:1; /* RO */
1356 } s2;
1357 struct uv3h_gr1_tlb_mmr_read_data_lo_s {
1358 unsigned long vpn:39; /* RO */
1359 unsigned long asid:24; /* RO */
1360 unsigned long valid:1; /* RO */
1361 } s3;
1362 };
1363
1364 /* ========================================================================= */
1365 /* UVH_INT_CMPB */
1366 /* ========================================================================= */
1367 #define UVH_INT_CMPB 0x22080UL
1368
1369 #define UVH_INT_CMPB_REAL_TIME_CMPB_SHFT 0
1370 #define UVH_INT_CMPB_REAL_TIME_CMPB_MASK 0x00ffffffffffffffUL
1371
1372 union uvh_int_cmpb_u {
1373 unsigned long v;
1374 struct uvh_int_cmpb_s {
1375 unsigned long real_time_cmpb:56; /* RW */
1376 unsigned long rsvd_56_63:8;
1377 } s;
1378 };
1379
1380 /* ========================================================================= */
1381 /* UVH_INT_CMPC */
1382 /* ========================================================================= */
1383 #define UVH_INT_CMPC 0x22100UL
1384
1385 #define UV1H_INT_CMPC_REAL_TIME_CMPC_SHFT 0
1386 #define UV1H_INT_CMPC_REAL_TIME_CMPC_MASK 0x00ffffffffffffffUL
1387
1388 #define UVXH_INT_CMPC_REAL_TIME_CMP_2_SHFT 0
1389 #define UVXH_INT_CMPC_REAL_TIME_CMP_2_MASK 0x00ffffffffffffffUL
1390
1391 union uvh_int_cmpc_u {
1392 unsigned long v;
1393 struct uvh_int_cmpc_s {
1394 unsigned long real_time_cmpc:56; /* RW */
1395 unsigned long rsvd_56_63:8;
1396 } s;
1397 };
1398
1399 /* ========================================================================= */
1400 /* UVH_INT_CMPD */
1401 /* ========================================================================= */
1402 #define UVH_INT_CMPD 0x22180UL
1403
1404 #define UV1H_INT_CMPD_REAL_TIME_CMPD_SHFT 0
1405 #define UV1H_INT_CMPD_REAL_TIME_CMPD_MASK 0x00ffffffffffffffUL
1406
1407 #define UVXH_INT_CMPD_REAL_TIME_CMP_3_SHFT 0
1408 #define UVXH_INT_CMPD_REAL_TIME_CMP_3_MASK 0x00ffffffffffffffUL
1409
1410 union uvh_int_cmpd_u {
1411 unsigned long v;
1412 struct uvh_int_cmpd_s {
1413 unsigned long real_time_cmpd:56; /* RW */
1414 unsigned long rsvd_56_63:8;
1415 } s;
1416 };
1417
1418 /* ========================================================================= */
1419 /* UVH_IPI_INT */
1420 /* ========================================================================= */
1421 #define UVH_IPI_INT 0x60500UL
1422 #define UVH_IPI_INT_32 0x348
1423
1424 #define UVH_IPI_INT_VECTOR_SHFT 0
1425 #define UVH_IPI_INT_DELIVERY_MODE_SHFT 8
1426 #define UVH_IPI_INT_DESTMODE_SHFT 11
1427 #define UVH_IPI_INT_APIC_ID_SHFT 16
1428 #define UVH_IPI_INT_SEND_SHFT 63
1429 #define UVH_IPI_INT_VECTOR_MASK 0x00000000000000ffUL
1430 #define UVH_IPI_INT_DELIVERY_MODE_MASK 0x0000000000000700UL
1431 #define UVH_IPI_INT_DESTMODE_MASK 0x0000000000000800UL
1432 #define UVH_IPI_INT_APIC_ID_MASK 0x0000ffffffff0000UL
1433 #define UVH_IPI_INT_SEND_MASK 0x8000000000000000UL
1434
1435 union uvh_ipi_int_u {
1436 unsigned long v;
1437 struct uvh_ipi_int_s {
1438 unsigned long vector_:8; /* RW */
1439 unsigned long delivery_mode:3; /* RW */
1440 unsigned long destmode:1; /* RW */
1441 unsigned long rsvd_12_15:4;
1442 unsigned long apic_id:32; /* RW */
1443 unsigned long rsvd_48_62:15;
1444 unsigned long send:1; /* WP */
1445 } s;
1446 };
1447
1448 /* ========================================================================= */
1449 /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST */
1450 /* ========================================================================= */
1451 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST 0x320050UL
1452 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_32 0x9c0
1453
1454 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_SHFT 4
1455 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_SHFT 49
1456 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_MASK 0x000007fffffffff0UL
1457 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_MASK 0x7ffe000000000000UL
1458
1459 union uvh_lb_bau_intd_payload_queue_first_u {
1460 unsigned long v;
1461 struct uvh_lb_bau_intd_payload_queue_first_s {
1462 unsigned long rsvd_0_3:4;
1463 unsigned long address:39; /* RW */
1464 unsigned long rsvd_43_48:6;
1465 unsigned long node_id:14; /* RW */
1466 unsigned long rsvd_63:1;
1467 } s;
1468 };
1469
1470 /* ========================================================================= */
1471 /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST */
1472 /* ========================================================================= */
1473 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST 0x320060UL
1474 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_32 0x9c8
1475
1476 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_SHFT 4
1477 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_MASK 0x000007fffffffff0UL
1478
1479 union uvh_lb_bau_intd_payload_queue_last_u {
1480 unsigned long v;
1481 struct uvh_lb_bau_intd_payload_queue_last_s {
1482 unsigned long rsvd_0_3:4;
1483 unsigned long address:39; /* RW */
1484 unsigned long rsvd_43_63:21;
1485 } s;
1486 };
1487
1488 /* ========================================================================= */
1489 /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL */
1490 /* ========================================================================= */
1491 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL 0x320070UL
1492 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_32 0x9d0
1493
1494 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_SHFT 4
1495 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_MASK 0x000007fffffffff0UL
1496
1497 union uvh_lb_bau_intd_payload_queue_tail_u {
1498 unsigned long v;
1499 struct uvh_lb_bau_intd_payload_queue_tail_s {
1500 unsigned long rsvd_0_3:4;
1501 unsigned long address:39; /* RW */
1502 unsigned long rsvd_43_63:21;
1503 } s;
1504 };
1505
1506 /* ========================================================================= */
1507 /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE */
1508 /* ========================================================================= */
1509 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE 0x320080UL
1510 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_32 0xa68
1511
1512 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_SHFT 0
1513 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_SHFT 1
1514 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_SHFT 2
1515 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_SHFT 3
1516 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_SHFT 4
1517 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_SHFT 5
1518 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_SHFT 6
1519 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_SHFT 7
1520 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_SHFT 8
1521 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_SHFT 9
1522 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_SHFT 10
1523 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_SHFT 11
1524 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_SHFT 12
1525 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_SHFT 13
1526 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_SHFT 14
1527 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_SHFT 15
1528 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_MASK 0x0000000000000001UL
1529 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_MASK 0x0000000000000002UL
1530 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_MASK 0x0000000000000004UL
1531 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_MASK 0x0000000000000008UL
1532 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_MASK 0x0000000000000010UL
1533 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_MASK 0x0000000000000020UL
1534 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_MASK 0x0000000000000040UL
1535 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_MASK 0x0000000000000080UL
1536 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_MASK 0x0000000000000100UL
1537 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_MASK 0x0000000000000200UL
1538 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_MASK 0x0000000000000400UL
1539 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_MASK 0x0000000000000800UL
1540 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_MASK 0x0000000000001000UL
1541 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_MASK 0x0000000000002000UL
1542 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_MASK 0x0000000000004000UL
1543 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_MASK 0x0000000000008000UL
1544
1545 union uvh_lb_bau_intd_software_acknowledge_u {
1546 unsigned long v;
1547 struct uvh_lb_bau_intd_software_acknowledge_s {
1548 unsigned long pending_0:1; /* RW, W1C */
1549 unsigned long pending_1:1; /* RW, W1C */
1550 unsigned long pending_2:1; /* RW, W1C */
1551 unsigned long pending_3:1; /* RW, W1C */
1552 unsigned long pending_4:1; /* RW, W1C */
1553 unsigned long pending_5:1; /* RW, W1C */
1554 unsigned long pending_6:1; /* RW, W1C */
1555 unsigned long pending_7:1; /* RW, W1C */
1556 unsigned long timeout_0:1; /* RW, W1C */
1557 unsigned long timeout_1:1; /* RW, W1C */
1558 unsigned long timeout_2:1; /* RW, W1C */
1559 unsigned long timeout_3:1; /* RW, W1C */
1560 unsigned long timeout_4:1; /* RW, W1C */
1561 unsigned long timeout_5:1; /* RW, W1C */
1562 unsigned long timeout_6:1; /* RW, W1C */
1563 unsigned long timeout_7:1; /* RW, W1C */
1564 unsigned long rsvd_16_63:48;
1565 } s;
1566 };
1567
1568 /* ========================================================================= */
1569 /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS */
1570 /* ========================================================================= */
1571 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS 0x320088UL
1572 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS_32 0xa70
1573
1574
1575 /* ========================================================================= */
1576 /* UVH_LB_BAU_MISC_CONTROL */
1577 /* ========================================================================= */
1578 #define UVH_LB_BAU_MISC_CONTROL 0x320170UL
1579 #define UV1H_LB_BAU_MISC_CONTROL 0x320170UL
1580 #define UV2H_LB_BAU_MISC_CONTROL 0x320170UL
1581 #define UV3H_LB_BAU_MISC_CONTROL 0x320170UL
1582 #define UVH_LB_BAU_MISC_CONTROL_32 0xa10
1583 #define UV1H_LB_BAU_MISC_CONTROL_32 0x320170UL
1584 #define UV2H_LB_BAU_MISC_CONTROL_32 0x320170UL
1585 #define UV3H_LB_BAU_MISC_CONTROL_32 0x320170UL
1586
1587 #define UVH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
1588 #define UVH_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
1589 #define UVH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
1590 #define UVH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
1591 #define UVH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1592 #define UVH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1593 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
1594 #define UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
1595 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1596 #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1597 #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1598 #define UVH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1599 #define UVH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1600 #define UVH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1601 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1602 #define UVH_LB_BAU_MISC_CONTROL_FUN_SHFT 48
1603 #define UVH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
1604 #define UVH_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
1605 #define UVH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
1606 #define UVH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
1607 #define UVH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1608 #define UVH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1609 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
1610 #define UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
1611 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1612 #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1613 #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1614 #define UVH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1615 #define UVH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1616 #define UVH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1617 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1618 #define UVH_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
1619
1620 #define UV1H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
1621 #define UV1H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
1622 #define UV1H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
1623 #define UV1H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
1624 #define UV1H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1625 #define UV1H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1626 #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
1627 #define UV1H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
1628 #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1629 #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1630 #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1631 #define UV1H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1632 #define UV1H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1633 #define UV1H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1634 #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1635 #define UV1H_LB_BAU_MISC_CONTROL_FUN_SHFT 48
1636 #define UV1H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
1637 #define UV1H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
1638 #define UV1H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
1639 #define UV1H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
1640 #define UV1H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1641 #define UV1H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1642 #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
1643 #define UV1H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
1644 #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1645 #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1646 #define UV1H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1647 #define UV1H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1648 #define UV1H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1649 #define UV1H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1650 #define UV1H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1651 #define UV1H_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
1652
1653 #define UVXH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
1654 #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
1655 #define UVXH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
1656 #define UVXH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
1657 #define UVXH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1658 #define UVXH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1659 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
1660 #define UVXH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
1661 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1662 #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1663 #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1664 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1665 #define UVXH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1666 #define UVXH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1667 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1668 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
1669 #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT 30
1670 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
1671 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
1672 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
1673 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
1674 #define UVXH_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
1675 #define UVXH_LB_BAU_MISC_CONTROL_FUN_SHFT 48
1676 #define UVXH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
1677 #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
1678 #define UVXH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
1679 #define UVXH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
1680 #define UVXH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1681 #define UVXH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1682 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
1683 #define UVXH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
1684 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1685 #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1686 #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1687 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1688 #define UVXH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1689 #define UVXH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1690 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1691 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
1692 #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK 0x0000000040000000UL
1693 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
1694 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
1695 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
1696 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
1697 #define UVXH_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
1698 #define UVXH_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
1699
1700 #define UV2H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
1701 #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
1702 #define UV2H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
1703 #define UV2H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
1704 #define UV2H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1705 #define UV2H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1706 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
1707 #define UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
1708 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1709 #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1710 #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1711 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1712 #define UV2H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1713 #define UV2H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1714 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1715 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
1716 #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT 30
1717 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
1718 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
1719 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
1720 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
1721 #define UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
1722 #define UV2H_LB_BAU_MISC_CONTROL_FUN_SHFT 48
1723 #define UV2H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
1724 #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
1725 #define UV2H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
1726 #define UV2H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
1727 #define UV2H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1728 #define UV2H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1729 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
1730 #define UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
1731 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1732 #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1733 #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1734 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1735 #define UV2H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1736 #define UV2H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1737 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1738 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
1739 #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK 0x0000000040000000UL
1740 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
1741 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
1742 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
1743 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
1744 #define UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
1745 #define UV2H_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
1746
1747 #define UV3H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT 0
1748 #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT 8
1749 #define UV3H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT 9
1750 #define UV3H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT 10
1751 #define UV3H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1752 #define UV3H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1753 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
1754 #define UV3H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
1755 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1756 #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1757 #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1758 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1759 #define UV3H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1760 #define UV3H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1761 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1762 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
1763 #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT 30
1764 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
1765 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
1766 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
1767 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
1768 #define UV3H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
1769 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_QUIESCE_MSGS_TO_QPI_SHFT 36
1770 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_PREFETCH_HINT_SHFT 37
1771 #define UV3H_LB_BAU_MISC_CONTROL_THREAD_KILL_TIMEBASE_SHFT 38
1772 #define UV3H_LB_BAU_MISC_CONTROL_FUN_SHFT 48
1773 #define UV3H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK 0x00000000000000ffUL
1774 #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK 0x0000000000000100UL
1775 #define UV3H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK 0x0000000000000200UL
1776 #define UV3H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK 0x0000000000000400UL
1777 #define UV3H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1778 #define UV3H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1779 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
1780 #define UV3H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
1781 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1782 #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1783 #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1784 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1785 #define UV3H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1786 #define UV3H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1787 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1788 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
1789 #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK 0x0000000040000000UL
1790 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
1791 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
1792 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
1793 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
1794 #define UV3H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
1795 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_QUIESCE_MSGS_TO_QPI_MASK 0x0000001000000000UL
1796 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_PREFETCH_HINT_MASK 0x0000002000000000UL
1797 #define UV3H_LB_BAU_MISC_CONTROL_THREAD_KILL_TIMEBASE_MASK 0x00003fc000000000UL
1798 #define UV3H_LB_BAU_MISC_CONTROL_FUN_MASK 0xffff000000000000UL
1799
1800 union uvh_lb_bau_misc_control_u {
1801 unsigned long v;
1802 struct uvh_lb_bau_misc_control_s {
1803 unsigned long rejection_delay:8; /* RW */
1804 unsigned long apic_mode:1; /* RW */
1805 unsigned long force_broadcast:1; /* RW */
1806 unsigned long force_lock_nop:1; /* RW */
1807 unsigned long qpi_agent_presence_vector:3; /* RW */
1808 unsigned long descriptor_fetch_mode:1; /* RW */
1809 unsigned long enable_intd_soft_ack_mode:1; /* RW */
1810 unsigned long intd_soft_ack_timeout_period:4; /* RW */
1811 unsigned long enable_dual_mapping_mode:1; /* RW */
1812 unsigned long vga_io_port_decode_enable:1; /* RW */
1813 unsigned long vga_io_port_16_bit_decode:1; /* RW */
1814 unsigned long suppress_dest_registration:1; /* RW */
1815 unsigned long programmed_initial_priority:3; /* RW */
1816 unsigned long use_incoming_priority:1; /* RW */
1817 unsigned long enable_programmed_initial_priority:1;/* RW */
1818 unsigned long rsvd_29_47:19;
1819 unsigned long fun:16; /* RW */
1820 } s;
1821 struct uv1h_lb_bau_misc_control_s {
1822 unsigned long rejection_delay:8; /* RW */
1823 unsigned long apic_mode:1; /* RW */
1824 unsigned long force_broadcast:1; /* RW */
1825 unsigned long force_lock_nop:1; /* RW */
1826 unsigned long qpi_agent_presence_vector:3; /* RW */
1827 unsigned long descriptor_fetch_mode:1; /* RW */
1828 unsigned long enable_intd_soft_ack_mode:1; /* RW */
1829 unsigned long intd_soft_ack_timeout_period:4; /* RW */
1830 unsigned long enable_dual_mapping_mode:1; /* RW */
1831 unsigned long vga_io_port_decode_enable:1; /* RW */
1832 unsigned long vga_io_port_16_bit_decode:1; /* RW */
1833 unsigned long suppress_dest_registration:1; /* RW */
1834 unsigned long programmed_initial_priority:3; /* RW */
1835 unsigned long use_incoming_priority:1; /* RW */
1836 unsigned long enable_programmed_initial_priority:1;/* RW */
1837 unsigned long rsvd_29_47:19;
1838 unsigned long fun:16; /* RW */
1839 } s1;
1840 struct uvxh_lb_bau_misc_control_s {
1841 unsigned long rejection_delay:8; /* RW */
1842 unsigned long apic_mode:1; /* RW */
1843 unsigned long force_broadcast:1; /* RW */
1844 unsigned long force_lock_nop:1; /* RW */
1845 unsigned long qpi_agent_presence_vector:3; /* RW */
1846 unsigned long descriptor_fetch_mode:1; /* RW */
1847 unsigned long enable_intd_soft_ack_mode:1; /* RW */
1848 unsigned long intd_soft_ack_timeout_period:4; /* RW */
1849 unsigned long enable_dual_mapping_mode:1; /* RW */
1850 unsigned long vga_io_port_decode_enable:1; /* RW */
1851 unsigned long vga_io_port_16_bit_decode:1; /* RW */
1852 unsigned long suppress_dest_registration:1; /* RW */
1853 unsigned long programmed_initial_priority:3; /* RW */
1854 unsigned long use_incoming_priority:1; /* RW */
1855 unsigned long enable_programmed_initial_priority:1;/* RW */
1856 unsigned long enable_automatic_apic_mode_selection:1;/* RW */
1857 unsigned long apic_mode_status:1; /* RO */
1858 unsigned long suppress_interrupts_to_self:1; /* RW */
1859 unsigned long enable_lock_based_system_flush:1;/* RW */
1860 unsigned long enable_extended_sb_status:1; /* RW */
1861 unsigned long suppress_int_prio_udt_to_self:1;/* RW */
1862 unsigned long use_legacy_descriptor_formats:1;/* RW */
1863 unsigned long rsvd_36_47:12;
1864 unsigned long fun:16; /* RW */
1865 } sx;
1866 struct uv2h_lb_bau_misc_control_s {
1867 unsigned long rejection_delay:8; /* RW */
1868 unsigned long apic_mode:1; /* RW */
1869 unsigned long force_broadcast:1; /* RW */
1870 unsigned long force_lock_nop:1; /* RW */
1871 unsigned long qpi_agent_presence_vector:3; /* RW */
1872 unsigned long descriptor_fetch_mode:1; /* RW */
1873 unsigned long enable_intd_soft_ack_mode:1; /* RW */
1874 unsigned long intd_soft_ack_timeout_period:4; /* RW */
1875 unsigned long enable_dual_mapping_mode:1; /* RW */
1876 unsigned long vga_io_port_decode_enable:1; /* RW */
1877 unsigned long vga_io_port_16_bit_decode:1; /* RW */
1878 unsigned long suppress_dest_registration:1; /* RW */
1879 unsigned long programmed_initial_priority:3; /* RW */
1880 unsigned long use_incoming_priority:1; /* RW */
1881 unsigned long enable_programmed_initial_priority:1;/* RW */
1882 unsigned long enable_automatic_apic_mode_selection:1;/* RW */
1883 unsigned long apic_mode_status:1; /* RO */
1884 unsigned long suppress_interrupts_to_self:1; /* RW */
1885 unsigned long enable_lock_based_system_flush:1;/* RW */
1886 unsigned long enable_extended_sb_status:1; /* RW */
1887 unsigned long suppress_int_prio_udt_to_self:1;/* RW */
1888 unsigned long use_legacy_descriptor_formats:1;/* RW */
1889 unsigned long rsvd_36_47:12;
1890 unsigned long fun:16; /* RW */
1891 } s2;
1892 struct uv3h_lb_bau_misc_control_s {
1893 unsigned long rejection_delay:8; /* RW */
1894 unsigned long apic_mode:1; /* RW */
1895 unsigned long force_broadcast:1; /* RW */
1896 unsigned long force_lock_nop:1; /* RW */
1897 unsigned long qpi_agent_presence_vector:3; /* RW */
1898 unsigned long descriptor_fetch_mode:1; /* RW */
1899 unsigned long enable_intd_soft_ack_mode:1; /* RW */
1900 unsigned long intd_soft_ack_timeout_period:4; /* RW */
1901 unsigned long enable_dual_mapping_mode:1; /* RW */
1902 unsigned long vga_io_port_decode_enable:1; /* RW */
1903 unsigned long vga_io_port_16_bit_decode:1; /* RW */
1904 unsigned long suppress_dest_registration:1; /* RW */
1905 unsigned long programmed_initial_priority:3; /* RW */
1906 unsigned long use_incoming_priority:1; /* RW */
1907 unsigned long enable_programmed_initial_priority:1;/* RW */
1908 unsigned long enable_automatic_apic_mode_selection:1;/* RW */
1909 unsigned long apic_mode_status:1; /* RO */
1910 unsigned long suppress_interrupts_to_self:1; /* RW */
1911 unsigned long enable_lock_based_system_flush:1;/* RW */
1912 unsigned long enable_extended_sb_status:1; /* RW */
1913 unsigned long suppress_int_prio_udt_to_self:1;/* RW */
1914 unsigned long use_legacy_descriptor_formats:1;/* RW */
1915 unsigned long suppress_quiesce_msgs_to_qpi:1; /* RW */
1916 unsigned long enable_intd_prefetch_hint:1; /* RW */
1917 unsigned long thread_kill_timebase:8; /* RW */
1918 unsigned long rsvd_46_47:2;
1919 unsigned long fun:16; /* RW */
1920 } s3;
1921 };
1922
1923 /* ========================================================================= */
1924 /* UVH_LB_BAU_SB_ACTIVATION_CONTROL */
1925 /* ========================================================================= */
1926 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL 0x320020UL
1927 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_32 0x9a8
1928
1929 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_SHFT 0
1930 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_SHFT 62
1931 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_SHFT 63
1932 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_MASK 0x000000000000003fUL
1933 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_MASK 0x4000000000000000UL
1934 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_MASK 0x8000000000000000UL
1935
1936 union uvh_lb_bau_sb_activation_control_u {
1937 unsigned long v;
1938 struct uvh_lb_bau_sb_activation_control_s {
1939 unsigned long index:6; /* RW */
1940 unsigned long rsvd_6_61:56;
1941 unsigned long push:1; /* WP */
1942 unsigned long init:1; /* WP */
1943 } s;
1944 };
1945
1946 /* ========================================================================= */
1947 /* UVH_LB_BAU_SB_ACTIVATION_STATUS_0 */
1948 /* ========================================================================= */
1949 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0 0x320030UL
1950 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_32 0x9b0
1951
1952 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_SHFT 0
1953 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_MASK 0xffffffffffffffffUL
1954
1955 union uvh_lb_bau_sb_activation_status_0_u {
1956 unsigned long v;
1957 struct uvh_lb_bau_sb_activation_status_0_s {
1958 unsigned long status:64; /* RW */
1959 } s;
1960 };
1961
1962 /* ========================================================================= */
1963 /* UVH_LB_BAU_SB_ACTIVATION_STATUS_1 */
1964 /* ========================================================================= */
1965 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1 0x320040UL
1966 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_32 0x9b8
1967
1968 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_SHFT 0
1969 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_MASK 0xffffffffffffffffUL
1970
1971 union uvh_lb_bau_sb_activation_status_1_u {
1972 unsigned long v;
1973 struct uvh_lb_bau_sb_activation_status_1_s {
1974 unsigned long status:64; /* RW */
1975 } s;
1976 };
1977
1978 /* ========================================================================= */
1979 /* UVH_LB_BAU_SB_DESCRIPTOR_BASE */
1980 /* ========================================================================= */
1981 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE 0x320010UL
1982 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_32 0x9a0
1983
1984 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_SHFT 12
1985 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT 49
1986 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x000007fffffff000UL
1987 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK 0x7ffe000000000000UL
1988
1989 union uvh_lb_bau_sb_descriptor_base_u {
1990 unsigned long v;
1991 struct uvh_lb_bau_sb_descriptor_base_s {
1992 unsigned long rsvd_0_11:12;
1993 unsigned long page_address:31; /* RW */
1994 unsigned long rsvd_43_48:6;
1995 unsigned long node_id:14; /* RW */
1996 unsigned long rsvd_63:1;
1997 } s;
1998 };
1999
2000 /* ========================================================================= */
2001 /* UVH_NODE_ID */
2002 /* ========================================================================= */
2003 #define UVH_NODE_ID 0x0UL
2004 #define UV1H_NODE_ID 0x0UL
2005 #define UV2H_NODE_ID 0x0UL
2006 #define UV3H_NODE_ID 0x0UL
2007
2008 #define UVH_NODE_ID_FORCE1_SHFT 0
2009 #define UVH_NODE_ID_MANUFACTURER_SHFT 1
2010 #define UVH_NODE_ID_PART_NUMBER_SHFT 12
2011 #define UVH_NODE_ID_REVISION_SHFT 28
2012 #define UVH_NODE_ID_NODE_ID_SHFT 32
2013 #define UVH_NODE_ID_FORCE1_MASK 0x0000000000000001UL
2014 #define UVH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
2015 #define UVH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
2016 #define UVH_NODE_ID_REVISION_MASK 0x00000000f0000000UL
2017 #define UVH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
2018
2019 #define UV1H_NODE_ID_FORCE1_SHFT 0
2020 #define UV1H_NODE_ID_MANUFACTURER_SHFT 1
2021 #define UV1H_NODE_ID_PART_NUMBER_SHFT 12
2022 #define UV1H_NODE_ID_REVISION_SHFT 28
2023 #define UV1H_NODE_ID_NODE_ID_SHFT 32
2024 #define UV1H_NODE_ID_NODES_PER_BIT_SHFT 48
2025 #define UV1H_NODE_ID_NI_PORT_SHFT 56
2026 #define UV1H_NODE_ID_FORCE1_MASK 0x0000000000000001UL
2027 #define UV1H_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
2028 #define UV1H_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
2029 #define UV1H_NODE_ID_REVISION_MASK 0x00000000f0000000UL
2030 #define UV1H_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
2031 #define UV1H_NODE_ID_NODES_PER_BIT_MASK 0x007f000000000000UL
2032 #define UV1H_NODE_ID_NI_PORT_MASK 0x0f00000000000000UL
2033
2034 #define UVXH_NODE_ID_FORCE1_SHFT 0
2035 #define UVXH_NODE_ID_MANUFACTURER_SHFT 1
2036 #define UVXH_NODE_ID_PART_NUMBER_SHFT 12
2037 #define UVXH_NODE_ID_REVISION_SHFT 28
2038 #define UVXH_NODE_ID_NODE_ID_SHFT 32
2039 #define UVXH_NODE_ID_NODES_PER_BIT_SHFT 50
2040 #define UVXH_NODE_ID_NI_PORT_SHFT 57
2041 #define UVXH_NODE_ID_FORCE1_MASK 0x0000000000000001UL
2042 #define UVXH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
2043 #define UVXH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
2044 #define UVXH_NODE_ID_REVISION_MASK 0x00000000f0000000UL
2045 #define UVXH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
2046 #define UVXH_NODE_ID_NODES_PER_BIT_MASK 0x01fc000000000000UL
2047 #define UVXH_NODE_ID_NI_PORT_MASK 0x3e00000000000000UL
2048
2049 #define UV2H_NODE_ID_FORCE1_SHFT 0
2050 #define UV2H_NODE_ID_MANUFACTURER_SHFT 1
2051 #define UV2H_NODE_ID_PART_NUMBER_SHFT 12
2052 #define UV2H_NODE_ID_REVISION_SHFT 28
2053 #define UV2H_NODE_ID_NODE_ID_SHFT 32
2054 #define UV2H_NODE_ID_NODES_PER_BIT_SHFT 50
2055 #define UV2H_NODE_ID_NI_PORT_SHFT 57
2056 #define UV2H_NODE_ID_FORCE1_MASK 0x0000000000000001UL
2057 #define UV2H_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
2058 #define UV2H_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
2059 #define UV2H_NODE_ID_REVISION_MASK 0x00000000f0000000UL
2060 #define UV2H_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
2061 #define UV2H_NODE_ID_NODES_PER_BIT_MASK 0x01fc000000000000UL
2062 #define UV2H_NODE_ID_NI_PORT_MASK 0x3e00000000000000UL
2063
2064 #define UV3H_NODE_ID_FORCE1_SHFT 0
2065 #define UV3H_NODE_ID_MANUFACTURER_SHFT 1
2066 #define UV3H_NODE_ID_PART_NUMBER_SHFT 12
2067 #define UV3H_NODE_ID_REVISION_SHFT 28
2068 #define UV3H_NODE_ID_NODE_ID_SHFT 32
2069 #define UV3H_NODE_ID_ROUTER_SELECT_SHFT 48
2070 #define UV3H_NODE_ID_RESERVED_2_SHFT 49
2071 #define UV3H_NODE_ID_NODES_PER_BIT_SHFT 50
2072 #define UV3H_NODE_ID_NI_PORT_SHFT 57
2073 #define UV3H_NODE_ID_FORCE1_MASK 0x0000000000000001UL
2074 #define UV3H_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL
2075 #define UV3H_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL
2076 #define UV3H_NODE_ID_REVISION_MASK 0x00000000f0000000UL
2077 #define UV3H_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL
2078 #define UV3H_NODE_ID_ROUTER_SELECT_MASK 0x0001000000000000UL
2079 #define UV3H_NODE_ID_RESERVED_2_MASK 0x0002000000000000UL
2080 #define UV3H_NODE_ID_NODES_PER_BIT_MASK 0x01fc000000000000UL
2081 #define UV3H_NODE_ID_NI_PORT_MASK 0x3e00000000000000UL
2082
2083 union uvh_node_id_u {
2084 unsigned long v;
2085 struct uvh_node_id_s {
2086 unsigned long force1:1; /* RO */
2087 unsigned long manufacturer:11; /* RO */
2088 unsigned long part_number:16; /* RO */
2089 unsigned long revision:4; /* RO */
2090 unsigned long node_id:15; /* RW */
2091 unsigned long rsvd_47_63:17;
2092 } s;
2093 struct uv1h_node_id_s {
2094 unsigned long force1:1; /* RO */
2095 unsigned long manufacturer:11; /* RO */
2096 unsigned long part_number:16; /* RO */
2097 unsigned long revision:4; /* RO */
2098 unsigned long node_id:15; /* RW */
2099 unsigned long rsvd_47:1;
2100 unsigned long nodes_per_bit:7; /* RW */
2101 unsigned long rsvd_55:1;
2102 unsigned long ni_port:4; /* RO */
2103 unsigned long rsvd_60_63:4;
2104 } s1;
2105 struct uvxh_node_id_s {
2106 unsigned long force1:1; /* RO */
2107 unsigned long manufacturer:11; /* RO */
2108 unsigned long part_number:16; /* RO */
2109 unsigned long revision:4; /* RO */
2110 unsigned long node_id:15; /* RW */
2111 unsigned long rsvd_47_49:3;
2112 unsigned long nodes_per_bit:7; /* RO */
2113 unsigned long ni_port:5; /* RO */
2114 unsigned long rsvd_62_63:2;
2115 } sx;
2116 struct uv2h_node_id_s {
2117 unsigned long force1:1; /* RO */
2118 unsigned long manufacturer:11; /* RO */
2119 unsigned long part_number:16; /* RO */
2120 unsigned long revision:4; /* RO */
2121 unsigned long node_id:15; /* RW */
2122 unsigned long rsvd_47_49:3;
2123 unsigned long nodes_per_bit:7; /* RO */
2124 unsigned long ni_port:5; /* RO */
2125 unsigned long rsvd_62_63:2;
2126 } s2;
2127 struct uv3h_node_id_s {
2128 unsigned long force1:1; /* RO */
2129 unsigned long manufacturer:11; /* RO */
2130 unsigned long part_number:16; /* RO */
2131 unsigned long revision:4; /* RO */
2132 unsigned long node_id:15; /* RW */
2133 unsigned long rsvd_47:1;
2134 unsigned long router_select:1; /* RO */
2135 unsigned long rsvd_49:1;
2136 unsigned long nodes_per_bit:7; /* RO */
2137 unsigned long ni_port:5; /* RO */
2138 unsigned long rsvd_62_63:2;
2139 } s3;
2140 };
2141
2142 /* ========================================================================= */
2143 /* UVH_NODE_PRESENT_TABLE */
2144 /* ========================================================================= */
2145 #define UVH_NODE_PRESENT_TABLE 0x1400UL
2146 #define UVH_NODE_PRESENT_TABLE_DEPTH 16
2147
2148 #define UVH_NODE_PRESENT_TABLE_NODES_SHFT 0
2149 #define UVH_NODE_PRESENT_TABLE_NODES_MASK 0xffffffffffffffffUL
2150
2151 union uvh_node_present_table_u {
2152 unsigned long v;
2153 struct uvh_node_present_table_s {
2154 unsigned long nodes:64; /* RW */
2155 } s;
2156 };
2157
2158 /* ========================================================================= */
2159 /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR */
2160 /* ========================================================================= */
2161 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR 0x16000c8UL
2162
2163 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_SHFT 24
2164 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_SHFT 48
2165 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_SHFT 63
2166 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_MASK 0x00000000ff000000UL
2167 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_MASK 0x001f000000000000UL
2168 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_MASK 0x8000000000000000UL
2169
2170 union uvh_rh_gam_alias210_overlay_config_0_mmr_u {
2171 unsigned long v;
2172 struct uvh_rh_gam_alias210_overlay_config_0_mmr_s {
2173 unsigned long rsvd_0_23:24;
2174 unsigned long base:8; /* RW */
2175 unsigned long rsvd_32_47:16;
2176 unsigned long m_alias:5; /* RW */
2177 unsigned long rsvd_53_62:10;
2178 unsigned long enable:1; /* RW */
2179 } s;
2180 };
2181
2182 /* ========================================================================= */
2183 /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR */
2184 /* ========================================================================= */
2185 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR 0x16000d8UL
2186
2187 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_SHFT 24
2188 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_SHFT 48
2189 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_SHFT 63
2190 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_MASK 0x00000000ff000000UL
2191 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_MASK 0x001f000000000000UL
2192 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_MASK 0x8000000000000000UL
2193
2194 union uvh_rh_gam_alias210_overlay_config_1_mmr_u {
2195 unsigned long v;
2196 struct uvh_rh_gam_alias210_overlay_config_1_mmr_s {
2197 unsigned long rsvd_0_23:24;
2198 unsigned long base:8; /* RW */
2199 unsigned long rsvd_32_47:16;
2200 unsigned long m_alias:5; /* RW */
2201 unsigned long rsvd_53_62:10;
2202 unsigned long enable:1; /* RW */
2203 } s;
2204 };
2205
2206 /* ========================================================================= */
2207 /* UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR */
2208 /* ========================================================================= */
2209 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR 0x16000e8UL
2210
2211 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_SHFT 24
2212 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_SHFT 48
2213 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_SHFT 63
2214 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_MASK 0x00000000ff000000UL
2215 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_MASK 0x001f000000000000UL
2216 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_MASK 0x8000000000000000UL
2217
2218 union uvh_rh_gam_alias210_overlay_config_2_mmr_u {
2219 unsigned long v;
2220 struct uvh_rh_gam_alias210_overlay_config_2_mmr_s {
2221 unsigned long rsvd_0_23:24;
2222 unsigned long base:8; /* RW */
2223 unsigned long rsvd_32_47:16;
2224 unsigned long m_alias:5; /* RW */
2225 unsigned long rsvd_53_62:10;
2226 unsigned long enable:1; /* RW */
2227 } s;
2228 };
2229
2230 /* ========================================================================= */
2231 /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR */
2232 /* ========================================================================= */
2233 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL
2234
2235 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
2236 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2237
2238 union uvh_rh_gam_alias210_redirect_config_0_mmr_u {
2239 unsigned long v;
2240 struct uvh_rh_gam_alias210_redirect_config_0_mmr_s {
2241 unsigned long rsvd_0_23:24;
2242 unsigned long dest_base:22; /* RW */
2243 unsigned long rsvd_46_63:18;
2244 } s;
2245 };
2246
2247 /* ========================================================================= */
2248 /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR */
2249 /* ========================================================================= */
2250 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL
2251
2252 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
2253 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2254
2255 union uvh_rh_gam_alias210_redirect_config_1_mmr_u {
2256 unsigned long v;
2257 struct uvh_rh_gam_alias210_redirect_config_1_mmr_s {
2258 unsigned long rsvd_0_23:24;
2259 unsigned long dest_base:22; /* RW */
2260 unsigned long rsvd_46_63:18;
2261 } s;
2262 };
2263
2264 /* ========================================================================= */
2265 /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR */
2266 /* ========================================================================= */
2267 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL
2268
2269 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
2270 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2271
2272 union uvh_rh_gam_alias210_redirect_config_2_mmr_u {
2273 unsigned long v;
2274 struct uvh_rh_gam_alias210_redirect_config_2_mmr_s {
2275 unsigned long rsvd_0_23:24;
2276 unsigned long dest_base:22; /* RW */
2277 unsigned long rsvd_46_63:18;
2278 } s;
2279 };
2280
2281 /* ========================================================================= */
2282 /* UVH_RH_GAM_CONFIG_MMR */
2283 /* ========================================================================= */
2284 #define UVH_RH_GAM_CONFIG_MMR 0x1600000UL
2285 #define UV1H_RH_GAM_CONFIG_MMR 0x1600000UL
2286 #define UV2H_RH_GAM_CONFIG_MMR 0x1600000UL
2287 #define UV3H_RH_GAM_CONFIG_MMR 0x1600000UL
2288
2289 #define UVH_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
2290 #define UVH_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
2291 #define UVH_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
2292 #define UVH_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
2293
2294 #define UV1H_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
2295 #define UV1H_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
2296 #define UV1H_RH_GAM_CONFIG_MMR_MMIOL_CFG_SHFT 12
2297 #define UV1H_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
2298 #define UV1H_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
2299 #define UV1H_RH_GAM_CONFIG_MMR_MMIOL_CFG_MASK 0x0000000000001000UL
2300
2301 #define UVXH_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
2302 #define UVXH_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
2303 #define UVXH_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
2304 #define UVXH_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
2305
2306 #define UV2H_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
2307 #define UV2H_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
2308 #define UV2H_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
2309 #define UV2H_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
2310
2311 #define UV3H_RH_GAM_CONFIG_MMR_M_SKT_SHFT 0
2312 #define UV3H_RH_GAM_CONFIG_MMR_N_SKT_SHFT 6
2313 #define UV3H_RH_GAM_CONFIG_MMR_M_SKT_MASK 0x000000000000003fUL
2314 #define UV3H_RH_GAM_CONFIG_MMR_N_SKT_MASK 0x00000000000003c0UL
2315
2316 union uvh_rh_gam_config_mmr_u {
2317 unsigned long v;
2318 struct uvh_rh_gam_config_mmr_s {
2319 unsigned long m_skt:6; /* RW */
2320 unsigned long n_skt:4; /* RW */
2321 unsigned long rsvd_10_63:54;
2322 } s;
2323 struct uv1h_rh_gam_config_mmr_s {
2324 unsigned long m_skt:6; /* RW */
2325 unsigned long n_skt:4; /* RW */
2326 unsigned long rsvd_10_11:2;
2327 unsigned long mmiol_cfg:1; /* RW */
2328 unsigned long rsvd_13_63:51;
2329 } s1;
2330 struct uvxh_rh_gam_config_mmr_s {
2331 unsigned long m_skt:6; /* RW */
2332 unsigned long n_skt:4; /* RW */
2333 unsigned long rsvd_10_63:54;
2334 } sx;
2335 struct uv2h_rh_gam_config_mmr_s {
2336 unsigned long m_skt:6; /* RW */
2337 unsigned long n_skt:4; /* RW */
2338 unsigned long rsvd_10_63:54;
2339 } s2;
2340 struct uv3h_rh_gam_config_mmr_s {
2341 unsigned long m_skt:6; /* RW */
2342 unsigned long n_skt:4; /* RW */
2343 unsigned long rsvd_10_63:54;
2344 } s3;
2345 };
2346
2347 /* ========================================================================= */
2348 /* UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR */
2349 /* ========================================================================= */
2350 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
2351 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
2352 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
2353 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
2354
2355 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
2356 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
2357 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2358 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
2359 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
2360 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2361
2362 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
2363 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_SHFT 48
2364 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
2365 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2366 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
2367 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_MASK 0x0001000000000000UL
2368 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
2369 #define UV1H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2370
2371 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
2372 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
2373 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2374 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
2375 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
2376 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2377
2378 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
2379 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
2380 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2381 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
2382 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
2383 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2384
2385 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28
2386 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52
2387 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_MODE_SHFT 62
2388 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2389 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL
2390 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL
2391 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_MODE_MASK 0x4000000000000000UL
2392 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2393
2394 union uvh_rh_gam_gru_overlay_config_mmr_u {
2395 unsigned long v;
2396 struct uvh_rh_gam_gru_overlay_config_mmr_s {
2397 unsigned long rsvd_0_27:28;
2398 unsigned long base:18; /* RW */
2399 unsigned long rsvd_46_51:6;
2400 unsigned long n_gru:4; /* RW */
2401 unsigned long rsvd_56_62:7;
2402 unsigned long enable:1; /* RW */
2403 } s;
2404 struct uv1h_rh_gam_gru_overlay_config_mmr_s {
2405 unsigned long rsvd_0_27:28;
2406 unsigned long base:18; /* RW */
2407 unsigned long rsvd_46_47:2;
2408 unsigned long gr4:1; /* RW */
2409 unsigned long rsvd_49_51:3;
2410 unsigned long n_gru:4; /* RW */
2411 unsigned long rsvd_56_62:7;
2412 unsigned long enable:1; /* RW */
2413 } s1;
2414 struct uvxh_rh_gam_gru_overlay_config_mmr_s {
2415 unsigned long rsvd_0_27:28;
2416 unsigned long base:18; /* RW */
2417 unsigned long rsvd_46_51:6;
2418 unsigned long n_gru:4; /* RW */
2419 unsigned long rsvd_56_62:7;
2420 unsigned long enable:1; /* RW */
2421 } sx;
2422 struct uv2h_rh_gam_gru_overlay_config_mmr_s {
2423 unsigned long rsvd_0_27:28;
2424 unsigned long base:18; /* RW */
2425 unsigned long rsvd_46_51:6;
2426 unsigned long n_gru:4; /* RW */
2427 unsigned long rsvd_56_62:7;
2428 unsigned long enable:1; /* RW */
2429 } s2;
2430 struct uv3h_rh_gam_gru_overlay_config_mmr_s {
2431 unsigned long rsvd_0_27:28;
2432 unsigned long base:18; /* RW */
2433 unsigned long rsvd_46_51:6;
2434 unsigned long n_gru:4; /* RW */
2435 unsigned long rsvd_56_61:6;
2436 unsigned long mode:1; /* RW */
2437 unsigned long enable:1; /* RW */
2438 } s3;
2439 };
2440
2441 /* ========================================================================= */
2442 /* UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR */
2443 /* ========================================================================= */
2444 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR 0x1600030UL
2445 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR 0x1600030UL
2446
2447 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_SHFT 30
2448 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_SHFT 46
2449 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_SHFT 52
2450 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2451 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003fffc0000000UL
2452 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_MASK 0x000fc00000000000UL
2453 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_MASK 0x00f0000000000000UL
2454 #define UV1H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2455
2456 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_SHFT 27
2457 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_SHFT 46
2458 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_SHFT 52
2459 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2460 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff8000000UL
2461 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_MASK 0x000fc00000000000UL
2462 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_MASK 0x00f0000000000000UL
2463 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2464
2465 union uvh_rh_gam_mmioh_overlay_config_mmr_u {
2466 unsigned long v;
2467 struct uv1h_rh_gam_mmioh_overlay_config_mmr_s {
2468 unsigned long rsvd_0_29:30;
2469 unsigned long base:16; /* RW */
2470 unsigned long m_io:6; /* RW */
2471 unsigned long n_io:4; /* RW */
2472 unsigned long rsvd_56_62:7;
2473 unsigned long enable:1; /* RW */
2474 } s1;
2475 struct uv2h_rh_gam_mmioh_overlay_config_mmr_s {
2476 unsigned long rsvd_0_26:27;
2477 unsigned long base:19; /* RW */
2478 unsigned long m_io:6; /* RW */
2479 unsigned long n_io:4; /* RW */
2480 unsigned long rsvd_56_62:7;
2481 unsigned long enable:1; /* RW */
2482 } s2;
2483 };
2484
2485 /* ========================================================================= */
2486 /* UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR */
2487 /* ========================================================================= */
2488 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
2489 #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
2490 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
2491 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
2492
2493 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
2494 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2495 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
2496 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2497
2498 #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
2499 #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_SHFT 46
2500 #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2501 #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
2502 #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_MASK 0x0000400000000000UL
2503 #define UV1H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2504
2505 #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
2506 #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2507 #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
2508 #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2509
2510 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
2511 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2512 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
2513 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2514
2515 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26
2516 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
2517 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL
2518 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
2519
2520 union uvh_rh_gam_mmr_overlay_config_mmr_u {
2521 unsigned long v;
2522 struct uvh_rh_gam_mmr_overlay_config_mmr_s {
2523 unsigned long rsvd_0_25:26;
2524 unsigned long base:20; /* RW */
2525 unsigned long rsvd_46_62:17;
2526 unsigned long enable:1; /* RW */
2527 } s;
2528 struct uv1h_rh_gam_mmr_overlay_config_mmr_s {
2529 unsigned long rsvd_0_25:26;
2530 unsigned long base:20; /* RW */
2531 unsigned long dual_hub:1; /* RW */
2532 unsigned long rsvd_47_62:16;
2533 unsigned long enable:1; /* RW */
2534 } s1;
2535 struct uvxh_rh_gam_mmr_overlay_config_mmr_s {
2536 unsigned long rsvd_0_25:26;
2537 unsigned long base:20; /* RW */
2538 unsigned long rsvd_46_62:17;
2539 unsigned long enable:1; /* RW */
2540 } sx;
2541 struct uv2h_rh_gam_mmr_overlay_config_mmr_s {
2542 unsigned long rsvd_0_25:26;
2543 unsigned long base:20; /* RW */
2544 unsigned long rsvd_46_62:17;
2545 unsigned long enable:1; /* RW */
2546 } s2;
2547 struct uv3h_rh_gam_mmr_overlay_config_mmr_s {
2548 unsigned long rsvd_0_25:26;
2549 unsigned long base:20; /* RW */
2550 unsigned long rsvd_46_62:17;
2551 unsigned long enable:1; /* RW */
2552 } s3;
2553 };
2554
2555 /* ========================================================================= */
2556 /* UVH_RTC */
2557 /* ========================================================================= */
2558 #define UVH_RTC 0x340000UL
2559
2560 #define UVH_RTC_REAL_TIME_CLOCK_SHFT 0
2561 #define UVH_RTC_REAL_TIME_CLOCK_MASK 0x00ffffffffffffffUL
2562
2563 union uvh_rtc_u {
2564 unsigned long v;
2565 struct uvh_rtc_s {
2566 unsigned long real_time_clock:56; /* RW */
2567 unsigned long rsvd_56_63:8;
2568 } s;
2569 };
2570
2571 /* ========================================================================= */
2572 /* UVH_RTC1_INT_CONFIG */
2573 /* ========================================================================= */
2574 #define UVH_RTC1_INT_CONFIG 0x615c0UL
2575
2576 #define UVH_RTC1_INT_CONFIG_VECTOR_SHFT 0
2577 #define UVH_RTC1_INT_CONFIG_DM_SHFT 8
2578 #define UVH_RTC1_INT_CONFIG_DESTMODE_SHFT 11
2579 #define UVH_RTC1_INT_CONFIG_STATUS_SHFT 12
2580 #define UVH_RTC1_INT_CONFIG_P_SHFT 13
2581 #define UVH_RTC1_INT_CONFIG_T_SHFT 15
2582 #define UVH_RTC1_INT_CONFIG_M_SHFT 16
2583 #define UVH_RTC1_INT_CONFIG_APIC_ID_SHFT 32
2584 #define UVH_RTC1_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL
2585 #define UVH_RTC1_INT_CONFIG_DM_MASK 0x0000000000000700UL
2586 #define UVH_RTC1_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL
2587 #define UVH_RTC1_INT_CONFIG_STATUS_MASK 0x0000000000001000UL
2588 #define UVH_RTC1_INT_CONFIG_P_MASK 0x0000000000002000UL
2589 #define UVH_RTC1_INT_CONFIG_T_MASK 0x0000000000008000UL
2590 #define UVH_RTC1_INT_CONFIG_M_MASK 0x0000000000010000UL
2591 #define UVH_RTC1_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL
2592
2593 union uvh_rtc1_int_config_u {
2594 unsigned long v;
2595 struct uvh_rtc1_int_config_s {
2596 unsigned long vector_:8; /* RW */
2597 unsigned long dm:3; /* RW */
2598 unsigned long destmode:1; /* RW */
2599 unsigned long status:1; /* RO */
2600 unsigned long p:1; /* RO */
2601 unsigned long rsvd_14:1;
2602 unsigned long t:1; /* RO */
2603 unsigned long m:1; /* RW */
2604 unsigned long rsvd_17_31:15;
2605 unsigned long apic_id:32; /* RW */
2606 } s;
2607 };
2608
2609 /* ========================================================================= */
2610 /* UVH_SCRATCH5 */
2611 /* ========================================================================= */
2612 #define UVH_SCRATCH5 0x2d0200UL
2613 #define UVH_SCRATCH5_32 0x778
2614
2615 #define UVH_SCRATCH5_SCRATCH5_SHFT 0
2616 #define UVH_SCRATCH5_SCRATCH5_MASK 0xffffffffffffffffUL
2617
2618 union uvh_scratch5_u {
2619 unsigned long v;
2620 struct uvh_scratch5_s {
2621 unsigned long scratch5:64; /* RW, W1CS */
2622 } s;
2623 };
2624
2625 /* ========================================================================= */
2626 /* UVH_SCRATCH5_ALIAS */
2627 /* ========================================================================= */
2628 #define UVH_SCRATCH5_ALIAS 0x2d0208UL
2629 #define UVH_SCRATCH5_ALIAS_32 0x780
2630
2631
2632 /* ========================================================================= */
2633 /* UVH_SCRATCH5_ALIAS_2 */
2634 /* ========================================================================= */
2635 #define UVH_SCRATCH5_ALIAS_2 0x2d0210UL
2636 #define UVH_SCRATCH5_ALIAS_2_32 0x788
2637
2638
2639 /* ========================================================================= */
2640 /* UVXH_EVENT_OCCURRED2 */
2641 /* ========================================================================= */
2642 #define UVXH_EVENT_OCCURRED2 0x70100UL
2643 #define UVXH_EVENT_OCCURRED2_32 0xb68
2644
2645 #define UVXH_EVENT_OCCURRED2_RTC_0_SHFT 0
2646 #define UVXH_EVENT_OCCURRED2_RTC_1_SHFT 1
2647 #define UVXH_EVENT_OCCURRED2_RTC_2_SHFT 2
2648 #define UVXH_EVENT_OCCURRED2_RTC_3_SHFT 3
2649 #define UVXH_EVENT_OCCURRED2_RTC_4_SHFT 4
2650 #define UVXH_EVENT_OCCURRED2_RTC_5_SHFT 5
2651 #define UVXH_EVENT_OCCURRED2_RTC_6_SHFT 6
2652 #define UVXH_EVENT_OCCURRED2_RTC_7_SHFT 7
2653 #define UVXH_EVENT_OCCURRED2_RTC_8_SHFT 8
2654 #define UVXH_EVENT_OCCURRED2_RTC_9_SHFT 9
2655 #define UVXH_EVENT_OCCURRED2_RTC_10_SHFT 10
2656 #define UVXH_EVENT_OCCURRED2_RTC_11_SHFT 11
2657 #define UVXH_EVENT_OCCURRED2_RTC_12_SHFT 12
2658 #define UVXH_EVENT_OCCURRED2_RTC_13_SHFT 13
2659 #define UVXH_EVENT_OCCURRED2_RTC_14_SHFT 14
2660 #define UVXH_EVENT_OCCURRED2_RTC_15_SHFT 15
2661 #define UVXH_EVENT_OCCURRED2_RTC_16_SHFT 16
2662 #define UVXH_EVENT_OCCURRED2_RTC_17_SHFT 17
2663 #define UVXH_EVENT_OCCURRED2_RTC_18_SHFT 18
2664 #define UVXH_EVENT_OCCURRED2_RTC_19_SHFT 19
2665 #define UVXH_EVENT_OCCURRED2_RTC_20_SHFT 20
2666 #define UVXH_EVENT_OCCURRED2_RTC_21_SHFT 21
2667 #define UVXH_EVENT_OCCURRED2_RTC_22_SHFT 22
2668 #define UVXH_EVENT_OCCURRED2_RTC_23_SHFT 23
2669 #define UVXH_EVENT_OCCURRED2_RTC_24_SHFT 24
2670 #define UVXH_EVENT_OCCURRED2_RTC_25_SHFT 25
2671 #define UVXH_EVENT_OCCURRED2_RTC_26_SHFT 26
2672 #define UVXH_EVENT_OCCURRED2_RTC_27_SHFT 27
2673 #define UVXH_EVENT_OCCURRED2_RTC_28_SHFT 28
2674 #define UVXH_EVENT_OCCURRED2_RTC_29_SHFT 29
2675 #define UVXH_EVENT_OCCURRED2_RTC_30_SHFT 30
2676 #define UVXH_EVENT_OCCURRED2_RTC_31_SHFT 31
2677 #define UVXH_EVENT_OCCURRED2_RTC_0_MASK 0x0000000000000001UL
2678 #define UVXH_EVENT_OCCURRED2_RTC_1_MASK 0x0000000000000002UL
2679 #define UVXH_EVENT_OCCURRED2_RTC_2_MASK 0x0000000000000004UL
2680 #define UVXH_EVENT_OCCURRED2_RTC_3_MASK 0x0000000000000008UL
2681 #define UVXH_EVENT_OCCURRED2_RTC_4_MASK 0x0000000000000010UL
2682 #define UVXH_EVENT_OCCURRED2_RTC_5_MASK 0x0000000000000020UL
2683 #define UVXH_EVENT_OCCURRED2_RTC_6_MASK 0x0000000000000040UL
2684 #define UVXH_EVENT_OCCURRED2_RTC_7_MASK 0x0000000000000080UL
2685 #define UVXH_EVENT_OCCURRED2_RTC_8_MASK 0x0000000000000100UL
2686 #define UVXH_EVENT_OCCURRED2_RTC_9_MASK 0x0000000000000200UL
2687 #define UVXH_EVENT_OCCURRED2_RTC_10_MASK 0x0000000000000400UL
2688 #define UVXH_EVENT_OCCURRED2_RTC_11_MASK 0x0000000000000800UL
2689 #define UVXH_EVENT_OCCURRED2_RTC_12_MASK 0x0000000000001000UL
2690 #define UVXH_EVENT_OCCURRED2_RTC_13_MASK 0x0000000000002000UL
2691 #define UVXH_EVENT_OCCURRED2_RTC_14_MASK 0x0000000000004000UL
2692 #define UVXH_EVENT_OCCURRED2_RTC_15_MASK 0x0000000000008000UL
2693 #define UVXH_EVENT_OCCURRED2_RTC_16_MASK 0x0000000000010000UL
2694 #define UVXH_EVENT_OCCURRED2_RTC_17_MASK 0x0000000000020000UL
2695 #define UVXH_EVENT_OCCURRED2_RTC_18_MASK 0x0000000000040000UL
2696 #define UVXH_EVENT_OCCURRED2_RTC_19_MASK 0x0000000000080000UL
2697 #define UVXH_EVENT_OCCURRED2_RTC_20_MASK 0x0000000000100000UL
2698 #define UVXH_EVENT_OCCURRED2_RTC_21_MASK 0x0000000000200000UL
2699 #define UVXH_EVENT_OCCURRED2_RTC_22_MASK 0x0000000000400000UL
2700 #define UVXH_EVENT_OCCURRED2_RTC_23_MASK 0x0000000000800000UL
2701 #define UVXH_EVENT_OCCURRED2_RTC_24_MASK 0x0000000001000000UL
2702 #define UVXH_EVENT_OCCURRED2_RTC_25_MASK 0x0000000002000000UL
2703 #define UVXH_EVENT_OCCURRED2_RTC_26_MASK 0x0000000004000000UL
2704 #define UVXH_EVENT_OCCURRED2_RTC_27_MASK 0x0000000008000000UL
2705 #define UVXH_EVENT_OCCURRED2_RTC_28_MASK 0x0000000010000000UL
2706 #define UVXH_EVENT_OCCURRED2_RTC_29_MASK 0x0000000020000000UL
2707 #define UVXH_EVENT_OCCURRED2_RTC_30_MASK 0x0000000040000000UL
2708 #define UVXH_EVENT_OCCURRED2_RTC_31_MASK 0x0000000080000000UL
2709
2710 union uvxh_event_occurred2_u {
2711 unsigned long v;
2712 struct uvxh_event_occurred2_s {
2713 unsigned long rtc_0:1; /* RW */
2714 unsigned long rtc_1:1; /* RW */
2715 unsigned long rtc_2:1; /* RW */
2716 unsigned long rtc_3:1; /* RW */
2717 unsigned long rtc_4:1; /* RW */
2718 unsigned long rtc_5:1; /* RW */
2719 unsigned long rtc_6:1; /* RW */
2720 unsigned long rtc_7:1; /* RW */
2721 unsigned long rtc_8:1; /* RW */
2722 unsigned long rtc_9:1; /* RW */
2723 unsigned long rtc_10:1; /* RW */
2724 unsigned long rtc_11:1; /* RW */
2725 unsigned long rtc_12:1; /* RW */
2726 unsigned long rtc_13:1; /* RW */
2727 unsigned long rtc_14:1; /* RW */
2728 unsigned long rtc_15:1; /* RW */
2729 unsigned long rtc_16:1; /* RW */
2730 unsigned long rtc_17:1; /* RW */
2731 unsigned long rtc_18:1; /* RW */
2732 unsigned long rtc_19:1; /* RW */
2733 unsigned long rtc_20:1; /* RW */
2734 unsigned long rtc_21:1; /* RW */
2735 unsigned long rtc_22:1; /* RW */
2736 unsigned long rtc_23:1; /* RW */
2737 unsigned long rtc_24:1; /* RW */
2738 unsigned long rtc_25:1; /* RW */
2739 unsigned long rtc_26:1; /* RW */
2740 unsigned long rtc_27:1; /* RW */
2741 unsigned long rtc_28:1; /* RW */
2742 unsigned long rtc_29:1; /* RW */
2743 unsigned long rtc_30:1; /* RW */
2744 unsigned long rtc_31:1; /* RW */
2745 unsigned long rsvd_32_63:32;
2746 } sx;
2747 };
2748
2749 /* ========================================================================= */
2750 /* UVXH_EVENT_OCCURRED2_ALIAS */
2751 /* ========================================================================= */
2752 #define UVXH_EVENT_OCCURRED2_ALIAS 0x70108UL
2753 #define UVXH_EVENT_OCCURRED2_ALIAS_32 0xb70
2754
2755
2756 /* ========================================================================= */
2757 /* UVXH_LB_BAU_SB_ACTIVATION_STATUS_2 */
2758 /* ========================================================================= */
2759 #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
2760 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
2761 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
2762 #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x9f0
2763 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x320130UL
2764 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x320130UL
2765
2766 #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
2767 #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
2768
2769 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
2770 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
2771
2772 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
2773 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
2774
2775 union uvxh_lb_bau_sb_activation_status_2_u {
2776 unsigned long v;
2777 struct uvxh_lb_bau_sb_activation_status_2_s {
2778 unsigned long aux_error:64; /* RW */
2779 } sx;
2780 struct uv2h_lb_bau_sb_activation_status_2_s {
2781 unsigned long aux_error:64; /* RW */
2782 } s2;
2783 struct uv3h_lb_bau_sb_activation_status_2_s {
2784 unsigned long aux_error:64; /* RW */
2785 } s3;
2786 };
2787
2788 /* ========================================================================= */
2789 /* UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK */
2790 /* ========================================================================= */
2791 #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK 0x320130UL
2792 #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_32 0x9f0
2793
2794 #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_BIT_ENABLES_SHFT 0
2795 #define UV1H_LB_TARGET_PHYSICAL_APIC_ID_MASK_BIT_ENABLES_MASK 0x00000000ffffffffUL
2796
2797 union uv1h_lb_target_physical_apic_id_mask_u {
2798 unsigned long v;
2799 struct uv1h_lb_target_physical_apic_id_mask_s {
2800 unsigned long bit_enables:32; /* RW */
2801 unsigned long rsvd_32_63:32;
2802 } s1;
2803 };
2804
2805 /* ========================================================================= */
2806 /* UV3H_GR0_GAM_GR_CONFIG */
2807 /* ========================================================================= */
2808 #define UV3H_GR0_GAM_GR_CONFIG 0xc00028UL
2809
2810 #define UV3H_GR0_GAM_GR_CONFIG_M_SKT_SHFT 0
2811 #define UV3H_GR0_GAM_GR_CONFIG_SUBSPACE_SHFT 10
2812 #define UV3H_GR0_GAM_GR_CONFIG_M_SKT_MASK 0x000000000000003fUL
2813 #define UV3H_GR0_GAM_GR_CONFIG_SUBSPACE_MASK 0x0000000000000400UL
2814
2815 union uv3h_gr0_gam_gr_config_u {
2816 unsigned long v;
2817 struct uv3h_gr0_gam_gr_config_s {
2818 unsigned long m_skt:6; /* RW */
2819 unsigned long undef_6_9:4; /* Undefined */
2820 unsigned long subspace:1; /* RW */
2821 unsigned long reserved:53;
2822 } s3;
2823 };
2824
2825 /* ========================================================================= */
2826 /* UV3H_GR1_GAM_GR_CONFIG */
2827 /* ========================================================================= */
2828 #define UV3H_GR1_GAM_GR_CONFIG 0x1000028UL
2829
2830 #define UV3H_GR1_GAM_GR_CONFIG_M_SKT_SHFT 0
2831 #define UV3H_GR1_GAM_GR_CONFIG_SUBSPACE_SHFT 10
2832 #define UV3H_GR1_GAM_GR_CONFIG_M_SKT_MASK 0x000000000000003fUL
2833 #define UV3H_GR1_GAM_GR_CONFIG_SUBSPACE_MASK 0x0000000000000400UL
2834
2835 union uv3h_gr1_gam_gr_config_u {
2836 unsigned long v;
2837 struct uv3h_gr1_gam_gr_config_s {
2838 unsigned long m_skt:6; /* RW */
2839 unsigned long undef_6_9:4; /* Undefined */
2840 unsigned long subspace:1; /* RW */
2841 unsigned long reserved:53;
2842 } s3;
2843 };
2844
2845 /* ========================================================================= */
2846 /* UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR */
2847 /* ========================================================================= */
2848 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR 0x1603000UL
2849
2850 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_SHFT 26
2851 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT 46
2852 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_SHFT 63
2853 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK 0x00003ffffc000000UL
2854 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK 0x000fc00000000000UL
2855 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK 0x8000000000000000UL
2856
2857 union uv3h_rh_gam_mmioh_overlay_config0_mmr_u {
2858 unsigned long v;
2859 struct uv3h_rh_gam_mmioh_overlay_config0_mmr_s {
2860 unsigned long rsvd_0_25:26;
2861 unsigned long base:20; /* RW */
2862 unsigned long m_io:6; /* RW */
2863 unsigned long n_io:4;
2864 unsigned long rsvd_56_62:7;
2865 unsigned long enable:1; /* RW */
2866 } s3;
2867 };
2868
2869 /* ========================================================================= */
2870 /* UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR */
2871 /* ========================================================================= */
2872 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR 0x1604000UL
2873
2874 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_SHFT 26
2875 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT 46
2876 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_ENABLE_SHFT 63
2877 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK 0x00003ffffc000000UL
2878 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK 0x000fc00000000000UL
2879 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_ENABLE_MASK 0x8000000000000000UL
2880
2881 union uv3h_rh_gam_mmioh_overlay_config1_mmr_u {
2882 unsigned long v;
2883 struct uv3h_rh_gam_mmioh_overlay_config1_mmr_s {
2884 unsigned long rsvd_0_25:26;
2885 unsigned long base:20; /* RW */
2886 unsigned long m_io:6; /* RW */
2887 unsigned long n_io:4;
2888 unsigned long rsvd_56_62:7;
2889 unsigned long enable:1; /* RW */
2890 } s3;
2891 };
2892
2893 /* ========================================================================= */
2894 /* UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR */
2895 /* ========================================================================= */
2896 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR 0x1603800UL
2897 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH 128
2898
2899 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_SHFT 0
2900 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK 0x0000000000007fffUL
2901
2902 union uv3h_rh_gam_mmioh_redirect_config0_mmr_u {
2903 unsigned long v;
2904 struct uv3h_rh_gam_mmioh_redirect_config0_mmr_s {
2905 unsigned long nasid:15; /* RW */
2906 unsigned long rsvd_15_63:49;
2907 } s3;
2908 };
2909
2910 /* ========================================================================= */
2911 /* UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR */
2912 /* ========================================================================= */
2913 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR 0x1604800UL
2914 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH 128
2915
2916 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_SHFT 0
2917 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK 0x0000000000007fffUL
2918
2919 union uv3h_rh_gam_mmioh_redirect_config1_mmr_u {
2920 unsigned long v;
2921 struct uv3h_rh_gam_mmioh_redirect_config1_mmr_s {
2922 unsigned long nasid:15; /* RW */
2923 unsigned long rsvd_15_63:49;
2924 } s3;
2925 };
2926
2927
2928 #endif /* _ASM_X86_UV_UV_MMRS_H */