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