summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/initfiles/mbs_def.initfile
blob: bf6bd970d7b5d304db797d762be905bdeadd6553 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
#-- $Id: mbs_def.initfile,v 1.25 2013/01/17 15:41:30 yctschan Exp $
#-- CHANGE HISTORY:
#--------------------------------------------------------------------------------
#-- Version:|Author: | Date:  | Comment:
#-- --------|--------|--------|--------------------------------------------------
#--   1.25  |tschang |01/17/13| cache enabled when (ATTR_MSS_CACHE_ENABLE != 0) - enabled cache when 1/2 cache mode is choosen
#--   1.21  |tschang |10/23/12| disable interleaving when one or both MBA are disabled (partial good tests)
#--   1.20  |tschang |09/27/12| added partial good support for the SCOM write using ATTR_FUNCTIONAL
#--   1.19  |menlowuu|08/21/12| fixed 2 address typo's
#--   1.18  |tschang |08/20/12| added mbs mcbist setup values for simple write and read test
#--   1.17  |bellows |07/23/12| made ATTR_MSS_CACHE_ENABLE at centaur level instead of system
#--   1.16  |yctschan|07/05/12| Removed sticks for subtype B
#--   1.14  |yctschan|06/28/12| Cleanup define syntax and ()'s
#--   1.13  |menlowuu|06/28/12| Fixed 0x201140B/C bit 9 definition
#--   1.12  |yctschan| 6/25/12| Stuck subtype to B in MBAXCR01Q and MBAXCR23Q bits 4:5 until IBM_TYPE is fixed
#--   1.6   |mwuu    |05/09/12| Added extra '()' to work with new compiler
#--   1.5   |bellows |05/03/12| Updates for working version
#--		    |bellows |04/26/12| Match 1B hardware config
#--		    |bellows |04/26/12| Updates for VBU
#--         |mwuu    |04/19/12| fixed MBAXCR01Q address for MBA23
#--   0.01  |retter  |01/13/12| Initial version
#-- --------|--------|--------|--------------------------------------------------
#--------------------------------------------------------------------------------
# End of revision history
#--------------------------------------------------------------------------------

#--Master list of variables that can be used in this file is at:
#--<Attribute Definition Location>

SyntaxVersion = 1

#-- -----------------------------------------------------------------------------
#--******************************************************************************
#-- -----------------------------------------------------------------------------
#--
#-- Defines
#--
#-- -----------------------------------------------------------------------------
#--******************************************************************************
#-- -----------------------------------------------------------------------------

define def_equal_test     =  (SYS.ATTR_SCRATCH_UINT32_1 == SYS.ATTR_SCRATCH_UINT32_2);

# EFF_DIMM_RANKS_CONFIGED [a][b] - a=0, def_mba01                a = 1, def_mba23
#                                  - b=0, socket0 (mrank 0:3)  b = 1, socket1 (mrank 4:7))
# EFF_NUM_RANKS_PER_DIMM = total number of master and slave ranks per socket
#
# ATTR_EFF_DIMM_RANKS_CONFIGED[0][0] u8[2][2] 0x80
# ATTR_EFF_MBA_POS (0=01, 1=2/3)
#
# ATTR_EFF_IBM_TYPE
# UNDEFINED = 0, TYPE_1A = 1, TYPE_1B = 2, TYPE_1C = 3, TYPE_2A = 4, TYPE_2B = 5, TYPE_2C = 6, TYPE_3A = 7, TYPE_3B = 8, TYPE_3C = 9, TYPE_4A = 10, TYPE_4B = 11, TYPE_4C = 12,
# TYPE_5A = 13, TYPE_5B = 14, TYPE_5C = 15, TYPE_5D = 16, TYPE_6A = 17, TYPE_6B = 18, TYPE_6C = 19, TYPE_7A = 20, TYPE_7B = 21, TYPE_7C = 22, TYPE_8A = 23, TYPE_8B = 24, TYPE_8C = 25
#
# ATTR_EFF_NUM_DROPS_PER_PORT
# EMPTY = 0, SINGLE = 1, DUAL = 2
#
# ATTR_EFF_DIMM_TYPE
# CDIMM = 0, RDIMM = 1, UDIMM = 2, LRDIMM = 3
#
# ATTR_EFF_DRAM_DLL_PPD
# SLOWEXIT = 0, FASTEXIT = 1
#
# ATTR_EFF_DRAM_GEN
# EMPTY = 0, DDR3 = 1, DDR4 = 2
#
# CENTAUR.ATTR_MSS_FREQ = frequency
# not an mba attribute will need hierachy
#
# ATTR_CHIP_UNIT_POS
# 0 = MBA0 (mba01), 1 = MBA1 (mba23)
#
# SYS.ATTR_MSS_CACHE_ENABLE

define MBA0 = TGT1;
define MBA1 = TGT2;
# MBA0.ATTR_CHIP_UNIT_POS - that should equal 0
# MBA1.ATTR_CHIP_UNIT_POS should equal

define def_no_spare     =   (SYS.ATTR_IS_SIMULATION==1) ;
define def_has_spare    =   (SYS.ATTR_IS_SIMULATION==0) ;

#define def_ATTR_EFF_IBM_TYPE = 1;
#define def_ATTR_EFF_NUM_DROPS_PER_PORT = 1;
#define  def_ATTR_EFF_DRAM_2N_MODE = 0;
#define def_ATTR_EFF_IBM_TYPE           = (SYS.CENTAUR.ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
#define def_ATTR_EFF_NUM_DROPS_PER_PORT = (SYS.CENTAUR.ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_ATTR_EFF_DRAM_2N_MODE       = (CENTAUR.ATTR_MSS_FREQ == 1400) ;   # will evaluate to false

define def_mba01_nomem        =  ((MBA0.ATTR_EFF_DIMM_RANKS_CONFIGED[0][0] == 0b00000000) && (MBA0.ATTR_EFF_DIMM_RANKS_CONFIGED[0][1] == 0b00000000));
define def_mba23_nomem        =  ((MBA1.ATTR_EFF_DIMM_RANKS_CONFIGED[1][0] == 0b00000000) && (MBA1.ATTR_EFF_DIMM_RANKS_CONFIGED[1][1] == 0b00000000));

# MBA0 (mba01)
define def_mba01_1a_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 1 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1));                              # DDR3/4 are same
define def_mba01_1a_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 1 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2));# || (def_mba01_1b_cdimm));             # DDR3/4 are same
#define def_mba01_1a_cdimm         = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 1 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0)); # same as  1a_1socket RDIMM

define def_mba01_1b_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 2 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba01_1b_2socket        = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 2 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba01_1c_cdimm));
#define def_mba01_1b_cdimm          = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 2 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));  # same as type1A 2 socket RDIMM cfg for DDR3/4

## 1C 1 and 2 sockets not supported
#define def_mba01_1c_1socket   = 0;
#define def_mba01_1c_2socket   = 0;
define def_mba01_1c_1socket        = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_1c_2socket        = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_1c_cdimm          = ((((MBA0.ATTR_CHIP_UNIT_POS == 1 ) && (MBA0.ATTR_EFF_IBM_TYPE[1][0] == 3 )) || ((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 3 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));  # same as type1B 2 socket RDIMM cfg for DDR3/4

## Current they is no 1D IBM type in the attribute
#define def_mba01_1d_1socket       = 0;
#define def_mba01_1d_2socket       = 0;
define def_mba01_1d_1socket        = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_1d_2socket        = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
#define def_mba01_1d_1socket       = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 1 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
#define def_mba01_1d_2socket       = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 1 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2));

## note the CDIMMs 2A-2C CDIMMs are wired just like the single slot ISDIMMs
define def_mba01_2a_1socket        = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 4 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba01_2a_cdimm));
define def_mba01_2a_2socket        = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 4 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba01_2c_cdimm) || (def_mba01_3a_cdimm));
define def_mba01_2a_cdimm          = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 4 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0)); # same as type2A 1 socket cfg
define def_mba01_2a_1socket_ddr4   = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 4 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba01_2a_ddr4_cdimm));
define def_mba01_2a_2socket_ddr4   = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 4 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba01_3a_ddr4_cdimm));
define def_mba01_2a_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 4 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0)); # same as type2A 1 socket DDR4 cfg

define def_mba01_2b_1socket        = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 5 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba01_2b_cdimm));
define def_mba01_2b_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 5 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2));
define def_mba01_2b_cdimm          = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 5 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));      # same as type2B 1 socket cfg
define def_mba01_2b_1socket_ddr4   = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 5 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba01_2b_ddr4_cdimm));
define def_mba01_2b_2socket_ddr4   = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 5 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba01_3b_ddr4_cdimm));
define def_mba01_2b_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 5 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));  # same as type2B 1 socket DDR4 cfg

# centuar spec only has DDR4 for 2C cfg
define def_mba01_2c_1socket        = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 6 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba01_2a_cdimm));
define def_mba01_2c_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 6 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2));
define def_mba01_2c_cdimm          = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 6 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));       # same as type2C 1 socket cfg
define def_mba01_2c_1socket_ddr4   = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 6 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba01_2a_ddr4_cdimm));
define def_mba01_2c_2socket_ddr4   = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 6 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba01_3c_ddr4_cdimm));
define def_mba01_2c_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 6 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));  # same as type2C 1 socket DDR4 cfg

define def_mba01_3a_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 7 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba01_3a_2socket        = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 7 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba01_4a_cdimm));
#define def_mba01_3a_cdimm         = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 7 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));     # same as type2A 2 socket cfg
define def_mba01_3a_cdimm          = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 7 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0) && (MBA0.ATTR_EFF_DRAM_GEN == 1));  # same as type2A 2 socket DDR4 cfg
define def_mba01_3a_1socket_ddr4   = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 7 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba01_3a_2socket_ddr4   = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 7 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba01_4a_ddr4_cdimm));
define def_mba01_3a_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 7 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 0) && (MBA0.ATTR_EFF_DRAM_GEN == 2));  # same as type2A 2 socket DDR4 cfg

define def_mba01_3b_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 8 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba01_3b_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 8 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2));
define def_mba01_3b_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 8 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));     # same as type2B 2 socket DDR4 cfg
define def_mba01_3b_cdimm          = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 8 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));     # same as type2B 2 socket DDR4 cfg   ??

define def_mba01_3c_1socket_ddr4   = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 9 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba01_3c_2socket_ddr4   = (((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 9 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba01_4c_ddr4_cdimm));
define def_mba01_3c_cdimm          = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 9 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));  # same as type2C 2 socket DDR4 cfg
define def_mba01_3c_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 9 ))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));  # same as type2C 2 socket DDR4 cfg

define def_mba01_4a_cdimm          = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 10))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));       # same as type3A 2 socket cfg
define def_mba01_4a_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 10))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));       # same as type3A 2 socket DDR4 cfg

define def_mba01_4b_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 11))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));       # same as type3B 2 socket DDR4 cfg

define def_mba01_4c_ddr4_cdimm     = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 12))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 0));       # same as type3C 2 socket DDR4 cfg

define def_mba01_5b_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 14))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_5b_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 14))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));

define def_mba01_5c_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 15))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_5c_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 15))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));

define def_mba01_5d_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 16))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_5d_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 16))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));

define def_mba01_7a_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 20))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7a_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 20))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7a_1socket_ddr4   = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 20))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7a_2socket_ddr4   = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 20))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));

define def_mba01_7b_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 21))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7b_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 21))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7b_1socket_ddr4   = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 21))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7b_2socket_ddr4   = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 21))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));

define def_mba01_7c_1socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 22))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7c_2socket        = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 22))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7c_1socket_ddr4   = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 22))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));
define def_mba01_7c_2socket_ddr4   = ((((MBA0.ATTR_EFF_IBM_TYPE[0][0] == 22))) && (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA0.ATTR_EFF_DIMM_TYPE == 3));

# MBA1 (mba23)
define def_mba23_1a_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 1 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1));                              # DDR3/4 are same
define def_mba23_1a_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 1 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2));# || (def_mba23_1b_cdimm));             # DDR3/4 are same
#define def_mba23_1a_cdimm         = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 1 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0)); # same as  1a_1socket RDIMM

define def_mba23_1b_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 2 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba23_1b_2socket        = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 2 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba23_1c_cdimm));
#define def_mba23_1b_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 2 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));  # same as type1A 2 socket RDIMM cfg for DDR3/4

## 1C 1 and 2 sockets not supported
#define def_mba23_1c_1socket   = 0;
#define def_mba23_1c_2socket   = 0;
define def_mba23_1c_1socket        = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_1c_2socket        = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_1c_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 3 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));  # same as type1B 2 socket RDIMM cfg for DDR3/4

## Current they is no 1D IBM type in the attribute
#define def_mba23_1d_1socket       = 0;
#define def_mba23_1d_2socket       = 0;
define def_mba23_1d_1socket        = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_1d_2socket        = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
#define def_mba23_1d_1socket       = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 1 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
#define def_mba23_1d_2socket       = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 1 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2));

## note the CDIMMs 2A-2C CDIMMs are wired just like the single slot ISDIMMs
define def_mba23_2a_1socket        = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 4 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba23_2a_cdimm));
define def_mba23_2a_2socket        = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 4 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba23_2c_cdimm) || (def_mba23_3a_cdimm));
define def_mba23_2a_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 4 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0)); # same as type2A 1 socket cfg
define def_mba23_2a_1socket_ddr4   = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 4 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba23_2a_ddr4_cdimm));
define def_mba23_2a_2socket_ddr4   = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 4 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba23_3a_ddr4_cdimm));
define def_mba23_2a_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 4 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0)); # same as type2A 1 socket DDR4 cfg

define def_mba23_2b_1socket        = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 5 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba23_2b_cdimm));
define def_mba23_2b_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 5 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2));
define def_mba23_2b_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 5 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));      # same as type2B 1 socket cfg
define def_mba23_2b_1socket_ddr4   = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 5 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba23_2b_ddr4_cdimm));
define def_mba23_2b_2socket_ddr4   = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 5 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba23_3b_ddr4_cdimm));
define def_mba23_2b_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 5 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));  # same as type2B 1 socket DDR4 cfg

# centuar spec only has DDR4 for 2C cfg
define def_mba23_2c_1socket        = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 6 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba23_2a_cdimm));
define def_mba23_2c_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 6 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2));
define def_mba23_2c_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 6 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));       # same as type2C 1 socket cfg
define def_mba23_2c_1socket_ddr4   = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 6 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1)) || (def_mba23_2a_ddr4_cdimm));
define def_mba23_2c_2socket_ddr4   = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 6 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba23_3c_ddr4_cdimm));
define def_mba23_2c_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 6 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));  # same as type2C 1 socket DDR4 cfg

define def_mba23_3a_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 7 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba23_3a_2socket        = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 7 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba23_4a_cdimm));
#define def_mba23_3a_cdimm         = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 7 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));     # same as type2A 2 socket cfg
define def_mba23_3a_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 7 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0) && (MBA1.ATTR_EFF_DRAM_GEN == 1));  # same as type2A 2 socket DDR4 cfg
define def_mba23_3a_1socket_ddr4   = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 7 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba23_3a_2socket_ddr4   = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 7 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba23_4a_ddr4_cdimm));
define def_mba23_3a_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 7 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 0) && (MBA1.ATTR_EFF_DRAM_GEN == 2));  # same as type2A 2 socket DDR4 cfg

define def_mba23_3b_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 8 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba23_3b_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 8 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2));
define def_mba23_3b_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 8 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));     # same as type2B 2 socket DDR4 cfg
define def_mba23_3b_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 8 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));     # same as type2B 2 socket DDR4 cfg   ??

define def_mba23_3c_1socket_ddr4   = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 9 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1));
define def_mba23_3c_2socket_ddr4   = (((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 9 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2)) || (def_mba23_4c_ddr4_cdimm));
define def_mba23_3c_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 9 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));  # same as type2C 2 socket DDR4 cfg
define def_mba23_3c_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 9 ))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));  # same as type2C 2 socket DDR4 cfg

define def_mba23_4a_cdimm          = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 10))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));       # same as type3A 2 socket cfg
define def_mba23_4a_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 10))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));       # same as type3A 2 socket DDR4 cfg

define def_mba23_4b_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 11))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));       # same as type3B 2 socket DDR4 cfg

define def_mba23_4c_ddr4_cdimm     = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 12))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 0));       # same as type3C 2 socket DDR4 cfg

define def_mba23_5b_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 14))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_5b_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 14))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));

define def_mba23_5c_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 15))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_5c_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 15))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));

define def_mba23_5d_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 16))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_5d_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 16))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));

define def_mba23_7a_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 20))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7a_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 20))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7a_1socket_ddr4   = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 20))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7a_2socket_ddr4   = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 20))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));

define def_mba23_7b_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 21))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7b_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 21))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7b_1socket_ddr4   = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 21))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7b_2socket_ddr4   = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 21))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));

define def_mba23_7c_1socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 22))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7c_2socket        = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 22))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7c_1socket_ddr4   = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 22))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));
define def_mba23_7c_2socket_ddr4   = ((((MBA1.ATTR_EFF_IBM_TYPE[1][0] == 22))) && (MBA1.ATTR_EFF_NUM_DROPS_PER_PORT == 2) && (MBA1.ATTR_EFF_DIMM_TYPE == 3));


define def_mba01_mtype_1a = (def_mba01_1a_1socket     ||def_mba01_1a_2socket);#     ||def_mba01_1b_cdimm);
define def_mba01_mtype_1b = (def_mba01_1b_1socket     ||def_mba01_1b_2socket     ||def_mba01_1c_cdimm);
define def_mba01_mtype_1c = (def_mba01_1c_1socket     ||def_mba01_1c_2socket);
define def_mba01_mtype_2a = (def_mba01_2a_1socket     ||def_mba01_2a_2socket     ||def_mba01_2a_1socket_ddr4||def_mba01_2a_2socket_ddr4||def_mba01_3a_cdimm       ||def_mba01_3a_ddr4_cdimm);
define def_mba01_mtype_2b = (def_mba01_2b_1socket     ||def_mba01_2b_2socket     ||def_mba01_2b_1socket_ddr4||def_mba01_2b_2socket_ddr4||def_mba01_3b_cdimm       ||def_mba01_3b_ddr4_cdimm);
define def_mba01_mtype_2c = (def_mba01_2c_1socket     ||def_mba01_2c_2socket     ||def_mba01_2c_1socket_ddr4||def_mba01_2c_2socket_ddr4||def_mba01_3c_cdimm       ||def_mba01_3c_ddr4_cdimm);
define def_mba01_mtype_3a = (def_mba01_3a_1socket     ||def_mba01_3a_2socket     ||def_mba01_3a_1socket_ddr4||def_mba01_3a_2socket_ddr4||def_mba01_4a_cdimm       ||def_mba01_4a_ddr4_cdimm);
define def_mba01_mtype_3b = (def_mba01_3b_1socket     ||def_mba01_3b_2socket     ||def_mba01_4b_ddr4_cdimm);
define def_mba01_mtype_3c = (def_mba01_3c_1socket_ddr4||def_mba01_3c_2socket_ddr4||def_mba01_4c_ddr4_cdimm);
#define def_mba01_mtype_4a = 0; # not supported
#define def_mba01_mtype_4b = 0; # not supported
#define def_mba01_mtype_4c = 0; # not supported
#define def_mba01_mtype_5a = 0; # not supported
define def_mba01_mtype_4a = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_mtype_4b = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_mtype_4c = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_mtype_5a = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_mtype_5b = ((def_mba01_5b_1socket     )||(def_mba01_5b_2socket));
define def_mba01_mtype_5c = ((def_mba01_5c_1socket     )||(def_mba01_5c_2socket));
define def_mba01_mtype_5d = ((def_mba01_5d_1socket     )||(def_mba01_5d_2socket));
#define def_mba01_mtype_6a = 0; # not supported
#define def_mba01_mtype_6b = 0; # not supported
#define def_mba01_mtype_6c = 0; # not supported
define def_mba01_mtype_6a = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_mtype_6b = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_mtype_6c = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba01_mtype_7a = (def_mba01_7a_1socket     ||def_mba01_7a_2socket     ||def_mba01_7a_1socket_ddr4||def_mba01_7a_2socket_ddr4);
define def_mba01_mtype_7b = (def_mba01_7b_1socket     ||def_mba01_7b_2socket     ||def_mba01_7b_1socket_ddr4||def_mba01_7b_2socket_ddr4);
define def_mba01_mtype_7c = (def_mba01_7c_1socket     ||def_mba01_7c_2socket     ||def_mba01_7c_1socket_ddr4||def_mba01_7c_2socket_ddr4);

define def_mba23_mtype_1a = (def_mba23_1a_1socket     ||def_mba23_1a_2socket);#     ||def_mba23_1b_cdimm);
define def_mba23_mtype_1b = (def_mba23_1b_1socket     ||def_mba23_1b_2socket     ||def_mba23_1c_cdimm);
define def_mba23_mtype_1c = (def_mba23_1c_1socket     ||def_mba23_1c_2socket);
define def_mba23_mtype_2a = (def_mba23_2a_1socket     ||def_mba23_2a_2socket     ||def_mba23_2a_1socket_ddr4||def_mba23_2a_2socket_ddr4||def_mba23_3a_cdimm       ||def_mba23_3a_ddr4_cdimm);
define def_mba23_mtype_2b = (def_mba23_2b_1socket     ||def_mba23_2b_2socket     ||def_mba23_2b_1socket_ddr4||def_mba23_2b_2socket_ddr4||def_mba23_3b_cdimm       ||def_mba23_3b_ddr4_cdimm);
define def_mba23_mtype_2c = (def_mba23_2c_1socket     ||def_mba23_2c_2socket     ||def_mba23_2c_1socket_ddr4||def_mba23_2c_2socket_ddr4||def_mba23_3c_cdimm       ||def_mba23_3c_ddr4_cdimm);
define def_mba23_mtype_3a = (def_mba23_3a_1socket     ||def_mba23_3a_2socket     ||def_mba23_3a_1socket_ddr4||def_mba23_3a_2socket_ddr4||def_mba23_4a_cdimm       ||def_mba23_4a_ddr4_cdimm);
define def_mba23_mtype_3b = (def_mba23_3b_1socket     ||def_mba23_3b_2socket     ||def_mba23_4b_ddr4_cdimm);
define def_mba23_mtype_3c = (def_mba23_3c_1socket_ddr4||def_mba23_3c_2socket_ddr4||def_mba23_4c_ddr4_cdimm);
#define def_mba23_mtype_4a = 0; # not supported
#define def_mba23_mtype_4b = 0; # not supported
#define def_mba23_mtype_4c = 0; # not supported
#define def_mba23_mtype_5a = 0; # not supported
define def_mba23_mtype_4a = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_mtype_4b = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_mtype_4c = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_mtype_5a = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_mtype_5b = ((def_mba23_5b_1socket     )||(def_mba23_5b_2socket));
define def_mba23_mtype_5c = ((def_mba23_5c_1socket     )||(def_mba23_5c_2socket));
define def_mba23_mtype_5d = ((def_mba23_5d_1socket     )||(def_mba23_5d_2socket));
#define def_mba23_mtype_6a = 0; # not supported
#define def_mba23_mtype_6b = 0; # not supported
#define def_mba23_mtype_6c = 0; # not supported
define def_mba23_mtype_6a = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_mtype_6b = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_mtype_6c = (ATTR_MSS_FREQ == 1400) ;   # will evaluate to false
define def_mba23_mtype_7a = (def_mba23_7a_1socket     ||def_mba23_7a_2socket     ||def_mba23_7a_1socket_ddr4||def_mba23_7a_2socket_ddr4);
define def_mba23_mtype_7b = (def_mba23_7b_1socket     ||def_mba23_7b_2socket     ||def_mba23_7b_1socket_ddr4||def_mba23_7b_2socket_ddr4);
define def_mba23_mtype_7c = (def_mba23_7c_1socket     ||def_mba23_7c_2socket     ||def_mba23_7c_1socket_ddr4||def_mba23_7c_2socket_ddr4);



define def_type1_memory_populated_behind_MBA01 = (def_mba01_mtype_1a            ||def_mba01_mtype_1b            ||def_mba01_mtype_1c);#            ||def_mba01_mtype_1d);
define def_type2_memory_populated_behind_MBA01 = (def_mba01_mtype_2a            ||def_mba01_mtype_2b            ||def_mba01_mtype_2c            ||def_mba01_mtype_5d);
define def_type3_memory_populated_behind_MBA01 = (def_mba01_mtype_3a            ||def_mba01_mtype_3b            ||def_mba01_mtype_3c);
define def_type4_memory_populated_behind_MBA01 = (def_mba01_mtype_4a            ||def_mba01_mtype_4b            ||def_mba01_mtype_4c);
define def_type5_memory_populated_behind_MBA01 = (def_mba01_mtype_5a            ||def_mba01_mtype_5b            ||def_mba01_mtype_5c);
define def_type6_memory_populated_behind_MBA01 = (def_mba01_mtype_6a            ||def_mba01_mtype_6b            ||def_mba01_mtype_6c);
define def_type7_memory_populated_behind_MBA01 = (def_mba01_mtype_7a            ||def_mba01_mtype_7b            ||def_mba01_mtype_7c);
#define def_type8_memory_populated_behind_MBA01 = (def_mba01_mtype_8a            ||def_mba01_mtype_8b            ||def_mba01_mtype_8c);

define def_type1_memory_populated_behind_MBA23 = (def_mba23_mtype_1a            ||def_mba23_mtype_1b            ||def_mba23_mtype_1c);#            ||def_mba23_mtype_1d);
define def_type2_memory_populated_behind_MBA23 = (def_mba23_mtype_2a            ||def_mba23_mtype_2b            ||def_mba23_mtype_2c            ||def_mba23_mtype_5d);
define def_type3_memory_populated_behind_MBA23 = (def_mba23_mtype_3a            ||def_mba23_mtype_3b            ||def_mba23_mtype_3c);
define def_type4_memory_populated_behind_MBA23 = (def_mba23_mtype_4a            ||def_mba23_mtype_4b            ||def_mba23_mtype_4c);
define def_type5_memory_populated_behind_MBA23 = (def_mba23_mtype_5a            ||def_mba23_mtype_5b            ||def_mba23_mtype_5c);
define def_type6_memory_populated_behind_MBA23 = (def_mba23_mtype_6a            ||def_mba23_mtype_6b            ||def_mba23_mtype_6c);
define def_type7_memory_populated_behind_MBA23 = (def_mba23_mtype_7a            ||def_mba23_mtype_7b            ||def_mba23_mtype_7c);
#define def_type8_memory_populated_behind_MBA23 = (def_mba23_mtype_8a            ||def_mba23_mtype_8b            ||def_mba23_mtype_8c);

define def_mba01_subtype_A = (def_mba01_mtype_1a            || def_mba01_mtype_2a            || def_mba01_mtype_3a            || def_mba01_mtype_4a            || def_mba01_mtype_5a            || def_mba01_mtype_6a            || def_mba01_mtype_7a);#            || def_mba01_mtype_8a);
define def_mba01_subtype_B = (def_mba01_mtype_1b            || def_mba01_mtype_2b            || def_mba01_mtype_3b            || def_mba01_mtype_4b            || def_mba01_mtype_5b            || def_mba01_mtype_6b            || def_mba01_mtype_7b);#            || def_mba01_mtype_8b);
#define def_mba01_subtype_C = (def_mba01_mtype_1c            || def_mba01_mtype_1d            || def_mba01_mtype_2c            || def_mba01_mtype_3c            || def_mba01_mtype_4c            || def_mba01_mtype_5c            || def_mba01_mtype_5d            || def_mba01_mtype_6c            || def_mba01_mtype_7c);#            || def_mba01_mtype_8c);
define def_mba01_subtype_C = (def_mba01_mtype_1c                                             || def_mba01_mtype_2c            || def_mba01_mtype_3c            || def_mba01_mtype_4c            || def_mba01_mtype_5c            || def_mba01_mtype_5d            || def_mba01_mtype_6c            || def_mba01_mtype_7c );#           || def_mba01_mtype_8c);

define def_mba23_subtype_A = (def_mba23_mtype_1a            || def_mba23_mtype_2a            || def_mba23_mtype_3a            || def_mba23_mtype_4a            || def_mba23_mtype_5a            || def_mba23_mtype_6a            || def_mba23_mtype_7a);#            || def_mba23_mtype_8a);
define def_mba23_subtype_B = (def_mba23_mtype_1b            || def_mba23_mtype_2b            || def_mba23_mtype_3b            || def_mba23_mtype_4b            || def_mba23_mtype_5b            || def_mba23_mtype_6b            || def_mba23_mtype_7b);#            || def_mba23_mtype_8b);
#define def_mba23_subtype_C = (def_mba23_mtype_1c            || def_mba23_mtype_1d            || def_mba23_mtype_2c            || def_mba23_mtype_3c            || def_mba23_mtype_4c            || def_mba23_mtype_5c            || def_mba23_mtype_5d            || def_mba23_mtype_6c            || def_mba23_mtype_7c);#            || def_mba23_mtype_8c);
define def_mba23_subtype_C = (def_mba23_mtype_1c                                             || def_mba23_mtype_2c            || def_mba23_mtype_3c            || def_mba23_mtype_4c            || def_mba23_mtype_5c            || def_mba23_mtype_5d            || def_mba23_mtype_6c            || def_mba23_mtype_7c );#           || def_mba23_mtype_8c);

define def_mba01_Centaur_or_Planar_DIMM_with_only_DIMM_slot0_populated = (def_mba01_1a_1socket      ||def_mba01_1b_1socket      ||def_mba01_1c_1socket      ||def_mba01_2a_1socket      ||def_mba01_2a_1socket_ddr4 ||def_mba01_2b_1socket      ||def_mba01_2b_1socket_ddr4 ||def_mba01_2c_1socket      ||def_mba01_2c_1socket_ddr4 ||def_mba01_3a_1socket      ||def_mba01_3a_1socket_ddr4 ||def_mba01_3b_1socket      ||def_mba01_3c_1socket_ddr4 ||def_mba01_5b_1socket      ||def_mba01_5c_1socket      ||def_mba01_5d_1socket      ||def_mba01_7a_1socket      ||def_mba01_7b_1socket      ||def_mba01_7c_1socket      ||def_mba01_7a_1socket_ddr4 ||def_mba01_7b_1socket_ddr4 ||def_mba01_7c_1socket_ddr4);
define def_mba01_Planar_DIMM_with_both_DIMM_slots_0_and_1_populated    = (def_mba01_1a_2socket      ||def_mba01_1b_2socket      ||def_mba01_1c_2socket      ||def_mba01_2a_2socket      ||def_mba01_2a_2socket_ddr4 ||def_mba01_2b_2socket      ||def_mba01_2b_2socket_ddr4 ||def_mba01_2c_2socket      ||def_mba01_2c_2socket_ddr4 ||def_mba01_3a_2socket      ||def_mba01_3a_2socket_ddr4 ||def_mba01_3b_2socket      ||def_mba01_3c_2socket_ddr4 ||def_mba01_5b_2socket      ||def_mba01_5c_2socket      ||def_mba01_5d_2socket      ||def_mba01_7a_2socket      ||def_mba01_7b_2socket      ||def_mba01_7c_2socket      ||def_mba01_7a_2socket_ddr4 ||def_mba01_7b_2socket_ddr4 ||def_mba01_7c_2socket_ddr4 ||def_mba01_1c_cdimm        ||def_mba01_3a_cdimm        ||def_mba01_3b_cdimm        ||def_mba01_3c_cdimm        ||def_mba01_3a_ddr4_cdimm   ||def_mba01_3b_ddr4_cdimm   ||def_mba01_3c_ddr4_cdimm   ||def_mba01_4a_cdimm        ||def_mba01_4a_ddr4_cdimm   ||def_mba01_4b_ddr4_cdimm   ||def_mba01_4c_ddr4_cdimm);
#define def_mba01_Planar_DIMM_with_both_DIMM_slots_0_and_1_populated    = (def_mba01_1a_2socket      ||def_mba01_1b_2socket      ||def_mba01_1c_2socket      ||def_mba01_2a_2socket      ||def_mba01_2a_2socket_ddr4 ||def_mba01_2b_2socket      ||def_mba01_2b_2socket_ddr4 ||def_mba01_2c_2socket      ||def_mba01_2c_2socket_ddr4 ||def_mba01_3a_2socket      ||def_mba01_3a_2socket_ddr4 ||def_mba01_3b_2socket      ||def_mba01_3c_2socket_ddr4 ||def_mba01_5b_2socket      ||def_mba01_5c_2socket      ||def_mba01_5d_2socket      ||def_mba01_7a_2socket      ||def_mba01_7b_2socket      ||def_mba01_7c_2socket      ||def_mba01_7a_2socket_ddr4 ||def_mba01_7b_2socket_ddr4 ||def_mba01_7c_2socket_ddr4 ||def_mba01_1b_cdimm        ||def_mba01_1c_cdimm        ||def_mba01_3a_cdimm        ||def_mba01_3b_cdimm        ||def_mba01_3c_cdimm        ||def_mba01_3a_ddr4_cdimm   ||def_mba01_3b_ddr4_cdimm   ||def_mba01_3c_ddr4_cdimm   ||def_mba01_4a_cdimm        ||def_mba01_4a_ddr4_cdimm   ||def_mba01_4b_ddr4_cdimm   ||def_mba01_4c_ddr4_cdimm);

define def_mba23_Centaur_or_Planar_DIMM_with_only_DIMM_slot0_populated = (def_mba23_1a_1socket      ||def_mba23_1b_1socket      ||def_mba23_1c_1socket      ||def_mba23_2a_1socket      ||def_mba23_2a_1socket_ddr4 ||def_mba23_2b_1socket      ||def_mba23_2b_1socket_ddr4 ||def_mba23_2c_1socket      ||def_mba23_2c_1socket_ddr4 ||def_mba23_3a_1socket      ||def_mba23_3a_1socket_ddr4 ||def_mba23_3b_1socket      ||def_mba23_3c_1socket_ddr4 ||def_mba23_5b_1socket      ||def_mba23_5c_1socket      ||def_mba23_5d_1socket      ||def_mba23_7a_1socket      ||def_mba23_7b_1socket      ||def_mba23_7c_1socket      ||def_mba23_7a_1socket_ddr4 ||def_mba23_7b_1socket_ddr4 ||def_mba23_7c_1socket_ddr4);
#define def_mba23_Planar_DIMM_with_both_DIMM_slots_0_and_1_populated    = (def_mba23_1a_2socket      ||def_mba23_1b_2socket      ||def_mba23_1c_2socket      ||def_mba23_2a_2socket      ||def_mba23_2a_2socket_ddr4 ||def_mba23_2b_2socket      ||def_mba23_2b_2socket_ddr4 ||def_mba23_2c_2socket      ||def_mba23_2c_2socket_ddr4 ||def_mba23_3a_2socket      ||def_mba23_3a_2socket_ddr4 ||def_mba23_3b_2socket      ||def_mba23_3c_2socket_ddr4 ||def_mba23_5b_2socket      ||def_mba23_5c_2socket      ||def_mba23_5d_2socket      ||def_mba23_7a_2socket      ||def_mba23_7b_2socket      ||def_mba23_7c_2socket      ||def_mba23_7a_2socket_ddr4 ||def_mba23_7b_2socket_ddr4 ||def_mba23_7c_2socket_ddr4 ||def_mba23_1b_cdimm        ||def_mba23_1c_cdimm        ||def_mba23_3a_cdimm        ||def_mba23_3b_cdimm        ||def_mba23_3c_cdimm        ||def_mba23_3a_ddr4_cdimm   ||def_mba23_3b_ddr4_cdimm   ||def_mba23_3c_ddr4_cdimm   ||def_mba23_4a_cdimm        ||def_mba23_4a_ddr4_cdimm   ||def_mba23_4b_ddr4_cdimm   ||def_mba23_4c_ddr4_cdimm);
define def_mba23_Planar_DIMM_with_both_DIMM_slots_0_and_1_populated    = (def_mba23_1a_2socket      ||def_mba23_1b_2socket      ||def_mba23_1c_2socket      ||def_mba23_2a_2socket      ||def_mba23_2a_2socket_ddr4 ||def_mba23_2b_2socket      ||def_mba23_2b_2socket_ddr4 ||def_mba23_2c_2socket      ||def_mba23_2c_2socket_ddr4 ||def_mba23_3a_2socket      ||def_mba23_3a_2socket_ddr4 ||def_mba23_3b_2socket      ||def_mba23_3c_2socket_ddr4 ||def_mba23_5b_2socket      ||def_mba23_5c_2socket      ||def_mba23_5d_2socket      ||def_mba23_7a_2socket      ||def_mba23_7b_2socket      ||def_mba23_7c_2socket      ||def_mba23_7a_2socket_ddr4 ||def_mba23_7b_2socket_ddr4 ||def_mba23_7c_2socket_ddr4 ||def_mba23_1c_cdimm        ||def_mba23_3a_cdimm        ||def_mba23_3b_cdimm        ||def_mba23_3c_cdimm        ||def_mba23_3a_ddr4_cdimm   ||def_mba23_3b_ddr4_cdimm   ||def_mba23_3c_ddr4_cdimm   ||def_mba23_4a_cdimm        ||def_mba23_4a_ddr4_cdimm   ||def_mba23_4b_ddr4_cdimm   ||def_mba23_4c_ddr4_cdimm);

## Temp defines until the code adds these attributes
#define  def_ATTR_MSS_CACHE_ENABLE = 0;                                   # cache disable
#define  def_ATTR_MSS_PREFETCH_ENABLE = 0;                                # prefetch disable
#define  def_ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT = 0;                        # no MBA interleave
#define  def_01ATTR_MSS_HASH_MODE = 0;		# -MW switched to match dials
#define  def_23ATTR_MSS_HASH_MODE = 1;
#define  def_01ATTR_MSS_HASH_MODE = 1;
#define  def_23ATTR_MSS_HASH_MODE = 0;
#define  def_01ATTR_MSS_MBA_INTERLEAVE_MODE = 0;
#define  def_23ATTR_MSS_MBA_INTERLEAVE_MODE = 0;
#define  def_01ATTR_EFF_MBA_POS = 0;	# -MW not needed?
#define  def_23ATTR_EFF_MBA_POS = 1;	# -MW not needed?

######################
# temp VBU settings  #
######################

# Name = MBU.MBS.ECC01 (scomdef)
# MBSECCQ   MBS Memory ECC Control Register (01)
scom 0x0201144A   {
    bits,       scom_data   , MBA0.ATTR_FUNCTIONAL, expr ;
    0   ,       0b1         ,        1            , any ;  # disable mba01 memory ecc check/correct
}

# Name = MBU.MBS.ECC23 (scomdef)
# MBSECCQ   MBS Memory ECC Control Register (23)
scom 0x0201148A   {
    bits,       scom_data   , MBA1.ATTR_FUNCTIONAL, expr ;
    0   ,       0b1         ,        1            , any ;  # disable MBA23 memory ecc check/correct
}

######################
# MBS Configuration  #
######################

# MBS OCC Idle Threshold count Regsiter
# B0.C0.M00A.CEN.MBU.MBS.MBSOCCITCQ(0:63) = 0x0000000600000000
# added to match dials -MW
scom 0x02011428	{
	scom_data	;
	0x0000000600000000 ;
}



# Name = MBU.MBS (scomdef)
# MBSCFGQ   MBS Configuration Register
scom 0x02011411   {
    bits,       scom_data   , expr;
    0   ,       0b0         , any ;         # MBSCFGQ_eccbp_exit_sel
    1   ,       0b0         , any ;         # MBSCFGQ_dram_ecc_bypass_dis
}

# Name = MBU.MBS (scomdef)
# MBCCFGQ   MBC Configuration Register
scom 0x0201140F   {
    bits,       scom_data   , expr;
    0   ,       0b0     , (ATTR_MSS_CACHE_ENABLE == 0);   # MBCCFGQ_cache_enable
    0   ,       0b1     , (ATTR_MSS_CACHE_ENABLE != 0);   # MBCCFGQ_cache_enable
#    1   ,       0b0     , any                       ;        # -MW match dials
    1   ,       0b0     , any                       ;         # MBCCFGQ_cfg_dyn_whap_en
    2   ,       0b0     , (SYS.ATTR_MSS_CLEANER_ENABLE == 0); # MBCCFGQ_cleaner_enable
    2   ,       0b1     , (SYS.ATTR_MSS_CLEANER_ENABLE == 1); # MBCCFGQ_cleaner_enable
    3   ,       0b0     , any                       ;         # MBCCFGQ_cache_only_enable
    4   ,       0b0     , any                       ;         # MBCCFGQ_lru_dmap_en
    5   ,       0b0     , any                       ;         # MBCCFGQ_lru_random_en
    6   ,       0b0     , any                       ;         # MBCCFGQ_lru_single_mem_en
    7   ,       0b0     , any                       ;         # MBCCFGQ_cfg_srw_delete_ue_en
    8   ,       0b0     , any                       ;         # MBCCFGQ_srw_line_delete_next_ce_en
    9   ,       0b0     , any                       ;         # MBCCFGQ_only_log_ecc_ue
    10  ,       0b0     , any                       ;         # MBCCFGQ_only_log_ecc_ce
    11  ,       0b0     , (SYS.ATTR_MSS_PREFETCH_ENABLE == 1);         # MBCCFGQ_srw_prefetch_dis
    11  ,       0b1     , (SYS.ATTR_MSS_PREFETCH_ENABLE == 0);         # MBCCFGQ_srw_prefetch_dis
    12  ,       0b0     , (SYS.ATTR_MSS_PREFETCH_ENABLE == 1);         # MBCCFGQ_prq_prefetch_dis
    12  ,       0b1     , (SYS.ATTR_MSS_PREFETCH_ENABLE == 0);         # MBCCFGQ_prq_prefetch_dis
#   12	,		0b0		,	any						;		# -MW match dials
#    12  ,       0b0     , (SYS.ATTR_MSS_PREFETCH_ENABLE == 1) && (SYS.ATTR_MSS_CACHE_ENABLE == 1);
#    12  ,       0b1     , (SYS.ATTR_MSS_PREFETCH_ENABLE == 0);
#13:16  ,       0xF     , any                       ;         # MBCCFGQ_cln_page_mode_bundle_max_cnt_0_3
#17:22  ,       0x10    , any                       ;         # MBCCFGQ_cln_wrq_tgt_alloc_0_5
#23:28  ,       0x7     , any                       ;         # MBCCFGQ_cln_wr_priority_wrq_hwmark_0_5
#29:34  ,       0x6     , any                       ;         # MBCCFGQ_cln_wr_priority_wrq_lwmark_0_5
#35:48  ,       0x400   , any                       ;         # MBCCFGQ_cln_wr_priority_dv_hwmark_0_13
#49:62  ,       0x300   , any                       ;         # MBCCFGQ_cln_wr_priority_dv_lwmark_0_13
}


########################################
#MBA Swizzle Control Register (MBAXCRMS)
########################################

# Name = MBU.MBS.ARB.MBAXCRMS (scomdef)
# MBA Swizzle Control Register (MBAXCRMS)


scom 0x0201140D {
    bits,       scom_data  , MBA0.ATTR_FUNCTIONAL, MBA1.ATTR_FUNCTIONAL, expr;
     0:2  ,       0b000    ,        1            ,          0          , any;		# MBA01_master_rank_0_select is 0 for all cfgs
     0:2  ,       0b000    ,        1            ,          1          , any;		# MBA01_master_rank_0_select is 0 for all cfgs
     3:5  ,       0b001    ,        1            ,          0          , any;		# MBA01_master_rank_1_select is 1 for all cfgs
     3:5  ,       0b001    ,        1            ,          1          , any;		# MBA01_master_rank_1_select is 1 for all cfgs
     6:8  ,       0b010    ,        1            ,          0          , any;		# MBA01_master_rank_2_select is 2 for all cfgs
     6:8  ,       0b010    ,        1            ,          1          , any;		# MBA01_master_rank_2_select is 2 for all cfgs
    24:26 ,       0b000    ,        0            ,          1          , any;		# MBA23_master_rank_0_select is 0 for all cfgs
    24:26 ,       0b000    ,        1            ,          1          , any;		# MBA23_master_rank_0_select is 0 for all cfgs
    27:29 ,       0b001    ,        0            ,          1          , any;		# MBA23_master_rank_1_select is 1 for all cfgs
    27:29 ,       0b001    ,        1            ,          1          , any;		# MBA23_master_rank_1_select is 1 for all cfgs
    30:32 ,       0b010    ,        0            ,          1          , any;		# MBA23_master_rank_2_select is 2 for all cfgs
    30:32 ,       0b010    ,        1            ,          1          , any;		# MBA23_master_rank_2_select is 2 for all cfgs
}



########################################
# MBA address interleave bit selection #
########################################

# Name = MBU.MBS.ARB.RXLT (scomdef)
# MBSXCRQ   MBS Address Translate Control Register
# address interleave mode
scom 0x0201140A {
    bits,       scom_data   ,	expr;
#     0:4 ,       0b10001 , 	any;		#-MW to match dials
     0:4 ,       0b00000 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 0) || (MBA0.ATTR_FUNCTIONAL == 0) || (MBA1.ATTR_FUNCTIONAL == 0);                        # no MBA interleave
     0:4 ,       0b10000 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 23) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b10001 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 24) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b10010 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 25) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b10011 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 26) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b10100 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 27) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b10101 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 28) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b10110 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 29) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b10111 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 30) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b11000 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 31) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     0:4 ,       0b11001 , (SYS.ATTR_MSS_MBA_ADDR_INTERLEAVE_BIT == 32) && (MBA0.ATTR_FUNCTIONAL == 1) && (MBA1.ATTR_FUNCTIONAL == 1);                       #
     5   ,       0b0       , any      ;                       # Z mode only
}

####################################
# MBA01 address translation config #
####################################

# Name = MBU.MBS.ARB.RXLT (scomdef)
# MBU.MBS.ARB.RXLT.MBAXCR01Q_MBA01_CONFIG_TYPE from (edial spydef)
# MBAXCR01Q MBA01 Address Translate Control Register
#

scom 0x0201140B     {
    bits    ,   scom_data   , MBA0.ATTR_FUNCTIONAL, expr;
    0:3     ,   0b0000      ,         1           , (def_mba01_nomem == 1);                                     # MBAXCR01Q_MBA01_config_type    D
    0:3     ,   0b0001      ,         1           , (def_type1_memory_populated_behind_MBA01 == 1);             # MBAXCR01Q_MBA01_config_type    D
    0:3     ,   0b0010      ,         1           , (def_type2_memory_populated_behind_MBA01 == 1);             # MBAXCR01Q_MBA01_config_type    D
    0:3     ,   0b0011      ,         1           , (def_type3_memory_populated_behind_MBA01 == 1);             # MBAXCR01Q_MBA01_config_type    D
    0:3     ,   0b0100      ,         1           , (def_type4_memory_populated_behind_MBA01 == 1);             # MBAXCR01Q_MBA01_config_type    D
    0:3     ,   0b0101      ,         1           , (def_type5_memory_populated_behind_MBA01 == 1);             # MBAXCR01Q_MBA01_config_type    D
    0:3     ,   0b0110      ,         1           , (def_type6_memory_populated_behind_MBA01 == 1);             # MBAXCR01Q_MBA01_config_type    D
    0:3     ,   0b0111      ,         1           , (def_type7_memory_populated_behind_MBA01 == 1);             # MBAXCR01Q_MBA01_config_type    D
#    0:3     ,   0b1000      ,         1           , (def_type8_memory_populated_behind_MBA01 == 1);             # MBAXCR01Q_MBA01_config_type    D
#    4:5     ,   0b01        ,         1           , any                           ; # temp until ibm type is fully supported             # MBAXCR01Q_MBA01_config_subtype                    D
    4:5     ,   0b00        ,         1           , (def_mba01_subtype_A == 1);              # MBAXCR01Q_MBA01_config_subtype                    D
    4:5     ,   0b01        ,         1           , (def_mba01_subtype_B == 1);              # MBAXCR01Q_MBA01_config_subtype                    D
    4:5     ,   0b10        ,         1           , (def_mba01_subtype_C == 1);              # MBAXCR01Q_MBA01_config_subtype                    D
    6:7     ,   0b00        ,         1           , (MBA0.ATTR_EFF_DRAM_DENSITY == 2);   # MBAXCR01Q_MBA01_DRAM_size                         D
    6:7     ,   0b01        ,         1           , (MBA0.ATTR_EFF_DRAM_DENSITY == 4);   # MBAXCR01Q_MBA01_DRAM_size                         D
    6:7     ,   0b10        ,         1           , (MBA0.ATTR_EFF_DRAM_DENSITY == 8);   # MBAXCR01Q_MBA01_DRAM_size                         D
    8       ,   0b0         ,         1           , (def_mba01_Centaur_or_Planar_DIMM_with_only_DIMM_slot0_populated == 1);                # MBAXCR01Q_MBA01_Configuration                                          D
    8       ,   0b1         ,         1           , (def_mba01_Planar_DIMM_with_both_DIMM_slots_0_and_1_populated    == 1);                # MBAXCR01Q_MBA01_Configuration                                          D
#    8       ,   0b0         ,         1           , (MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_CHIP_UNIT_POS == 0);                # MBAXCR01Q_MBA01_Configuration                                           D
#    8       ,   0b1         ,         1           , ((((MBA0.ATTR_EFF_NUM_DROPS_PER_PORT == 2) || (ATTR_EFF_DIMM_TYPE == 0)) && (MBA0.ATTR_CHIP_UNIT_POS == 0)) == 1);                # MBAXCR01Q_MBA01_Configuration   D
    9       ,   0b1         ,         1           , (MBA0.ATTR_EFF_DRAM_WIDTH == 4);     # MBAXCR01Q_MBA01_DRAM_Width                    D
    9       ,   0b0         ,         1           , (MBA0.ATTR_EFF_DRAM_WIDTH == 8);     # MBAXCR01Q_MBA01_DRAM_Width                    D
    10:11   ,   0b00        ,         1           , (SYS.ATTR_MSS_MCA_HASH_MODE == 0);  # MBAXCR01Q_MBA01_Hash_Mode
    10:11   ,   0b01        ,         1           , (SYS.ATTR_MSS_MCA_HASH_MODE == 1);  # MBAXCR01Q_MBA01_Hash_Mode
    10:11   ,   0b10        ,         1           , (SYS.ATTR_MSS_MCA_HASH_MODE == 2);  # MBAXCR01Q_MBA01_Hash_Mode
#    12      ,   0b0         ,         1           , any;							# -MW match dials  # MBAXCR01Q_MBA01_Interleave_Mode
    12      ,   0b0         ,         1           , (SYS.ATTR_MSS_MBA_CACHELINE_INTERLEAVE_MODE == 0);  # MBAXCR01Q_MBA01_Interleave_Mode
    12      ,   0b1         ,         1           , (SYS.ATTR_MSS_MBA_CACHELINE_INTERLEAVE_MODE == 1);  # MBAXCR01Q_MBA01_Interleave_Mode
}


####################################
# MBA23 address translation config #
####################################

# Name = MBU.MBS.ARB.RXLT (scomdef)
# MBU.MBS.ARB.RXLT.MBAXCR01Q_MBA23_CONFIG_TYPE from (edial spydef)
# MBAXCR23Q MBA23 Address Translate Control Register
#
scom 0x0201140C     {
    bits    ,   scom_data   , MBA1.ATTR_FUNCTIONAL, expr;
    0:3     ,   0b0000      ,         1           , (def_mba23_nomem == 1);                                     # MBAXCR01Q_MBA23_config_type    D
    0:3     ,   0b0001      ,         1           , (def_type1_memory_populated_behind_MBA23 == 1);             # MBAXCR01Q_MBA23_config_type    D
    0:3     ,   0b0010      ,         1           , (def_type2_memory_populated_behind_MBA23 == 1);             # MBAXCR01Q_MBA23_config_type    D
    0:3     ,   0b0011      ,         1           , (def_type3_memory_populated_behind_MBA23 == 1);             # MBAXCR01Q_MBA23_config_type    D
    0:3     ,   0b0100      ,         1           , (def_type4_memory_populated_behind_MBA23 == 1);             # MBAXCR01Q_MBA23_config_type    D
    0:3     ,   0b0101      ,         1           , (def_type5_memory_populated_behind_MBA23 == 1);             # MBAXCR01Q_MBA23_config_type    D
    0:3     ,   0b0110      ,         1           , (def_type6_memory_populated_behind_MBA23 == 1);             # MBAXCR01Q_MBA23_config_type    D
    0:3     ,   0b0111      ,         1           , (def_type7_memory_populated_behind_MBA23 == 1);             # MBAXCR01Q_MBA23_config_type    D
#    0:3     ,   0b1000      ,         1           , (def_type8_memory_populated_behind_MBA23 == 1);             # MBAXCR01Q_MBA23_config_type    D
#    4:5     ,   0b01        ,         1           , any                       ;# temp until ibm type is fully supported               # MBAXCR01Q_MBA23_config_subtype                    D
    4:5     ,   0b00        ,         1           , (def_mba23_subtype_A == 1);              # MBAXCR01Q_MBA23_config_subtype                    D
    4:5     ,   0b01        ,         1           , (def_mba23_subtype_B == 1);              # MBAXCR01Q_MBA23_config_subtype                    D
    4:5     ,   0b10        ,         1           , (def_mba23_subtype_C == 1);              # MBAXCR01Q_MBA23_config_subtype                    D
    6:7     ,   0b00        ,         1           , (MBA1.ATTR_EFF_DRAM_DENSITY == 2);   # MBAXCR01Q_MBA23_DRAM_size                         D
    6:7     ,   0b01        ,         1           , (MBA1.ATTR_EFF_DRAM_DENSITY == 4);   # MBAXCR01Q_MBA23_DRAM_size                         D
    6:7     ,   0b10        ,         1           , (MBA1.ATTR_EFF_DRAM_DENSITY == 8);   # MBAXCR01Q_MBA23_DRAM_size                         D
    8       ,   0b0         ,         1           , (def_mba23_Centaur_or_Planar_DIMM_with_only_DIMM_slot0_populated == 1);                # MBAXCR01Q_MBA23_Configuration                                          D
    8       ,   0b1         ,         1           , (def_mba23_Planar_DIMM_with_both_DIMM_slots_0_and_1_populated    == 1);                # MBAXCR01Q_MBA23_Configuration                                          D
#    8       ,   0b0         ,         1           , (ATTR_EFF_NUM_DROPS_PER_PORT == 1) && (MBA0.ATTR_CHIP_UNIT_POS == 0);                # MBAXCR01Q_MBA23_Configuration                                           D
#    8       ,   0b1         ,         1           , ((((ATTR_EFF_NUM_DROPS_PER_PORT == 2) || (ATTR_EFF_DIMM_TYPE == 0)) && (MBA0.ATTR_CHIP_UNIT_POS == 0)) == 1);                # MBAXCR01Q_MBA23_Configuration   D
    9       ,   0b1         ,         1           , (MBA1.ATTR_EFF_DRAM_WIDTH == 4);     # MBAXCR01Q_MBA23_DRAM_Width                    D
    9       ,   0b0         ,         1           , (MBA1.ATTR_EFF_DRAM_WIDTH == 8);     # MBAXCR01Q_MBA23_DRAM_Width                    D
    10:11   ,   0b00        ,         1           , (SYS.ATTR_MSS_MCA_HASH_MODE == 0);  # MBAXCR01Q_MBA23_Hash_Mode
    10:11   ,   0b01        ,         1           , (SYS.ATTR_MSS_MCA_HASH_MODE == 1);  # MBAXCR01Q_MBA23_Hash_Mode
    10:11   ,   0b10        ,         1           , (SYS.ATTR_MSS_MCA_HASH_MODE == 2);  # MBAXCR01Q_MBA23_Hash_Mode
#    12      ,   0b0         ,         1           , any;							# -MW match dials  # MBAXCR01Q_MBA23_Interleave_Mode
    12      ,   0b0         ,         1           , (SYS.ATTR_MSS_MBA_CACHELINE_INTERLEAVE_MODE == 0);  # MBAXCR01Q_MBA23_Interleave_Mode
    12      ,   0b1         ,         1           , (SYS.ATTR_MSS_MBA_CACHELINE_INTERLEAVE_MODE == 1);  # MBAXCR01Q_MBA23_Interleave_Mode
}




###########################################################################################
# MBS MCBIST SETUP SECTION                                                                #
###########################################################################################

###################################
# MCBIST Fixed data pattern MBA01
###################################
# Name = MBA01.MBA_MCBIST.SCOMFIR.MCBFD[0-7]Q_Q(0:63) (scomdef)
# Name = MBA01.MBA_MCBIST.SCOMFIR.MCBFDQ_Q(0:63) (scomdef)
# Name = MBA01.MBA_MCBIST.SCOMFIR.MCBFDSPQ_Q(0:63) (scomdef)

scom 0x02011681     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x1111111111111111,        1            , any;         # Fixed data burst 0
}

scom 0x02011682     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x2222222222222222,        1            , any;         # Fixed data burst 1
}

scom 0x02011683     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x3333333333333333,        1            , any;         # Fixed data burst 2
}

scom 0x02011684     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x4444444444444444,        1            , any;         # Fixed data burst 3
}

scom 0x02011685     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x5555555555555555,        1            , any;         # Fixed data burst 4
}

scom 0x02011686     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x6666666666666666,        1            , any;         # Fixed data burst 5
}

scom 0x02011687     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x7777777777777777,        1            , any;         # Fixed data burst 6
}

scom 0x02011688     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x8888888888888888,        1            , any;         # Fixed data burst 7
}

scom 0x02011689     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x9999999999999999,        1            , any;         # Fixed data burst 0-7 ECC bits
}

scom 0x0201168A     {
    bits    ,   scom_data         , MBA0.ATTR_FUNCTIONAL, expr;
    0:63    ,   0xAAAAAAAAAAAAAAAA,        1            , any;         # Fixed data burst 0-7 SPARE bits
}


###################################
# MCBIST Fixed data pattern MBA23
###################################
# Name = MBA23.MBA_MCBIST.SCOMFIR.MCBFD[0-7]Q_Q(0:63) (scomdef)
# Name = MBA23.MBA_MCBIST.SCOMFIR.MCBFDQ_Q(0:63) (scomdef)
# Name = MBA23.MBA_MCBIST.SCOMFIR.MCBFDSPQ_Q(0:63) (scomdef)

scom 0x02011781     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x1111111111111111,        1            , any;         # Fixed data burst 0
}

scom 0x02011782     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x2222222222222222,        1            , any;         # Fixed data burst 1
}

scom 0x02011783     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x3333333333333333,        1            , any;         # Fixed data burst 2
}

scom 0x02011784     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x4444444444444444,        1            , any;         # Fixed data burst 3
}

scom 0x02011785     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x5555555555555555,        1            , any;         # Fixed data burst 4
}

scom 0x02011786     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x6666666666666666,        1            , any;         # Fixed data burst 5
}

scom 0x02011787     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x7777777777777777,        1            , any;         # Fixed data burst 6
}

scom 0x02011788     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x8888888888888888,        1            , any;         # Fixed data burst 7
}

scom 0x02011789     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0x9999999999999999,        1            , any;         # Fixed data burst 0-7 ECC bits
}

scom 0x0201178A     {
    bits    ,   scom_data         , MBA1.ATTR_FUNCTIONAL, expr;
    0:63    ,   0xAAAAAAAAAAAAAAAA,        1            , any;         # Fixed data burst 0-7 SPARE bits
}


OpenPOWER on IntegriCloud