46
46
#define UV_ACT_STATUS_SIZE 2
47
47
#define UV_DISTRIBUTION_SIZE 256
48
48
#define UV_SW_ACK_NPENDING 8
49
- #define UV1_NET_ENDPOINT_INTD 0x38
50
- #define UV2_NET_ENDPOINT_INTD 0x28
51
- #define UV_NET_ENDPOINT_INTD (is_uv1_hub() ? \
52
- UV1_NET_ENDPOINT_INTD : UV2_NET_ENDPOINT_INTD)
49
+ #define UV_NET_ENDPOINT_INTD 0x28
53
50
#define UV_PAYLOADQ_GNODE_SHIFT 49
54
51
#define UV_PTC_BASENAME "sgi_uv/ptc_statistics"
55
52
#define UV_BAU_BASENAME "sgi_uv/bau_tunables"
64
61
* UV2: Bit 19 selects between
65
62
* (0): 10 microsecond timebase and
66
63
* (1): 80 microseconds
67
- * we're using 560us, similar to UV1: 65 units of 10us
64
+ * we're using 560us
68
65
*/
69
- #define UV1_INTD_SOFT_ACK_TIMEOUT_PERIOD (9UL)
70
- #define UV2_INTD_SOFT_ACK_TIMEOUT_PERIOD (15UL)
71
-
72
- #define UV_INTD_SOFT_ACK_TIMEOUT_PERIOD (is_uv1_hub() ? \
73
- UV1_INTD_SOFT_ACK_TIMEOUT_PERIOD : \
74
- UV2_INTD_SOFT_ACK_TIMEOUT_PERIOD)
66
+ #define UV_INTD_SOFT_ACK_TIMEOUT_PERIOD (15UL)
75
67
/* assuming UV3 is the same */
76
68
77
69
#define BAU_MISC_CONTROL_MULT_MASK 3
148
140
149
141
#define UV_LB_SUBNODEID 0x10
150
142
151
- /* these two are the same for UV1 and UV2: */
152
143
#define UV_SA_SHFT UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHFT
153
144
#define UV_SA_MASK UVH_LB_BAU_MISC_CONTROL_INTD_SOFT_ACK_TIMEOUT_PERIOD_MASK
154
145
/* 4 bits of software ack period */
189
180
#define BAU_DESC_QUALIFIER 0x534749
190
181
191
182
enum uv_bau_version {
192
- UV_BAU_V1 = 1 ,
193
- UV_BAU_V2 ,
183
+ UV_BAU_V2 = 2 ,
194
184
UV_BAU_V3 ,
195
185
UV_BAU_V4 ,
196
186
};
@@ -233,12 +223,12 @@ struct bau_local_cpumask {
233
223
*/
234
224
235
225
/**
236
- * struct uv1_2_3_bau_msg_payload - defines payload for INTD transactions
226
+ * struct uv2_3_bau_msg_payload - defines payload for INTD transactions
237
227
* @address: Signifies a page or all TLB's of the cpu
238
228
* @sending_cpu: CPU from which the message originates
239
229
* @acknowledge_count: CPUs on the destination Hub that received the interrupt
240
230
*/
241
- struct uv1_2_3_bau_msg_payload {
231
+ struct uv2_3_bau_msg_payload {
242
232
u64 address ;
243
233
u16 sending_cpu ;
244
234
u16 acknowledge_count ;
@@ -259,89 +249,6 @@ struct uv4_bau_msg_payload {
259
249
u32 qualifier :24 ;
260
250
};
261
251
262
- /*
263
- * UV1 Message header: 16 bytes (128 bits) (bytes 0x30-0x3f of descriptor)
264
- * see table 4.2.3.0.1 in broacast_assist spec.
265
- */
266
- struct uv1_bau_msg_header {
267
- unsigned int dest_subnodeid :6 ; /* must be 0x10, for the LB */
268
- /* bits 5:0 */
269
- unsigned int base_dest_nasid :15 ; /* nasid of the first bit */
270
- /* bits 20:6 */ /* in uvhub map */
271
- unsigned int command :8 ; /* message type */
272
- /* bits 28:21 */
273
- /* 0x38: SN3net EndPoint Message */
274
- unsigned int rsvd_1 :3 ; /* must be zero */
275
- /* bits 31:29 */
276
- /* int will align on 32 bits */
277
- unsigned int rsvd_2 :9 ; /* must be zero */
278
- /* bits 40:32 */
279
- /* Suppl_A is 56-41 */
280
- unsigned int sequence :16 ; /* message sequence number */
281
- /* bits 56:41 */ /* becomes bytes 16-17 of msg */
282
- /* Address field (96:57) is
283
- never used as an address
284
- (these are address bits
285
- 42:3) */
286
-
287
- unsigned int rsvd_3 :1 ; /* must be zero */
288
- /* bit 57 */
289
- /* address bits 27:4 are payload */
290
- /* these next 24 (58-81) bits become bytes 12-14 of msg */
291
- /* bits 65:58 land in byte 12 */
292
- unsigned int replied_to :1 ; /* sent as 0 by the source to
293
- byte 12 */
294
- /* bit 58 */
295
- unsigned int msg_type :3 ; /* software type of the
296
- message */
297
- /* bits 61:59 */
298
- unsigned int canceled :1 ; /* message canceled, resource
299
- is to be freed*/
300
- /* bit 62 */
301
- unsigned int payload_1a :1 ; /* not currently used */
302
- /* bit 63 */
303
- unsigned int payload_1b :2 ; /* not currently used */
304
- /* bits 65:64 */
305
-
306
- /* bits 73:66 land in byte 13 */
307
- unsigned int payload_1ca :6 ; /* not currently used */
308
- /* bits 71:66 */
309
- unsigned int payload_1c :2 ; /* not currently used */
310
- /* bits 73:72 */
311
-
312
- /* bits 81:74 land in byte 14 */
313
- unsigned int payload_1d :6 ; /* not currently used */
314
- /* bits 79:74 */
315
- unsigned int payload_1e :2 ; /* not currently used */
316
- /* bits 81:80 */
317
-
318
- unsigned int rsvd_4 :7 ; /* must be zero */
319
- /* bits 88:82 */
320
- unsigned int swack_flag :1 ; /* software acknowledge flag */
321
- /* bit 89 */
322
- /* INTD trasactions at
323
- destination are to wait for
324
- software acknowledge */
325
- unsigned int rsvd_5 :6 ; /* must be zero */
326
- /* bits 95:90 */
327
- unsigned int rsvd_6 :5 ; /* must be zero */
328
- /* bits 100:96 */
329
- unsigned int int_both :1 ; /* if 1, interrupt both sockets
330
- on the uvhub */
331
- /* bit 101*/
332
- unsigned int fairness :3 ; /* usually zero */
333
- /* bits 104:102 */
334
- unsigned int multilevel :1 ; /* multi-level multicast
335
- format */
336
- /* bit 105 */
337
- /* 0 for TLB: endpoint multi-unicast messages */
338
- unsigned int chaining :1 ; /* next descriptor is part of
339
- this activation*/
340
- /* bit 106 */
341
- unsigned int rsvd_7 :21 ; /* must be zero */
342
- /* bits 127:107 */
343
- };
344
-
345
252
/*
346
253
* UV2 Message header: 16 bytes (128 bits) (bytes 0x30-0x3f of descriptor)
347
254
* see figure 9-2 of harp_sys.pdf
@@ -418,25 +325,14 @@ struct bau_desc {
418
325
* message template, consisting of header and payload:
419
326
*/
420
327
union bau_msg_header {
421
- struct uv1_bau_msg_header uv1_hdr ;
422
328
struct uv2_3_bau_msg_header uv2_3_hdr ;
423
329
} header ;
424
330
425
331
union bau_payload_header {
426
- struct uv1_2_3_bau_msg_payload uv1_2_3 ;
332
+ struct uv2_3_bau_msg_payload uv2_3 ;
427
333
struct uv4_bau_msg_payload uv4 ;
428
334
} payload ;
429
335
};
430
- /* UV1:
431
- * -payload-- ---------header------
432
- * bytes 0-11 bits 41-56 bits 58-81
433
- * A B (2) C (3)
434
- *
435
- * A/B/C are moved to:
436
- * A C B
437
- * bytes 0-11 bytes 12-14 bytes 16-17 (byte 15 filled in by hw as vector)
438
- * ------------payload queue-----------
439
- */
440
336
/* UV2:
441
337
* -payload-- ---------header------
442
338
* bytes 0-11 bits 70-78 bits 21-44
0 commit comments