Merge branch 'md-next' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md...
[linux-2.6-block.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-2016 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, 4).
22  * UV2H - definitions specific to UV type 2 hub.
23  * UV3H - definitions specific to UV type 3 hub.
24  * UV4H - definitions specific to UV type 4 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  * use a conditional operator to define the value at runtime.
37  *      #define UV2Hxxx b
38  *      #define UV3Hxxx c
39  *      #define UV4Hxxx d
40  *      #define UV4AHxxx e
41  *      #define UVHxxx  (is_uv2_hub() ? UV2Hxxx :
42  *                      (is_uv3_hub() ? UV3Hxxx :
43  *                      (is_uv4a_hub() ? UV4AHxxx :
44  *                                      UV4Hxxx))
45  *
46  *      union uvh_xxx {
47  *              unsigned long       v;
48  *              struct uvh_xxx_s {       # Common fields only
49  *              } s;
50  *              struct uv2h_xxx_s {      # Full UV2 definition (*)
51  *              } s2;
52  *              struct uv3h_xxx_s {      # Full UV3 definition (*)
53  *              } s3;
54  *              (NOTE: No struct uv4ah_xxx_s members exist)
55  *              struct uv4h_xxx_s {      # Full UV4 definition (*)
56  *              } s4;
57  *      };
58  *              (* - if present and different than the common struct)
59  *
60  * Only essential differences are enumerated. For example, if the address is
61  * the same for all UV's, only a single #define is generated. Likewise,
62  * if the contents is the same for all hubs, only the "s" structure is
63  * generated.
64  *
65  * If the MMR exists on ONLY 1 type of hub, no generic definition is
66  * generated:
67  *      #define UVnH_xxx        <uvn address>
68  *      union uvnh_xxx {
69  *              unsigned long       v;
70  *              struct uvh_int_cmpd_s {
71  *              } sn;
72  *      };
73  *
74  * (GEN Flags: mflags_opt= undefs=function UV234=UVXH)
75  */
76
77 #define UV_MMR_ENABLE           (1UL << 63)
78
79 #define UV2_HUB_PART_NUMBER     0x8eb8
80 #define UV2_HUB_PART_NUMBER_X   0x1111
81 #define UV3_HUB_PART_NUMBER     0x9578
82 #define UV3_HUB_PART_NUMBER_X   0x4321
83 #define UV4_HUB_PART_NUMBER     0x99a1
84
85 /* Error function to catch undefined references */
86 extern unsigned long uv_undefined(char *str);
87
88 /* ========================================================================= */
89 /*                          UVH_BAU_DATA_BROADCAST                           */
90 /* ========================================================================= */
91 #define UVH_BAU_DATA_BROADCAST 0x61688UL
92
93 #define UV2H_BAU_DATA_BROADCAST_32 0x440
94 #define UV3H_BAU_DATA_BROADCAST_32 0x440
95 #define UV4H_BAU_DATA_BROADCAST_32 0x360
96 #define UVH_BAU_DATA_BROADCAST_32 (                                     \
97         is_uv2_hub() ? UV2H_BAU_DATA_BROADCAST_32 :                     \
98         is_uv3_hub() ? UV3H_BAU_DATA_BROADCAST_32 :                     \
99         /*is_uv4_hub*/ UV4H_BAU_DATA_BROADCAST_32)
100
101 #define UVH_BAU_DATA_BROADCAST_ENABLE_SHFT              0
102 #define UVH_BAU_DATA_BROADCAST_ENABLE_MASK              0x0000000000000001UL
103
104
105 union uvh_bau_data_broadcast_u {
106         unsigned long   v;
107         struct uvh_bau_data_broadcast_s {
108                 unsigned long   enable:1;                       /* RW */
109                 unsigned long   rsvd_1_63:63;
110         } s;
111 };
112
113 /* ========================================================================= */
114 /*                           UVH_BAU_DATA_CONFIG                             */
115 /* ========================================================================= */
116 #define UVH_BAU_DATA_CONFIG 0x61680UL
117
118 #define UV2H_BAU_DATA_CONFIG_32 0x438
119 #define UV3H_BAU_DATA_CONFIG_32 0x438
120 #define UV4H_BAU_DATA_CONFIG_32 0x358
121 #define UVH_BAU_DATA_CONFIG_32 (                                        \
122         is_uv2_hub() ? UV2H_BAU_DATA_CONFIG_32 :                        \
123         is_uv3_hub() ? UV3H_BAU_DATA_CONFIG_32 :                        \
124         /*is_uv4_hub*/ UV4H_BAU_DATA_CONFIG_32)
125
126 #define UVH_BAU_DATA_CONFIG_VECTOR_SHFT                 0
127 #define UVH_BAU_DATA_CONFIG_DM_SHFT                     8
128 #define UVH_BAU_DATA_CONFIG_DESTMODE_SHFT               11
129 #define UVH_BAU_DATA_CONFIG_STATUS_SHFT                 12
130 #define UVH_BAU_DATA_CONFIG_P_SHFT                      13
131 #define UVH_BAU_DATA_CONFIG_T_SHFT                      15
132 #define UVH_BAU_DATA_CONFIG_M_SHFT                      16
133 #define UVH_BAU_DATA_CONFIG_APIC_ID_SHFT                32
134 #define UVH_BAU_DATA_CONFIG_VECTOR_MASK                 0x00000000000000ffUL
135 #define UVH_BAU_DATA_CONFIG_DM_MASK                     0x0000000000000700UL
136 #define UVH_BAU_DATA_CONFIG_DESTMODE_MASK               0x0000000000000800UL
137 #define UVH_BAU_DATA_CONFIG_STATUS_MASK                 0x0000000000001000UL
138 #define UVH_BAU_DATA_CONFIG_P_MASK                      0x0000000000002000UL
139 #define UVH_BAU_DATA_CONFIG_T_MASK                      0x0000000000008000UL
140 #define UVH_BAU_DATA_CONFIG_M_MASK                      0x0000000000010000UL
141 #define UVH_BAU_DATA_CONFIG_APIC_ID_MASK                0xffffffff00000000UL
142
143
144 union uvh_bau_data_config_u {
145         unsigned long   v;
146         struct uvh_bau_data_config_s {
147                 unsigned long   vector_:8;                      /* RW */
148                 unsigned long   dm:3;                           /* RW */
149                 unsigned long   destmode:1;                     /* RW */
150                 unsigned long   status:1;                       /* RO */
151                 unsigned long   p:1;                            /* RO */
152                 unsigned long   rsvd_14:1;
153                 unsigned long   t:1;                            /* RO */
154                 unsigned long   m:1;                            /* RW */
155                 unsigned long   rsvd_17_31:15;
156                 unsigned long   apic_id:32;                     /* RW */
157         } s;
158 };
159
160 /* ========================================================================= */
161 /*                           UVH_EVENT_OCCURRED0                             */
162 /* ========================================================================= */
163 #define UVH_EVENT_OCCURRED0 0x70000UL
164 #define UVH_EVENT_OCCURRED0_32 0x5e8
165
166 #define UVH_EVENT_OCCURRED0_LB_HCERR_SHFT               0
167 #define UVH_EVENT_OCCURRED0_RH_AOERR0_SHFT              11
168 #define UVH_EVENT_OCCURRED0_LB_HCERR_MASK               0x0000000000000001UL
169 #define UVH_EVENT_OCCURRED0_RH_AOERR0_MASK              0x0000000000000800UL
170
171 #define UVXH_EVENT_OCCURRED0_RH_HCERR_SHFT              2
172 #define UVXH_EVENT_OCCURRED0_LH0_HCERR_SHFT             3
173 #define UVXH_EVENT_OCCURRED0_LH1_HCERR_SHFT             4
174 #define UVXH_EVENT_OCCURRED0_GR0_HCERR_SHFT             5
175 #define UVXH_EVENT_OCCURRED0_GR1_HCERR_SHFT             6
176 #define UVXH_EVENT_OCCURRED0_NI0_HCERR_SHFT             7
177 #define UVXH_EVENT_OCCURRED0_NI1_HCERR_SHFT             8
178 #define UVXH_EVENT_OCCURRED0_LB_AOERR0_SHFT             9
179 #define UVXH_EVENT_OCCURRED0_LH0_AOERR0_SHFT            12
180 #define UVXH_EVENT_OCCURRED0_LH1_AOERR0_SHFT            13
181 #define UVXH_EVENT_OCCURRED0_GR0_AOERR0_SHFT            14
182 #define UVXH_EVENT_OCCURRED0_GR1_AOERR0_SHFT            15
183 #define UVXH_EVENT_OCCURRED0_XB_AOERR0_SHFT             16
184 #define UVXH_EVENT_OCCURRED0_RH_HCERR_MASK              0x0000000000000004UL
185 #define UVXH_EVENT_OCCURRED0_LH0_HCERR_MASK             0x0000000000000008UL
186 #define UVXH_EVENT_OCCURRED0_LH1_HCERR_MASK             0x0000000000000010UL
187 #define UVXH_EVENT_OCCURRED0_GR0_HCERR_MASK             0x0000000000000020UL
188 #define UVXH_EVENT_OCCURRED0_GR1_HCERR_MASK             0x0000000000000040UL
189 #define UVXH_EVENT_OCCURRED0_NI0_HCERR_MASK             0x0000000000000080UL
190 #define UVXH_EVENT_OCCURRED0_NI1_HCERR_MASK             0x0000000000000100UL
191 #define UVXH_EVENT_OCCURRED0_LB_AOERR0_MASK             0x0000000000000200UL
192 #define UVXH_EVENT_OCCURRED0_LH0_AOERR0_MASK            0x0000000000001000UL
193 #define UVXH_EVENT_OCCURRED0_LH1_AOERR0_MASK            0x0000000000002000UL
194 #define UVXH_EVENT_OCCURRED0_GR0_AOERR0_MASK            0x0000000000004000UL
195 #define UVXH_EVENT_OCCURRED0_GR1_AOERR0_MASK            0x0000000000008000UL
196 #define UVXH_EVENT_OCCURRED0_XB_AOERR0_MASK             0x0000000000010000UL
197
198 #define UV2H_EVENT_OCCURRED0_QP_HCERR_SHFT              1
199 #define UV2H_EVENT_OCCURRED0_QP_AOERR0_SHFT             10
200 #define UV2H_EVENT_OCCURRED0_RT_AOERR0_SHFT             17
201 #define UV2H_EVENT_OCCURRED0_NI0_AOERR0_SHFT            18
202 #define UV2H_EVENT_OCCURRED0_NI1_AOERR0_SHFT            19
203 #define UV2H_EVENT_OCCURRED0_LB_AOERR1_SHFT             20
204 #define UV2H_EVENT_OCCURRED0_QP_AOERR1_SHFT             21
205 #define UV2H_EVENT_OCCURRED0_RH_AOERR1_SHFT             22
206 #define UV2H_EVENT_OCCURRED0_LH0_AOERR1_SHFT            23
207 #define UV2H_EVENT_OCCURRED0_LH1_AOERR1_SHFT            24
208 #define UV2H_EVENT_OCCURRED0_GR0_AOERR1_SHFT            25
209 #define UV2H_EVENT_OCCURRED0_GR1_AOERR1_SHFT            26
210 #define UV2H_EVENT_OCCURRED0_XB_AOERR1_SHFT             27
211 #define UV2H_EVENT_OCCURRED0_RT_AOERR1_SHFT             28
212 #define UV2H_EVENT_OCCURRED0_NI0_AOERR1_SHFT            29
213 #define UV2H_EVENT_OCCURRED0_NI1_AOERR1_SHFT            30
214 #define UV2H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT   31
215 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT          32
216 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT          33
217 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT          34
218 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT          35
219 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT          36
220 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT          37
221 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT          38
222 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT          39
223 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT          40
224 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT          41
225 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT         42
226 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT         43
227 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT         44
228 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT         45
229 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT         46
230 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT         47
231 #define UV2H_EVENT_OCCURRED0_L1_NMI_INT_SHFT            48
232 #define UV2H_EVENT_OCCURRED0_STOP_CLOCK_SHFT            49
233 #define UV2H_EVENT_OCCURRED0_ASIC_TO_L1_SHFT            50
234 #define UV2H_EVENT_OCCURRED0_L1_TO_ASIC_SHFT            51
235 #define UV2H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT        52
236 #define UV2H_EVENT_OCCURRED0_IPI_INT_SHFT               53
237 #define UV2H_EVENT_OCCURRED0_EXTIO_INT0_SHFT            54
238 #define UV2H_EVENT_OCCURRED0_EXTIO_INT1_SHFT            55
239 #define UV2H_EVENT_OCCURRED0_EXTIO_INT2_SHFT            56
240 #define UV2H_EVENT_OCCURRED0_EXTIO_INT3_SHFT            57
241 #define UV2H_EVENT_OCCURRED0_PROFILE_INT_SHFT           58
242 #define UV2H_EVENT_OCCURRED0_QP_HCERR_MASK              0x0000000000000002UL
243 #define UV2H_EVENT_OCCURRED0_QP_AOERR0_MASK             0x0000000000000400UL
244 #define UV2H_EVENT_OCCURRED0_RT_AOERR0_MASK             0x0000000000020000UL
245 #define UV2H_EVENT_OCCURRED0_NI0_AOERR0_MASK            0x0000000000040000UL
246 #define UV2H_EVENT_OCCURRED0_NI1_AOERR0_MASK            0x0000000000080000UL
247 #define UV2H_EVENT_OCCURRED0_LB_AOERR1_MASK             0x0000000000100000UL
248 #define UV2H_EVENT_OCCURRED0_QP_AOERR1_MASK             0x0000000000200000UL
249 #define UV2H_EVENT_OCCURRED0_RH_AOERR1_MASK             0x0000000000400000UL
250 #define UV2H_EVENT_OCCURRED0_LH0_AOERR1_MASK            0x0000000000800000UL
251 #define UV2H_EVENT_OCCURRED0_LH1_AOERR1_MASK            0x0000000001000000UL
252 #define UV2H_EVENT_OCCURRED0_GR0_AOERR1_MASK            0x0000000002000000UL
253 #define UV2H_EVENT_OCCURRED0_GR1_AOERR1_MASK            0x0000000004000000UL
254 #define UV2H_EVENT_OCCURRED0_XB_AOERR1_MASK             0x0000000008000000UL
255 #define UV2H_EVENT_OCCURRED0_RT_AOERR1_MASK             0x0000000010000000UL
256 #define UV2H_EVENT_OCCURRED0_NI0_AOERR1_MASK            0x0000000020000000UL
257 #define UV2H_EVENT_OCCURRED0_NI1_AOERR1_MASK            0x0000000040000000UL
258 #define UV2H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK   0x0000000080000000UL
259 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK          0x0000000100000000UL
260 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK          0x0000000200000000UL
261 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK          0x0000000400000000UL
262 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK          0x0000000800000000UL
263 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK          0x0000001000000000UL
264 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK          0x0000002000000000UL
265 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK          0x0000004000000000UL
266 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK          0x0000008000000000UL
267 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK          0x0000010000000000UL
268 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK          0x0000020000000000UL
269 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK         0x0000040000000000UL
270 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK         0x0000080000000000UL
271 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK         0x0000100000000000UL
272 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK         0x0000200000000000UL
273 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK         0x0000400000000000UL
274 #define UV2H_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK         0x0000800000000000UL
275 #define UV2H_EVENT_OCCURRED0_L1_NMI_INT_MASK            0x0001000000000000UL
276 #define UV2H_EVENT_OCCURRED0_STOP_CLOCK_MASK            0x0002000000000000UL
277 #define UV2H_EVENT_OCCURRED0_ASIC_TO_L1_MASK            0x0004000000000000UL
278 #define UV2H_EVENT_OCCURRED0_L1_TO_ASIC_MASK            0x0008000000000000UL
279 #define UV2H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK        0x0010000000000000UL
280 #define UV2H_EVENT_OCCURRED0_IPI_INT_MASK               0x0020000000000000UL
281 #define UV2H_EVENT_OCCURRED0_EXTIO_INT0_MASK            0x0040000000000000UL
282 #define UV2H_EVENT_OCCURRED0_EXTIO_INT1_MASK            0x0080000000000000UL
283 #define UV2H_EVENT_OCCURRED0_EXTIO_INT2_MASK            0x0100000000000000UL
284 #define UV2H_EVENT_OCCURRED0_EXTIO_INT3_MASK            0x0200000000000000UL
285 #define UV2H_EVENT_OCCURRED0_PROFILE_INT_MASK           0x0400000000000000UL
286
287 #define UV3H_EVENT_OCCURRED0_QP_HCERR_SHFT              1
288 #define UV3H_EVENT_OCCURRED0_QP_AOERR0_SHFT             10
289 #define UV3H_EVENT_OCCURRED0_RT_AOERR0_SHFT             17
290 #define UV3H_EVENT_OCCURRED0_NI0_AOERR0_SHFT            18
291 #define UV3H_EVENT_OCCURRED0_NI1_AOERR0_SHFT            19
292 #define UV3H_EVENT_OCCURRED0_LB_AOERR1_SHFT             20
293 #define UV3H_EVENT_OCCURRED0_QP_AOERR1_SHFT             21
294 #define UV3H_EVENT_OCCURRED0_RH_AOERR1_SHFT             22
295 #define UV3H_EVENT_OCCURRED0_LH0_AOERR1_SHFT            23
296 #define UV3H_EVENT_OCCURRED0_LH1_AOERR1_SHFT            24
297 #define UV3H_EVENT_OCCURRED0_GR0_AOERR1_SHFT            25
298 #define UV3H_EVENT_OCCURRED0_GR1_AOERR1_SHFT            26
299 #define UV3H_EVENT_OCCURRED0_XB_AOERR1_SHFT             27
300 #define UV3H_EVENT_OCCURRED0_RT_AOERR1_SHFT             28
301 #define UV3H_EVENT_OCCURRED0_NI0_AOERR1_SHFT            29
302 #define UV3H_EVENT_OCCURRED0_NI1_AOERR1_SHFT            30
303 #define UV3H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT   31
304 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT          32
305 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT          33
306 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT          34
307 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT          35
308 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT          36
309 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT          37
310 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT          38
311 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT          39
312 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT          40
313 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT          41
314 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT         42
315 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT         43
316 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT         44
317 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT         45
318 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT         46
319 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT         47
320 #define UV3H_EVENT_OCCURRED0_L1_NMI_INT_SHFT            48
321 #define UV3H_EVENT_OCCURRED0_STOP_CLOCK_SHFT            49
322 #define UV3H_EVENT_OCCURRED0_ASIC_TO_L1_SHFT            50
323 #define UV3H_EVENT_OCCURRED0_L1_TO_ASIC_SHFT            51
324 #define UV3H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT        52
325 #define UV3H_EVENT_OCCURRED0_IPI_INT_SHFT               53
326 #define UV3H_EVENT_OCCURRED0_EXTIO_INT0_SHFT            54
327 #define UV3H_EVENT_OCCURRED0_EXTIO_INT1_SHFT            55
328 #define UV3H_EVENT_OCCURRED0_EXTIO_INT2_SHFT            56
329 #define UV3H_EVENT_OCCURRED0_EXTIO_INT3_SHFT            57
330 #define UV3H_EVENT_OCCURRED0_PROFILE_INT_SHFT           58
331 #define UV3H_EVENT_OCCURRED0_QP_HCERR_MASK              0x0000000000000002UL
332 #define UV3H_EVENT_OCCURRED0_QP_AOERR0_MASK             0x0000000000000400UL
333 #define UV3H_EVENT_OCCURRED0_RT_AOERR0_MASK             0x0000000000020000UL
334 #define UV3H_EVENT_OCCURRED0_NI0_AOERR0_MASK            0x0000000000040000UL
335 #define UV3H_EVENT_OCCURRED0_NI1_AOERR0_MASK            0x0000000000080000UL
336 #define UV3H_EVENT_OCCURRED0_LB_AOERR1_MASK             0x0000000000100000UL
337 #define UV3H_EVENT_OCCURRED0_QP_AOERR1_MASK             0x0000000000200000UL
338 #define UV3H_EVENT_OCCURRED0_RH_AOERR1_MASK             0x0000000000400000UL
339 #define UV3H_EVENT_OCCURRED0_LH0_AOERR1_MASK            0x0000000000800000UL
340 #define UV3H_EVENT_OCCURRED0_LH1_AOERR1_MASK            0x0000000001000000UL
341 #define UV3H_EVENT_OCCURRED0_GR0_AOERR1_MASK            0x0000000002000000UL
342 #define UV3H_EVENT_OCCURRED0_GR1_AOERR1_MASK            0x0000000004000000UL
343 #define UV3H_EVENT_OCCURRED0_XB_AOERR1_MASK             0x0000000008000000UL
344 #define UV3H_EVENT_OCCURRED0_RT_AOERR1_MASK             0x0000000010000000UL
345 #define UV3H_EVENT_OCCURRED0_NI0_AOERR1_MASK            0x0000000020000000UL
346 #define UV3H_EVENT_OCCURRED0_NI1_AOERR1_MASK            0x0000000040000000UL
347 #define UV3H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK   0x0000000080000000UL
348 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK          0x0000000100000000UL
349 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK          0x0000000200000000UL
350 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK          0x0000000400000000UL
351 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK          0x0000000800000000UL
352 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK          0x0000001000000000UL
353 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK          0x0000002000000000UL
354 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK          0x0000004000000000UL
355 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK          0x0000008000000000UL
356 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK          0x0000010000000000UL
357 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK          0x0000020000000000UL
358 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK         0x0000040000000000UL
359 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK         0x0000080000000000UL
360 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK         0x0000100000000000UL
361 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK         0x0000200000000000UL
362 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK         0x0000400000000000UL
363 #define UV3H_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK         0x0000800000000000UL
364 #define UV3H_EVENT_OCCURRED0_L1_NMI_INT_MASK            0x0001000000000000UL
365 #define UV3H_EVENT_OCCURRED0_STOP_CLOCK_MASK            0x0002000000000000UL
366 #define UV3H_EVENT_OCCURRED0_ASIC_TO_L1_MASK            0x0004000000000000UL
367 #define UV3H_EVENT_OCCURRED0_L1_TO_ASIC_MASK            0x0008000000000000UL
368 #define UV3H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK        0x0010000000000000UL
369 #define UV3H_EVENT_OCCURRED0_IPI_INT_MASK               0x0020000000000000UL
370 #define UV3H_EVENT_OCCURRED0_EXTIO_INT0_MASK            0x0040000000000000UL
371 #define UV3H_EVENT_OCCURRED0_EXTIO_INT1_MASK            0x0080000000000000UL
372 #define UV3H_EVENT_OCCURRED0_EXTIO_INT2_MASK            0x0100000000000000UL
373 #define UV3H_EVENT_OCCURRED0_EXTIO_INT3_MASK            0x0200000000000000UL
374 #define UV3H_EVENT_OCCURRED0_PROFILE_INT_MASK           0x0400000000000000UL
375
376 #define UV4H_EVENT_OCCURRED0_KT_HCERR_SHFT              1
377 #define UV4H_EVENT_OCCURRED0_KT_AOERR0_SHFT             10
378 #define UV4H_EVENT_OCCURRED0_RTQ0_AOERR0_SHFT           17
379 #define UV4H_EVENT_OCCURRED0_RTQ1_AOERR0_SHFT           18
380 #define UV4H_EVENT_OCCURRED0_RTQ2_AOERR0_SHFT           19
381 #define UV4H_EVENT_OCCURRED0_RTQ3_AOERR0_SHFT           20
382 #define UV4H_EVENT_OCCURRED0_NI0_AOERR0_SHFT            21
383 #define UV4H_EVENT_OCCURRED0_NI1_AOERR0_SHFT            22
384 #define UV4H_EVENT_OCCURRED0_LB_AOERR1_SHFT             23
385 #define UV4H_EVENT_OCCURRED0_KT_AOERR1_SHFT             24
386 #define UV4H_EVENT_OCCURRED0_RH_AOERR1_SHFT             25
387 #define UV4H_EVENT_OCCURRED0_LH0_AOERR1_SHFT            26
388 #define UV4H_EVENT_OCCURRED0_LH1_AOERR1_SHFT            27
389 #define UV4H_EVENT_OCCURRED0_GR0_AOERR1_SHFT            28
390 #define UV4H_EVENT_OCCURRED0_GR1_AOERR1_SHFT            29
391 #define UV4H_EVENT_OCCURRED0_XB_AOERR1_SHFT             30
392 #define UV4H_EVENT_OCCURRED0_RTQ0_AOERR1_SHFT           31
393 #define UV4H_EVENT_OCCURRED0_RTQ1_AOERR1_SHFT           32
394 #define UV4H_EVENT_OCCURRED0_RTQ2_AOERR1_SHFT           33
395 #define UV4H_EVENT_OCCURRED0_RTQ3_AOERR1_SHFT           34
396 #define UV4H_EVENT_OCCURRED0_NI0_AOERR1_SHFT            35
397 #define UV4H_EVENT_OCCURRED0_NI1_AOERR1_SHFT            36
398 #define UV4H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT   37
399 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT          38
400 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT          39
401 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT          40
402 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT          41
403 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT          42
404 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT          43
405 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT          44
406 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT          45
407 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT          46
408 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT          47
409 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT         48
410 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT         49
411 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT         50
412 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT         51
413 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT         52
414 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT         53
415 #define UV4H_EVENT_OCCURRED0_L1_NMI_INT_SHFT            54
416 #define UV4H_EVENT_OCCURRED0_STOP_CLOCK_SHFT            55
417 #define UV4H_EVENT_OCCURRED0_ASIC_TO_L1_SHFT            56
418 #define UV4H_EVENT_OCCURRED0_L1_TO_ASIC_SHFT            57
419 #define UV4H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT        58
420 #define UV4H_EVENT_OCCURRED0_IPI_INT_SHFT               59
421 #define UV4H_EVENT_OCCURRED0_EXTIO_INT0_SHFT            60
422 #define UV4H_EVENT_OCCURRED0_EXTIO_INT1_SHFT            61
423 #define UV4H_EVENT_OCCURRED0_EXTIO_INT2_SHFT            62
424 #define UV4H_EVENT_OCCURRED0_EXTIO_INT3_SHFT            63
425 #define UV4H_EVENT_OCCURRED0_KT_HCERR_MASK              0x0000000000000002UL
426 #define UV4H_EVENT_OCCURRED0_KT_AOERR0_MASK             0x0000000000000400UL
427 #define UV4H_EVENT_OCCURRED0_RTQ0_AOERR0_MASK           0x0000000000020000UL
428 #define UV4H_EVENT_OCCURRED0_RTQ1_AOERR0_MASK           0x0000000000040000UL
429 #define UV4H_EVENT_OCCURRED0_RTQ2_AOERR0_MASK           0x0000000000080000UL
430 #define UV4H_EVENT_OCCURRED0_RTQ3_AOERR0_MASK           0x0000000000100000UL
431 #define UV4H_EVENT_OCCURRED0_NI0_AOERR0_MASK            0x0000000000200000UL
432 #define UV4H_EVENT_OCCURRED0_NI1_AOERR0_MASK            0x0000000000400000UL
433 #define UV4H_EVENT_OCCURRED0_LB_AOERR1_MASK             0x0000000000800000UL
434 #define UV4H_EVENT_OCCURRED0_KT_AOERR1_MASK             0x0000000001000000UL
435 #define UV4H_EVENT_OCCURRED0_RH_AOERR1_MASK             0x0000000002000000UL
436 #define UV4H_EVENT_OCCURRED0_LH0_AOERR1_MASK            0x0000000004000000UL
437 #define UV4H_EVENT_OCCURRED0_LH1_AOERR1_MASK            0x0000000008000000UL
438 #define UV4H_EVENT_OCCURRED0_GR0_AOERR1_MASK            0x0000000010000000UL
439 #define UV4H_EVENT_OCCURRED0_GR1_AOERR1_MASK            0x0000000020000000UL
440 #define UV4H_EVENT_OCCURRED0_XB_AOERR1_MASK             0x0000000040000000UL
441 #define UV4H_EVENT_OCCURRED0_RTQ0_AOERR1_MASK           0x0000000080000000UL
442 #define UV4H_EVENT_OCCURRED0_RTQ1_AOERR1_MASK           0x0000000100000000UL
443 #define UV4H_EVENT_OCCURRED0_RTQ2_AOERR1_MASK           0x0000000200000000UL
444 #define UV4H_EVENT_OCCURRED0_RTQ3_AOERR1_MASK           0x0000000400000000UL
445 #define UV4H_EVENT_OCCURRED0_NI0_AOERR1_MASK            0x0000000800000000UL
446 #define UV4H_EVENT_OCCURRED0_NI1_AOERR1_MASK            0x0000001000000000UL
447 #define UV4H_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK   0x0000002000000000UL
448 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK          0x0000004000000000UL
449 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK          0x0000008000000000UL
450 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK          0x0000010000000000UL
451 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK          0x0000020000000000UL
452 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK          0x0000040000000000UL
453 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK          0x0000080000000000UL
454 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK          0x0000100000000000UL
455 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK          0x0000200000000000UL
456 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK          0x0000400000000000UL
457 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK          0x0000800000000000UL
458 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK         0x0001000000000000UL
459 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK         0x0002000000000000UL
460 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK         0x0004000000000000UL
461 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK         0x0008000000000000UL
462 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK         0x0010000000000000UL
463 #define UV4H_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK         0x0020000000000000UL
464 #define UV4H_EVENT_OCCURRED0_L1_NMI_INT_MASK            0x0040000000000000UL
465 #define UV4H_EVENT_OCCURRED0_STOP_CLOCK_MASK            0x0080000000000000UL
466 #define UV4H_EVENT_OCCURRED0_ASIC_TO_L1_MASK            0x0100000000000000UL
467 #define UV4H_EVENT_OCCURRED0_L1_TO_ASIC_MASK            0x0200000000000000UL
468 #define UV4H_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK        0x0400000000000000UL
469 #define UV4H_EVENT_OCCURRED0_IPI_INT_MASK               0x0800000000000000UL
470 #define UV4H_EVENT_OCCURRED0_EXTIO_INT0_MASK            0x1000000000000000UL
471 #define UV4H_EVENT_OCCURRED0_EXTIO_INT1_MASK            0x2000000000000000UL
472 #define UV4H_EVENT_OCCURRED0_EXTIO_INT2_MASK            0x4000000000000000UL
473 #define UV4H_EVENT_OCCURRED0_EXTIO_INT3_MASK            0x8000000000000000UL
474
475 #define UVH_EVENT_OCCURRED0_EXTIO_INT0_SHFT (                           \
476         is_uv2_hub() ? UV2H_EVENT_OCCURRED0_EXTIO_INT0_SHFT :           \
477         is_uv3_hub() ? UV3H_EVENT_OCCURRED0_EXTIO_INT0_SHFT :           \
478         /*is_uv4_hub*/ UV4H_EVENT_OCCURRED0_EXTIO_INT0_SHFT)
479
480 union uvh_event_occurred0_u {
481         unsigned long   v;
482         struct uvh_event_occurred0_s {
483                 unsigned long   lb_hcerr:1;                     /* RW, W1C */
484                 unsigned long   rsvd_1_10:10;
485                 unsigned long   rh_aoerr0:1;                    /* RW, W1C */
486                 unsigned long   rsvd_12_63:52;
487         } s;
488         struct uvxh_event_occurred0_s {
489                 unsigned long   lb_hcerr:1;                     /* RW */
490                 unsigned long   rsvd_1:1;
491                 unsigned long   rh_hcerr:1;                     /* RW */
492                 unsigned long   lh0_hcerr:1;                    /* RW */
493                 unsigned long   lh1_hcerr:1;                    /* RW */
494                 unsigned long   gr0_hcerr:1;                    /* RW */
495                 unsigned long   gr1_hcerr:1;                    /* RW */
496                 unsigned long   ni0_hcerr:1;                    /* RW */
497                 unsigned long   ni1_hcerr:1;                    /* RW */
498                 unsigned long   lb_aoerr0:1;                    /* RW */
499                 unsigned long   rsvd_10:1;
500                 unsigned long   rh_aoerr0:1;                    /* RW */
501                 unsigned long   lh0_aoerr0:1;                   /* RW */
502                 unsigned long   lh1_aoerr0:1;                   /* RW */
503                 unsigned long   gr0_aoerr0:1;                   /* RW */
504                 unsigned long   gr1_aoerr0:1;                   /* RW */
505                 unsigned long   xb_aoerr0:1;                    /* RW */
506                 unsigned long   rsvd_17_63:47;
507         } sx;
508         struct uv4h_event_occurred0_s {
509                 unsigned long   lb_hcerr:1;                     /* RW */
510                 unsigned long   kt_hcerr:1;                     /* RW */
511                 unsigned long   rh_hcerr:1;                     /* RW */
512                 unsigned long   lh0_hcerr:1;                    /* RW */
513                 unsigned long   lh1_hcerr:1;                    /* RW */
514                 unsigned long   gr0_hcerr:1;                    /* RW */
515                 unsigned long   gr1_hcerr:1;                    /* RW */
516                 unsigned long   ni0_hcerr:1;                    /* RW */
517                 unsigned long   ni1_hcerr:1;                    /* RW */
518                 unsigned long   lb_aoerr0:1;                    /* RW */
519                 unsigned long   kt_aoerr0:1;                    /* RW */
520                 unsigned long   rh_aoerr0:1;                    /* RW */
521                 unsigned long   lh0_aoerr0:1;                   /* RW */
522                 unsigned long   lh1_aoerr0:1;                   /* RW */
523                 unsigned long   gr0_aoerr0:1;                   /* RW */
524                 unsigned long   gr1_aoerr0:1;                   /* RW */
525                 unsigned long   xb_aoerr0:1;                    /* RW */
526                 unsigned long   rtq0_aoerr0:1;                  /* RW */
527                 unsigned long   rtq1_aoerr0:1;                  /* RW */
528                 unsigned long   rtq2_aoerr0:1;                  /* RW */
529                 unsigned long   rtq3_aoerr0:1;                  /* RW */
530                 unsigned long   ni0_aoerr0:1;                   /* RW */
531                 unsigned long   ni1_aoerr0:1;                   /* RW */
532                 unsigned long   lb_aoerr1:1;                    /* RW */
533                 unsigned long   kt_aoerr1:1;                    /* RW */
534                 unsigned long   rh_aoerr1:1;                    /* RW */
535                 unsigned long   lh0_aoerr1:1;                   /* RW */
536                 unsigned long   lh1_aoerr1:1;                   /* RW */
537                 unsigned long   gr0_aoerr1:1;                   /* RW */
538                 unsigned long   gr1_aoerr1:1;                   /* RW */
539                 unsigned long   xb_aoerr1:1;                    /* RW */
540                 unsigned long   rtq0_aoerr1:1;                  /* RW */
541                 unsigned long   rtq1_aoerr1:1;                  /* RW */
542                 unsigned long   rtq2_aoerr1:1;                  /* RW */
543                 unsigned long   rtq3_aoerr1:1;                  /* RW */
544                 unsigned long   ni0_aoerr1:1;                   /* RW */
545                 unsigned long   ni1_aoerr1:1;                   /* RW */
546                 unsigned long   system_shutdown_int:1;          /* RW */
547                 unsigned long   lb_irq_int_0:1;                 /* RW */
548                 unsigned long   lb_irq_int_1:1;                 /* RW */
549                 unsigned long   lb_irq_int_2:1;                 /* RW */
550                 unsigned long   lb_irq_int_3:1;                 /* RW */
551                 unsigned long   lb_irq_int_4:1;                 /* RW */
552                 unsigned long   lb_irq_int_5:1;                 /* RW */
553                 unsigned long   lb_irq_int_6:1;                 /* RW */
554                 unsigned long   lb_irq_int_7:1;                 /* RW */
555                 unsigned long   lb_irq_int_8:1;                 /* RW */
556                 unsigned long   lb_irq_int_9:1;                 /* RW */
557                 unsigned long   lb_irq_int_10:1;                /* RW */
558                 unsigned long   lb_irq_int_11:1;                /* RW */
559                 unsigned long   lb_irq_int_12:1;                /* RW */
560                 unsigned long   lb_irq_int_13:1;                /* RW */
561                 unsigned long   lb_irq_int_14:1;                /* RW */
562                 unsigned long   lb_irq_int_15:1;                /* RW */
563                 unsigned long   l1_nmi_int:1;                   /* RW */
564                 unsigned long   stop_clock:1;                   /* RW */
565                 unsigned long   asic_to_l1:1;                   /* RW */
566                 unsigned long   l1_to_asic:1;                   /* RW */
567                 unsigned long   la_seq_trigger:1;               /* RW */
568                 unsigned long   ipi_int:1;                      /* RW */
569                 unsigned long   extio_int0:1;                   /* RW */
570                 unsigned long   extio_int1:1;                   /* RW */
571                 unsigned long   extio_int2:1;                   /* RW */
572                 unsigned long   extio_int3:1;                   /* RW */
573         } s4;
574 };
575
576 /* ========================================================================= */
577 /*                        UVH_EVENT_OCCURRED0_ALIAS                          */
578 /* ========================================================================= */
579 #define UVH_EVENT_OCCURRED0_ALIAS 0x70008UL
580 #define UVH_EVENT_OCCURRED0_ALIAS_32 0x5f0
581
582
583 /* ========================================================================= */
584 /*                         UVH_EXTIO_INT0_BROADCAST                          */
585 /* ========================================================================= */
586 #define UVH_EXTIO_INT0_BROADCAST 0x61448UL
587
588 #define UV2H_EXTIO_INT0_BROADCAST_32 0x3f0
589 #define UV3H_EXTIO_INT0_BROADCAST_32 0x3f0
590 #define UV4H_EXTIO_INT0_BROADCAST_32 0x310
591 #define UVH_EXTIO_INT0_BROADCAST_32 (                                   \
592         is_uv2_hub() ? UV2H_EXTIO_INT0_BROADCAST_32 :                   \
593         is_uv3_hub() ? UV3H_EXTIO_INT0_BROADCAST_32 :                   \
594         /*is_uv4_hub*/ UV4H_EXTIO_INT0_BROADCAST_32)
595
596 #define UVH_EXTIO_INT0_BROADCAST_ENABLE_SHFT            0
597 #define UVH_EXTIO_INT0_BROADCAST_ENABLE_MASK            0x0000000000000001UL
598
599
600 union uvh_extio_int0_broadcast_u {
601         unsigned long   v;
602         struct uvh_extio_int0_broadcast_s {
603                 unsigned long   enable:1;                       /* RW */
604                 unsigned long   rsvd_1_63:63;
605         } s;
606 };
607
608 /* ========================================================================= */
609 /*                         UVH_GR0_TLB_INT0_CONFIG                           */
610 /* ========================================================================= */
611 #define UVH_GR0_TLB_INT0_CONFIG 0x61b00UL
612
613 #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_SHFT             0
614 #define UVH_GR0_TLB_INT0_CONFIG_DM_SHFT                 8
615 #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_SHFT           11
616 #define UVH_GR0_TLB_INT0_CONFIG_STATUS_SHFT             12
617 #define UVH_GR0_TLB_INT0_CONFIG_P_SHFT                  13
618 #define UVH_GR0_TLB_INT0_CONFIG_T_SHFT                  15
619 #define UVH_GR0_TLB_INT0_CONFIG_M_SHFT                  16
620 #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_SHFT            32
621 #define UVH_GR0_TLB_INT0_CONFIG_VECTOR_MASK             0x00000000000000ffUL
622 #define UVH_GR0_TLB_INT0_CONFIG_DM_MASK                 0x0000000000000700UL
623 #define UVH_GR0_TLB_INT0_CONFIG_DESTMODE_MASK           0x0000000000000800UL
624 #define UVH_GR0_TLB_INT0_CONFIG_STATUS_MASK             0x0000000000001000UL
625 #define UVH_GR0_TLB_INT0_CONFIG_P_MASK                  0x0000000000002000UL
626 #define UVH_GR0_TLB_INT0_CONFIG_T_MASK                  0x0000000000008000UL
627 #define UVH_GR0_TLB_INT0_CONFIG_M_MASK                  0x0000000000010000UL
628 #define UVH_GR0_TLB_INT0_CONFIG_APIC_ID_MASK            0xffffffff00000000UL
629
630
631 union uvh_gr0_tlb_int0_config_u {
632         unsigned long   v;
633         struct uvh_gr0_tlb_int0_config_s {
634                 unsigned long   vector_:8;                      /* RW */
635                 unsigned long   dm:3;                           /* RW */
636                 unsigned long   destmode:1;                     /* RW */
637                 unsigned long   status:1;                       /* RO */
638                 unsigned long   p:1;                            /* RO */
639                 unsigned long   rsvd_14:1;
640                 unsigned long   t:1;                            /* RO */
641                 unsigned long   m:1;                            /* RW */
642                 unsigned long   rsvd_17_31:15;
643                 unsigned long   apic_id:32;                     /* RW */
644         } s;
645 };
646
647 /* ========================================================================= */
648 /*                         UVH_GR0_TLB_INT1_CONFIG                           */
649 /* ========================================================================= */
650 #define UVH_GR0_TLB_INT1_CONFIG 0x61b40UL
651
652 #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_SHFT             0
653 #define UVH_GR0_TLB_INT1_CONFIG_DM_SHFT                 8
654 #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_SHFT           11
655 #define UVH_GR0_TLB_INT1_CONFIG_STATUS_SHFT             12
656 #define UVH_GR0_TLB_INT1_CONFIG_P_SHFT                  13
657 #define UVH_GR0_TLB_INT1_CONFIG_T_SHFT                  15
658 #define UVH_GR0_TLB_INT1_CONFIG_M_SHFT                  16
659 #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_SHFT            32
660 #define UVH_GR0_TLB_INT1_CONFIG_VECTOR_MASK             0x00000000000000ffUL
661 #define UVH_GR0_TLB_INT1_CONFIG_DM_MASK                 0x0000000000000700UL
662 #define UVH_GR0_TLB_INT1_CONFIG_DESTMODE_MASK           0x0000000000000800UL
663 #define UVH_GR0_TLB_INT1_CONFIG_STATUS_MASK             0x0000000000001000UL
664 #define UVH_GR0_TLB_INT1_CONFIG_P_MASK                  0x0000000000002000UL
665 #define UVH_GR0_TLB_INT1_CONFIG_T_MASK                  0x0000000000008000UL
666 #define UVH_GR0_TLB_INT1_CONFIG_M_MASK                  0x0000000000010000UL
667 #define UVH_GR0_TLB_INT1_CONFIG_APIC_ID_MASK            0xffffffff00000000UL
668
669
670 union uvh_gr0_tlb_int1_config_u {
671         unsigned long   v;
672         struct uvh_gr0_tlb_int1_config_s {
673                 unsigned long   vector_:8;                      /* RW */
674                 unsigned long   dm:3;                           /* RW */
675                 unsigned long   destmode:1;                     /* RW */
676                 unsigned long   status:1;                       /* RO */
677                 unsigned long   p:1;                            /* RO */
678                 unsigned long   rsvd_14:1;
679                 unsigned long   t:1;                            /* RO */
680                 unsigned long   m:1;                            /* RW */
681                 unsigned long   rsvd_17_31:15;
682                 unsigned long   apic_id:32;                     /* RW */
683         } s;
684 };
685
686 /* ========================================================================= */
687 /*                         UVH_GR0_TLB_MMR_CONTROL                           */
688 /* ========================================================================= */
689 #define UV2H_GR0_TLB_MMR_CONTROL 0xc01080UL
690 #define UV3H_GR0_TLB_MMR_CONTROL 0xc01080UL
691 #define UV4H_GR0_TLB_MMR_CONTROL 0x601080UL
692 #define UVH_GR0_TLB_MMR_CONTROL (                                       \
693         is_uv2_hub() ? UV2H_GR0_TLB_MMR_CONTROL :                       \
694         is_uv3_hub() ? UV3H_GR0_TLB_MMR_CONTROL :                       \
695         /*is_uv4_hub*/ UV4H_GR0_TLB_MMR_CONTROL)
696
697 #define UVH_GR0_TLB_MMR_CONTROL_INDEX_SHFT              0
698 #define UVH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT      16
699 #define UVH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT  20
700 #define UVH_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT          30
701 #define UVH_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT           31
702 #define UVH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK      0x0000000000010000UL
703 #define UVH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK  0x0000000000100000UL
704 #define UVH_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK          0x0000000040000000UL
705 #define UVH_GR0_TLB_MMR_CONTROL_MMR_READ_MASK           0x0000000080000000UL
706
707 #define UVXH_GR0_TLB_MMR_CONTROL_INDEX_SHFT             0
708 #define UVXH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT     16
709 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
710 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT         30
711 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT          31
712 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT       32
713 #define UVXH_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK     0x0000000000010000UL
714 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
715 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK         0x0000000040000000UL
716 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_READ_MASK          0x0000000080000000UL
717 #define UVXH_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK       0x0000000100000000UL
718
719 #define UV2H_GR0_TLB_MMR_CONTROL_INDEX_SHFT             0
720 #define UV2H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT           12
721 #define UV2H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT     16
722 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
723 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT         30
724 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT          31
725 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT       32
726 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT       48
727 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT    52
728 #define UV2H_GR0_TLB_MMR_CONTROL_INDEX_MASK             0x0000000000000fffUL
729 #define UV2H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK           0x0000000000003000UL
730 #define UV2H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK     0x0000000000010000UL
731 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
732 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK         0x0000000040000000UL
733 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK          0x0000000080000000UL
734 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK       0x0000000100000000UL
735 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_CON_MASK       0x0001000000000000UL
736 #define UV2H_GR0_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK    0x0010000000000000UL
737
738 #define UV3H_GR0_TLB_MMR_CONTROL_INDEX_SHFT             0
739 #define UV3H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT           12
740 #define UV3H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT     16
741 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
742 #define UV3H_GR0_TLB_MMR_CONTROL_ECC_SEL_SHFT           21
743 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT         30
744 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT          31
745 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT       32
746 #define UV3H_GR0_TLB_MMR_CONTROL_INDEX_MASK             0x0000000000000fffUL
747 #define UV3H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK           0x0000000000003000UL
748 #define UV3H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK     0x0000000000010000UL
749 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
750 #define UV3H_GR0_TLB_MMR_CONTROL_ECC_SEL_MASK           0x0000000000200000UL
751 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK         0x0000000040000000UL
752 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK          0x0000000080000000UL
753 #define UV3H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK       0x0000000100000000UL
754
755 #define UV4H_GR0_TLB_MMR_CONTROL_INDEX_SHFT             0
756 #define UV4H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT           13
757 #define UV4H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT     16
758 #define UV4H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
759 #define UV4H_GR0_TLB_MMR_CONTROL_ECC_SEL_SHFT           21
760 #define UV4H_GR0_TLB_MMR_CONTROL_MMR_WRITE_SHFT         30
761 #define UV4H_GR0_TLB_MMR_CONTROL_MMR_READ_SHFT          31
762 #define UV4H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT       32
763 #define UV4H_GR0_TLB_MMR_CONTROL_PAGE_SIZE_SHFT         59
764 #define UV4H_GR0_TLB_MMR_CONTROL_INDEX_MASK             0x0000000000001fffUL
765 #define UV4H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK           0x0000000000006000UL
766 #define UV4H_GR0_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK     0x0000000000010000UL
767 #define UV4H_GR0_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
768 #define UV4H_GR0_TLB_MMR_CONTROL_ECC_SEL_MASK           0x0000000000200000UL
769 #define UV4H_GR0_TLB_MMR_CONTROL_MMR_WRITE_MASK         0x0000000040000000UL
770 #define UV4H_GR0_TLB_MMR_CONTROL_MMR_READ_MASK          0x0000000080000000UL
771 #define UV4H_GR0_TLB_MMR_CONTROL_MMR_OP_DONE_MASK       0x0000000100000000UL
772 #define UV4H_GR0_TLB_MMR_CONTROL_PAGE_SIZE_MASK         0xf800000000000000UL
773
774 #define UVH_GR0_TLB_MMR_CONTROL_INDEX_MASK (                            \
775         is_uv2_hub() ? UV2H_GR0_TLB_MMR_CONTROL_INDEX_MASK :            \
776         is_uv3_hub() ? UV3H_GR0_TLB_MMR_CONTROL_INDEX_MASK :            \
777         /*is_uv4_hub*/ UV4H_GR0_TLB_MMR_CONTROL_INDEX_MASK)
778 #define UVH_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK (                          \
779         is_uv2_hub() ? UV2H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK :          \
780         is_uv3_hub() ? UV3H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK :          \
781         /*is_uv4_hub*/ UV4H_GR0_TLB_MMR_CONTROL_MEM_SEL_MASK)
782 #define UVH_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT (                          \
783         is_uv2_hub() ? UV2H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT :          \
784         is_uv3_hub() ? UV3H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT :          \
785         /*is_uv4_hub*/ UV4H_GR0_TLB_MMR_CONTROL_MEM_SEL_SHFT)
786
787 union uvh_gr0_tlb_mmr_control_u {
788         unsigned long   v;
789         struct uvh_gr0_tlb_mmr_control_s {
790                 unsigned long   rsvd_0_15:16;
791                 unsigned long   auto_valid_en:1;                /* RW */
792                 unsigned long   rsvd_17_19:3;
793                 unsigned long   mmr_hash_index_en:1;            /* RW */
794                 unsigned long   rsvd_21_29:9;
795                 unsigned long   mmr_write:1;                    /* WP */
796                 unsigned long   mmr_read:1;                     /* WP */
797                 unsigned long   rsvd_32_48:17;
798                 unsigned long   rsvd_49_51:3;
799                 unsigned long   rsvd_52_63:12;
800         } s;
801         struct uvxh_gr0_tlb_mmr_control_s {
802                 unsigned long   rsvd_0_15:16;
803                 unsigned long   auto_valid_en:1;                /* RW */
804                 unsigned long   rsvd_17_19:3;
805                 unsigned long   mmr_hash_index_en:1;            /* RW */
806                 unsigned long   rsvd_21_29:9;
807                 unsigned long   mmr_write:1;                    /* WP */
808                 unsigned long   mmr_read:1;                     /* WP */
809                 unsigned long   mmr_op_done:1;                  /* RW */
810                 unsigned long   rsvd_33_47:15;
811                 unsigned long   rsvd_48:1;
812                 unsigned long   rsvd_49_51:3;
813                 unsigned long   rsvd_52_63:12;
814         } sx;
815         struct uv2h_gr0_tlb_mmr_control_s {
816                 unsigned long   index:12;                       /* RW */
817                 unsigned long   mem_sel:2;                      /* RW */
818                 unsigned long   rsvd_14_15:2;
819                 unsigned long   auto_valid_en:1;                /* RW */
820                 unsigned long   rsvd_17_19:3;
821                 unsigned long   mmr_hash_index_en:1;            /* RW */
822                 unsigned long   rsvd_21_29:9;
823                 unsigned long   mmr_write:1;                    /* WP */
824                 unsigned long   mmr_read:1;                     /* WP */
825                 unsigned long   mmr_op_done:1;                  /* RW */
826                 unsigned long   rsvd_33_47:15;
827                 unsigned long   mmr_inj_con:1;                  /* RW */
828                 unsigned long   rsvd_49_51:3;
829                 unsigned long   mmr_inj_tlbram:1;               /* RW */
830                 unsigned long   rsvd_53_63:11;
831         } s2;
832         struct uv3h_gr0_tlb_mmr_control_s {
833                 unsigned long   index:12;                       /* RW */
834                 unsigned long   mem_sel:2;                      /* RW */
835                 unsigned long   rsvd_14_15:2;
836                 unsigned long   auto_valid_en:1;                /* RW */
837                 unsigned long   rsvd_17_19:3;
838                 unsigned long   mmr_hash_index_en:1;            /* RW */
839                 unsigned long   ecc_sel:1;                      /* RW */
840                 unsigned long   rsvd_22_29:8;
841                 unsigned long   mmr_write:1;                    /* WP */
842                 unsigned long   mmr_read:1;                     /* WP */
843                 unsigned long   mmr_op_done:1;                  /* RW */
844                 unsigned long   rsvd_33_47:15;
845                 unsigned long   undef_48:1;                     /* Undefined */
846                 unsigned long   rsvd_49_51:3;
847                 unsigned long   undef_52:1;                     /* Undefined */
848                 unsigned long   rsvd_53_63:11;
849         } s3;
850         struct uv4h_gr0_tlb_mmr_control_s {
851                 unsigned long   index:13;                       /* RW */
852                 unsigned long   mem_sel:2;                      /* RW */
853                 unsigned long   rsvd_15:1;
854                 unsigned long   auto_valid_en:1;                /* RW */
855                 unsigned long   rsvd_17_19:3;
856                 unsigned long   mmr_hash_index_en:1;            /* RW */
857                 unsigned long   ecc_sel:1;                      /* RW */
858                 unsigned long   rsvd_22_29:8;
859                 unsigned long   mmr_write:1;                    /* WP */
860                 unsigned long   mmr_read:1;                     /* WP */
861                 unsigned long   mmr_op_done:1;                  /* RW */
862                 unsigned long   rsvd_33_47:15;
863                 unsigned long   undef_48:1;                     /* Undefined */
864                 unsigned long   rsvd_49_51:3;
865                 unsigned long   rsvd_52_58:7;
866                 unsigned long   page_size:5;                    /* RW */
867         } s4;
868 };
869
870 /* ========================================================================= */
871 /*                       UVH_GR0_TLB_MMR_READ_DATA_HI                        */
872 /* ========================================================================= */
873 #define UV2H_GR0_TLB_MMR_READ_DATA_HI 0xc010a0UL
874 #define UV3H_GR0_TLB_MMR_READ_DATA_HI 0xc010a0UL
875 #define UV4H_GR0_TLB_MMR_READ_DATA_HI 0x6010a0UL
876 #define UVH_GR0_TLB_MMR_READ_DATA_HI (                                  \
877         is_uv2_hub() ? UV2H_GR0_TLB_MMR_READ_DATA_HI :                  \
878         is_uv3_hub() ? UV3H_GR0_TLB_MMR_READ_DATA_HI :                  \
879         /*is_uv4_hub*/ UV4H_GR0_TLB_MMR_READ_DATA_HI)
880
881 #define UVH_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT           0
882
883 #define UVXH_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT          0
884
885 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT          0
886 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT          41
887 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT        43
888 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT       44
889 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK          0x000001ffffffffffUL
890 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK          0x0000060000000000UL
891 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK        0x0000080000000000UL
892 #define UV2H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK       0x0000100000000000UL
893
894 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT          0
895 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT          41
896 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT        43
897 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT       44
898 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_AA_EXT_SHFT       45
899 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_WAY_ECC_SHFT      55
900 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK          0x000001ffffffffffUL
901 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK          0x0000060000000000UL
902 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK        0x0000080000000000UL
903 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK       0x0000100000000000UL
904 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_AA_EXT_MASK       0x0000200000000000UL
905 #define UV3H_GR0_TLB_MMR_READ_DATA_HI_WAY_ECC_MASK      0xff80000000000000UL
906
907 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_PFN_SHFT          0
908 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_PNID_SHFT         34
909 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_GAA_SHFT          49
910 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_SHFT        51
911 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_LARGER_SHFT       52
912 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_AA_EXT_SHFT       53
913 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_WAY_ECC_SHFT      55
914 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_PFN_MASK          0x00000003ffffffffUL
915 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_PNID_MASK         0x0001fffc00000000UL
916 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_GAA_MASK          0x0006000000000000UL
917 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_DIRTY_MASK        0x0008000000000000UL
918 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_LARGER_MASK       0x0010000000000000UL
919 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_AA_EXT_MASK       0x0020000000000000UL
920 #define UV4H_GR0_TLB_MMR_READ_DATA_HI_WAY_ECC_MASK      0xff80000000000000UL
921
922
923 union uvh_gr0_tlb_mmr_read_data_hi_u {
924         unsigned long   v;
925         struct uv2h_gr0_tlb_mmr_read_data_hi_s {
926                 unsigned long   pfn:41;                         /* RO */
927                 unsigned long   gaa:2;                          /* RO */
928                 unsigned long   dirty:1;                        /* RO */
929                 unsigned long   larger:1;                       /* RO */
930                 unsigned long   rsvd_45_63:19;
931         } s2;
932         struct uv3h_gr0_tlb_mmr_read_data_hi_s {
933                 unsigned long   pfn:41;                         /* RO */
934                 unsigned long   gaa:2;                          /* RO */
935                 unsigned long   dirty:1;                        /* RO */
936                 unsigned long   larger:1;                       /* RO */
937                 unsigned long   aa_ext:1;                       /* RO */
938                 unsigned long   undef_46_54:9;                  /* Undefined */
939                 unsigned long   way_ecc:9;                      /* RO */
940         } s3;
941         struct uv4h_gr0_tlb_mmr_read_data_hi_s {
942                 unsigned long   pfn:34;                         /* RO */
943                 unsigned long   pnid:15;                        /* RO */
944                 unsigned long   gaa:2;                          /* RO */
945                 unsigned long   dirty:1;                        /* RO */
946                 unsigned long   larger:1;                       /* RO */
947                 unsigned long   aa_ext:1;                       /* RO */
948                 unsigned long   undef_54:1;                     /* Undefined */
949                 unsigned long   way_ecc:9;                      /* RO */
950         } s4;
951 };
952
953 /* ========================================================================= */
954 /*                       UVH_GR0_TLB_MMR_READ_DATA_LO                        */
955 /* ========================================================================= */
956 #define UV2H_GR0_TLB_MMR_READ_DATA_LO 0xc010a8UL
957 #define UV3H_GR0_TLB_MMR_READ_DATA_LO 0xc010a8UL
958 #define UV4H_GR0_TLB_MMR_READ_DATA_LO 0x6010a8UL
959 #define UVH_GR0_TLB_MMR_READ_DATA_LO (                                  \
960         is_uv2_hub() ? UV2H_GR0_TLB_MMR_READ_DATA_LO :                  \
961         is_uv3_hub() ? UV3H_GR0_TLB_MMR_READ_DATA_LO :                  \
962         /*is_uv4_hub*/ UV4H_GR0_TLB_MMR_READ_DATA_LO)
963
964 #define UVH_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT           0
965 #define UVH_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT          39
966 #define UVH_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT         63
967 #define UVH_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK           0x0000007fffffffffUL
968 #define UVH_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK          0x7fffff8000000000UL
969 #define UVH_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK         0x8000000000000000UL
970
971 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT          0
972 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT         39
973 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT        63
974 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK          0x0000007fffffffffUL
975 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK         0x7fffff8000000000UL
976 #define UVXH_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK        0x8000000000000000UL
977
978 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT          0
979 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT         39
980 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT        63
981 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK          0x0000007fffffffffUL
982 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK         0x7fffff8000000000UL
983 #define UV2H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK        0x8000000000000000UL
984
985 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT          0
986 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT         39
987 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT        63
988 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK          0x0000007fffffffffUL
989 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK         0x7fffff8000000000UL
990 #define UV3H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK        0x8000000000000000UL
991
992 #define UV4H_GR0_TLB_MMR_READ_DATA_LO_VPN_SHFT          0
993 #define UV4H_GR0_TLB_MMR_READ_DATA_LO_ASID_SHFT         39
994 #define UV4H_GR0_TLB_MMR_READ_DATA_LO_VALID_SHFT        63
995 #define UV4H_GR0_TLB_MMR_READ_DATA_LO_VPN_MASK          0x0000007fffffffffUL
996 #define UV4H_GR0_TLB_MMR_READ_DATA_LO_ASID_MASK         0x7fffff8000000000UL
997 #define UV4H_GR0_TLB_MMR_READ_DATA_LO_VALID_MASK        0x8000000000000000UL
998
999
1000 union uvh_gr0_tlb_mmr_read_data_lo_u {
1001         unsigned long   v;
1002         struct uvh_gr0_tlb_mmr_read_data_lo_s {
1003                 unsigned long   vpn:39;                         /* RO */
1004                 unsigned long   asid:24;                        /* RO */
1005                 unsigned long   valid:1;                        /* RO */
1006         } s;
1007         struct uvxh_gr0_tlb_mmr_read_data_lo_s {
1008                 unsigned long   vpn:39;                         /* RO */
1009                 unsigned long   asid:24;                        /* RO */
1010                 unsigned long   valid:1;                        /* RO */
1011         } sx;
1012         struct uv2h_gr0_tlb_mmr_read_data_lo_s {
1013                 unsigned long   vpn:39;                         /* RO */
1014                 unsigned long   asid:24;                        /* RO */
1015                 unsigned long   valid:1;                        /* RO */
1016         } s2;
1017         struct uv3h_gr0_tlb_mmr_read_data_lo_s {
1018                 unsigned long   vpn:39;                         /* RO */
1019                 unsigned long   asid:24;                        /* RO */
1020                 unsigned long   valid:1;                        /* RO */
1021         } s3;
1022         struct uv4h_gr0_tlb_mmr_read_data_lo_s {
1023                 unsigned long   vpn:39;                         /* RO */
1024                 unsigned long   asid:24;                        /* RO */
1025                 unsigned long   valid:1;                        /* RO */
1026         } s4;
1027 };
1028
1029 /* ========================================================================= */
1030 /*                         UVH_GR1_TLB_INT0_CONFIG                           */
1031 /* ========================================================================= */
1032 #define UV2H_GR1_TLB_INT0_CONFIG 0x61f00UL
1033 #define UV3H_GR1_TLB_INT0_CONFIG 0x61f00UL
1034 #define UV4H_GR1_TLB_INT0_CONFIG 0x62100UL
1035 #define UVH_GR1_TLB_INT0_CONFIG (                                       \
1036         is_uv2_hub() ? UV2H_GR1_TLB_INT0_CONFIG :                       \
1037         is_uv3_hub() ? UV3H_GR1_TLB_INT0_CONFIG :                       \
1038         /*is_uv4_hub*/ UV4H_GR1_TLB_INT0_CONFIG)
1039
1040 #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_SHFT             0
1041 #define UVH_GR1_TLB_INT0_CONFIG_DM_SHFT                 8
1042 #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_SHFT           11
1043 #define UVH_GR1_TLB_INT0_CONFIG_STATUS_SHFT             12
1044 #define UVH_GR1_TLB_INT0_CONFIG_P_SHFT                  13
1045 #define UVH_GR1_TLB_INT0_CONFIG_T_SHFT                  15
1046 #define UVH_GR1_TLB_INT0_CONFIG_M_SHFT                  16
1047 #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_SHFT            32
1048 #define UVH_GR1_TLB_INT0_CONFIG_VECTOR_MASK             0x00000000000000ffUL
1049 #define UVH_GR1_TLB_INT0_CONFIG_DM_MASK                 0x0000000000000700UL
1050 #define UVH_GR1_TLB_INT0_CONFIG_DESTMODE_MASK           0x0000000000000800UL
1051 #define UVH_GR1_TLB_INT0_CONFIG_STATUS_MASK             0x0000000000001000UL
1052 #define UVH_GR1_TLB_INT0_CONFIG_P_MASK                  0x0000000000002000UL
1053 #define UVH_GR1_TLB_INT0_CONFIG_T_MASK                  0x0000000000008000UL
1054 #define UVH_GR1_TLB_INT0_CONFIG_M_MASK                  0x0000000000010000UL
1055 #define UVH_GR1_TLB_INT0_CONFIG_APIC_ID_MASK            0xffffffff00000000UL
1056
1057
1058 union uvh_gr1_tlb_int0_config_u {
1059         unsigned long   v;
1060         struct uvh_gr1_tlb_int0_config_s {
1061                 unsigned long   vector_:8;                      /* RW */
1062                 unsigned long   dm:3;                           /* RW */
1063                 unsigned long   destmode:1;                     /* RW */
1064                 unsigned long   status:1;                       /* RO */
1065                 unsigned long   p:1;                            /* RO */
1066                 unsigned long   rsvd_14:1;
1067                 unsigned long   t:1;                            /* RO */
1068                 unsigned long   m:1;                            /* RW */
1069                 unsigned long   rsvd_17_31:15;
1070                 unsigned long   apic_id:32;                     /* RW */
1071         } s;
1072 };
1073
1074 /* ========================================================================= */
1075 /*                         UVH_GR1_TLB_INT1_CONFIG                           */
1076 /* ========================================================================= */
1077 #define UV2H_GR1_TLB_INT1_CONFIG 0x61f40UL
1078 #define UV3H_GR1_TLB_INT1_CONFIG 0x61f40UL
1079 #define UV4H_GR1_TLB_INT1_CONFIG 0x62140UL
1080 #define UVH_GR1_TLB_INT1_CONFIG (                                       \
1081         is_uv2_hub() ? UV2H_GR1_TLB_INT1_CONFIG :                       \
1082         is_uv3_hub() ? UV3H_GR1_TLB_INT1_CONFIG :                       \
1083         /*is_uv4_hub*/ UV4H_GR1_TLB_INT1_CONFIG)
1084
1085 #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_SHFT             0
1086 #define UVH_GR1_TLB_INT1_CONFIG_DM_SHFT                 8
1087 #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_SHFT           11
1088 #define UVH_GR1_TLB_INT1_CONFIG_STATUS_SHFT             12
1089 #define UVH_GR1_TLB_INT1_CONFIG_P_SHFT                  13
1090 #define UVH_GR1_TLB_INT1_CONFIG_T_SHFT                  15
1091 #define UVH_GR1_TLB_INT1_CONFIG_M_SHFT                  16
1092 #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_SHFT            32
1093 #define UVH_GR1_TLB_INT1_CONFIG_VECTOR_MASK             0x00000000000000ffUL
1094 #define UVH_GR1_TLB_INT1_CONFIG_DM_MASK                 0x0000000000000700UL
1095 #define UVH_GR1_TLB_INT1_CONFIG_DESTMODE_MASK           0x0000000000000800UL
1096 #define UVH_GR1_TLB_INT1_CONFIG_STATUS_MASK             0x0000000000001000UL
1097 #define UVH_GR1_TLB_INT1_CONFIG_P_MASK                  0x0000000000002000UL
1098 #define UVH_GR1_TLB_INT1_CONFIG_T_MASK                  0x0000000000008000UL
1099 #define UVH_GR1_TLB_INT1_CONFIG_M_MASK                  0x0000000000010000UL
1100 #define UVH_GR1_TLB_INT1_CONFIG_APIC_ID_MASK            0xffffffff00000000UL
1101
1102
1103 union uvh_gr1_tlb_int1_config_u {
1104         unsigned long   v;
1105         struct uvh_gr1_tlb_int1_config_s {
1106                 unsigned long   vector_:8;                      /* RW */
1107                 unsigned long   dm:3;                           /* RW */
1108                 unsigned long   destmode:1;                     /* RW */
1109                 unsigned long   status:1;                       /* RO */
1110                 unsigned long   p:1;                            /* RO */
1111                 unsigned long   rsvd_14:1;
1112                 unsigned long   t:1;                            /* RO */
1113                 unsigned long   m:1;                            /* RW */
1114                 unsigned long   rsvd_17_31:15;
1115                 unsigned long   apic_id:32;                     /* RW */
1116         } s;
1117 };
1118
1119 /* ========================================================================= */
1120 /*                         UVH_GR1_TLB_MMR_CONTROL                           */
1121 /* ========================================================================= */
1122 #define UV2H_GR1_TLB_MMR_CONTROL 0x1001080UL
1123 #define UV3H_GR1_TLB_MMR_CONTROL 0x1001080UL
1124 #define UV4H_GR1_TLB_MMR_CONTROL 0x701080UL
1125 #define UVH_GR1_TLB_MMR_CONTROL (                                       \
1126         is_uv2_hub() ? UV2H_GR1_TLB_MMR_CONTROL :                       \
1127         is_uv3_hub() ? UV3H_GR1_TLB_MMR_CONTROL :                       \
1128         /*is_uv4_hub*/ UV4H_GR1_TLB_MMR_CONTROL)
1129
1130 #define UVH_GR1_TLB_MMR_CONTROL_INDEX_SHFT              0
1131 #define UVH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT      16
1132 #define UVH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT  20
1133 #define UVH_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT          30
1134 #define UVH_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT           31
1135 #define UVH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK      0x0000000000010000UL
1136 #define UVH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK  0x0000000000100000UL
1137 #define UVH_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK          0x0000000040000000UL
1138 #define UVH_GR1_TLB_MMR_CONTROL_MMR_READ_MASK           0x0000000080000000UL
1139
1140 #define UVXH_GR1_TLB_MMR_CONTROL_INDEX_SHFT             0
1141 #define UVXH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT     16
1142 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1143 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT         30
1144 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT          31
1145 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT       32
1146 #define UVXH_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK     0x0000000000010000UL
1147 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1148 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK         0x0000000040000000UL
1149 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_READ_MASK          0x0000000080000000UL
1150 #define UVXH_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK       0x0000000100000000UL
1151
1152 #define UV2H_GR1_TLB_MMR_CONTROL_INDEX_SHFT             0
1153 #define UV2H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT           12
1154 #define UV2H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT     16
1155 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1156 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT         30
1157 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT          31
1158 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT       32
1159 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_SHFT       48
1160 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_SHFT    52
1161 #define UV2H_GR1_TLB_MMR_CONTROL_INDEX_MASK             0x0000000000000fffUL
1162 #define UV2H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK           0x0000000000003000UL
1163 #define UV2H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK     0x0000000000010000UL
1164 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1165 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK         0x0000000040000000UL
1166 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK          0x0000000080000000UL
1167 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK       0x0000000100000000UL
1168 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_CON_MASK       0x0001000000000000UL
1169 #define UV2H_GR1_TLB_MMR_CONTROL_MMR_INJ_TLBRAM_MASK    0x0010000000000000UL
1170
1171 #define UV3H_GR1_TLB_MMR_CONTROL_INDEX_SHFT             0
1172 #define UV3H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT           12
1173 #define UV3H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT     16
1174 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1175 #define UV3H_GR1_TLB_MMR_CONTROL_ECC_SEL_SHFT           21
1176 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT         30
1177 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT          31
1178 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT       32
1179 #define UV3H_GR1_TLB_MMR_CONTROL_INDEX_MASK             0x0000000000000fffUL
1180 #define UV3H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK           0x0000000000003000UL
1181 #define UV3H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK     0x0000000000010000UL
1182 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1183 #define UV3H_GR1_TLB_MMR_CONTROL_ECC_SEL_MASK           0x0000000000200000UL
1184 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK         0x0000000040000000UL
1185 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK          0x0000000080000000UL
1186 #define UV3H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK       0x0000000100000000UL
1187
1188 #define UV4H_GR1_TLB_MMR_CONTROL_INDEX_SHFT             0
1189 #define UV4H_GR1_TLB_MMR_CONTROL_MEM_SEL_SHFT           13
1190 #define UV4H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_SHFT     16
1191 #define UV4H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_SHFT 20
1192 #define UV4H_GR1_TLB_MMR_CONTROL_ECC_SEL_SHFT           21
1193 #define UV4H_GR1_TLB_MMR_CONTROL_MMR_WRITE_SHFT         30
1194 #define UV4H_GR1_TLB_MMR_CONTROL_MMR_READ_SHFT          31
1195 #define UV4H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_SHFT       32
1196 #define UV4H_GR1_TLB_MMR_CONTROL_PAGE_SIZE_SHFT         59
1197 #define UV4H_GR1_TLB_MMR_CONTROL_INDEX_MASK             0x0000000000001fffUL
1198 #define UV4H_GR1_TLB_MMR_CONTROL_MEM_SEL_MASK           0x0000000000006000UL
1199 #define UV4H_GR1_TLB_MMR_CONTROL_AUTO_VALID_EN_MASK     0x0000000000010000UL
1200 #define UV4H_GR1_TLB_MMR_CONTROL_MMR_HASH_INDEX_EN_MASK 0x0000000000100000UL
1201 #define UV4H_GR1_TLB_MMR_CONTROL_ECC_SEL_MASK           0x0000000000200000UL
1202 #define UV4H_GR1_TLB_MMR_CONTROL_MMR_WRITE_MASK         0x0000000040000000UL
1203 #define UV4H_GR1_TLB_MMR_CONTROL_MMR_READ_MASK          0x0000000080000000UL
1204 #define UV4H_GR1_TLB_MMR_CONTROL_MMR_OP_DONE_MASK       0x0000000100000000UL
1205 #define UV4H_GR1_TLB_MMR_CONTROL_PAGE_SIZE_MASK         0xf800000000000000UL
1206
1207
1208 union uvh_gr1_tlb_mmr_control_u {
1209         unsigned long   v;
1210         struct uvh_gr1_tlb_mmr_control_s {
1211                 unsigned long   rsvd_0_15:16;
1212                 unsigned long   auto_valid_en:1;                /* RW */
1213                 unsigned long   rsvd_17_19:3;
1214                 unsigned long   mmr_hash_index_en:1;            /* RW */
1215                 unsigned long   rsvd_21_29:9;
1216                 unsigned long   mmr_write:1;                    /* WP */
1217                 unsigned long   mmr_read:1;                     /* WP */
1218                 unsigned long   rsvd_32_48:17;
1219                 unsigned long   rsvd_49_51:3;
1220                 unsigned long   rsvd_52_63:12;
1221         } s;
1222         struct uvxh_gr1_tlb_mmr_control_s {
1223                 unsigned long   rsvd_0_15:16;
1224                 unsigned long   auto_valid_en:1;                /* RW */
1225                 unsigned long   rsvd_17_19:3;
1226                 unsigned long   mmr_hash_index_en:1;            /* RW */
1227                 unsigned long   rsvd_21_29:9;
1228                 unsigned long   mmr_write:1;                    /* WP */
1229                 unsigned long   mmr_read:1;                     /* WP */
1230                 unsigned long   mmr_op_done:1;                  /* RW */
1231                 unsigned long   rsvd_33_47:15;
1232                 unsigned long   rsvd_48:1;
1233                 unsigned long   rsvd_49_51:3;
1234                 unsigned long   rsvd_52_63:12;
1235         } sx;
1236         struct uv2h_gr1_tlb_mmr_control_s {
1237                 unsigned long   index:12;                       /* RW */
1238                 unsigned long   mem_sel:2;                      /* RW */
1239                 unsigned long   rsvd_14_15:2;
1240                 unsigned long   auto_valid_en:1;                /* RW */
1241                 unsigned long   rsvd_17_19:3;
1242                 unsigned long   mmr_hash_index_en:1;            /* RW */
1243                 unsigned long   rsvd_21_29:9;
1244                 unsigned long   mmr_write:1;                    /* WP */
1245                 unsigned long   mmr_read:1;                     /* WP */
1246                 unsigned long   mmr_op_done:1;                  /* RW */
1247                 unsigned long   rsvd_33_47:15;
1248                 unsigned long   mmr_inj_con:1;                  /* RW */
1249                 unsigned long   rsvd_49_51:3;
1250                 unsigned long   mmr_inj_tlbram:1;               /* RW */
1251                 unsigned long   rsvd_53_63:11;
1252         } s2;
1253         struct uv3h_gr1_tlb_mmr_control_s {
1254                 unsigned long   index:12;                       /* RW */
1255                 unsigned long   mem_sel:2;                      /* RW */
1256                 unsigned long   rsvd_14_15:2;
1257                 unsigned long   auto_valid_en:1;                /* RW */
1258                 unsigned long   rsvd_17_19:3;
1259                 unsigned long   mmr_hash_index_en:1;            /* RW */
1260                 unsigned long   ecc_sel:1;                      /* RW */
1261                 unsigned long   rsvd_22_29:8;
1262                 unsigned long   mmr_write:1;                    /* WP */
1263                 unsigned long   mmr_read:1;                     /* WP */
1264                 unsigned long   mmr_op_done:1;                  /* RW */
1265                 unsigned long   rsvd_33_47:15;
1266                 unsigned long   undef_48:1;                     /* Undefined */
1267                 unsigned long   rsvd_49_51:3;
1268                 unsigned long   undef_52:1;                     /* Undefined */
1269                 unsigned long   rsvd_53_63:11;
1270         } s3;
1271         struct uv4h_gr1_tlb_mmr_control_s {
1272                 unsigned long   index:13;                       /* RW */
1273                 unsigned long   mem_sel:2;                      /* RW */
1274                 unsigned long   rsvd_15:1;
1275                 unsigned long   auto_valid_en:1;                /* RW */
1276                 unsigned long   rsvd_17_19:3;
1277                 unsigned long   mmr_hash_index_en:1;            /* RW */
1278                 unsigned long   ecc_sel:1;                      /* RW */
1279                 unsigned long   rsvd_22_29:8;
1280                 unsigned long   mmr_write:1;                    /* WP */
1281                 unsigned long   mmr_read:1;                     /* WP */
1282                 unsigned long   mmr_op_done:1;                  /* RW */
1283                 unsigned long   rsvd_33_47:15;
1284                 unsigned long   undef_48:1;                     /* Undefined */
1285                 unsigned long   rsvd_49_51:3;
1286                 unsigned long   rsvd_52_58:7;
1287                 unsigned long   page_size:5;                    /* RW */
1288         } s4;
1289 };
1290
1291 /* ========================================================================= */
1292 /*                       UVH_GR1_TLB_MMR_READ_DATA_HI                        */
1293 /* ========================================================================= */
1294 #define UV2H_GR1_TLB_MMR_READ_DATA_HI 0x10010a0UL
1295 #define UV3H_GR1_TLB_MMR_READ_DATA_HI 0x10010a0UL
1296 #define UV4H_GR1_TLB_MMR_READ_DATA_HI 0x7010a0UL
1297 #define UVH_GR1_TLB_MMR_READ_DATA_HI (                                  \
1298         is_uv2_hub() ? UV2H_GR1_TLB_MMR_READ_DATA_HI :                  \
1299         is_uv3_hub() ? UV3H_GR1_TLB_MMR_READ_DATA_HI :                  \
1300         /*is_uv4_hub*/ UV4H_GR1_TLB_MMR_READ_DATA_HI)
1301
1302 #define UVH_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT           0
1303
1304 #define UVXH_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT          0
1305
1306 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT          0
1307 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT          41
1308 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT        43
1309 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT       44
1310 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK          0x000001ffffffffffUL
1311 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK          0x0000060000000000UL
1312 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK        0x0000080000000000UL
1313 #define UV2H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK       0x0000100000000000UL
1314
1315 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT          0
1316 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT          41
1317 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT        43
1318 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT       44
1319 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_AA_EXT_SHFT       45
1320 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_WAY_ECC_SHFT      55
1321 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK          0x000001ffffffffffUL
1322 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK          0x0000060000000000UL
1323 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK        0x0000080000000000UL
1324 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK       0x0000100000000000UL
1325 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_AA_EXT_MASK       0x0000200000000000UL
1326 #define UV3H_GR1_TLB_MMR_READ_DATA_HI_WAY_ECC_MASK      0xff80000000000000UL
1327
1328 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_PFN_SHFT          0
1329 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_PNID_SHFT         34
1330 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_GAA_SHFT          49
1331 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_SHFT        51
1332 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_LARGER_SHFT       52
1333 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_AA_EXT_SHFT       53
1334 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_WAY_ECC_SHFT      55
1335 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_PFN_MASK          0x00000003ffffffffUL
1336 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_PNID_MASK         0x0001fffc00000000UL
1337 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_GAA_MASK          0x0006000000000000UL
1338 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_DIRTY_MASK        0x0008000000000000UL
1339 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_LARGER_MASK       0x0010000000000000UL
1340 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_AA_EXT_MASK       0x0020000000000000UL
1341 #define UV4H_GR1_TLB_MMR_READ_DATA_HI_WAY_ECC_MASK      0xff80000000000000UL
1342
1343
1344 union uvh_gr1_tlb_mmr_read_data_hi_u {
1345         unsigned long   v;
1346         struct uv2h_gr1_tlb_mmr_read_data_hi_s {
1347                 unsigned long   pfn:41;                         /* RO */
1348                 unsigned long   gaa:2;                          /* RO */
1349                 unsigned long   dirty:1;                        /* RO */
1350                 unsigned long   larger:1;                       /* RO */
1351                 unsigned long   rsvd_45_63:19;
1352         } s2;
1353         struct uv3h_gr1_tlb_mmr_read_data_hi_s {
1354                 unsigned long   pfn:41;                         /* RO */
1355                 unsigned long   gaa:2;                          /* RO */
1356                 unsigned long   dirty:1;                        /* RO */
1357                 unsigned long   larger:1;                       /* RO */
1358                 unsigned long   aa_ext:1;                       /* RO */
1359                 unsigned long   undef_46_54:9;                  /* Undefined */
1360                 unsigned long   way_ecc:9;                      /* RO */
1361         } s3;
1362         struct uv4h_gr1_tlb_mmr_read_data_hi_s {
1363                 unsigned long   pfn:34;                         /* RO */
1364                 unsigned long   pnid:15;                        /* RO */
1365                 unsigned long   gaa:2;                          /* RO */
1366                 unsigned long   dirty:1;                        /* RO */
1367                 unsigned long   larger:1;                       /* RO */
1368                 unsigned long   aa_ext:1;                       /* RO */
1369                 unsigned long   undef_54:1;                     /* Undefined */
1370                 unsigned long   way_ecc:9;                      /* RO */
1371         } s4;
1372 };
1373
1374 /* ========================================================================= */
1375 /*                       UVH_GR1_TLB_MMR_READ_DATA_LO                        */
1376 /* ========================================================================= */
1377 #define UV2H_GR1_TLB_MMR_READ_DATA_LO 0x10010a8UL
1378 #define UV3H_GR1_TLB_MMR_READ_DATA_LO 0x10010a8UL
1379 #define UV4H_GR1_TLB_MMR_READ_DATA_LO 0x7010a8UL
1380 #define UVH_GR1_TLB_MMR_READ_DATA_LO (                                  \
1381         is_uv2_hub() ? UV2H_GR1_TLB_MMR_READ_DATA_LO :                  \
1382         is_uv3_hub() ? UV3H_GR1_TLB_MMR_READ_DATA_LO :                  \
1383         /*is_uv4_hub*/ UV4H_GR1_TLB_MMR_READ_DATA_LO)
1384
1385 #define UVH_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT           0
1386 #define UVH_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT          39
1387 #define UVH_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT         63
1388 #define UVH_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK           0x0000007fffffffffUL
1389 #define UVH_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK          0x7fffff8000000000UL
1390 #define UVH_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK         0x8000000000000000UL
1391
1392 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT          0
1393 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT         39
1394 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT        63
1395 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK          0x0000007fffffffffUL
1396 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK         0x7fffff8000000000UL
1397 #define UVXH_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK        0x8000000000000000UL
1398
1399 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT          0
1400 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT         39
1401 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT        63
1402 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK          0x0000007fffffffffUL
1403 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK         0x7fffff8000000000UL
1404 #define UV2H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK        0x8000000000000000UL
1405
1406 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT          0
1407 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT         39
1408 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT        63
1409 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK          0x0000007fffffffffUL
1410 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK         0x7fffff8000000000UL
1411 #define UV3H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK        0x8000000000000000UL
1412
1413 #define UV4H_GR1_TLB_MMR_READ_DATA_LO_VPN_SHFT          0
1414 #define UV4H_GR1_TLB_MMR_READ_DATA_LO_ASID_SHFT         39
1415 #define UV4H_GR1_TLB_MMR_READ_DATA_LO_VALID_SHFT        63
1416 #define UV4H_GR1_TLB_MMR_READ_DATA_LO_VPN_MASK          0x0000007fffffffffUL
1417 #define UV4H_GR1_TLB_MMR_READ_DATA_LO_ASID_MASK         0x7fffff8000000000UL
1418 #define UV4H_GR1_TLB_MMR_READ_DATA_LO_VALID_MASK        0x8000000000000000UL
1419
1420
1421 union uvh_gr1_tlb_mmr_read_data_lo_u {
1422         unsigned long   v;
1423         struct uvh_gr1_tlb_mmr_read_data_lo_s {
1424                 unsigned long   vpn:39;                         /* RO */
1425                 unsigned long   asid:24;                        /* RO */
1426                 unsigned long   valid:1;                        /* RO */
1427         } s;
1428         struct uvxh_gr1_tlb_mmr_read_data_lo_s {
1429                 unsigned long   vpn:39;                         /* RO */
1430                 unsigned long   asid:24;                        /* RO */
1431                 unsigned long   valid:1;                        /* RO */
1432         } sx;
1433         struct uv2h_gr1_tlb_mmr_read_data_lo_s {
1434                 unsigned long   vpn:39;                         /* RO */
1435                 unsigned long   asid:24;                        /* RO */
1436                 unsigned long   valid:1;                        /* RO */
1437         } s2;
1438         struct uv3h_gr1_tlb_mmr_read_data_lo_s {
1439                 unsigned long   vpn:39;                         /* RO */
1440                 unsigned long   asid:24;                        /* RO */
1441                 unsigned long   valid:1;                        /* RO */
1442         } s3;
1443         struct uv4h_gr1_tlb_mmr_read_data_lo_s {
1444                 unsigned long   vpn:39;                         /* RO */
1445                 unsigned long   asid:24;                        /* RO */
1446                 unsigned long   valid:1;                        /* RO */
1447         } s4;
1448 };
1449
1450 /* ========================================================================= */
1451 /*                               UVH_INT_CMPB                                */
1452 /* ========================================================================= */
1453 #define UVH_INT_CMPB 0x22080UL
1454
1455 #define UVH_INT_CMPB_REAL_TIME_CMPB_SHFT                0
1456 #define UVH_INT_CMPB_REAL_TIME_CMPB_MASK                0x00ffffffffffffffUL
1457
1458
1459 union uvh_int_cmpb_u {
1460         unsigned long   v;
1461         struct uvh_int_cmpb_s {
1462                 unsigned long   real_time_cmpb:56;              /* RW */
1463                 unsigned long   rsvd_56_63:8;
1464         } s;
1465 };
1466
1467 /* ========================================================================= */
1468 /*                               UVH_INT_CMPC                                */
1469 /* ========================================================================= */
1470 #define UVH_INT_CMPC 0x22100UL
1471
1472
1473 #define UVXH_INT_CMPC_REAL_TIME_CMP_2_SHFT              0
1474 #define UVXH_INT_CMPC_REAL_TIME_CMP_2_MASK              0x00ffffffffffffffUL
1475
1476
1477 union uvh_int_cmpc_u {
1478         unsigned long   v;
1479         struct uvh_int_cmpc_s {
1480                 unsigned long   real_time_cmpc:56;              /* RW */
1481                 unsigned long   rsvd_56_63:8;
1482         } s;
1483 };
1484
1485 /* ========================================================================= */
1486 /*                               UVH_INT_CMPD                                */
1487 /* ========================================================================= */
1488 #define UVH_INT_CMPD 0x22180UL
1489
1490
1491 #define UVXH_INT_CMPD_REAL_TIME_CMP_3_SHFT              0
1492 #define UVXH_INT_CMPD_REAL_TIME_CMP_3_MASK              0x00ffffffffffffffUL
1493
1494
1495 union uvh_int_cmpd_u {
1496         unsigned long   v;
1497         struct uvh_int_cmpd_s {
1498                 unsigned long   real_time_cmpd:56;              /* RW */
1499                 unsigned long   rsvd_56_63:8;
1500         } s;
1501 };
1502
1503 /* ========================================================================= */
1504 /*                               UVH_IPI_INT                                 */
1505 /* ========================================================================= */
1506 #define UVH_IPI_INT 0x60500UL
1507
1508 #define UV2H_IPI_INT_32 0x348
1509 #define UV3H_IPI_INT_32 0x348
1510 #define UV4H_IPI_INT_32 0x268
1511 #define UVH_IPI_INT_32 (                                                \
1512         is_uv2_hub() ? UV2H_IPI_INT_32 :                                \
1513         is_uv3_hub() ? UV3H_IPI_INT_32 :                                \
1514         /*is_uv4_hub*/ UV4H_IPI_INT_32)
1515
1516 #define UVH_IPI_INT_VECTOR_SHFT                         0
1517 #define UVH_IPI_INT_DELIVERY_MODE_SHFT                  8
1518 #define UVH_IPI_INT_DESTMODE_SHFT                       11
1519 #define UVH_IPI_INT_APIC_ID_SHFT                        16
1520 #define UVH_IPI_INT_SEND_SHFT                           63
1521 #define UVH_IPI_INT_VECTOR_MASK                         0x00000000000000ffUL
1522 #define UVH_IPI_INT_DELIVERY_MODE_MASK                  0x0000000000000700UL
1523 #define UVH_IPI_INT_DESTMODE_MASK                       0x0000000000000800UL
1524 #define UVH_IPI_INT_APIC_ID_MASK                        0x0000ffffffff0000UL
1525 #define UVH_IPI_INT_SEND_MASK                           0x8000000000000000UL
1526
1527
1528 union uvh_ipi_int_u {
1529         unsigned long   v;
1530         struct uvh_ipi_int_s {
1531                 unsigned long   vector_:8;                      /* RW */
1532                 unsigned long   delivery_mode:3;                /* RW */
1533                 unsigned long   destmode:1;                     /* RW */
1534                 unsigned long   rsvd_12_15:4;
1535                 unsigned long   apic_id:32;                     /* RW */
1536                 unsigned long   rsvd_48_62:15;
1537                 unsigned long   send:1;                         /* WP */
1538         } s;
1539 };
1540
1541 /* ========================================================================= */
1542 /*                   UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST                     */
1543 /* ========================================================================= */
1544 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST 0x320050UL
1545 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST 0x320050UL
1546 #define UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST uv_undefined("UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST")
1547 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST (                           \
1548         is_uv2_hub() ? UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST :           \
1549         is_uv3_hub() ? UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST :           \
1550         /*is_uv4_hub*/ UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST)
1551 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_32 0x9c0
1552
1553
1554 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_SHFT 4
1555 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_SHFT 49
1556 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_MASK 0x000007fffffffff0UL
1557 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_MASK 0x7ffe000000000000UL
1558
1559 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_SHFT 4
1560 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_SHFT 49
1561 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_MASK 0x000007fffffffff0UL
1562 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_MASK 0x7ffe000000000000UL
1563
1564
1565 union uvh_lb_bau_intd_payload_queue_first_u {
1566         unsigned long   v;
1567         struct uv2h_lb_bau_intd_payload_queue_first_s {
1568                 unsigned long   rsvd_0_3:4;
1569                 unsigned long   address:39;                     /* RW */
1570                 unsigned long   rsvd_43_48:6;
1571                 unsigned long   node_id:14;                     /* RW */
1572                 unsigned long   rsvd_63:1;
1573         } s2;
1574         struct uv3h_lb_bau_intd_payload_queue_first_s {
1575                 unsigned long   rsvd_0_3:4;
1576                 unsigned long   address:39;                     /* RW */
1577                 unsigned long   rsvd_43_48:6;
1578                 unsigned long   node_id:14;                     /* RW */
1579                 unsigned long   rsvd_63:1;
1580         } s3;
1581 };
1582
1583 /* ========================================================================= */
1584 /*                    UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST                     */
1585 /* ========================================================================= */
1586 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST 0x320060UL
1587 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST 0x320060UL
1588 #define UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST uv_undefined("UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST")
1589 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST (                            \
1590         is_uv2_hub() ? UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST :            \
1591         is_uv3_hub() ? UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST :            \
1592         /*is_uv4_hub*/ UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST)
1593 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_32 0x9c8
1594
1595
1596 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_SHFT 4
1597 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_MASK 0x000007fffffffff0UL
1598
1599 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_SHFT 4
1600 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_MASK 0x000007fffffffff0UL
1601
1602
1603 union uvh_lb_bau_intd_payload_queue_last_u {
1604         unsigned long   v;
1605         struct uv2h_lb_bau_intd_payload_queue_last_s {
1606                 unsigned long   rsvd_0_3:4;
1607                 unsigned long   address:39;                     /* RW */
1608                 unsigned long   rsvd_43_63:21;
1609         } s2;
1610         struct uv3h_lb_bau_intd_payload_queue_last_s {
1611                 unsigned long   rsvd_0_3:4;
1612                 unsigned long   address:39;                     /* RW */
1613                 unsigned long   rsvd_43_63:21;
1614         } s3;
1615 };
1616
1617 /* ========================================================================= */
1618 /*                    UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL                     */
1619 /* ========================================================================= */
1620 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL 0x320070UL
1621 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL 0x320070UL
1622 #define UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL uv_undefined("UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL")
1623 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL (                            \
1624         is_uv2_hub() ? UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL :            \
1625         is_uv3_hub() ? UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL :            \
1626         /*is_uv4_hub*/ UV4H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL)
1627 #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_32 0x9d0
1628
1629
1630 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_SHFT 4
1631 #define UV2H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_MASK 0x000007fffffffff0UL
1632
1633 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_SHFT 4
1634 #define UV3H_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_MASK 0x000007fffffffff0UL
1635
1636
1637 union uvh_lb_bau_intd_payload_queue_tail_u {
1638         unsigned long   v;
1639         struct uv2h_lb_bau_intd_payload_queue_tail_s {
1640                 unsigned long   rsvd_0_3:4;
1641                 unsigned long   address:39;                     /* RW */
1642                 unsigned long   rsvd_43_63:21;
1643         } s2;
1644         struct uv3h_lb_bau_intd_payload_queue_tail_s {
1645                 unsigned long   rsvd_0_3:4;
1646                 unsigned long   address:39;                     /* RW */
1647                 unsigned long   rsvd_43_63:21;
1648         } s3;
1649 };
1650
1651 /* ========================================================================= */
1652 /*                   UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE                    */
1653 /* ========================================================================= */
1654 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE 0x320080UL
1655 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE 0x320080UL
1656 #define UV4H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE uv_undefined("UV4H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE")
1657 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE (                          \
1658         is_uv2_hub() ? UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE :          \
1659         is_uv3_hub() ? UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE :          \
1660         /*is_uv4_hub*/ UV4H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE)
1661 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_32 0xa68
1662
1663
1664 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_SHFT 0
1665 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_SHFT 1
1666 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_SHFT 2
1667 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_SHFT 3
1668 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_SHFT 4
1669 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_SHFT 5
1670 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_SHFT 6
1671 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_SHFT 7
1672 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_SHFT 8
1673 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_SHFT 9
1674 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_SHFT 10
1675 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_SHFT 11
1676 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_SHFT 12
1677 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_SHFT 13
1678 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_SHFT 14
1679 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_SHFT 15
1680 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_MASK 0x0000000000000001UL
1681 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_MASK 0x0000000000000002UL
1682 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_MASK 0x0000000000000004UL
1683 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_MASK 0x0000000000000008UL
1684 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_MASK 0x0000000000000010UL
1685 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_MASK 0x0000000000000020UL
1686 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_MASK 0x0000000000000040UL
1687 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_MASK 0x0000000000000080UL
1688 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_MASK 0x0000000000000100UL
1689 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_MASK 0x0000000000000200UL
1690 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_MASK 0x0000000000000400UL
1691 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_MASK 0x0000000000000800UL
1692 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_MASK 0x0000000000001000UL
1693 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_MASK 0x0000000000002000UL
1694 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_MASK 0x0000000000004000UL
1695 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_MASK 0x0000000000008000UL
1696
1697 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_SHFT 0
1698 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_SHFT 1
1699 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_SHFT 2
1700 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_SHFT 3
1701 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_SHFT 4
1702 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_SHFT 5
1703 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_SHFT 6
1704 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_SHFT 7
1705 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_SHFT 8
1706 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_SHFT 9
1707 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_SHFT 10
1708 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_SHFT 11
1709 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_SHFT 12
1710 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_SHFT 13
1711 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_SHFT 14
1712 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_SHFT 15
1713 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_MASK 0x0000000000000001UL
1714 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_MASK 0x0000000000000002UL
1715 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_MASK 0x0000000000000004UL
1716 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_MASK 0x0000000000000008UL
1717 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_MASK 0x0000000000000010UL
1718 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_MASK 0x0000000000000020UL
1719 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_MASK 0x0000000000000040UL
1720 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_MASK 0x0000000000000080UL
1721 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_MASK 0x0000000000000100UL
1722 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_MASK 0x0000000000000200UL
1723 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_MASK 0x0000000000000400UL
1724 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_MASK 0x0000000000000800UL
1725 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_MASK 0x0000000000001000UL
1726 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_MASK 0x0000000000002000UL
1727 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_MASK 0x0000000000004000UL
1728 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_MASK 0x0000000000008000UL
1729
1730
1731 union uvh_lb_bau_intd_software_acknowledge_u {
1732         unsigned long   v;
1733         struct uv2h_lb_bau_intd_software_acknowledge_s {
1734                 unsigned long   pending_0:1;                    /* RW */
1735                 unsigned long   pending_1:1;                    /* RW */
1736                 unsigned long   pending_2:1;                    /* RW */
1737                 unsigned long   pending_3:1;                    /* RW */
1738                 unsigned long   pending_4:1;                    /* RW */
1739                 unsigned long   pending_5:1;                    /* RW */
1740                 unsigned long   pending_6:1;                    /* RW */
1741                 unsigned long   pending_7:1;                    /* RW */
1742                 unsigned long   timeout_0:1;                    /* RW */
1743                 unsigned long   timeout_1:1;                    /* RW */
1744                 unsigned long   timeout_2:1;                    /* RW */
1745                 unsigned long   timeout_3:1;                    /* RW */
1746                 unsigned long   timeout_4:1;                    /* RW */
1747                 unsigned long   timeout_5:1;                    /* RW */
1748                 unsigned long   timeout_6:1;                    /* RW */
1749                 unsigned long   timeout_7:1;                    /* RW */
1750                 unsigned long   rsvd_16_63:48;
1751         } s2;
1752         struct uv3h_lb_bau_intd_software_acknowledge_s {
1753                 unsigned long   pending_0:1;                    /* RW */
1754                 unsigned long   pending_1:1;                    /* RW */
1755                 unsigned long   pending_2:1;                    /* RW */
1756                 unsigned long   pending_3:1;                    /* RW */
1757                 unsigned long   pending_4:1;                    /* RW */
1758                 unsigned long   pending_5:1;                    /* RW */
1759                 unsigned long   pending_6:1;                    /* RW */
1760                 unsigned long   pending_7:1;                    /* RW */
1761                 unsigned long   timeout_0:1;                    /* RW */
1762                 unsigned long   timeout_1:1;                    /* RW */
1763                 unsigned long   timeout_2:1;                    /* RW */
1764                 unsigned long   timeout_3:1;                    /* RW */
1765                 unsigned long   timeout_4:1;                    /* RW */
1766                 unsigned long   timeout_5:1;                    /* RW */
1767                 unsigned long   timeout_6:1;                    /* RW */
1768                 unsigned long   timeout_7:1;                    /* RW */
1769                 unsigned long   rsvd_16_63:48;
1770         } s3;
1771 };
1772
1773 /* ========================================================================= */
1774 /*                UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS                 */
1775 /* ========================================================================= */
1776 #define UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS 0x320088UL
1777 #define UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS 0x320088UL
1778 #define UV4H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS uv_undefined("UV4H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS")
1779 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS (                    \
1780         is_uv2_hub() ? UV2H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS :    \
1781         is_uv3_hub() ? UV3H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS :    \
1782         /*is_uv4_hub*/ UV4H_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS)
1783 #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS_32 0xa70
1784
1785
1786 /* ========================================================================= */
1787 /*                         UVH_LB_BAU_MISC_CONTROL                           */
1788 /* ========================================================================= */
1789 #define UV2H_LB_BAU_MISC_CONTROL 0x320170UL
1790 #define UV3H_LB_BAU_MISC_CONTROL 0x320170UL
1791 #define UV4H_LB_BAU_MISC_CONTROL 0xc8170UL
1792 #define UVH_LB_BAU_MISC_CONTROL (                                       \
1793         is_uv2_hub() ? UV2H_LB_BAU_MISC_CONTROL :                       \
1794         is_uv3_hub() ? UV3H_LB_BAU_MISC_CONTROL :                       \
1795         /*is_uv4_hub*/ UV4H_LB_BAU_MISC_CONTROL)
1796
1797 #define UV2H_LB_BAU_MISC_CONTROL_32 0xa10
1798 #define UV3H_LB_BAU_MISC_CONTROL_32 0xa10
1799 #define UV4H_LB_BAU_MISC_CONTROL_32 0xa18
1800 #define UVH_LB_BAU_MISC_CONTROL_32 (                                    \
1801         is_uv2_hub() ? UV2H_LB_BAU_MISC_CONTROL_32 :                    \
1802         is_uv3_hub() ? UV3H_LB_BAU_MISC_CONTROL_32 :                    \
1803         /*is_uv4_hub*/ UV4H_LB_BAU_MISC_CONTROL_32)
1804
1805 #define UVH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT    0
1806 #define UVH_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT          8
1807 #define UVH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT    9
1808 #define UVH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT     10
1809 #define UVH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1810 #define UVH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1811 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1812 #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1813 #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1814 #define UVH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1815 #define UVH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1816 #define UVH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1817 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1818 #define UVH_LB_BAU_MISC_CONTROL_FUN_SHFT                48
1819 #define UVH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK    0x00000000000000ffUL
1820 #define UVH_LB_BAU_MISC_CONTROL_APIC_MODE_MASK          0x0000000000000100UL
1821 #define UVH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK    0x0000000000000200UL
1822 #define UVH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK     0x0000000000000400UL
1823 #define UVH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1824 #define UVH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1825 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1826 #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1827 #define UVH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1828 #define UVH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1829 #define UVH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1830 #define UVH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1831 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1832 #define UVH_LB_BAU_MISC_CONTROL_FUN_MASK                0xffff000000000000UL
1833
1834 #define UVXH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT   0
1835 #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT         8
1836 #define UVXH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT   9
1837 #define UVXH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT    10
1838 #define UVXH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1839 #define UVXH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1840 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1841 #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1842 #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1843 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1844 #define UVXH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1845 #define UVXH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1846 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1847 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
1848 #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT  30
1849 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
1850 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
1851 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
1852 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
1853 #define UVXH_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
1854 #define UVXH_LB_BAU_MISC_CONTROL_FUN_SHFT               48
1855 #define UVXH_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK   0x00000000000000ffUL
1856 #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_MASK         0x0000000000000100UL
1857 #define UVXH_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK   0x0000000000000200UL
1858 #define UVXH_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK    0x0000000000000400UL
1859 #define UVXH_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1860 #define UVXH_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1861 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1862 #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1863 #define UVXH_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1864 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1865 #define UVXH_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1866 #define UVXH_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1867 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1868 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
1869 #define UVXH_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK  0x0000000040000000UL
1870 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
1871 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
1872 #define UVXH_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
1873 #define UVXH_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
1874 #define UVXH_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
1875 #define UVXH_LB_BAU_MISC_CONTROL_FUN_MASK               0xffff000000000000UL
1876
1877 #define UV2H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT   0
1878 #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT         8
1879 #define UV2H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT   9
1880 #define UV2H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT    10
1881 #define UV2H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1882 #define UV2H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1883 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
1884 #define UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
1885 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1886 #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1887 #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1888 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1889 #define UV2H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1890 #define UV2H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1891 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1892 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
1893 #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT  30
1894 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
1895 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
1896 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
1897 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
1898 #define UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
1899 #define UV2H_LB_BAU_MISC_CONTROL_FUN_SHFT               48
1900 #define UV2H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK   0x00000000000000ffUL
1901 #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK         0x0000000000000100UL
1902 #define UV2H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK   0x0000000000000200UL
1903 #define UV2H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK    0x0000000000000400UL
1904 #define UV2H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1905 #define UV2H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1906 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
1907 #define UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
1908 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1909 #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1910 #define UV2H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1911 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1912 #define UV2H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1913 #define UV2H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1914 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1915 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
1916 #define UV2H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK  0x0000000040000000UL
1917 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
1918 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
1919 #define UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
1920 #define UV2H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
1921 #define UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
1922 #define UV2H_LB_BAU_MISC_CONTROL_FUN_MASK               0xffff000000000000UL
1923
1924 #define UV3H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT   0
1925 #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT         8
1926 #define UV3H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT   9
1927 #define UV3H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT    10
1928 #define UV3H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1929 #define UV3H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1930 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT 15
1931 #define UV3H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT 16
1932 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1933 #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1934 #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1935 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1936 #define UV3H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1937 #define UV3H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1938 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1939 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
1940 #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT  30
1941 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
1942 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
1943 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
1944 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
1945 #define UV3H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
1946 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_QUIESCE_MSGS_TO_QPI_SHFT 36
1947 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_PREFETCH_HINT_SHFT 37
1948 #define UV3H_LB_BAU_MISC_CONTROL_THREAD_KILL_TIMEBASE_SHFT 38
1949 #define UV3H_LB_BAU_MISC_CONTROL_FUN_SHFT               48
1950 #define UV3H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK   0x00000000000000ffUL
1951 #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK         0x0000000000000100UL
1952 #define UV3H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK   0x0000000000000200UL
1953 #define UV3H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK    0x0000000000000400UL
1954 #define UV3H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
1955 #define UV3H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
1956 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK 0x0000000000008000UL
1957 #define UV3H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK 0x00000000000f0000UL
1958 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
1959 #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
1960 #define UV3H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
1961 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
1962 #define UV3H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
1963 #define UV3H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
1964 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
1965 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
1966 #define UV3H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK  0x0000000040000000UL
1967 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
1968 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
1969 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
1970 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
1971 #define UV3H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
1972 #define UV3H_LB_BAU_MISC_CONTROL_SUPPRESS_QUIESCE_MSGS_TO_QPI_MASK 0x0000001000000000UL
1973 #define UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_PREFETCH_HINT_MASK 0x0000002000000000UL
1974 #define UV3H_LB_BAU_MISC_CONTROL_THREAD_KILL_TIMEBASE_MASK 0x00003fc000000000UL
1975 #define UV3H_LB_BAU_MISC_CONTROL_FUN_MASK               0xffff000000000000UL
1976
1977 #define UV4H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_SHFT   0
1978 #define UV4H_LB_BAU_MISC_CONTROL_APIC_MODE_SHFT         8
1979 #define UV4H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_SHFT   9
1980 #define UV4H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_SHFT    10
1981 #define UV4H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_SHFT 11
1982 #define UV4H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_SHFT 14
1983 #define UV4H_LB_BAU_MISC_CONTROL_RESERVED_15_19_SHFT    15
1984 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_SHFT 20
1985 #define UV4H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_SHFT 21
1986 #define UV4H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_SHFT 22
1987 #define UV4H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_SHFT 23
1988 #define UV4H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_SHFT 24
1989 #define UV4H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_SHFT 27
1990 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_SHFT 28
1991 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_SHFT 29
1992 #define UV4H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_SHFT  30
1993 #define UV4H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_SHFT 31
1994 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_SHFT 32
1995 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT 33
1996 #define UV4H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_SHFT 34
1997 #define UV4H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT 35
1998 #define UV4H_LB_BAU_MISC_CONTROL_SUPPRESS_QUIESCE_MSGS_TO_QPI_SHFT 36
1999 #define UV4H_LB_BAU_MISC_CONTROL_RESERVED_37_SHFT       37
2000 #define UV4H_LB_BAU_MISC_CONTROL_THREAD_KILL_TIMEBASE_SHFT 38
2001 #define UV4H_LB_BAU_MISC_CONTROL_ADDRESS_INTERLEAVE_SELECT_SHFT 46
2002 #define UV4H_LB_BAU_MISC_CONTROL_FUN_SHFT               48
2003 #define UV4H_LB_BAU_MISC_CONTROL_REJECTION_DELAY_MASK   0x00000000000000ffUL
2004 #define UV4H_LB_BAU_MISC_CONTROL_APIC_MODE_MASK         0x0000000000000100UL
2005 #define UV4H_LB_BAU_MISC_CONTROL_FORCE_BROADCAST_MASK   0x0000000000000200UL
2006 #define UV4H_LB_BAU_MISC_CONTROL_FORCE_LOCK_NOP_MASK    0x0000000000000400UL
2007 #define UV4H_LB_BAU_MISC_CONTROL_QPI_AGENT_PRESENCE_VECTOR_MASK 0x0000000000003800UL
2008 #define UV4H_LB_BAU_MISC_CONTROL_DESCRIPTOR_FETCH_MODE_MASK 0x0000000000004000UL
2009 #define UV4H_LB_BAU_MISC_CONTROL_RESERVED_15_19_MASK    0x00000000000f8000UL
2010 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_DUAL_MAPPING_MODE_MASK 0x0000000000100000UL
2011 #define UV4H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_DECODE_ENABLE_MASK 0x0000000000200000UL
2012 #define UV4H_LB_BAU_MISC_CONTROL_VGA_IO_PORT_16_BIT_DECODE_MASK 0x0000000000400000UL
2013 #define UV4H_LB_BAU_MISC_CONTROL_SUPPRESS_DEST_REGISTRATION_MASK 0x0000000000800000UL
2014 #define UV4H_LB_BAU_MISC_CONTROL_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000007000000UL
2015 #define UV4H_LB_BAU_MISC_CONTROL_USE_INCOMING_PRIORITY_MASK 0x0000000008000000UL
2016 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_PROGRAMMED_INITIAL_PRIORITY_MASK 0x0000000010000000UL
2017 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_AUTOMATIC_APIC_MODE_SELECTION_MASK 0x0000000020000000UL
2018 #define UV4H_LB_BAU_MISC_CONTROL_APIC_MODE_STATUS_MASK  0x0000000040000000UL
2019 #define UV4H_LB_BAU_MISC_CONTROL_SUPPRESS_INTERRUPTS_TO_SELF_MASK 0x0000000080000000UL
2020 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_LOCK_BASED_SYSTEM_FLUSH_MASK 0x0000000100000000UL
2021 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_MASK 0x0000000200000000UL
2022 #define UV4H_LB_BAU_MISC_CONTROL_SUPPRESS_INT_PRIO_UDT_TO_SELF_MASK 0x0000000400000000UL
2023 #define UV4H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_MASK 0x0000000800000000UL
2024 #define UV4H_LB_BAU_MISC_CONTROL_SUPPRESS_QUIESCE_MSGS_TO_QPI_MASK 0x0000001000000000UL
2025 #define UV4H_LB_BAU_MISC_CONTROL_RESERVED_37_MASK       0x0000002000000000UL
2026 #define UV4H_LB_BAU_MISC_CONTROL_THREAD_KILL_TIMEBASE_MASK 0x00003fc000000000UL
2027 #define UV4H_LB_BAU_MISC_CONTROL_ADDRESS_INTERLEAVE_SELECT_MASK 0x0000400000000000UL
2028 #define UV4H_LB_BAU_MISC_CONTROL_FUN_MASK               0xffff000000000000UL
2029
2030 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK \
2031         uv_undefined("UV4H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK")
2032 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK (        \
2033         is_uv2_hub() ? UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK : \
2034         is_uv3_hub() ? UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK : \
2035         /*is_uv4_hub*/ UV4H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_MASK)
2036 #define UV4H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT \
2037         uv_undefined("UV4H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT")
2038 #define UVH_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT (        \
2039         is_uv2_hub() ? UV2H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT : \
2040         is_uv3_hub() ? UV3H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT : \
2041         /*is_uv4_hub*/ UV4H_LB_BAU_MISC_CONTROL_ENABLE_INTD_SOFT_ACK_MODE_SHFT)
2042 #define UV4H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK      \
2043         uv_undefined("UV4H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK")
2044 #define UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK (     \
2045         is_uv2_hub() ? UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK : \
2046         is_uv3_hub() ? UV3H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK : \
2047         /*is_uv4_hub*/ UV4H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK)
2048 #define UV4H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT      \
2049         uv_undefined("UV4H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT")
2050 #define UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT (     \
2051         is_uv2_hub() ? UV2H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT : \
2052         is_uv3_hub() ? UV3H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT : \
2053         /*is_uv4_hub*/ UV4H_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT)
2054
2055 union uvh_lb_bau_misc_control_u {
2056         unsigned long   v;
2057         struct uvh_lb_bau_misc_control_s {
2058                 unsigned long   rejection_delay:8;              /* RW */
2059                 unsigned long   apic_mode:1;                    /* RW */
2060                 unsigned long   force_broadcast:1;              /* RW */
2061                 unsigned long   force_lock_nop:1;               /* RW */
2062                 unsigned long   qpi_agent_presence_vector:3;    /* RW */
2063                 unsigned long   descriptor_fetch_mode:1;        /* RW */
2064                 unsigned long   rsvd_15_19:5;
2065                 unsigned long   enable_dual_mapping_mode:1;     /* RW */
2066                 unsigned long   vga_io_port_decode_enable:1;    /* RW */
2067                 unsigned long   vga_io_port_16_bit_decode:1;    /* RW */
2068                 unsigned long   suppress_dest_registration:1;   /* RW */
2069                 unsigned long   programmed_initial_priority:3;  /* RW */
2070                 unsigned long   use_incoming_priority:1;        /* RW */
2071                 unsigned long   enable_programmed_initial_priority:1;/* RW */
2072                 unsigned long   rsvd_29_47:19;
2073                 unsigned long   fun:16;                         /* RW */
2074         } s;
2075         struct uvxh_lb_bau_misc_control_s {
2076                 unsigned long   rejection_delay:8;              /* RW */
2077                 unsigned long   apic_mode:1;                    /* RW */
2078                 unsigned long   force_broadcast:1;              /* RW */
2079                 unsigned long   force_lock_nop:1;               /* RW */
2080                 unsigned long   qpi_agent_presence_vector:3;    /* RW */
2081                 unsigned long   descriptor_fetch_mode:1;        /* RW */
2082                 unsigned long   rsvd_15_19:5;
2083                 unsigned long   enable_dual_mapping_mode:1;     /* RW */
2084                 unsigned long   vga_io_port_decode_enable:1;    /* RW */
2085                 unsigned long   vga_io_port_16_bit_decode:1;    /* RW */
2086                 unsigned long   suppress_dest_registration:1;   /* RW */
2087                 unsigned long   programmed_initial_priority:3;  /* RW */
2088                 unsigned long   use_incoming_priority:1;        /* RW */
2089                 unsigned long   enable_programmed_initial_priority:1;/* RW */
2090                 unsigned long   enable_automatic_apic_mode_selection:1;/* RW */
2091                 unsigned long   apic_mode_status:1;             /* RO */
2092                 unsigned long   suppress_interrupts_to_self:1;  /* RW */
2093                 unsigned long   enable_lock_based_system_flush:1;/* RW */
2094                 unsigned long   enable_extended_sb_status:1;    /* RW */
2095                 unsigned long   suppress_int_prio_udt_to_self:1;/* RW */
2096                 unsigned long   use_legacy_descriptor_formats:1;/* RW */
2097                 unsigned long   rsvd_36_47:12;
2098                 unsigned long   fun:16;                         /* RW */
2099         } sx;
2100         struct uv2h_lb_bau_misc_control_s {
2101                 unsigned long   rejection_delay:8;              /* RW */
2102                 unsigned long   apic_mode:1;                    /* RW */
2103                 unsigned long   force_broadcast:1;              /* RW */
2104                 unsigned long   force_lock_nop:1;               /* RW */
2105                 unsigned long   qpi_agent_presence_vector:3;    /* RW */
2106                 unsigned long   descriptor_fetch_mode:1;        /* RW */
2107                 unsigned long   enable_intd_soft_ack_mode:1;    /* RW */
2108                 unsigned long   intd_soft_ack_timeout_period:4; /* RW */
2109                 unsigned long   enable_dual_mapping_mode:1;     /* RW */
2110                 unsigned long   vga_io_port_decode_enable:1;    /* RW */
2111                 unsigned long   vga_io_port_16_bit_decode:1;    /* RW */
2112                 unsigned long   suppress_dest_registration:1;   /* RW */
2113                 unsigned long   programmed_initial_priority:3;  /* RW */
2114                 unsigned long   use_incoming_priority:1;        /* RW */
2115                 unsigned long   enable_programmed_initial_priority:1;/* RW */
2116                 unsigned long   enable_automatic_apic_mode_selection:1;/* RW */
2117                 unsigned long   apic_mode_status:1;             /* RO */
2118                 unsigned long   suppress_interrupts_to_self:1;  /* RW */
2119                 unsigned long   enable_lock_based_system_flush:1;/* RW */
2120                 unsigned long   enable_extended_sb_status:1;    /* RW */
2121                 unsigned long   suppress_int_prio_udt_to_self:1;/* RW */
2122                 unsigned long   use_legacy_descriptor_formats:1;/* RW */
2123                 unsigned long   rsvd_36_47:12;
2124                 unsigned long   fun:16;                         /* RW */
2125         } s2;
2126         struct uv3h_lb_bau_misc_control_s {
2127                 unsigned long   rejection_delay:8;              /* RW */
2128                 unsigned long   apic_mode:1;                    /* RW */
2129                 unsigned long   force_broadcast:1;              /* RW */
2130                 unsigned long   force_lock_nop:1;               /* RW */
2131                 unsigned long   qpi_agent_presence_vector:3;    /* RW */
2132                 unsigned long   descriptor_fetch_mode:1;        /* RW */
2133                 unsigned long   enable_intd_soft_ack_mode:1;    /* RW */
2134                 unsigned long   intd_soft_ack_timeout_period:4; /* RW */
2135                 unsigned long   enable_dual_mapping_mode:1;     /* RW */
2136                 unsigned long   vga_io_port_decode_enable:1;    /* RW */
2137                 unsigned long   vga_io_port_16_bit_decode:1;    /* RW */
2138                 unsigned long   suppress_dest_registration:1;   /* RW */
2139                 unsigned long   programmed_initial_priority:3;  /* RW */
2140                 unsigned long   use_incoming_priority:1;        /* RW */
2141                 unsigned long   enable_programmed_initial_priority:1;/* RW */
2142                 unsigned long   enable_automatic_apic_mode_selection:1;/* RW */
2143                 unsigned long   apic_mode_status:1;             /* RO */
2144                 unsigned long   suppress_interrupts_to_self:1;  /* RW */
2145                 unsigned long   enable_lock_based_system_flush:1;/* RW */
2146                 unsigned long   enable_extended_sb_status:1;    /* RW */
2147                 unsigned long   suppress_int_prio_udt_to_self:1;/* RW */
2148                 unsigned long   use_legacy_descriptor_formats:1;/* RW */
2149                 unsigned long   suppress_quiesce_msgs_to_qpi:1; /* RW */
2150                 unsigned long   enable_intd_prefetch_hint:1;    /* RW */
2151                 unsigned long   thread_kill_timebase:8;         /* RW */
2152                 unsigned long   rsvd_46_47:2;
2153                 unsigned long   fun:16;                         /* RW */
2154         } s3;
2155         struct uv4h_lb_bau_misc_control_s {
2156                 unsigned long   rejection_delay:8;              /* RW */
2157                 unsigned long   apic_mode:1;                    /* RW */
2158                 unsigned long   force_broadcast:1;              /* RW */
2159                 unsigned long   force_lock_nop:1;               /* RW */
2160                 unsigned long   qpi_agent_presence_vector:3;    /* RW */
2161                 unsigned long   descriptor_fetch_mode:1;        /* RW */
2162                 unsigned long   rsvd_15_19:5;
2163                 unsigned long   enable_dual_mapping_mode:1;     /* RW */
2164                 unsigned long   vga_io_port_decode_enable:1;    /* RW */
2165                 unsigned long   vga_io_port_16_bit_decode:1;    /* RW */
2166                 unsigned long   suppress_dest_registration:1;   /* RW */
2167                 unsigned long   programmed_initial_priority:3;  /* RW */
2168                 unsigned long   use_incoming_priority:1;        /* RW */
2169                 unsigned long   enable_programmed_initial_priority:1;/* RW */
2170                 unsigned long   enable_automatic_apic_mode_selection:1;/* RW */
2171                 unsigned long   apic_mode_status:1;             /* RO */
2172                 unsigned long   suppress_interrupts_to_self:1;  /* RW */
2173                 unsigned long   enable_lock_based_system_flush:1;/* RW */
2174                 unsigned long   enable_extended_sb_status:1;    /* RW */
2175                 unsigned long   suppress_int_prio_udt_to_self:1;/* RW */
2176                 unsigned long   use_legacy_descriptor_formats:1;/* RW */
2177                 unsigned long   suppress_quiesce_msgs_to_qpi:1; /* RW */
2178                 unsigned long   rsvd_37:1;
2179                 unsigned long   thread_kill_timebase:8;         /* RW */
2180                 unsigned long   address_interleave_select:1;    /* RW */
2181                 unsigned long   rsvd_47:1;
2182                 unsigned long   fun:16;                         /* RW */
2183         } s4;
2184 };
2185
2186 /* ========================================================================= */
2187 /*                     UVH_LB_BAU_SB_ACTIVATION_CONTROL                      */
2188 /* ========================================================================= */
2189 #define UV2H_LB_BAU_SB_ACTIVATION_CONTROL 0x320020UL
2190 #define UV3H_LB_BAU_SB_ACTIVATION_CONTROL 0x320020UL
2191 #define UV4H_LB_BAU_SB_ACTIVATION_CONTROL 0xc8020UL
2192 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL (                              \
2193         is_uv2_hub() ? UV2H_LB_BAU_SB_ACTIVATION_CONTROL :              \
2194         is_uv3_hub() ? UV3H_LB_BAU_SB_ACTIVATION_CONTROL :              \
2195         /*is_uv4_hub*/ UV4H_LB_BAU_SB_ACTIVATION_CONTROL)
2196
2197 #define UV2H_LB_BAU_SB_ACTIVATION_CONTROL_32 0x9a8
2198 #define UV3H_LB_BAU_SB_ACTIVATION_CONTROL_32 0x9a8
2199 #define UV4H_LB_BAU_SB_ACTIVATION_CONTROL_32 0x9c8
2200 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_32 (                           \
2201         is_uv2_hub() ? UV2H_LB_BAU_SB_ACTIVATION_CONTROL_32 :           \
2202         is_uv3_hub() ? UV3H_LB_BAU_SB_ACTIVATION_CONTROL_32 :           \
2203         /*is_uv4_hub*/ UV4H_LB_BAU_SB_ACTIVATION_CONTROL_32)
2204
2205 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_SHFT     0
2206 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_SHFT      62
2207 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_SHFT      63
2208 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_MASK     0x000000000000003fUL
2209 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_MASK      0x4000000000000000UL
2210 #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_MASK      0x8000000000000000UL
2211
2212
2213 union uvh_lb_bau_sb_activation_control_u {
2214         unsigned long   v;
2215         struct uvh_lb_bau_sb_activation_control_s {
2216                 unsigned long   index:6;                        /* RW */
2217                 unsigned long   rsvd_6_61:56;
2218                 unsigned long   push:1;                         /* WP */
2219                 unsigned long   init:1;                         /* WP */
2220         } s;
2221 };
2222
2223 /* ========================================================================= */
2224 /*                    UVH_LB_BAU_SB_ACTIVATION_STATUS_0                      */
2225 /* ========================================================================= */
2226 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_0 0x320030UL
2227 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_0 0x320030UL
2228 #define UV4H_LB_BAU_SB_ACTIVATION_STATUS_0 0xc8030UL
2229 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0 (                             \
2230         is_uv2_hub() ? UV2H_LB_BAU_SB_ACTIVATION_STATUS_0 :             \
2231         is_uv3_hub() ? UV3H_LB_BAU_SB_ACTIVATION_STATUS_0 :             \
2232         /*is_uv4_hub*/ UV4H_LB_BAU_SB_ACTIVATION_STATUS_0)
2233
2234 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_0_32 0x9b0
2235 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_0_32 0x9b0
2236 #define UV4H_LB_BAU_SB_ACTIVATION_STATUS_0_32 0x9d0
2237 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_32 (                          \
2238         is_uv2_hub() ? UV2H_LB_BAU_SB_ACTIVATION_STATUS_0_32 :          \
2239         is_uv3_hub() ? UV3H_LB_BAU_SB_ACTIVATION_STATUS_0_32 :          \
2240         /*is_uv4_hub*/ UV4H_LB_BAU_SB_ACTIVATION_STATUS_0_32)
2241
2242 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_SHFT   0
2243 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_MASK   0xffffffffffffffffUL
2244
2245
2246 union uvh_lb_bau_sb_activation_status_0_u {
2247         unsigned long   v;
2248         struct uvh_lb_bau_sb_activation_status_0_s {
2249                 unsigned long   status:64;                      /* RW */
2250         } s;
2251 };
2252
2253 /* ========================================================================= */
2254 /*                    UVH_LB_BAU_SB_ACTIVATION_STATUS_1                      */
2255 /* ========================================================================= */
2256 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_1 0x320040UL
2257 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_1 0x320040UL
2258 #define UV4H_LB_BAU_SB_ACTIVATION_STATUS_1 0xc8040UL
2259 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1 (                             \
2260         is_uv2_hub() ? UV2H_LB_BAU_SB_ACTIVATION_STATUS_1 :             \
2261         is_uv3_hub() ? UV3H_LB_BAU_SB_ACTIVATION_STATUS_1 :             \
2262         /*is_uv4_hub*/ UV4H_LB_BAU_SB_ACTIVATION_STATUS_1)
2263
2264 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_1_32 0x9b8
2265 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_1_32 0x9b8
2266 #define UV4H_LB_BAU_SB_ACTIVATION_STATUS_1_32 0x9d8
2267 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_32 (                          \
2268         is_uv2_hub() ? UV2H_LB_BAU_SB_ACTIVATION_STATUS_1_32 :          \
2269         is_uv3_hub() ? UV3H_LB_BAU_SB_ACTIVATION_STATUS_1_32 :          \
2270         /*is_uv4_hub*/ UV4H_LB_BAU_SB_ACTIVATION_STATUS_1_32)
2271
2272 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_SHFT   0
2273 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_MASK   0xffffffffffffffffUL
2274
2275
2276 union uvh_lb_bau_sb_activation_status_1_u {
2277         unsigned long   v;
2278         struct uvh_lb_bau_sb_activation_status_1_s {
2279                 unsigned long   status:64;                      /* RW */
2280         } s;
2281 };
2282
2283 /* ========================================================================= */
2284 /*                      UVH_LB_BAU_SB_DESCRIPTOR_BASE                        */
2285 /* ========================================================================= */
2286 #define UV2H_LB_BAU_SB_DESCRIPTOR_BASE 0x320010UL
2287 #define UV3H_LB_BAU_SB_DESCRIPTOR_BASE 0x320010UL
2288 #define UV4H_LB_BAU_SB_DESCRIPTOR_BASE 0xc8010UL
2289 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE (                                 \
2290         is_uv2_hub() ? UV2H_LB_BAU_SB_DESCRIPTOR_BASE :                 \
2291         is_uv3_hub() ? UV3H_LB_BAU_SB_DESCRIPTOR_BASE :                 \
2292         /*is_uv4_hub*/ UV4H_LB_BAU_SB_DESCRIPTOR_BASE)
2293
2294 #define UV2H_LB_BAU_SB_DESCRIPTOR_BASE_32 0x9a0
2295 #define UV3H_LB_BAU_SB_DESCRIPTOR_BASE_32 0x9a0
2296 #define UV4H_LB_BAU_SB_DESCRIPTOR_BASE_32 0x9c0
2297 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_32 (                              \
2298         is_uv2_hub() ? UV2H_LB_BAU_SB_DESCRIPTOR_BASE_32 :              \
2299         is_uv3_hub() ? UV3H_LB_BAU_SB_DESCRIPTOR_BASE_32 :              \
2300         /*is_uv4_hub*/ UV4H_LB_BAU_SB_DESCRIPTOR_BASE_32)
2301
2302 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_SHFT 12
2303
2304 #define UV2H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT     49
2305 #define UV2H_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x000007fffffff000UL
2306 #define UV2H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK     0x7ffe000000000000UL
2307
2308 #define UV3H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT     49
2309 #define UV3H_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x000007fffffff000UL
2310 #define UV3H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK     0x7ffe000000000000UL
2311
2312 #define UV4H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT     49
2313 #define UV4H_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x00003ffffffff000UL
2314 #define UV4H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK     0x7ffe000000000000UL
2315
2316 #define UV4AH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT    53
2317 #define UV4AH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x000ffffffffff000UL
2318 #define UV4AH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK    0xffe0000000000000UL
2319
2320 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT (                    \
2321         is_uv2_hub() ? UV2H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT :    \
2322         is_uv3_hub() ? UV3H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT :    \
2323         is_uv4a_hub() ? UV4AH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT :  \
2324         /*is_uv4_hub*/ UV4H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT)
2325
2326 #define UVH_LB_BAU_SB_DESCRIPTOR_PAGE_ADDRESS_MASK (                    \
2327         is_uv2_hub() ? UV2H_LB_BAU_SB_DESCRIPTOR_PAGE_ADDRESS_MASK :    \
2328         is_uv3_hub() ? UV3H_LB_BAU_SB_DESCRIPTOR_PAGE_ADDRESS_MASK :    \
2329         is_uv4a_hub() ? UV4AH_LB_BAU_SB_DESCRIPTOR_PAGE_ADDRESS_MASK :  \
2330         /*is_uv4_hub*/ UV4H_LB_BAU_SB_DESCRIPTOR_PAGE_ADDRESS_MASK)
2331
2332 #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK (                    \
2333         is_uv2_hub() ? UV2H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK :    \
2334         is_uv3_hub() ? UV3H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK :    \
2335         is_uv4a_hub() ? UV4AH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK :  \
2336         /*is_uv4_hub*/ UV4H_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK)
2337
2338 /* ========================================================================= */
2339 /*                               UVH_NODE_ID                                 */
2340 /* ========================================================================= */
2341 #define UVH_NODE_ID 0x0UL
2342 #define UV2H_NODE_ID 0x0UL
2343 #define UV3H_NODE_ID 0x0UL
2344 #define UV4H_NODE_ID 0x0UL
2345
2346 #define UVH_NODE_ID_FORCE1_SHFT                         0
2347 #define UVH_NODE_ID_MANUFACTURER_SHFT                   1
2348 #define UVH_NODE_ID_PART_NUMBER_SHFT                    12
2349 #define UVH_NODE_ID_REVISION_SHFT                       28
2350 #define UVH_NODE_ID_NODE_ID_SHFT                        32
2351 #define UVH_NODE_ID_FORCE1_MASK                         0x0000000000000001UL
2352 #define UVH_NODE_ID_MANUFACTURER_MASK                   0x0000000000000ffeUL
2353 #define UVH_NODE_ID_PART_NUMBER_MASK                    0x000000000ffff000UL
2354 #define UVH_NODE_ID_REVISION_MASK                       0x00000000f0000000UL
2355 #define UVH_NODE_ID_NODE_ID_MASK                        0x00007fff00000000UL
2356
2357 #define UVXH_NODE_ID_FORCE1_SHFT                        0
2358 #define UVXH_NODE_ID_MANUFACTURER_SHFT                  1
2359 #define UVXH_NODE_ID_PART_NUMBER_SHFT                   12
2360 #define UVXH_NODE_ID_REVISION_SHFT                      28
2361 #define UVXH_NODE_ID_NODE_ID_SHFT                       32
2362 #define UVXH_NODE_ID_NODES_PER_BIT_SHFT                 50
2363 #define UVXH_NODE_ID_NI_PORT_SHFT                       57
2364 #define UVXH_NODE_ID_FORCE1_MASK                        0x0000000000000001UL
2365 #define UVXH_NODE_ID_MANUFACTURER_MASK                  0x0000000000000ffeUL
2366 #define UVXH_NODE_ID_PART_NUMBER_MASK                   0x000000000ffff000UL
2367 #define UVXH_NODE_ID_REVISION_MASK                      0x00000000f0000000UL
2368 #define UVXH_NODE_ID_NODE_ID_MASK                       0x00007fff00000000UL
2369 #define UVXH_NODE_ID_NODES_PER_BIT_MASK                 0x01fc000000000000UL
2370 #define UVXH_NODE_ID_NI_PORT_MASK                       0x3e00000000000000UL
2371
2372 #define UV2H_NODE_ID_FORCE1_SHFT                        0
2373 #define UV2H_NODE_ID_MANUFACTURER_SHFT                  1
2374 #define UV2H_NODE_ID_PART_NUMBER_SHFT                   12
2375 #define UV2H_NODE_ID_REVISION_SHFT                      28
2376 #define UV2H_NODE_ID_NODE_ID_SHFT                       32
2377 #define UV2H_NODE_ID_NODES_PER_BIT_SHFT                 50
2378 #define UV2H_NODE_ID_NI_PORT_SHFT                       57
2379 #define UV2H_NODE_ID_FORCE1_MASK                        0x0000000000000001UL
2380 #define UV2H_NODE_ID_MANUFACTURER_MASK                  0x0000000000000ffeUL
2381 #define UV2H_NODE_ID_PART_NUMBER_MASK                   0x000000000ffff000UL
2382 #define UV2H_NODE_ID_REVISION_MASK                      0x00000000f0000000UL
2383 #define UV2H_NODE_ID_NODE_ID_MASK                       0x00007fff00000000UL
2384 #define UV2H_NODE_ID_NODES_PER_BIT_MASK                 0x01fc000000000000UL
2385 #define UV2H_NODE_ID_NI_PORT_MASK                       0x3e00000000000000UL
2386
2387 #define UV3H_NODE_ID_FORCE1_SHFT                        0
2388 #define UV3H_NODE_ID_MANUFACTURER_SHFT                  1
2389 #define UV3H_NODE_ID_PART_NUMBER_SHFT                   12
2390 #define UV3H_NODE_ID_REVISION_SHFT                      28
2391 #define UV3H_NODE_ID_NODE_ID_SHFT                       32
2392 #define UV3H_NODE_ID_ROUTER_SELECT_SHFT                 48
2393 #define UV3H_NODE_ID_RESERVED_2_SHFT                    49
2394 #define UV3H_NODE_ID_NODES_PER_BIT_SHFT                 50
2395 #define UV3H_NODE_ID_NI_PORT_SHFT                       57
2396 #define UV3H_NODE_ID_FORCE1_MASK                        0x0000000000000001UL
2397 #define UV3H_NODE_ID_MANUFACTURER_MASK                  0x0000000000000ffeUL
2398 #define UV3H_NODE_ID_PART_NUMBER_MASK                   0x000000000ffff000UL
2399 #define UV3H_NODE_ID_REVISION_MASK                      0x00000000f0000000UL
2400 #define UV3H_NODE_ID_NODE_ID_MASK                       0x00007fff00000000UL
2401 #define UV3H_NODE_ID_ROUTER_SELECT_MASK                 0x0001000000000000UL
2402 #define UV3H_NODE_ID_RESERVED_2_MASK                    0x0002000000000000UL
2403 #define UV3H_NODE_ID_NODES_PER_BIT_MASK                 0x01fc000000000000UL
2404 #define UV3H_NODE_ID_NI_PORT_MASK                       0x3e00000000000000UL
2405
2406 #define UV4H_NODE_ID_FORCE1_SHFT                        0
2407 #define UV4H_NODE_ID_MANUFACTURER_SHFT                  1
2408 #define UV4H_NODE_ID_PART_NUMBER_SHFT                   12
2409 #define UV4H_NODE_ID_REVISION_SHFT                      28
2410 #define UV4H_NODE_ID_NODE_ID_SHFT                       32
2411 #define UV4H_NODE_ID_ROUTER_SELECT_SHFT                 48
2412 #define UV4H_NODE_ID_RESERVED_2_SHFT                    49
2413 #define UV4H_NODE_ID_NODES_PER_BIT_SHFT                 50
2414 #define UV4H_NODE_ID_NI_PORT_SHFT                       57
2415 #define UV4H_NODE_ID_FORCE1_MASK                        0x0000000000000001UL
2416 #define UV4H_NODE_ID_MANUFACTURER_MASK                  0x0000000000000ffeUL
2417 #define UV4H_NODE_ID_PART_NUMBER_MASK                   0x000000000ffff000UL
2418 #define UV4H_NODE_ID_REVISION_MASK                      0x00000000f0000000UL
2419 #define UV4H_NODE_ID_NODE_ID_MASK                       0x00007fff00000000UL
2420 #define UV4H_NODE_ID_ROUTER_SELECT_MASK                 0x0001000000000000UL
2421 #define UV4H_NODE_ID_RESERVED_2_MASK                    0x0002000000000000UL
2422 #define UV4H_NODE_ID_NODES_PER_BIT_MASK                 0x01fc000000000000UL
2423 #define UV4H_NODE_ID_NI_PORT_MASK                       0x3e00000000000000UL
2424
2425
2426 union uvh_node_id_u {
2427         unsigned long   v;
2428         struct uvh_node_id_s {
2429                 unsigned long   force1:1;                       /* RO */
2430                 unsigned long   manufacturer:11;                /* RO */
2431                 unsigned long   part_number:16;                 /* RO */
2432                 unsigned long   revision:4;                     /* RO */
2433                 unsigned long   node_id:15;                     /* RW */
2434                 unsigned long   rsvd_47_63:17;
2435         } s;
2436         struct uvxh_node_id_s {
2437                 unsigned long   force1:1;                       /* RO */
2438                 unsigned long   manufacturer:11;                /* RO */
2439                 unsigned long   part_number:16;                 /* RO */
2440                 unsigned long   revision:4;                     /* RO */
2441                 unsigned long   node_id:15;                     /* RW */
2442                 unsigned long   rsvd_47_49:3;
2443                 unsigned long   nodes_per_bit:7;                /* RO */
2444                 unsigned long   ni_port:5;                      /* RO */
2445                 unsigned long   rsvd_62_63:2;
2446         } sx;
2447         struct uv2h_node_id_s {
2448                 unsigned long   force1:1;                       /* RO */
2449                 unsigned long   manufacturer:11;                /* RO */
2450                 unsigned long   part_number:16;                 /* RO */
2451                 unsigned long   revision:4;                     /* RO */
2452                 unsigned long   node_id:15;                     /* RW */
2453                 unsigned long   rsvd_47_49:3;
2454                 unsigned long   nodes_per_bit:7;                /* RO */
2455                 unsigned long   ni_port:5;                      /* RO */
2456                 unsigned long   rsvd_62_63:2;
2457         } s2;
2458         struct uv3h_node_id_s {
2459                 unsigned long   force1:1;                       /* RO */
2460                 unsigned long   manufacturer:11;                /* RO */
2461                 unsigned long   part_number:16;                 /* RO */
2462                 unsigned long   revision:4;                     /* RO */
2463                 unsigned long   node_id:15;                     /* RW */
2464                 unsigned long   rsvd_47:1;
2465                 unsigned long   router_select:1;                /* RO */
2466                 unsigned long   rsvd_49:1;
2467                 unsigned long   nodes_per_bit:7;                /* RO */
2468                 unsigned long   ni_port:5;                      /* RO */
2469                 unsigned long   rsvd_62_63:2;
2470         } s3;
2471         struct uv4h_node_id_s {
2472                 unsigned long   force1:1;                       /* RO */
2473                 unsigned long   manufacturer:11;                /* RO */
2474                 unsigned long   part_number:16;                 /* RO */
2475                 unsigned long   revision:4;                     /* RO */
2476                 unsigned long   node_id:15;                     /* RW */
2477                 unsigned long   rsvd_47:1;
2478                 unsigned long   router_select:1;                /* RO */
2479                 unsigned long   rsvd_49:1;
2480                 unsigned long   nodes_per_bit:7;                /* RO */
2481                 unsigned long   ni_port:5;                      /* RO */
2482                 unsigned long   rsvd_62_63:2;
2483         } s4;
2484 };
2485
2486 /* ========================================================================= */
2487 /*                          UVH_NODE_PRESENT_TABLE                           */
2488 /* ========================================================================= */
2489 #define UVH_NODE_PRESENT_TABLE 0x1400UL
2490
2491 #define UV2H_NODE_PRESENT_TABLE_DEPTH 16
2492 #define UV3H_NODE_PRESENT_TABLE_DEPTH 16
2493 #define UV4H_NODE_PRESENT_TABLE_DEPTH 4
2494 #define UVH_NODE_PRESENT_TABLE_DEPTH (                                  \
2495         is_uv2_hub() ? UV2H_NODE_PRESENT_TABLE_DEPTH :                  \
2496         is_uv3_hub() ? UV3H_NODE_PRESENT_TABLE_DEPTH :                  \
2497         /*is_uv4_hub*/ UV4H_NODE_PRESENT_TABLE_DEPTH)
2498
2499 #define UVH_NODE_PRESENT_TABLE_NODES_SHFT               0
2500 #define UVH_NODE_PRESENT_TABLE_NODES_MASK               0xffffffffffffffffUL
2501
2502
2503 union uvh_node_present_table_u {
2504         unsigned long   v;
2505         struct uvh_node_present_table_s {
2506                 unsigned long   nodes:64;                       /* RW */
2507         } s;
2508 };
2509
2510 /* ========================================================================= */
2511 /*                 UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR                  */
2512 /* ========================================================================= */
2513 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR 0x16000c8UL
2514 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR 0x16000c8UL
2515 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR 0x4800c8UL
2516 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR (                      \
2517         is_uv2_hub() ? UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR :      \
2518         is_uv3_hub() ? UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR :      \
2519         /*is_uv4_hub*/ UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR)
2520
2521 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_SHFT 24
2522 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_SHFT 48
2523 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_SHFT 63
2524 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_MASK 0x00000000ff000000UL
2525 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_MASK 0x001f000000000000UL
2526 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_MASK 0x8000000000000000UL
2527
2528 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_SHFT 24
2529 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_SHFT 48
2530 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_SHFT 63
2531 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_MASK 0x00000000ff000000UL
2532 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_MASK 0x001f000000000000UL
2533 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_MASK 0x8000000000000000UL
2534
2535 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_SHFT 24
2536 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_SHFT 48
2537 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_SHFT 63
2538 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_MASK 0x00000000ff000000UL
2539 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_MASK 0x001f000000000000UL
2540 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_MASK 0x8000000000000000UL
2541
2542 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_SHFT 24
2543 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_SHFT 48
2544 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_SHFT 63
2545 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_MASK 0x00000000ff000000UL
2546 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_MASK 0x001f000000000000UL
2547 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_MASK 0x8000000000000000UL
2548
2549 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_SHFT 24
2550 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_SHFT 48
2551 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_SHFT 63
2552 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_BASE_MASK 0x00000000ff000000UL
2553 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_M_ALIAS_MASK 0x001f000000000000UL
2554 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_0_MMR_ENABLE_MASK 0x8000000000000000UL
2555
2556
2557 union uvh_rh_gam_alias210_overlay_config_0_mmr_u {
2558         unsigned long   v;
2559         struct uvh_rh_gam_alias210_overlay_config_0_mmr_s {
2560                 unsigned long   rsvd_0_23:24;
2561                 unsigned long   base:8;                         /* RW */
2562                 unsigned long   rsvd_32_47:16;
2563                 unsigned long   m_alias:5;                      /* RW */
2564                 unsigned long   rsvd_53_62:10;
2565                 unsigned long   enable:1;                       /* RW */
2566         } s;
2567         struct uvxh_rh_gam_alias210_overlay_config_0_mmr_s {
2568                 unsigned long   rsvd_0_23:24;
2569                 unsigned long   base:8;                         /* RW */
2570                 unsigned long   rsvd_32_47:16;
2571                 unsigned long   m_alias:5;                      /* RW */
2572                 unsigned long   rsvd_53_62:10;
2573                 unsigned long   enable:1;                       /* RW */
2574         } sx;
2575         struct uv2h_rh_gam_alias210_overlay_config_0_mmr_s {
2576                 unsigned long   rsvd_0_23:24;
2577                 unsigned long   base:8;                         /* RW */
2578                 unsigned long   rsvd_32_47:16;
2579                 unsigned long   m_alias:5;                      /* RW */
2580                 unsigned long   rsvd_53_62:10;
2581                 unsigned long   enable:1;                       /* RW */
2582         } s2;
2583         struct uv3h_rh_gam_alias210_overlay_config_0_mmr_s {
2584                 unsigned long   rsvd_0_23:24;
2585                 unsigned long   base:8;                         /* RW */
2586                 unsigned long   rsvd_32_47:16;
2587                 unsigned long   m_alias:5;                      /* RW */
2588                 unsigned long   rsvd_53_62:10;
2589                 unsigned long   enable:1;                       /* RW */
2590         } s3;
2591         struct uv4h_rh_gam_alias210_overlay_config_0_mmr_s {
2592                 unsigned long   rsvd_0_23:24;
2593                 unsigned long   base:8;                         /* RW */
2594                 unsigned long   rsvd_32_47:16;
2595                 unsigned long   m_alias:5;                      /* RW */
2596                 unsigned long   rsvd_53_62:10;
2597                 unsigned long   enable:1;                       /* RW */
2598         } s4;
2599 };
2600
2601 /* ========================================================================= */
2602 /*                 UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR                  */
2603 /* ========================================================================= */
2604 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR 0x16000d8UL
2605 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR 0x16000d8UL
2606 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR 0x4800d8UL
2607 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR (                      \
2608         is_uv2_hub() ? UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR :      \
2609         is_uv3_hub() ? UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR :      \
2610         /*is_uv4_hub*/ UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR)
2611
2612 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_SHFT 24
2613 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_SHFT 48
2614 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_SHFT 63
2615 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_MASK 0x00000000ff000000UL
2616 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_MASK 0x001f000000000000UL
2617 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_MASK 0x8000000000000000UL
2618
2619 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_SHFT 24
2620 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_SHFT 48
2621 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_SHFT 63
2622 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_MASK 0x00000000ff000000UL
2623 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_MASK 0x001f000000000000UL
2624 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_MASK 0x8000000000000000UL
2625
2626 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_SHFT 24
2627 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_SHFT 48
2628 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_SHFT 63
2629 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_MASK 0x00000000ff000000UL
2630 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_MASK 0x001f000000000000UL
2631 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_MASK 0x8000000000000000UL
2632
2633 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_SHFT 24
2634 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_SHFT 48
2635 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_SHFT 63
2636 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_MASK 0x00000000ff000000UL
2637 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_MASK 0x001f000000000000UL
2638 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_MASK 0x8000000000000000UL
2639
2640 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_SHFT 24
2641 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_SHFT 48
2642 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_SHFT 63
2643 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_BASE_MASK 0x00000000ff000000UL
2644 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_M_ALIAS_MASK 0x001f000000000000UL
2645 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_1_MMR_ENABLE_MASK 0x8000000000000000UL
2646
2647
2648 union uvh_rh_gam_alias210_overlay_config_1_mmr_u {
2649         unsigned long   v;
2650         struct uvh_rh_gam_alias210_overlay_config_1_mmr_s {
2651                 unsigned long   rsvd_0_23:24;
2652                 unsigned long   base:8;                         /* RW */
2653                 unsigned long   rsvd_32_47:16;
2654                 unsigned long   m_alias:5;                      /* RW */
2655                 unsigned long   rsvd_53_62:10;
2656                 unsigned long   enable:1;                       /* RW */
2657         } s;
2658         struct uvxh_rh_gam_alias210_overlay_config_1_mmr_s {
2659                 unsigned long   rsvd_0_23:24;
2660                 unsigned long   base:8;                         /* RW */
2661                 unsigned long   rsvd_32_47:16;
2662                 unsigned long   m_alias:5;                      /* RW */
2663                 unsigned long   rsvd_53_62:10;
2664                 unsigned long   enable:1;                       /* RW */
2665         } sx;
2666         struct uv2h_rh_gam_alias210_overlay_config_1_mmr_s {
2667                 unsigned long   rsvd_0_23:24;
2668                 unsigned long   base:8;                         /* RW */
2669                 unsigned long   rsvd_32_47:16;
2670                 unsigned long   m_alias:5;                      /* RW */
2671                 unsigned long   rsvd_53_62:10;
2672                 unsigned long   enable:1;                       /* RW */
2673         } s2;
2674         struct uv3h_rh_gam_alias210_overlay_config_1_mmr_s {
2675                 unsigned long   rsvd_0_23:24;
2676                 unsigned long   base:8;                         /* RW */
2677                 unsigned long   rsvd_32_47:16;
2678                 unsigned long   m_alias:5;                      /* RW */
2679                 unsigned long   rsvd_53_62:10;
2680                 unsigned long   enable:1;                       /* RW */
2681         } s3;
2682         struct uv4h_rh_gam_alias210_overlay_config_1_mmr_s {
2683                 unsigned long   rsvd_0_23:24;
2684                 unsigned long   base:8;                         /* RW */
2685                 unsigned long   rsvd_32_47:16;
2686                 unsigned long   m_alias:5;                      /* RW */
2687                 unsigned long   rsvd_53_62:10;
2688                 unsigned long   enable:1;                       /* RW */
2689         } s4;
2690 };
2691
2692 /* ========================================================================= */
2693 /*                 UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR                  */
2694 /* ========================================================================= */
2695 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR 0x16000e8UL
2696 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR 0x16000e8UL
2697 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR 0x4800e8UL
2698 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR (                      \
2699         is_uv2_hub() ? UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR :      \
2700         is_uv3_hub() ? UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR :      \
2701         /*is_uv4_hub*/ UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR)
2702
2703 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_SHFT 24
2704 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_SHFT 48
2705 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_SHFT 63
2706 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_MASK 0x00000000ff000000UL
2707 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_MASK 0x001f000000000000UL
2708 #define UVH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_MASK 0x8000000000000000UL
2709
2710 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_SHFT 24
2711 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_SHFT 48
2712 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_SHFT 63
2713 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_MASK 0x00000000ff000000UL
2714 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_MASK 0x001f000000000000UL
2715 #define UVXH_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_MASK 0x8000000000000000UL
2716
2717 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_SHFT 24
2718 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_SHFT 48
2719 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_SHFT 63
2720 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_MASK 0x00000000ff000000UL
2721 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_MASK 0x001f000000000000UL
2722 #define UV2H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_MASK 0x8000000000000000UL
2723
2724 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_SHFT 24
2725 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_SHFT 48
2726 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_SHFT 63
2727 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_MASK 0x00000000ff000000UL
2728 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_MASK 0x001f000000000000UL
2729 #define UV3H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_MASK 0x8000000000000000UL
2730
2731 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_SHFT 24
2732 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_SHFT 48
2733 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_SHFT 63
2734 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_BASE_MASK 0x00000000ff000000UL
2735 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_M_ALIAS_MASK 0x001f000000000000UL
2736 #define UV4H_RH_GAM_ALIAS210_OVERLAY_CONFIG_2_MMR_ENABLE_MASK 0x8000000000000000UL
2737
2738
2739 union uvh_rh_gam_alias210_overlay_config_2_mmr_u {
2740         unsigned long   v;
2741         struct uvh_rh_gam_alias210_overlay_config_2_mmr_s {
2742                 unsigned long   rsvd_0_23:24;
2743                 unsigned long   base:8;                         /* RW */
2744                 unsigned long   rsvd_32_47:16;
2745                 unsigned long   m_alias:5;                      /* RW */
2746                 unsigned long   rsvd_53_62:10;
2747                 unsigned long   enable:1;                       /* RW */
2748         } s;
2749         struct uvxh_rh_gam_alias210_overlay_config_2_mmr_s {
2750                 unsigned long   rsvd_0_23:24;
2751                 unsigned long   base:8;                         /* RW */
2752                 unsigned long   rsvd_32_47:16;
2753                 unsigned long   m_alias:5;                      /* RW */
2754                 unsigned long   rsvd_53_62:10;
2755                 unsigned long   enable:1;                       /* RW */
2756         } sx;
2757         struct uv2h_rh_gam_alias210_overlay_config_2_mmr_s {
2758                 unsigned long   rsvd_0_23:24;
2759                 unsigned long   base:8;                         /* RW */
2760                 unsigned long   rsvd_32_47:16;
2761                 unsigned long   m_alias:5;                      /* RW */
2762                 unsigned long   rsvd_53_62:10;
2763                 unsigned long   enable:1;                       /* RW */
2764         } s2;
2765         struct uv3h_rh_gam_alias210_overlay_config_2_mmr_s {
2766                 unsigned long   rsvd_0_23:24;
2767                 unsigned long   base:8;                         /* RW */
2768                 unsigned long   rsvd_32_47:16;
2769                 unsigned long   m_alias:5;                      /* RW */
2770                 unsigned long   rsvd_53_62:10;
2771                 unsigned long   enable:1;                       /* RW */
2772         } s3;
2773         struct uv4h_rh_gam_alias210_overlay_config_2_mmr_s {
2774                 unsigned long   rsvd_0_23:24;
2775                 unsigned long   base:8;                         /* RW */
2776                 unsigned long   rsvd_32_47:16;
2777                 unsigned long   m_alias:5;                      /* RW */
2778                 unsigned long   rsvd_53_62:10;
2779                 unsigned long   enable:1;                       /* RW */
2780         } s4;
2781 };
2782
2783 /* ========================================================================= */
2784 /*                UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR                  */
2785 /* ========================================================================= */
2786 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL
2787 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL
2788 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x4800d0UL
2789 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR (                     \
2790         is_uv2_hub() ? UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR :     \
2791         is_uv3_hub() ? UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR :     \
2792         /*is_uv4_hub*/ UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR)
2793
2794 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
2795 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2796
2797 #define UVXH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
2798 #define UVXH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2799
2800 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
2801 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2802
2803 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
2804 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2805
2806 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24
2807 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2808
2809
2810 union uvh_rh_gam_alias210_redirect_config_0_mmr_u {
2811         unsigned long   v;
2812         struct uvh_rh_gam_alias210_redirect_config_0_mmr_s {
2813                 unsigned long   rsvd_0_23:24;
2814                 unsigned long   dest_base:22;                   /* RW */
2815                 unsigned long   rsvd_46_63:18;
2816         } s;
2817         struct uvxh_rh_gam_alias210_redirect_config_0_mmr_s {
2818                 unsigned long   rsvd_0_23:24;
2819                 unsigned long   dest_base:22;                   /* RW */
2820                 unsigned long   rsvd_46_63:18;
2821         } sx;
2822         struct uv2h_rh_gam_alias210_redirect_config_0_mmr_s {
2823                 unsigned long   rsvd_0_23:24;
2824                 unsigned long   dest_base:22;                   /* RW */
2825                 unsigned long   rsvd_46_63:18;
2826         } s2;
2827         struct uv3h_rh_gam_alias210_redirect_config_0_mmr_s {
2828                 unsigned long   rsvd_0_23:24;
2829                 unsigned long   dest_base:22;                   /* RW */
2830                 unsigned long   rsvd_46_63:18;
2831         } s3;
2832         struct uv4h_rh_gam_alias210_redirect_config_0_mmr_s {
2833                 unsigned long   rsvd_0_23:24;
2834                 unsigned long   dest_base:22;                   /* RW */
2835                 unsigned long   rsvd_46_63:18;
2836         } s4;
2837 };
2838
2839 /* ========================================================================= */
2840 /*                UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR                  */
2841 /* ========================================================================= */
2842 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL
2843 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL
2844 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x4800e0UL
2845 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR (                     \
2846         is_uv2_hub() ? UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR :     \
2847         is_uv3_hub() ? UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR :     \
2848         /*is_uv4_hub*/ UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR)
2849
2850 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
2851 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2852
2853 #define UVXH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
2854 #define UVXH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2855
2856 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
2857 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2858
2859 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
2860 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2861
2862 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24
2863 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2864
2865
2866 union uvh_rh_gam_alias210_redirect_config_1_mmr_u {
2867         unsigned long   v;
2868         struct uvh_rh_gam_alias210_redirect_config_1_mmr_s {
2869                 unsigned long   rsvd_0_23:24;
2870                 unsigned long   dest_base:22;                   /* RW */
2871                 unsigned long   rsvd_46_63:18;
2872         } s;
2873         struct uvxh_rh_gam_alias210_redirect_config_1_mmr_s {
2874                 unsigned long   rsvd_0_23:24;
2875                 unsigned long   dest_base:22;                   /* RW */
2876                 unsigned long   rsvd_46_63:18;
2877         } sx;
2878         struct uv2h_rh_gam_alias210_redirect_config_1_mmr_s {
2879                 unsigned long   rsvd_0_23:24;
2880                 unsigned long   dest_base:22;                   /* RW */
2881                 unsigned long   rsvd_46_63:18;
2882         } s2;
2883         struct uv3h_rh_gam_alias210_redirect_config_1_mmr_s {
2884                 unsigned long   rsvd_0_23:24;
2885                 unsigned long   dest_base:22;                   /* RW */
2886                 unsigned long   rsvd_46_63:18;
2887         } s3;
2888         struct uv4h_rh_gam_alias210_redirect_config_1_mmr_s {
2889                 unsigned long   rsvd_0_23:24;
2890                 unsigned long   dest_base:22;                   /* RW */
2891                 unsigned long   rsvd_46_63:18;
2892         } s4;
2893 };
2894
2895 /* ========================================================================= */
2896 /*                UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR                  */
2897 /* ========================================================================= */
2898 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL
2899 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL
2900 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x4800f0UL
2901 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR (                     \
2902         is_uv2_hub() ? UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR :     \
2903         is_uv3_hub() ? UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR :     \
2904         /*is_uv4_hub*/ UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR)
2905
2906 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
2907 #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2908
2909 #define UVXH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
2910 #define UVXH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2911
2912 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
2913 #define UV2H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2914
2915 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
2916 #define UV3H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2917
2918 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24
2919 #define UV4H_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL
2920
2921
2922 union uvh_rh_gam_alias210_redirect_config_2_mmr_u {
2923         unsigned long   v;
2924         struct uvh_rh_gam_alias210_redirect_config_2_mmr_s {
2925                 unsigned long   rsvd_0_23:24;
2926                 unsigned long   dest_base:22;                   /* RW */
2927                 unsigned long   rsvd_46_63:18;
2928         } s;
2929         struct uvxh_rh_gam_alias210_redirect_config_2_mmr_s {
2930                 unsigned long   rsvd_0_23:24;
2931                 unsigned long   dest_base:22;                   /* RW */
2932                 unsigned long   rsvd_46_63:18;
2933         } sx;
2934         struct uv2h_rh_gam_alias210_redirect_config_2_mmr_s {
2935                 unsigned long   rsvd_0_23:24;
2936                 unsigned long   dest_base:22;                   /* RW */
2937                 unsigned long   rsvd_46_63:18;
2938         } s2;
2939         struct uv3h_rh_gam_alias210_redirect_config_2_mmr_s {
2940                 unsigned long   rsvd_0_23:24;
2941                 unsigned long   dest_base:22;                   /* RW */
2942                 unsigned long   rsvd_46_63:18;
2943         } s3;
2944         struct uv4h_rh_gam_alias210_redirect_config_2_mmr_s {
2945                 unsigned long   rsvd_0_23:24;
2946                 unsigned long   dest_base:22;                   /* RW */
2947                 unsigned long   rsvd_46_63:18;
2948         } s4;
2949 };
2950
2951 /* ========================================================================= */
2952 /*                          UVH_RH_GAM_CONFIG_MMR                            */
2953 /* ========================================================================= */
2954 #define UV2H_RH_GAM_CONFIG_MMR 0x1600000UL
2955 #define UV3H_RH_GAM_CONFIG_MMR 0x1600000UL
2956 #define UV4H_RH_GAM_CONFIG_MMR 0x480000UL
2957 #define UVH_RH_GAM_CONFIG_MMR (                                         \
2958         is_uv2_hub() ? UV2H_RH_GAM_CONFIG_MMR :                         \
2959         is_uv3_hub() ? UV3H_RH_GAM_CONFIG_MMR :                         \
2960         /*is_uv4_hub*/ UV4H_RH_GAM_CONFIG_MMR)
2961
2962 #define UVH_RH_GAM_CONFIG_MMR_N_SKT_SHFT                6
2963 #define UVH_RH_GAM_CONFIG_MMR_N_SKT_MASK                0x00000000000003c0UL
2964
2965 #define UVXH_RH_GAM_CONFIG_MMR_N_SKT_SHFT               6
2966 #define UVXH_RH_GAM_CONFIG_MMR_N_SKT_MASK               0x00000000000003c0UL
2967
2968 #define UV2H_RH_GAM_CONFIG_MMR_M_SKT_SHFT               0
2969 #define UV2H_RH_GAM_CONFIG_MMR_N_SKT_SHFT               6
2970 #define UV2H_RH_GAM_CONFIG_MMR_M_SKT_MASK               0x000000000000003fUL
2971 #define UV2H_RH_GAM_CONFIG_MMR_N_SKT_MASK               0x00000000000003c0UL
2972
2973 #define UV3H_RH_GAM_CONFIG_MMR_M_SKT_SHFT               0
2974 #define UV3H_RH_GAM_CONFIG_MMR_N_SKT_SHFT               6
2975 #define UV3H_RH_GAM_CONFIG_MMR_M_SKT_MASK               0x000000000000003fUL
2976 #define UV3H_RH_GAM_CONFIG_MMR_N_SKT_MASK               0x00000000000003c0UL
2977
2978 #define UV4H_RH_GAM_CONFIG_MMR_N_SKT_SHFT               6
2979 #define UV4H_RH_GAM_CONFIG_MMR_N_SKT_MASK               0x00000000000003c0UL
2980
2981
2982 union uvh_rh_gam_config_mmr_u {
2983         unsigned long   v;
2984         struct uvh_rh_gam_config_mmr_s {
2985                 unsigned long   rsvd_0_5:6;
2986                 unsigned long   n_skt:4;                        /* RW */
2987                 unsigned long   rsvd_10_63:54;
2988         } s;
2989         struct uvxh_rh_gam_config_mmr_s {
2990                 unsigned long   rsvd_0_5:6;
2991                 unsigned long   n_skt:4;                        /* RW */
2992                 unsigned long   rsvd_10_63:54;
2993         } sx;
2994         struct uv2h_rh_gam_config_mmr_s {
2995                 unsigned long   m_skt:6;                        /* RW */
2996                 unsigned long   n_skt:4;                        /* RW */
2997                 unsigned long   rsvd_10_63:54;
2998         } s2;
2999         struct uv3h_rh_gam_config_mmr_s {
3000                 unsigned long   m_skt:6;                        /* RW */
3001                 unsigned long   n_skt:4;                        /* RW */
3002                 unsigned long   rsvd_10_63:54;
3003         } s3;
3004         struct uv4h_rh_gam_config_mmr_s {
3005                 unsigned long   rsvd_0_5:6;
3006                 unsigned long   n_skt:4;                        /* RW */
3007                 unsigned long   rsvd_10_63:54;
3008         } s4;
3009 };
3010
3011 /* ========================================================================= */
3012 /*                    UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR                      */
3013 /* ========================================================================= */
3014 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
3015 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL
3016 #define UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x480010UL
3017 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR (                             \
3018         is_uv2_hub() ? UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR :             \
3019         is_uv3_hub() ? UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR :             \
3020         /*is_uv4_hub*/ UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR)
3021
3022 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT    52
3023 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT   63
3024 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK    0x00f0000000000000UL
3025 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK   0x8000000000000000UL
3026
3027 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT   52
3028 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT  63
3029 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK   0x00f0000000000000UL
3030 #define UVXH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK  0x8000000000000000UL
3031
3032 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT    28
3033 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT   52
3034 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT  63
3035 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK    0x00003ffff0000000UL
3036 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK   0x00f0000000000000UL
3037 #define UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK  0x8000000000000000UL
3038
3039 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT    28
3040 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT   52
3041 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_MODE_SHFT    62
3042 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT  63
3043 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK    0x00003ffff0000000UL
3044 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK   0x00f0000000000000UL
3045 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_MODE_MASK    0x4000000000000000UL
3046 #define UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK  0x8000000000000000UL
3047
3048 #define UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT    26
3049 #define UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT   52
3050 #define UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT  63
3051 #define UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK    0x00003ffffc000000UL
3052 #define UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK   0x00f0000000000000UL
3053 #define UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK  0x8000000000000000UL
3054
3055 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK (                   \
3056         is_uv2_hub() ? UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK :   \
3057         is_uv3_hub() ? UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK :   \
3058         /*is_uv4_hub*/ UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK)
3059 #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT (                   \
3060         is_uv2_hub() ? UV2H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT :   \
3061         is_uv3_hub() ? UV3H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT :   \
3062         /*is_uv4_hub*/ UV4H_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT)
3063
3064 union uvh_rh_gam_gru_overlay_config_mmr_u {
3065         unsigned long   v;
3066         struct uvh_rh_gam_gru_overlay_config_mmr_s {
3067                 unsigned long   rsvd_0_51:52;
3068                 unsigned long   n_gru:4;                        /* RW */
3069                 unsigned long   rsvd_56_62:7;
3070                 unsigned long   enable:1;                       /* RW */
3071         } s;
3072         struct uvxh_rh_gam_gru_overlay_config_mmr_s {
3073                 unsigned long   rsvd_0_45:46;
3074                 unsigned long   rsvd_46_51:6;
3075                 unsigned long   n_gru:4;                        /* RW */
3076                 unsigned long   rsvd_56_62:7;
3077                 unsigned long   enable:1;                       /* RW */
3078         } sx;
3079         struct uv2h_rh_gam_gru_overlay_config_mmr_s {
3080                 unsigned long   rsvd_0_27:28;
3081                 unsigned long   base:18;                        /* RW */
3082                 unsigned long   rsvd_46_51:6;
3083                 unsigned long   n_gru:4;                        /* RW */
3084                 unsigned long   rsvd_56_62:7;
3085                 unsigned long   enable:1;                       /* RW */
3086         } s2;
3087         struct uv3h_rh_gam_gru_overlay_config_mmr_s {
3088                 unsigned long   rsvd_0_27:28;
3089                 unsigned long   base:18;                        /* RW */
3090                 unsigned long   rsvd_46_51:6;
3091                 unsigned long   n_gru:4;                        /* RW */
3092                 unsigned long   rsvd_56_61:6;
3093                 unsigned long   mode:1;                         /* RW */
3094                 unsigned long   enable:1;                       /* RW */
3095         } s3;
3096         struct uv4h_rh_gam_gru_overlay_config_mmr_s {
3097                 unsigned long   rsvd_0_24:25;
3098                 unsigned long   undef_25:1;                     /* Undefined */
3099                 unsigned long   base:20;                        /* RW */
3100                 unsigned long   rsvd_46_51:6;
3101                 unsigned long   n_gru:4;                        /* RW */
3102                 unsigned long   rsvd_56_62:7;
3103                 unsigned long   enable:1;                       /* RW */
3104         } s4;
3105 };
3106
3107 /* ========================================================================= */
3108 /*                   UVH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR                    */
3109 /* ========================================================================= */
3110 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR uv_undefined("UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR")
3111 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR 0x1603000UL
3112 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR 0x483000UL
3113 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR (                          \
3114         is_uv2_hub() ? UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR :          \
3115         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR :          \
3116         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR)
3117
3118
3119 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_SHFT 26
3120 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT 46
3121 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_SHFT 63
3122 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK 0x00003ffffc000000UL
3123 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK 0x000fc00000000000UL
3124 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK 0x8000000000000000UL
3125
3126 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_SHFT 26
3127 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT 46
3128 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_SHFT 63
3129 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK 0x00003ffffc000000UL
3130 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK 0x000fc00000000000UL
3131 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK 0x8000000000000000UL
3132
3133 #define UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT 52
3134 #define UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK 0x000ffffffc000000UL
3135 #define UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK 0x03f0000000000000UL
3136 #define UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK 0x8000000000000000UL
3137
3138 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT (                \
3139         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT : \
3140         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT : \
3141         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_SHFT)
3142
3143 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK (                \
3144         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK : \
3145         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK : \
3146         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_BASE_MASK)
3147
3148 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK (                \
3149         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK : \
3150         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK : \
3151         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_M_IO_MASK)
3152
3153 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK (              \
3154         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK : \
3155         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK : \
3156         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG0_MMR_ENABLE_MASK)
3157
3158 union uvh_rh_gam_mmioh_overlay_config0_mmr_u {
3159         unsigned long   v;
3160         struct uv3h_rh_gam_mmioh_overlay_config0_mmr_s {
3161                 unsigned long   rsvd_0_25:26;
3162                 unsigned long   base:20;                        /* RW */
3163                 unsigned long   m_io:6;                         /* RW */
3164                 unsigned long   n_io:4;
3165                 unsigned long   rsvd_56_62:7;
3166                 unsigned long   enable:1;                       /* RW */
3167         } s3;
3168         struct uv4h_rh_gam_mmioh_overlay_config0_mmr_s {
3169                 unsigned long   rsvd_0_25:26;
3170                 unsigned long   base:20;                        /* RW */
3171                 unsigned long   m_io:6;                         /* RW */
3172                 unsigned long   n_io:4;
3173                 unsigned long   rsvd_56_62:7;
3174                 unsigned long   enable:1;                       /* RW */
3175         } s4;
3176         struct uv4ah_rh_gam_mmioh_overlay_config0_mmr_s {
3177                 unsigned long   rsvd_0_25:26;
3178                 unsigned long   base:26;                        /* RW */
3179                 unsigned long   m_io:6;                         /* RW */
3180                 unsigned long   n_io:4;
3181                 unsigned long   undef_62:1;                     /* Undefined */
3182                 unsigned long   enable:1;                       /* RW */
3183         } s4a;
3184 };
3185
3186 /* ========================================================================= */
3187 /*                   UVH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR                    */
3188 /* ========================================================================= */
3189 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR uv_undefined("UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR")
3190 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR 0x1603000UL
3191 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR 0x484000UL
3192 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR (                          \
3193         is_uv2_hub() ? UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR :          \
3194         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR :          \
3195         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR)
3196
3197
3198 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_SHFT 26
3199 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT 46
3200 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_ENABLE_SHFT 63
3201 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK 0x00003ffffc000000UL
3202 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK 0x000fc00000000000UL
3203 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_ENABLE_MASK 0x8000000000000000UL
3204
3205 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_SHFT 26
3206 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT 46
3207 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_ENABLE_SHFT 63
3208 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK 0x00003ffffc000000UL
3209 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK 0x000fc00000000000UL
3210 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_ENABLE_MASK 0x8000000000000000UL
3211
3212 #define UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT 52
3213 #define UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK 0x000ffffffc000000UL
3214 #define UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK 0x03f0000000000000UL
3215
3216 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT (                \
3217         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT : \
3218         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT : \
3219         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_SHFT)
3220
3221 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK (                \
3222         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK : \
3223         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK : \
3224         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_BASE_MASK)
3225
3226 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK (                \
3227         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK : \
3228         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK : \
3229         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG1_MMR_M_IO_MASK)
3230
3231 union uvh_rh_gam_mmioh_overlay_config1_mmr_u {
3232         unsigned long   v;
3233         struct uv3h_rh_gam_mmioh_overlay_config1_mmr_s {
3234                 unsigned long   rsvd_0_25:26;
3235                 unsigned long   base:20;                        /* RW */
3236                 unsigned long   m_io:6;                         /* RW */
3237                 unsigned long   n_io:4;
3238                 unsigned long   rsvd_56_62:7;
3239                 unsigned long   enable:1;                       /* RW */
3240         } s3;
3241         struct uv4h_rh_gam_mmioh_overlay_config1_mmr_s {
3242                 unsigned long   rsvd_0_25:26;
3243                 unsigned long   base:20;                        /* RW */
3244                 unsigned long   m_io:6;                         /* RW */
3245                 unsigned long   n_io:4;
3246                 unsigned long   rsvd_56_62:7;
3247                 unsigned long   enable:1;                       /* RW */
3248         } s4;
3249         struct uv4ah_rh_gam_mmioh_overlay_config1_mmr_s {
3250                 unsigned long   rsvd_0_25:26;
3251                 unsigned long   base:26;                        /* RW */
3252                 unsigned long   m_io:6;                         /* RW */
3253                 unsigned long   n_io:4;
3254                 unsigned long   undef_62:1;                     /* Undefined */
3255                 unsigned long   enable:1;                       /* RW */
3256         } s4a;
3257 };
3258
3259 /* ========================================================================= */
3260 /*                   UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR                     */
3261 /* ========================================================================= */
3262 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR 0x1600030UL
3263 #define UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR uv_undefined("UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR")
3264 #define UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR uv_undefined("UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR")
3265 #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR (                           \
3266         is_uv2_hub() ? UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR :           \
3267         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR :           \
3268         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR)
3269
3270
3271 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_SHFT  27
3272 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_SHFT  46
3273 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_SHFT  52
3274 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63
3275 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_MASK  0x00003ffff8000000UL
3276 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_MASK  0x000fc00000000000UL
3277 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_MASK  0x00f0000000000000UL
3278 #define UV2H_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL
3279
3280
3281 union uvh_rh_gam_mmioh_overlay_config_mmr_u {
3282         unsigned long   v;
3283         struct uv2h_rh_gam_mmioh_overlay_config_mmr_s {
3284                 unsigned long   rsvd_0_26:27;
3285                 unsigned long   base:19;                        /* RW */
3286                 unsigned long   m_io:6;                         /* RW */
3287                 unsigned long   n_io:4;                         /* RW */
3288                 unsigned long   rsvd_56_62:7;
3289                 unsigned long   enable:1;                       /* RW */
3290         } s2;
3291 };
3292
3293 /* ========================================================================= */
3294 /*                  UVH_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR                    */
3295 /* ========================================================================= */
3296 #define UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR uv_undefined("UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR")
3297 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR 0x1603800UL
3298 #define UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR 0x483800UL
3299 #define UVH_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR (                         \
3300         is_uv2_hub() ? UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR :         \
3301         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR :         \
3302         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR)
3303
3304 #define UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH uv_undefined("UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH")
3305 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH 128
3306 #define UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH 128
3307 #define UVH_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH (                   \
3308         is_uv2_hub() ? UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH :   \
3309         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH :   \
3310         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_DEPTH)
3311
3312
3313 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_SHFT 0
3314 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK 0x0000000000007fffUL
3315
3316 #define UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_SHFT 0
3317 #define UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK 0x0000000000007fffUL
3318
3319 #define UV4AH_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK 0x0000000000000fffUL
3320
3321 #define UVH_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK (              \
3322         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK : \
3323         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK : \
3324         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG0_MMR_NASID_MASK)
3325
3326 union uvh_rh_gam_mmioh_redirect_config0_mmr_u {
3327         unsigned long   v;
3328         struct uv3h_rh_gam_mmioh_redirect_config0_mmr_s {
3329                 unsigned long   nasid:15;                       /* RW */
3330                 unsigned long   rsvd_15_63:49;
3331         } s3;
3332         struct uv4h_rh_gam_mmioh_redirect_config0_mmr_s {
3333                 unsigned long   nasid:15;                       /* RW */
3334                 unsigned long   rsvd_15_63:49;
3335         } s4;
3336         struct uv4ah_rh_gam_mmioh_redirect_config0_mmr_s {
3337                 unsigned long   nasid:12;                       /* RW */
3338                 unsigned long   rsvd_12_63:52;
3339         } s4a;
3340 };
3341
3342 /* ========================================================================= */
3343 /*                  UVH_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR                    */
3344 /* ========================================================================= */
3345 #define UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR uv_undefined("UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR")
3346 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR 0x1604800UL
3347 #define UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR 0x484800UL
3348 #define UVH_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR (                         \
3349         is_uv2_hub() ? UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR :         \
3350         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR :         \
3351         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR)
3352
3353 #define UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH uv_undefined("UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH")
3354 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH 128
3355 #define UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH 128
3356 #define UVH_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH (                   \
3357         is_uv2_hub() ? UV2H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH :   \
3358         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH :   \
3359         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_DEPTH)
3360
3361
3362 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_SHFT 0
3363 #define UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK 0x0000000000007fffUL
3364
3365 #define UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_SHFT 0
3366 #define UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK 0x0000000000007fffUL
3367
3368 #define UV4AH_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK 0x0000000000000fffUL
3369
3370 #define UVH_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK (              \
3371         is_uv3_hub() ? UV3H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK : \
3372         is_uv4a_hub() ? UV4AH_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK : \
3373         /*is_uv4_hub*/ UV4H_RH_GAM_MMIOH_REDIRECT_CONFIG1_MMR_NASID_MASK)
3374
3375 union uvh_rh_gam_mmioh_redirect_config1_mmr_u {
3376         unsigned long   v;
3377         struct uv3h_rh_gam_mmioh_redirect_config1_mmr_s {
3378                 unsigned long   nasid:15;                       /* RW */
3379                 unsigned long   rsvd_15_63:49;
3380         } s3;
3381         struct uv4h_rh_gam_mmioh_redirect_config1_mmr_s {
3382                 unsigned long   nasid:15;                       /* RW */
3383                 unsigned long   rsvd_15_63:49;
3384         } s4;
3385         struct uv4ah_rh_gam_mmioh_redirect_config1_mmr_s {
3386                 unsigned long   nasid:12;                       /* RW */
3387                 unsigned long   rsvd_12_63:52;
3388         } s4a;
3389 };
3390
3391 /* ========================================================================= */
3392 /*                    UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR                      */
3393 /* ========================================================================= */
3394 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
3395 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL
3396 #define UV4H_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x480028UL
3397 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR (                             \
3398         is_uv2_hub() ? UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR :             \
3399         is_uv3_hub() ? UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR :             \
3400         /*is_uv4_hub*/ UV4H_RH_GAM_MMR_OVERLAY_CONFIG_MMR)
3401
3402 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT     26
3403 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT   63
3404 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK     0x00003ffffc000000UL
3405 #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK   0x8000000000000000UL
3406
3407 #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT    26
3408 #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT  63
3409 #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK    0x00003ffffc000000UL
3410 #define UVXH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK  0x8000000000000000UL
3411
3412 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT    26
3413 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT  63
3414 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK    0x00003ffffc000000UL
3415 #define UV2H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK  0x8000000000000000UL
3416
3417 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT    26
3418 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT  63
3419 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK    0x00003ffffc000000UL
3420 #define UV3H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK  0x8000000000000000UL
3421
3422 #define UV4H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT    26
3423 #define UV4H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT  63
3424 #define UV4H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK    0x00003ffffc000000UL
3425 #define UV4H_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK  0x8000000000000000UL
3426
3427
3428 union uvh_rh_gam_mmr_overlay_config_mmr_u {
3429         unsigned long   v;
3430         struct uvh_rh_gam_mmr_overlay_config_mmr_s {
3431                 unsigned long   rsvd_0_25:26;
3432                 unsigned long   base:20;                        /* RW */
3433                 unsigned long   rsvd_46_62:17;
3434                 unsigned long   enable:1;                       /* RW */
3435         } s;
3436         struct uvxh_rh_gam_mmr_overlay_config_mmr_s {
3437                 unsigned long   rsvd_0_25:26;
3438                 unsigned long   base:20;                        /* RW */
3439                 unsigned long   rsvd_46_62:17;
3440                 unsigned long   enable:1;                       /* RW */
3441         } sx;
3442         struct uv2h_rh_gam_mmr_overlay_config_mmr_s {
3443                 unsigned long   rsvd_0_25:26;
3444                 unsigned long   base:20;                        /* RW */
3445                 unsigned long   rsvd_46_62:17;
3446                 unsigned long   enable:1;                       /* RW */
3447         } s2;
3448         struct uv3h_rh_gam_mmr_overlay_config_mmr_s {
3449                 unsigned long   rsvd_0_25:26;
3450                 unsigned long   base:20;                        /* RW */
3451                 unsigned long   rsvd_46_62:17;
3452                 unsigned long   enable:1;                       /* RW */
3453         } s3;
3454         struct uv4h_rh_gam_mmr_overlay_config_mmr_s {
3455                 unsigned long   rsvd_0_25:26;
3456                 unsigned long   base:20;                        /* RW */
3457                 unsigned long   rsvd_46_62:17;
3458                 unsigned long   enable:1;                       /* RW */
3459         } s4;
3460 };
3461
3462 /* ========================================================================= */
3463 /*                                 UVH_RTC                                   */
3464 /* ========================================================================= */
3465 #define UV2H_RTC 0x340000UL
3466 #define UV3H_RTC 0x340000UL
3467 #define UV4H_RTC 0xe0000UL
3468 #define UVH_RTC (                                                       \
3469         is_uv2_hub() ? UV2H_RTC :                                       \
3470         is_uv3_hub() ? UV3H_RTC :                                       \
3471         /*is_uv4_hub*/ UV4H_RTC)
3472
3473 #define UVH_RTC_REAL_TIME_CLOCK_SHFT                    0
3474 #define UVH_RTC_REAL_TIME_CLOCK_MASK                    0x00ffffffffffffffUL
3475
3476
3477 union uvh_rtc_u {
3478         unsigned long   v;
3479         struct uvh_rtc_s {
3480                 unsigned long   real_time_clock:56;             /* RW */
3481                 unsigned long   rsvd_56_63:8;
3482         } s;
3483 };
3484
3485 /* ========================================================================= */
3486 /*                           UVH_RTC1_INT_CONFIG                             */
3487 /* ========================================================================= */
3488 #define UVH_RTC1_INT_CONFIG 0x615c0UL
3489
3490 #define UVH_RTC1_INT_CONFIG_VECTOR_SHFT                 0
3491 #define UVH_RTC1_INT_CONFIG_DM_SHFT                     8
3492 #define UVH_RTC1_INT_CONFIG_DESTMODE_SHFT               11
3493 #define UVH_RTC1_INT_CONFIG_STATUS_SHFT                 12
3494 #define UVH_RTC1_INT_CONFIG_P_SHFT                      13
3495 #define UVH_RTC1_INT_CONFIG_T_SHFT                      15
3496 #define UVH_RTC1_INT_CONFIG_M_SHFT                      16
3497 #define UVH_RTC1_INT_CONFIG_APIC_ID_SHFT                32
3498 #define UVH_RTC1_INT_CONFIG_VECTOR_MASK                 0x00000000000000ffUL
3499 #define UVH_RTC1_INT_CONFIG_DM_MASK                     0x0000000000000700UL
3500 #define UVH_RTC1_INT_CONFIG_DESTMODE_MASK               0x0000000000000800UL
3501 #define UVH_RTC1_INT_CONFIG_STATUS_MASK                 0x0000000000001000UL
3502 #define UVH_RTC1_INT_CONFIG_P_MASK                      0x0000000000002000UL
3503 #define UVH_RTC1_INT_CONFIG_T_MASK                      0x0000000000008000UL
3504 #define UVH_RTC1_INT_CONFIG_M_MASK                      0x0000000000010000UL
3505 #define UVH_RTC1_INT_CONFIG_APIC_ID_MASK                0xffffffff00000000UL
3506
3507
3508 union uvh_rtc1_int_config_u {
3509         unsigned long   v;
3510         struct uvh_rtc1_int_config_s {
3511                 unsigned long   vector_:8;                      /* RW */
3512                 unsigned long   dm:3;                           /* RW */
3513                 unsigned long   destmode:1;                     /* RW */
3514                 unsigned long   status:1;                       /* RO */
3515                 unsigned long   p:1;                            /* RO */
3516                 unsigned long   rsvd_14:1;
3517                 unsigned long   t:1;                            /* RO */
3518                 unsigned long   m:1;                            /* RW */
3519                 unsigned long   rsvd_17_31:15;
3520                 unsigned long   apic_id:32;                     /* RW */
3521         } s;
3522 };
3523
3524 /* ========================================================================= */
3525 /*                               UVH_SCRATCH5                                */
3526 /* ========================================================================= */
3527 #define UV2H_SCRATCH5 0x2d0200UL
3528 #define UV3H_SCRATCH5 0x2d0200UL
3529 #define UV4H_SCRATCH5 0xb0200UL
3530 #define UVH_SCRATCH5 (                                                  \
3531         is_uv2_hub() ? UV2H_SCRATCH5 :                                  \
3532         is_uv3_hub() ? UV3H_SCRATCH5 :                                  \
3533         /*is_uv4_hub*/ UV4H_SCRATCH5)
3534
3535 #define UV2H_SCRATCH5_32 0x778
3536 #define UV3H_SCRATCH5_32 0x778
3537 #define UV4H_SCRATCH5_32 0x798
3538 #define UVH_SCRATCH5_32 (                                               \
3539         is_uv2_hub() ? UV2H_SCRATCH5_32 :                               \
3540         is_uv3_hub() ? UV3H_SCRATCH5_32 :                               \
3541         /*is_uv4_hub*/ UV4H_SCRATCH5_32)
3542
3543 #define UVH_SCRATCH5_SCRATCH5_SHFT                      0
3544 #define UVH_SCRATCH5_SCRATCH5_MASK                      0xffffffffffffffffUL
3545
3546
3547 union uvh_scratch5_u {
3548         unsigned long   v;
3549         struct uvh_scratch5_s {
3550                 unsigned long   scratch5:64;                    /* RW, W1CS */
3551         } s;
3552 };
3553
3554 /* ========================================================================= */
3555 /*                            UVH_SCRATCH5_ALIAS                             */
3556 /* ========================================================================= */
3557 #define UV2H_SCRATCH5_ALIAS 0x2d0208UL
3558 #define UV3H_SCRATCH5_ALIAS 0x2d0208UL
3559 #define UV4H_SCRATCH5_ALIAS 0xb0208UL
3560 #define UVH_SCRATCH5_ALIAS (                                            \
3561         is_uv2_hub() ? UV2H_SCRATCH5_ALIAS :                            \
3562         is_uv3_hub() ? UV3H_SCRATCH5_ALIAS :                            \
3563         /*is_uv4_hub*/ UV4H_SCRATCH5_ALIAS)
3564
3565 #define UV2H_SCRATCH5_ALIAS_32 0x780
3566 #define UV3H_SCRATCH5_ALIAS_32 0x780
3567 #define UV4H_SCRATCH5_ALIAS_32 0x7a0
3568 #define UVH_SCRATCH5_ALIAS_32 (                                         \
3569         is_uv2_hub() ? UV2H_SCRATCH5_ALIAS_32 :                         \
3570         is_uv3_hub() ? UV3H_SCRATCH5_ALIAS_32 :                         \
3571         /*is_uv4_hub*/ UV4H_SCRATCH5_ALIAS_32)
3572
3573
3574 /* ========================================================================= */
3575 /*                           UVH_SCRATCH5_ALIAS_2                            */
3576 /* ========================================================================= */
3577 #define UV2H_SCRATCH5_ALIAS_2 0x2d0210UL
3578 #define UV3H_SCRATCH5_ALIAS_2 0x2d0210UL
3579 #define UV4H_SCRATCH5_ALIAS_2 0xb0210UL
3580 #define UVH_SCRATCH5_ALIAS_2 (                                          \
3581         is_uv2_hub() ? UV2H_SCRATCH5_ALIAS_2 :                          \
3582         is_uv3_hub() ? UV3H_SCRATCH5_ALIAS_2 :                          \
3583         /*is_uv4_hub*/ UV4H_SCRATCH5_ALIAS_2)
3584 #define UVH_SCRATCH5_ALIAS_2_32 0x788
3585
3586
3587 /* ========================================================================= */
3588 /*                          UVXH_EVENT_OCCURRED2                             */
3589 /* ========================================================================= */
3590 #define UVXH_EVENT_OCCURRED2 0x70100UL
3591
3592 #define UV2H_EVENT_OCCURRED2_32 0xb68
3593 #define UV3H_EVENT_OCCURRED2_32 0xb68
3594 #define UV4H_EVENT_OCCURRED2_32 0x608
3595 #define UVH_EVENT_OCCURRED2_32 (                                        \
3596         is_uv2_hub() ? UV2H_EVENT_OCCURRED2_32 :                        \
3597         is_uv3_hub() ? UV3H_EVENT_OCCURRED2_32 :                        \
3598         /*is_uv4_hub*/ UV4H_EVENT_OCCURRED2_32)
3599
3600
3601 #define UV2H_EVENT_OCCURRED2_RTC_0_SHFT                 0
3602 #define UV2H_EVENT_OCCURRED2_RTC_1_SHFT                 1
3603 #define UV2H_EVENT_OCCURRED2_RTC_2_SHFT                 2
3604 #define UV2H_EVENT_OCCURRED2_RTC_3_SHFT                 3
3605 #define UV2H_EVENT_OCCURRED2_RTC_4_SHFT                 4
3606 #define UV2H_EVENT_OCCURRED2_RTC_5_SHFT                 5
3607 #define UV2H_EVENT_OCCURRED2_RTC_6_SHFT                 6
3608 #define UV2H_EVENT_OCCURRED2_RTC_7_SHFT                 7
3609 #define UV2H_EVENT_OCCURRED2_RTC_8_SHFT                 8
3610 #define UV2H_EVENT_OCCURRED2_RTC_9_SHFT                 9
3611 #define UV2H_EVENT_OCCURRED2_RTC_10_SHFT                10
3612 #define UV2H_EVENT_OCCURRED2_RTC_11_SHFT                11
3613 #define UV2H_EVENT_OCCURRED2_RTC_12_SHFT                12
3614 #define UV2H_EVENT_OCCURRED2_RTC_13_SHFT                13
3615 #define UV2H_EVENT_OCCURRED2_RTC_14_SHFT                14
3616 #define UV2H_EVENT_OCCURRED2_RTC_15_SHFT                15
3617 #define UV2H_EVENT_OCCURRED2_RTC_16_SHFT                16
3618 #define UV2H_EVENT_OCCURRED2_RTC_17_SHFT                17
3619 #define UV2H_EVENT_OCCURRED2_RTC_18_SHFT                18
3620 #define UV2H_EVENT_OCCURRED2_RTC_19_SHFT                19
3621 #define UV2H_EVENT_OCCURRED2_RTC_20_SHFT                20
3622 #define UV2H_EVENT_OCCURRED2_RTC_21_SHFT                21
3623 #define UV2H_EVENT_OCCURRED2_RTC_22_SHFT                22
3624 #define UV2H_EVENT_OCCURRED2_RTC_23_SHFT                23
3625 #define UV2H_EVENT_OCCURRED2_RTC_24_SHFT                24
3626 #define UV2H_EVENT_OCCURRED2_RTC_25_SHFT                25
3627 #define UV2H_EVENT_OCCURRED2_RTC_26_SHFT                26
3628 #define UV2H_EVENT_OCCURRED2_RTC_27_SHFT                27
3629 #define UV2H_EVENT_OCCURRED2_RTC_28_SHFT                28
3630 #define UV2H_EVENT_OCCURRED2_RTC_29_SHFT                29
3631 #define UV2H_EVENT_OCCURRED2_RTC_30_SHFT                30
3632 #define UV2H_EVENT_OCCURRED2_RTC_31_SHFT                31
3633 #define UV2H_EVENT_OCCURRED2_RTC_0_MASK                 0x0000000000000001UL
3634 #define UV2H_EVENT_OCCURRED2_RTC_1_MASK                 0x0000000000000002UL
3635 #define UV2H_EVENT_OCCURRED2_RTC_2_MASK                 0x0000000000000004UL
3636 #define UV2H_EVENT_OCCURRED2_RTC_3_MASK                 0x0000000000000008UL
3637 #define UV2H_EVENT_OCCURRED2_RTC_4_MASK                 0x0000000000000010UL
3638 #define UV2H_EVENT_OCCURRED2_RTC_5_MASK                 0x0000000000000020UL
3639 #define UV2H_EVENT_OCCURRED2_RTC_6_MASK                 0x0000000000000040UL
3640 #define UV2H_EVENT_OCCURRED2_RTC_7_MASK                 0x0000000000000080UL
3641 #define UV2H_EVENT_OCCURRED2_RTC_8_MASK                 0x0000000000000100UL
3642 #define UV2H_EVENT_OCCURRED2_RTC_9_MASK                 0x0000000000000200UL
3643 #define UV2H_EVENT_OCCURRED2_RTC_10_MASK                0x0000000000000400UL
3644 #define UV2H_EVENT_OCCURRED2_RTC_11_MASK                0x0000000000000800UL
3645 #define UV2H_EVENT_OCCURRED2_RTC_12_MASK                0x0000000000001000UL
3646 #define UV2H_EVENT_OCCURRED2_RTC_13_MASK                0x0000000000002000UL
3647 #define UV2H_EVENT_OCCURRED2_RTC_14_MASK                0x0000000000004000UL
3648 #define UV2H_EVENT_OCCURRED2_RTC_15_MASK                0x0000000000008000UL
3649 #define UV2H_EVENT_OCCURRED2_RTC_16_MASK                0x0000000000010000UL
3650 #define UV2H_EVENT_OCCURRED2_RTC_17_MASK                0x0000000000020000UL
3651 #define UV2H_EVENT_OCCURRED2_RTC_18_MASK                0x0000000000040000UL
3652 #define UV2H_EVENT_OCCURRED2_RTC_19_MASK                0x0000000000080000UL
3653 #define UV2H_EVENT_OCCURRED2_RTC_20_MASK                0x0000000000100000UL
3654 #define UV2H_EVENT_OCCURRED2_RTC_21_MASK                0x0000000000200000UL
3655 #define UV2H_EVENT_OCCURRED2_RTC_22_MASK                0x0000000000400000UL
3656 #define UV2H_EVENT_OCCURRED2_RTC_23_MASK                0x0000000000800000UL
3657 #define UV2H_EVENT_OCCURRED2_RTC_24_MASK                0x0000000001000000UL
3658 #define UV2H_EVENT_OCCURRED2_RTC_25_MASK                0x0000000002000000UL
3659 #define UV2H_EVENT_OCCURRED2_RTC_26_MASK                0x0000000004000000UL
3660 #define UV2H_EVENT_OCCURRED2_RTC_27_MASK                0x0000000008000000UL
3661 #define UV2H_EVENT_OCCURRED2_RTC_28_MASK                0x0000000010000000UL
3662 #define UV2H_EVENT_OCCURRED2_RTC_29_MASK                0x0000000020000000UL
3663 #define UV2H_EVENT_OCCURRED2_RTC_30_MASK                0x0000000040000000UL
3664 #define UV2H_EVENT_OCCURRED2_RTC_31_MASK                0x0000000080000000UL
3665
3666 #define UV3H_EVENT_OCCURRED2_RTC_0_SHFT                 0
3667 #define UV3H_EVENT_OCCURRED2_RTC_1_SHFT                 1
3668 #define UV3H_EVENT_OCCURRED2_RTC_2_SHFT                 2
3669 #define UV3H_EVENT_OCCURRED2_RTC_3_SHFT                 3
3670 #define UV3H_EVENT_OCCURRED2_RTC_4_SHFT                 4
3671 #define UV3H_EVENT_OCCURRED2_RTC_5_SHFT                 5
3672 #define UV3H_EVENT_OCCURRED2_RTC_6_SHFT                 6
3673 #define UV3H_EVENT_OCCURRED2_RTC_7_SHFT                 7
3674 #define UV3H_EVENT_OCCURRED2_RTC_8_SHFT                 8
3675 #define UV3H_EVENT_OCCURRED2_RTC_9_SHFT                 9
3676 #define UV3H_EVENT_OCCURRED2_RTC_10_SHFT                10
3677 #define UV3H_EVENT_OCCURRED2_RTC_11_SHFT                11
3678 #define UV3H_EVENT_OCCURRED2_RTC_12_SHFT                12
3679 #define UV3H_EVENT_OCCURRED2_RTC_13_SHFT                13
3680 #define UV3H_EVENT_OCCURRED2_RTC_14_SHFT                14
3681 #define UV3H_EVENT_OCCURRED2_RTC_15_SHFT                15
3682 #define UV3H_EVENT_OCCURRED2_RTC_16_SHFT                16
3683 #define UV3H_EVENT_OCCURRED2_RTC_17_SHFT                17
3684 #define UV3H_EVENT_OCCURRED2_RTC_18_SHFT                18
3685 #define UV3H_EVENT_OCCURRED2_RTC_19_SHFT                19
3686 #define UV3H_EVENT_OCCURRED2_RTC_20_SHFT                20
3687 #define UV3H_EVENT_OCCURRED2_RTC_21_SHFT                21
3688 #define UV3H_EVENT_OCCURRED2_RTC_22_SHFT                22
3689 #define UV3H_EVENT_OCCURRED2_RTC_23_SHFT                23
3690 #define UV3H_EVENT_OCCURRED2_RTC_24_SHFT                24
3691 #define UV3H_EVENT_OCCURRED2_RTC_25_SHFT                25
3692 #define UV3H_EVENT_OCCURRED2_RTC_26_SHFT                26
3693 #define UV3H_EVENT_OCCURRED2_RTC_27_SHFT                27
3694 #define UV3H_EVENT_OCCURRED2_RTC_28_SHFT                28
3695 #define UV3H_EVENT_OCCURRED2_RTC_29_SHFT                29
3696 #define UV3H_EVENT_OCCURRED2_RTC_30_SHFT                30
3697 #define UV3H_EVENT_OCCURRED2_RTC_31_SHFT                31
3698 #define UV3H_EVENT_OCCURRED2_RTC_0_MASK                 0x0000000000000001UL
3699 #define UV3H_EVENT_OCCURRED2_RTC_1_MASK                 0x0000000000000002UL
3700 #define UV3H_EVENT_OCCURRED2_RTC_2_MASK                 0x0000000000000004UL
3701 #define UV3H_EVENT_OCCURRED2_RTC_3_MASK                 0x0000000000000008UL
3702 #define UV3H_EVENT_OCCURRED2_RTC_4_MASK                 0x0000000000000010UL
3703 #define UV3H_EVENT_OCCURRED2_RTC_5_MASK                 0x0000000000000020UL
3704 #define UV3H_EVENT_OCCURRED2_RTC_6_MASK                 0x0000000000000040UL
3705 #define UV3H_EVENT_OCCURRED2_RTC_7_MASK                 0x0000000000000080UL
3706 #define UV3H_EVENT_OCCURRED2_RTC_8_MASK                 0x0000000000000100UL
3707 #define UV3H_EVENT_OCCURRED2_RTC_9_MASK                 0x0000000000000200UL
3708 #define UV3H_EVENT_OCCURRED2_RTC_10_MASK                0x0000000000000400UL
3709 #define UV3H_EVENT_OCCURRED2_RTC_11_MASK                0x0000000000000800UL
3710 #define UV3H_EVENT_OCCURRED2_RTC_12_MASK                0x0000000000001000UL
3711 #define UV3H_EVENT_OCCURRED2_RTC_13_MASK                0x0000000000002000UL
3712 #define UV3H_EVENT_OCCURRED2_RTC_14_MASK                0x0000000000004000UL
3713 #define UV3H_EVENT_OCCURRED2_RTC_15_MASK                0x0000000000008000UL
3714 #define UV3H_EVENT_OCCURRED2_RTC_16_MASK                0x0000000000010000UL
3715 #define UV3H_EVENT_OCCURRED2_RTC_17_MASK                0x0000000000020000UL
3716 #define UV3H_EVENT_OCCURRED2_RTC_18_MASK                0x0000000000040000UL
3717 #define UV3H_EVENT_OCCURRED2_RTC_19_MASK                0x0000000000080000UL
3718 #define UV3H_EVENT_OCCURRED2_RTC_20_MASK                0x0000000000100000UL
3719 #define UV3H_EVENT_OCCURRED2_RTC_21_MASK                0x0000000000200000UL
3720 #define UV3H_EVENT_OCCURRED2_RTC_22_MASK                0x0000000000400000UL
3721 #define UV3H_EVENT_OCCURRED2_RTC_23_MASK                0x0000000000800000UL
3722 #define UV3H_EVENT_OCCURRED2_RTC_24_MASK                0x0000000001000000UL
3723 #define UV3H_EVENT_OCCURRED2_RTC_25_MASK                0x0000000002000000UL
3724 #define UV3H_EVENT_OCCURRED2_RTC_26_MASK                0x0000000004000000UL
3725 #define UV3H_EVENT_OCCURRED2_RTC_27_MASK                0x0000000008000000UL
3726 #define UV3H_EVENT_OCCURRED2_RTC_28_MASK                0x0000000010000000UL
3727 #define UV3H_EVENT_OCCURRED2_RTC_29_MASK                0x0000000020000000UL
3728 #define UV3H_EVENT_OCCURRED2_RTC_30_MASK                0x0000000040000000UL
3729 #define UV3H_EVENT_OCCURRED2_RTC_31_MASK                0x0000000080000000UL
3730
3731 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT0_SHFT 0
3732 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT1_SHFT 1
3733 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT2_SHFT 2
3734 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT3_SHFT 3
3735 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT4_SHFT 4
3736 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT5_SHFT 5
3737 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT6_SHFT 6
3738 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT7_SHFT 7
3739 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT8_SHFT 8
3740 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT9_SHFT 9
3741 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT10_SHFT 10
3742 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT11_SHFT 11
3743 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT12_SHFT 12
3744 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT13_SHFT 13
3745 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT14_SHFT 14
3746 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT15_SHFT 15
3747 #define UV4H_EVENT_OCCURRED2_RTC_INTERVAL_INT_SHFT      16
3748 #define UV4H_EVENT_OCCURRED2_BAU_DASHBOARD_INT_SHFT     17
3749 #define UV4H_EVENT_OCCURRED2_RTC_0_SHFT                 18
3750 #define UV4H_EVENT_OCCURRED2_RTC_1_SHFT                 19
3751 #define UV4H_EVENT_OCCURRED2_RTC_2_SHFT                 20
3752 #define UV4H_EVENT_OCCURRED2_RTC_3_SHFT                 21
3753 #define UV4H_EVENT_OCCURRED2_RTC_4_SHFT                 22
3754 #define UV4H_EVENT_OCCURRED2_RTC_5_SHFT                 23
3755 #define UV4H_EVENT_OCCURRED2_RTC_6_SHFT                 24
3756 #define UV4H_EVENT_OCCURRED2_RTC_7_SHFT                 25
3757 #define UV4H_EVENT_OCCURRED2_RTC_8_SHFT                 26
3758 #define UV4H_EVENT_OCCURRED2_RTC_9_SHFT                 27
3759 #define UV4H_EVENT_OCCURRED2_RTC_10_SHFT                28
3760 #define UV4H_EVENT_OCCURRED2_RTC_11_SHFT                29
3761 #define UV4H_EVENT_OCCURRED2_RTC_12_SHFT                30
3762 #define UV4H_EVENT_OCCURRED2_RTC_13_SHFT                31
3763 #define UV4H_EVENT_OCCURRED2_RTC_14_SHFT                32
3764 #define UV4H_EVENT_OCCURRED2_RTC_15_SHFT                33
3765 #define UV4H_EVENT_OCCURRED2_RTC_16_SHFT                34
3766 #define UV4H_EVENT_OCCURRED2_RTC_17_SHFT                35
3767 #define UV4H_EVENT_OCCURRED2_RTC_18_SHFT                36
3768 #define UV4H_EVENT_OCCURRED2_RTC_19_SHFT                37
3769 #define UV4H_EVENT_OCCURRED2_RTC_20_SHFT                38
3770 #define UV4H_EVENT_OCCURRED2_RTC_21_SHFT                39
3771 #define UV4H_EVENT_OCCURRED2_RTC_22_SHFT                40
3772 #define UV4H_EVENT_OCCURRED2_RTC_23_SHFT                41
3773 #define UV4H_EVENT_OCCURRED2_RTC_24_SHFT                42
3774 #define UV4H_EVENT_OCCURRED2_RTC_25_SHFT                43
3775 #define UV4H_EVENT_OCCURRED2_RTC_26_SHFT                44
3776 #define UV4H_EVENT_OCCURRED2_RTC_27_SHFT                45
3777 #define UV4H_EVENT_OCCURRED2_RTC_28_SHFT                46
3778 #define UV4H_EVENT_OCCURRED2_RTC_29_SHFT                47
3779 #define UV4H_EVENT_OCCURRED2_RTC_30_SHFT                48
3780 #define UV4H_EVENT_OCCURRED2_RTC_31_SHFT                49
3781 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT0_MASK 0x0000000000000001UL
3782 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT1_MASK 0x0000000000000002UL
3783 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT2_MASK 0x0000000000000004UL
3784 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT3_MASK 0x0000000000000008UL
3785 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT4_MASK 0x0000000000000010UL
3786 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT5_MASK 0x0000000000000020UL
3787 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT6_MASK 0x0000000000000040UL
3788 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT7_MASK 0x0000000000000080UL
3789 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT8_MASK 0x0000000000000100UL
3790 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT9_MASK 0x0000000000000200UL
3791 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT10_MASK 0x0000000000000400UL
3792 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT11_MASK 0x0000000000000800UL
3793 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT12_MASK 0x0000000000001000UL
3794 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT13_MASK 0x0000000000002000UL
3795 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT14_MASK 0x0000000000004000UL
3796 #define UV4H_EVENT_OCCURRED2_MESSAGE_ACCELERATOR_INT15_MASK 0x0000000000008000UL
3797 #define UV4H_EVENT_OCCURRED2_RTC_INTERVAL_INT_MASK      0x0000000000010000UL
3798 #define UV4H_EVENT_OCCURRED2_BAU_DASHBOARD_INT_MASK     0x0000000000020000UL
3799 #define UV4H_EVENT_OCCURRED2_RTC_0_MASK                 0x0000000000040000UL
3800 #define UV4H_EVENT_OCCURRED2_RTC_1_MASK                 0x0000000000080000UL
3801 #define UV4H_EVENT_OCCURRED2_RTC_2_MASK                 0x0000000000100000UL
3802 #define UV4H_EVENT_OCCURRED2_RTC_3_MASK                 0x0000000000200000UL
3803 #define UV4H_EVENT_OCCURRED2_RTC_4_MASK                 0x0000000000400000UL
3804 #define UV4H_EVENT_OCCURRED2_RTC_5_MASK                 0x0000000000800000UL
3805 #define UV4H_EVENT_OCCURRED2_RTC_6_MASK                 0x0000000001000000UL
3806 #define UV4H_EVENT_OCCURRED2_RTC_7_MASK                 0x0000000002000000UL
3807 #define UV4H_EVENT_OCCURRED2_RTC_8_MASK                 0x0000000004000000UL
3808 #define UV4H_EVENT_OCCURRED2_RTC_9_MASK                 0x0000000008000000UL
3809 #define UV4H_EVENT_OCCURRED2_RTC_10_MASK                0x0000000010000000UL
3810 #define UV4H_EVENT_OCCURRED2_RTC_11_MASK                0x0000000020000000UL
3811 #define UV4H_EVENT_OCCURRED2_RTC_12_MASK                0x0000000040000000UL
3812 #define UV4H_EVENT_OCCURRED2_RTC_13_MASK                0x0000000080000000UL
3813 #define UV4H_EVENT_OCCURRED2_RTC_14_MASK                0x0000000100000000UL
3814 #define UV4H_EVENT_OCCURRED2_RTC_15_MASK                0x0000000200000000UL
3815 #define UV4H_EVENT_OCCURRED2_RTC_16_MASK                0x0000000400000000UL
3816 #define UV4H_EVENT_OCCURRED2_RTC_17_MASK                0x0000000800000000UL
3817 #define UV4H_EVENT_OCCURRED2_RTC_18_MASK                0x0000001000000000UL
3818 #define UV4H_EVENT_OCCURRED2_RTC_19_MASK                0x0000002000000000UL
3819 #define UV4H_EVENT_OCCURRED2_RTC_20_MASK                0x0000004000000000UL
3820 #define UV4H_EVENT_OCCURRED2_RTC_21_MASK                0x0000008000000000UL
3821 #define UV4H_EVENT_OCCURRED2_RTC_22_MASK                0x0000010000000000UL
3822 #define UV4H_EVENT_OCCURRED2_RTC_23_MASK                0x0000020000000000UL
3823 #define UV4H_EVENT_OCCURRED2_RTC_24_MASK                0x0000040000000000UL
3824 #define UV4H_EVENT_OCCURRED2_RTC_25_MASK                0x0000080000000000UL
3825 #define UV4H_EVENT_OCCURRED2_RTC_26_MASK                0x0000100000000000UL
3826 #define UV4H_EVENT_OCCURRED2_RTC_27_MASK                0x0000200000000000UL
3827 #define UV4H_EVENT_OCCURRED2_RTC_28_MASK                0x0000400000000000UL
3828 #define UV4H_EVENT_OCCURRED2_RTC_29_MASK                0x0000800000000000UL
3829 #define UV4H_EVENT_OCCURRED2_RTC_30_MASK                0x0001000000000000UL
3830 #define UV4H_EVENT_OCCURRED2_RTC_31_MASK                0x0002000000000000UL
3831
3832 #define UVXH_EVENT_OCCURRED2_RTC_1_MASK (                               \
3833         is_uv2_hub() ? UV2H_EVENT_OCCURRED2_RTC_1_MASK :                \
3834         is_uv3_hub() ? UV3H_EVENT_OCCURRED2_RTC_1_MASK :                \
3835         /*is_uv4_hub*/ UV4H_EVENT_OCCURRED2_RTC_1_MASK)
3836
3837 union uvh_event_occurred2_u {
3838         unsigned long   v;
3839         struct uv2h_event_occurred2_s {
3840                 unsigned long   rtc_0:1;                        /* RW */
3841                 unsigned long   rtc_1:1;                        /* RW */
3842                 unsigned long   rtc_2:1;                        /* RW */
3843                 unsigned long   rtc_3:1;                        /* RW */
3844                 unsigned long   rtc_4:1;                        /* RW */
3845                 unsigned long   rtc_5:1;                        /* RW */
3846                 unsigned long   rtc_6:1;                        /* RW */
3847                 unsigned long   rtc_7:1;                        /* RW */
3848                 unsigned long   rtc_8:1;                        /* RW */
3849                 unsigned long   rtc_9:1;                        /* RW */
3850                 unsigned long   rtc_10:1;                       /* RW */
3851                 unsigned long   rtc_11:1;                       /* RW */
3852                 unsigned long   rtc_12:1;                       /* RW */
3853                 unsigned long   rtc_13:1;                       /* RW */
3854                 unsigned long   rtc_14:1;                       /* RW */
3855                 unsigned long   rtc_15:1;                       /* RW */
3856                 unsigned long   rtc_16:1;                       /* RW */
3857                 unsigned long   rtc_17:1;                       /* RW */
3858                 unsigned long   rtc_18:1;                       /* RW */
3859                 unsigned long   rtc_19:1;                       /* RW */
3860                 unsigned long   rtc_20:1;                       /* RW */
3861                 unsigned long   rtc_21:1;                       /* RW */
3862                 unsigned long   rtc_22:1;                       /* RW */
3863                 unsigned long   rtc_23:1;                       /* RW */
3864                 unsigned long   rtc_24:1;                       /* RW */
3865                 unsigned long   rtc_25:1;                       /* RW */
3866                 unsigned long   rtc_26:1;                       /* RW */
3867                 unsigned long   rtc_27:1;                       /* RW */
3868                 unsigned long   rtc_28:1;                       /* RW */
3869                 unsigned long   rtc_29:1;                       /* RW */
3870                 unsigned long   rtc_30:1;                       /* RW */
3871                 unsigned long   rtc_31:1;                       /* RW */
3872                 unsigned long   rsvd_32_63:32;
3873         } s2;
3874         struct uv3h_event_occurred2_s {
3875                 unsigned long   rtc_0:1;                        /* RW */
3876                 unsigned long   rtc_1:1;                        /* RW */
3877                 unsigned long   rtc_2:1;                        /* RW */
3878                 unsigned long   rtc_3:1;                        /* RW */
3879                 unsigned long   rtc_4:1;                        /* RW */
3880                 unsigned long   rtc_5:1;                        /* RW */
3881                 unsigned long   rtc_6:1;                        /* RW */
3882                 unsigned long   rtc_7:1;                        /* RW */
3883                 unsigned long   rtc_8:1;                        /* RW */
3884                 unsigned long   rtc_9:1;                        /* RW */
3885                 unsigned long   rtc_10:1;                       /* RW */
3886                 unsigned long   rtc_11:1;                       /* RW */
3887                 unsigned long   rtc_12:1;                       /* RW */
3888                 unsigned long   rtc_13:1;                       /* RW */
3889                 unsigned long   rtc_14:1;                       /* RW */
3890                 unsigned long   rtc_15:1;                       /* RW */
3891                 unsigned long   rtc_16:1;                       /* RW */
3892                 unsigned long   rtc_17:1;                       /* RW */
3893                 unsigned long   rtc_18:1;                       /* RW */
3894                 unsigned long   rtc_19:1;                       /* RW */
3895                 unsigned long   rtc_20:1;                       /* RW */
3896                 unsigned long   rtc_21:1;                       /* RW */
3897                 unsigned long   rtc_22:1;                       /* RW */
3898                 unsigned long   rtc_23:1;                       /* RW */
3899                 unsigned long   rtc_24:1;                       /* RW */
3900                 unsigned long   rtc_25:1;                       /* RW */
3901                 unsigned long   rtc_26:1;                       /* RW */
3902                 unsigned long   rtc_27:1;                       /* RW */
3903                 unsigned long   rtc_28:1;                       /* RW */
3904                 unsigned long   rtc_29:1;                       /* RW */
3905                 unsigned long   rtc_30:1;                       /* RW */
3906                 unsigned long   rtc_31:1;                       /* RW */
3907                 unsigned long   rsvd_32_63:32;
3908         } s3;
3909         struct uv4h_event_occurred2_s {
3910                 unsigned long   message_accelerator_int0:1;     /* RW */
3911                 unsigned long   message_accelerator_int1:1;     /* RW */
3912                 unsigned long   message_accelerator_int2:1;     /* RW */
3913                 unsigned long   message_accelerator_int3:1;     /* RW */
3914                 unsigned long   message_accelerator_int4:1;     /* RW */
3915                 unsigned long   message_accelerator_int5:1;     /* RW */
3916                 unsigned long   message_accelerator_int6:1;     /* RW */
3917                 unsigned long   message_accelerator_int7:1;     /* RW */
3918                 unsigned long   message_accelerator_int8:1;     /* RW */
3919                 unsigned long   message_accelerator_int9:1;     /* RW */
3920                 unsigned long   message_accelerator_int10:1;    /* RW */
3921                 unsigned long   message_accelerator_int11:1;    /* RW */
3922                 unsigned long   message_accelerator_int12:1;    /* RW */
3923                 unsigned long   message_accelerator_int13:1;    /* RW */
3924                 unsigned long   message_accelerator_int14:1;    /* RW */
3925                 unsigned long   message_accelerator_int15:1;    /* RW */
3926                 unsigned long   rtc_interval_int:1;             /* RW */
3927                 unsigned long   bau_dashboard_int:1;            /* RW */
3928                 unsigned long   rtc_0:1;                        /* RW */
3929                 unsigned long   rtc_1:1;                        /* RW */
3930                 unsigned long   rtc_2:1;                        /* RW */
3931                 unsigned long   rtc_3:1;                        /* RW */
3932                 unsigned long   rtc_4:1;                        /* RW */
3933                 unsigned long   rtc_5:1;                        /* RW */
3934                 unsigned long   rtc_6:1;                        /* RW */
3935                 unsigned long   rtc_7:1;                        /* RW */
3936                 unsigned long   rtc_8:1;                        /* RW */
3937                 unsigned long   rtc_9:1;                        /* RW */
3938                 unsigned long   rtc_10:1;                       /* RW */
3939                 unsigned long   rtc_11:1;                       /* RW */
3940                 unsigned long   rtc_12:1;                       /* RW */
3941                 unsigned long   rtc_13:1;                       /* RW */
3942                 unsigned long   rtc_14:1;                       /* RW */
3943                 unsigned long   rtc_15:1;                       /* RW */
3944                 unsigned long   rtc_16:1;                       /* RW */
3945                 unsigned long   rtc_17:1;                       /* RW */
3946                 unsigned long   rtc_18:1;                       /* RW */
3947                 unsigned long   rtc_19:1;                       /* RW */
3948                 unsigned long   rtc_20:1;                       /* RW */
3949                 unsigned long   rtc_21:1;                       /* RW */
3950                 unsigned long   rtc_22:1;                       /* RW */
3951                 unsigned long   rtc_23:1;                       /* RW */
3952                 unsigned long   rtc_24:1;                       /* RW */
3953                 unsigned long   rtc_25:1;                       /* RW */
3954                 unsigned long   rtc_26:1;                       /* RW */
3955                 unsigned long   rtc_27:1;                       /* RW */
3956                 unsigned long   rtc_28:1;                       /* RW */
3957                 unsigned long   rtc_29:1;                       /* RW */
3958                 unsigned long   rtc_30:1;                       /* RW */
3959                 unsigned long   rtc_31:1;                       /* RW */
3960                 unsigned long   rsvd_50_63:14;
3961         } s4;
3962 };
3963
3964 /* ========================================================================= */
3965 /*                       UVXH_EVENT_OCCURRED2_ALIAS                          */
3966 /* ========================================================================= */
3967 #define UVXH_EVENT_OCCURRED2_ALIAS 0x70108UL
3968
3969 #define UV2H_EVENT_OCCURRED2_ALIAS_32 0xb70
3970 #define UV3H_EVENT_OCCURRED2_ALIAS_32 0xb70
3971 #define UV4H_EVENT_OCCURRED2_ALIAS_32 0x610
3972 #define UVH_EVENT_OCCURRED2_ALIAS_32 (                                  \
3973         is_uv2_hub() ? UV2H_EVENT_OCCURRED2_ALIAS_32 :                  \
3974         is_uv3_hub() ? UV3H_EVENT_OCCURRED2_ALIAS_32 :                  \
3975         /*is_uv4_hub*/ UV4H_EVENT_OCCURRED2_ALIAS_32)
3976
3977
3978 /* ========================================================================= */
3979 /*                   UVXH_LB_BAU_SB_ACTIVATION_STATUS_2                      */
3980 /* ========================================================================= */
3981 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
3982 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2 0x320130UL
3983 #define UV4H_LB_BAU_SB_ACTIVATION_STATUS_2 0xc8130UL
3984 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_2 (                             \
3985         is_uv2_hub() ? UV2H_LB_BAU_SB_ACTIVATION_STATUS_2 :             \
3986         is_uv3_hub() ? UV3H_LB_BAU_SB_ACTIVATION_STATUS_2 :             \
3987         /*is_uv4_hub*/ UV4H_LB_BAU_SB_ACTIVATION_STATUS_2)
3988
3989 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x9f0
3990 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_32 0x9f0
3991 #define UV4H_LB_BAU_SB_ACTIVATION_STATUS_2_32 0xa10
3992 #define UVH_LB_BAU_SB_ACTIVATION_STATUS_2_32 (                          \
3993         is_uv2_hub() ? UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_32 :          \
3994         is_uv3_hub() ? UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_32 :          \
3995         /*is_uv4_hub*/ UV4H_LB_BAU_SB_ACTIVATION_STATUS_2_32)
3996
3997 #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
3998 #define UVXH_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
3999
4000 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
4001 #define UV2H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
4002
4003 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
4004 #define UV3H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
4005
4006 #define UV4H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_SHFT 0
4007 #define UV4H_LB_BAU_SB_ACTIVATION_STATUS_2_AUX_ERROR_MASK 0xffffffffffffffffUL
4008
4009
4010 union uvxh_lb_bau_sb_activation_status_2_u {
4011         unsigned long   v;
4012         struct uvxh_lb_bau_sb_activation_status_2_s {
4013                 unsigned long   aux_error:64;                   /* RW */
4014         } sx;
4015         struct uv2h_lb_bau_sb_activation_status_2_s {
4016                 unsigned long   aux_error:64;                   /* RW */
4017         } s2;
4018         struct uv3h_lb_bau_sb_activation_status_2_s {
4019                 unsigned long   aux_error:64;                   /* RW */
4020         } s3;
4021         struct uv4h_lb_bau_sb_activation_status_2_s {
4022                 unsigned long   aux_error:64;                   /* RW */
4023         } s4;
4024 };
4025
4026 /* ========================================================================= */
4027 /*                          UV3H_GR0_GAM_GR_CONFIG                           */
4028 /* ========================================================================= */
4029 #define UV3H_GR0_GAM_GR_CONFIG                          0xc00028UL
4030
4031 #define UV3H_GR0_GAM_GR_CONFIG_M_SKT_SHFT               0
4032 #define UV3H_GR0_GAM_GR_CONFIG_SUBSPACE_SHFT            10
4033 #define UV3H_GR0_GAM_GR_CONFIG_M_SKT_MASK               0x000000000000003fUL
4034 #define UV3H_GR0_GAM_GR_CONFIG_SUBSPACE_MASK            0x0000000000000400UL
4035
4036 union uv3h_gr0_gam_gr_config_u {
4037         unsigned long   v;
4038         struct uv3h_gr0_gam_gr_config_s {
4039                 unsigned long   m_skt:6;                        /* RW */
4040                 unsigned long   undef_6_9:4;                    /* Undefined */
4041                 unsigned long   subspace:1;                     /* RW */
4042                 unsigned long   reserved:53;
4043         } s3;
4044 };
4045
4046 /* ========================================================================= */
4047 /*                       UV4H_LB_PROC_INTD_QUEUE_FIRST                       */
4048 /* ========================================================================= */
4049 #define UV4H_LB_PROC_INTD_QUEUE_FIRST                   0xa4100UL
4050
4051 #define UV4H_LB_PROC_INTD_QUEUE_FIRST_FIRST_PAYLOAD_ADDRESS_SHFT 6
4052 #define UV4H_LB_PROC_INTD_QUEUE_FIRST_FIRST_PAYLOAD_ADDRESS_MASK 0x00003fffffffffc0UL
4053
4054 union uv4h_lb_proc_intd_queue_first_u {
4055         unsigned long   v;
4056         struct uv4h_lb_proc_intd_queue_first_s {
4057                 unsigned long   undef_0_5:6;                    /* Undefined */
4058                 unsigned long   first_payload_address:40;       /* RW */
4059         } s4;
4060 };
4061
4062 /* ========================================================================= */
4063 /*                       UV4H_LB_PROC_INTD_QUEUE_LAST                        */
4064 /* ========================================================================= */
4065 #define UV4H_LB_PROC_INTD_QUEUE_LAST                    0xa4108UL
4066
4067 #define UV4H_LB_PROC_INTD_QUEUE_LAST_LAST_PAYLOAD_ADDRESS_SHFT 5
4068 #define UV4H_LB_PROC_INTD_QUEUE_LAST_LAST_PAYLOAD_ADDRESS_MASK 0x00003fffffffffe0UL
4069
4070 union uv4h_lb_proc_intd_queue_last_u {
4071         unsigned long   v;
4072         struct uv4h_lb_proc_intd_queue_last_s {
4073                 unsigned long   undef_0_4:5;                    /* Undefined */
4074                 unsigned long   last_payload_address:41;        /* RW */
4075         } s4;
4076 };
4077
4078 /* ========================================================================= */
4079 /*                     UV4H_LB_PROC_INTD_SOFT_ACK_CLEAR                      */
4080 /* ========================================================================= */
4081 #define UV4H_LB_PROC_INTD_SOFT_ACK_CLEAR                0xa4118UL
4082
4083 #define UV4H_LB_PROC_INTD_SOFT_ACK_CLEAR_SOFT_ACK_PENDING_FLAGS_SHFT 0
4084 #define UV4H_LB_PROC_INTD_SOFT_ACK_CLEAR_SOFT_ACK_PENDING_FLAGS_MASK 0x00000000000000ffUL
4085
4086 union uv4h_lb_proc_intd_soft_ack_clear_u {
4087         unsigned long   v;
4088         struct uv4h_lb_proc_intd_soft_ack_clear_s {
4089                 unsigned long   soft_ack_pending_flags:8;       /* WP */
4090         } s4;
4091 };
4092
4093 /* ========================================================================= */
4094 /*                    UV4H_LB_PROC_INTD_SOFT_ACK_PENDING                     */
4095 /* ========================================================================= */
4096 #define UV4H_LB_PROC_INTD_SOFT_ACK_PENDING              0xa4110UL
4097
4098 #define UV4H_LB_PROC_INTD_SOFT_ACK_PENDING_SOFT_ACK_FLAGS_SHFT 0
4099 #define UV4H_LB_PROC_INTD_SOFT_ACK_PENDING_SOFT_ACK_FLAGS_MASK 0x00000000000000ffUL
4100
4101 union uv4h_lb_proc_intd_soft_ack_pending_u {
4102         unsigned long   v;
4103         struct uv4h_lb_proc_intd_soft_ack_pending_s {
4104                 unsigned long   soft_ack_flags:8;               /* RW */
4105         } s4;
4106 };
4107
4108
4109 #endif /* _ASM_X86_UV_UV_MMRS_H */