summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H
blob: 4555064c7386cbc4d5c3e4087580a39be078f0f6 (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
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* $Source: src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H $ */
/*                                                                        */
/* IBM CONFIDENTIAL                                                       */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 2012                   */
/*                                                                        */
/* p1                                                                     */
/*                                                                        */
/* Object Code Only (OCO) source materials                                */
/* Licensed Internal Code Source Materials                                */
/* IBM HostBoot Licensed Internal Code                                    */
/*                                                                        */
/* The source code for this program is not published or otherwise         */
/* divested of its trade secrets, irrespective of what has been           */
/* deposited with the U.S. Copyright Office.                              */
/*                                                                        */
/* Origin: 30                                                             */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
// $Id: proc_build_smp_fbc_cd.H,v 1.3 2012/09/05 03:12:50 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp_fbc_cd.H,v $
//------------------------------------------------------------------------------
// *|
// *! (C) Copyright International Business Machines Corp. 2011
// *! All Rights Reserved -- Property of IBM
// *! *** IBM Confidential ***
// *|
// *! TITLE       : proc_build_smp_fbc_cd.H
// *! DESCRIPTION : Fabric configuration (hotplug, CD) functions (FAPI)
// *!
// *! OWNER NAME  : Joe McGill    Email: jmcgill@us.ibm.com
// *!
//------------------------------------------------------------------------------

#ifndef _PROC_BUILD_SMP_FBC_CD_H_
#define _PROC_BUILD_SMP_FBC_CD_H_

//------------------------------------------------------------------------------
// Includes
//------------------------------------------------------------------------------
#include "proc_build_smp.H"
#include "p8_scom_addresses.H"

//------------------------------------------------------------------------------
// Structure definitions
//------------------------------------------------------------------------------

// structure encapsulating serial configuration load programming
struct proc_build_smp_sconfig_def
{
    uint8_t select;                               // ID/select for chain
    uint8_t length;                               // number of bits to load
    bool use_slow_clock;                          // use 16:1 slow clock? (EX)
    bool use_shadow[PROC_BUILD_SMP_NUM_SHADOWS];  // define which shadows to set
};

//------------------------------------------------------------------------------
// Constant definitions
//------------------------------------------------------------------------------

//
// PB Serial Configuration Load register field/bit definitions
//

// hang level constants
const uint8_t PB_SCONFIG_NUM_HANG_LEVELS = 7;

const uint32_t PB_SCONFIG_LOAD[PROC_BUILD_SMP_NUM_SHADOWS] =
{
    PB_SCONFIG_LOAD_WEST_0x02010C16,
    PB_SCONFIG_LOAD_CENT_0x02010C6D,
    PB_SCONFIG_LOAD_EAST_0x02010C96
};

const uint32_t PB_SCONFIG_LOAD_START_BIT = 0;
const uint32_t PB_SCONFIG_LOAD_SLOW_BIT = 1;
const uint32_t PB_SCONFIG_SHIFT_COUNT_START_BIT = 2;
const uint32_t PB_SCONFIG_SHIFT_COUNT_END_BIT = 7;
const uint32_t PB_SCONFIG_SELECT_START_BIT = 8;
const uint32_t PB_SCONFIG_SELECT_END_BIT = 11;
const uint32_t PB_SCONFIG_SHIFT_DATA_START_BIT = 12;
const uint32_t PB_SCONFIG_SHIFT_DATA_END_BIT = 63;


//
// PBH_CMD_SNOOPER (center, chain #4) field/bit definitions
//

const proc_build_smp_sconfig_def PB_SCONFIG_C4_DEF = { 0x4, 50, false, { false, true, false} };

const uint32_t PB_SCONFIG_C4_GP_LO_RTY_THRESHOLD_START_BIT = 14;
const uint32_t PB_SCONFIG_C4_GP_LO_RTY_THRESHOLD_END_BIT = 23;
const uint32_t PB_SCONFIG_C4_GP_HI_RTY_THRESHOLD_START_BIT = 24;
const uint32_t PB_SCONFIG_C4_GP_HI_RTY_THRESHOLD_END_BIT = 33;
const uint32_t PB_SCONFIG_C4_RGP_LO_RTY_THRESHOLD_START_BIT = 34;
const uint32_t PB_SCONFIG_C4_RGP_LO_RTY_THRESHOLD_END_BIT = 43;
const uint32_t PB_SCONFIG_C4_RGP_HI_RTY_THRESHOLD_START_BIT = 44;
const uint32_t PB_SCONFIG_C4_RGP_HI_RTY_THRESHOLD_END_BIT = 53;
const uint32_t PB_SCONFIG_C4_SP_LO_RTY_THRESHOLD_START_BIT = 54;
const uint32_t PB_SCONFIG_C4_SP_LO_RTY_THRESHOLD_END_BIT = 63;

const uint32_t PB_SCONFIG_C4_GP_LO_RTY_THRESHOLD = 0x8;
const uint32_t PB_SCONFIG_C4_GP_HI_RTY_THRESHOLD = 0x6;
const uint32_t PB_SCONFIG_C4_RGP_LO_RTY_THRESHOLD = 0x8;
const uint32_t PB_SCONFIG_C4_RGP_HI_RTY_THRESHOLD = 0x6;
const uint32_t PB_SCONFIG_C4_SP_LO_RTY_THRESHOLD = 0x8;


//
// PBH_CMD_SNOOPER (center, chain #5) field/bit definitions
//

const proc_build_smp_sconfig_def PB_SCONFIG_C5_DEF = { 0x5, 46, false, { false, true, false} };

const uint32_t PB_SCONFIG_C5_SP_HI_RTY_THRESHOLD_START_BIT = 18;
const uint32_t PB_SCONFIG_C5_SP_HI_RTY_THRESHOLD_END_BIT = 27;
const uint32_t PB_SCONFIG_C5_GP_CRESP_SAMPLE_TIME_START_BIT = 28;
const uint32_t PB_SCONFIG_C5_GP_CRESP_SAMPLE_TIME_END_BIT = 39;
const uint32_t PB_SCONFIG_C5_RGP_CRESP_SAMPLE_TIME_START_BIT = 40;
const uint32_t PB_SCONFIG_C5_RGP_CRESP_SAMPLE_TIME_END_BIT = 51;
const uint32_t PB_SCONFIG_C5_SP_CRESP_SAMPLE_TIME_START_BIT = 52;
const uint32_t PB_SCONFIG_C5_SP_CRESP_SAMPLE_TIME_END_BIT = 63;

const uint32_t PB_SCONFIG_C5_SP_HI_RTY_THRESHOLD = 0x6;
const uint32_t PB_SCONFIG_C5_GP_CRESP_SAMPLE_TIME = 256;
const uint32_t PB_SCONFIG_C5_RGP_CRESP_SAMPLE_TIME = 256;
const uint32_t PB_SCONFIG_C5_SP_CRESP_SAMPLE_TIME = 256;


//
// PBH_CMD_SNOOPER (center, chain #6) field/bit definitions
//

const proc_build_smp_sconfig_def PB_SCONFIG_C6_DEF = { 0x6, 42, false, { false, true, false} };

const uint32_t PB_SCONFIG_C6_GP_REQ_SAMPLE_TIME_START_BIT = 22;
const uint32_t PB_SCONFIG_C6_GP_REQ_SAMPLE_TIME_END_BIT = 33;
const uint32_t PB_SCONFIG_C6_SP_REQ_SAMPLE_TIME_START_BIT = 34;
const uint32_t PB_SCONFIG_C6_SP_REQ_SAMPLE_TIME_END_BIT = 45;
const uint32_t PB_SCONFIG_C6_GP_LO_JUMP_START_BIT = 46;
const uint32_t PB_SCONFIG_C6_GP_LO_JUMP_END_BIT = 48;
const uint32_t PB_SCONFIG_C6_GP_HI_JUMP_START_BIT = 49;
const uint32_t PB_SCONFIG_C6_GP_HI_JUMP_END_BIT = 51;
const uint32_t PB_SCONFIG_C6_SP_LO_JUMP_START_BIT = 52;
const uint32_t PB_SCONFIG_C6_SP_LO_JUMP_END_BIT = 54;
const uint32_t PB_SCONFIG_C6_SP_HI_JUMP_START_BIT = 55;
const uint32_t PB_SCONFIG_C6_SP_HI_JUMP_END_BIT = 57;
const uint32_t PB_SCONFIG_C6_RGP_LO_JUMP_START_BIT = 58;
const uint32_t PB_SCONFIG_C6_RGP_LO_JUMP_END_BIT = 60;
const uint32_t PB_SCONFIG_C6_RGP_HI_JUMP_START_BIT = 61;
const uint32_t PB_SCONFIG_C6_RGP_HI_JUMP_END_BIT = 63;

const uint32_t PB_SCONFIG_C6_GP_REQ_SAMPLE_TIME = 512;
const uint32_t PB_SCONFIG_C6_SP_REQ_SAMPLE_TIME = 512;
const uint32_t PB_SCONFIG_C6_GP_LO_JUMP = 0x3;
const uint32_t PB_SCONFIG_C6_GP_HI_JUMP = 0x3;
const uint32_t PB_SCONFIG_C6_SP_LO_JUMP = 0x3;
const uint32_t PB_SCONFIG_C6_SP_HI_JUMP = 0x3;
const uint32_t PB_SCONFIG_C6_RGP_LO_JUMP = 0x3;
const uint32_t PB_SCONFIG_C6_RGP_HI_JUMP = 0x3;


//
// PBH_CMD_SNOOPER (center, chain #7) field/bit definitions
//

const proc_build_smp_sconfig_def PB_SCONFIG_C7_DEF = { 0x7, 36, false, { false, true, false } };

const uint32_t PB_SCONFIG_C7_HANG_CMD_RATE_START_BIT[PB_SCONFIG_NUM_HANG_LEVELS] = { 28, 33, 38, 43, 48, 53, 58 };
const uint32_t PB_SCONFIG_C7_HANG_CMD_RATE_END_BIT[PB_SCONFIG_NUM_HANG_LEVELS]   = { 32, 37, 42, 47, 52, 57, 62 };
const uint32_t PB_SCONFIG_C7_SLOW_GO_RATE_BIT = 63;

// PB_CFG_HANG0_CMD_RATE = 0x00 = 127/128
// PB_CFG_HANG1_CMD_RATE = 0x06 = 1/2
// PB_CFG_HANG2_CMD_RATE = 0x0D = 1/512
// PB_CFG_HANG3_CMD_RATE = 0x00 = 127/128
// PB_CFG_HANG4_CMD_RATE = 0x1E = 1/4096 (toad mode)
// PB_CFG_HANG5_CMD_RATE = 0x19 = 1/8 (toad mode)
// PB_CFG_HANG6_CMD_RATE = 0x00 = 127/128
const uint8_t PB_SCONFIG_C7_HANG_CMD_RATE[PB_SCONFIG_NUM_HANG_LEVELS] = { 0x00, 0x06, 0x0D, 0x00, 0x1E, 0x19, 0x00 };
const bool    PB_SCONFIG_C7_SLOW_GO_RATE = true;


//
// PBH_CMD_SNOOPER (center, chain #8) field/bit definitions
//

const proc_build_smp_sconfig_def PB_SCONFIG_C8_DEF = { 0x8, 37, false, { false, true, false } };

const uint32_t PB_SCONFIG_C8_HANG_CMD_RATE_START_BIT[PB_SCONFIG_NUM_HANG_LEVELS] = { 27, 31, 35, 39, 43, 47, 51 };
const uint32_t PB_SCONFIG_C8_HANG_CMD_RATE_END_BIT[PB_SCONFIG_NUM_HANG_LEVELS]   = { 30, 34, 38, 42, 46, 50, 54 };
const uint32_t PB_SCONFIG_C8_CPO_JUMP_LEVEL_START_BIT = 55;
const uint32_t PB_SCONFIG_C8_CPO_JUMP_LEVEL_END_BIT = 57;
const uint32_t PB_SCONFIG_C8_CPO_RTY_LEVEL_START_BIT = 58;
const uint32_t PB_SCONFIG_C8_CPO_RTY_LEVEL_END_BIT = 63;

const uint8_t  PB_SCONFIG_C8_HANG_CMD_RATE[PB_SCONFIG_NUM_HANG_LEVELS] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
const uint32_t PB_SCONFIG_C8_CPO_JUMP_LEVEL = 0x3;
const uint32_t PB_SCONFIG_C8_CPO_RTY_LEVEL = 0xF;


//
// PBH_PBIEX_EH (east/west, chain #0) field/bit definitions
//

const proc_build_smp_sconfig_def PB_SCONFIG_WE0_DEF = { 0x0, 52, false, { true, false, true } };

const uint32_t PB_SCONFIG_WE0_CMD_C2I_DONE_LAUNCH_START_BIT = 12;
const uint32_t PB_SCONFIG_WE0_CMD_C2I_DONE_LAUNCH_END_BIT = 14;
const uint32_t PB_SCONFIG_WE0_CMD_C2I_LATE_RD_MODE_BIT = 15;
const uint32_t PB_SCONFIG_WE0_CMD_C2I_DELAY_SP_RD_START_BIT = 16;
const uint32_t PB_SCONFIG_WE0_CMD_C2I_DELAY_SP_RD_END_BIT = 17;
const uint32_t PB_SCONFIG_WE0_CMD_C2I_SPARE_MODE_BIT = 18;
const uint32_t PB_SCONFIG_WE0_PRSP_C2I_DONE_LAUNCH_BIT = 19;
const uint32_t PB_SCONFIG_WE0_PRSP_C2I_HW070772_DIS_BIT = 20;
const uint32_t PB_SCONFIG_WE0_PRSP_C2I_NOP_MODE_START_BIT = 21;
const uint32_t PB_SCONFIG_WE0_PRSP_C2I_NOP_MODE_END_BIT = 22;
const uint32_t PB_SCONFIG_WE0_PRSP_C2I_SPARE_MODE_BIT = 23;
const uint32_t PB_SCONFIG_WE0_CRSP_I2C_DVAL_LAUNCH_START_BIT = 24;
const uint32_t PB_SCONFIG_WE0_CRSP_I2C_DVAL_LAUNCH_END_BIT = 25;
const uint32_t PB_SCONFIG_WE0_CRSP_I2C_HSHAKE_BIT = 26;
const uint32_t PB_SCONFIG_WE0_CRSP_I2C_SPARE_MODE_BIT = 27;
const uint32_t PB_SCONFIG_WE0_DATA_I2C_DVAL_LAUNCH_START_BIT = 28;
const uint32_t PB_SCONFIG_WE0_DATA_I2C_DVAL_LAUNCH_END_BIT = 29;
const uint32_t PB_SCONFIG_WE0_DATA_I2C_SPARE_MODE_BIT = 30;
const uint32_t PB_SCONFIG_WE0_DATA_I2C_FORCE_FA_ALLOC_BIT = 31;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_DONE_LAUNCH_START_BIT = 32;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_DONE_LAUNCH_END_BIT = 33;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_INITIAL_REQ_DLY_START_BIT = 34;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_INITIAL_REQ_DLY_END_BIT = 36;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_DCTR_LAUNCH_START_BIT = 37;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_DCTR_LAUNCH_END_BIT = 38;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_OUTSTANDING_REQ_COUNT_BIT = 39;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_REQ_ID_ASSIGNMENT_MODE_BIT = 40;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_ALLOW_FRAGMENTATION_BIT = 41;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_SERIAL_DREQ_ID_BIT = 42;
const uint32_t PB_SCONFIG_WE0_DATA_C2I_SPARE_MODE_BIT = 43;
const uint32_t PB_SCONFIG_WE0_RCMD_I2C_DVAL_LAUNCH_START_BIT = 44;
const uint32_t PB_SCONFIG_WE0_RCMD_I2C_DVAL_LAUNCH_END_BIT = 45;
const uint32_t PB_SCONFIG_WE0_RCMD_I2C_HSHAKE_BIT = 46;
const uint32_t PB_SCONFIG_WE0_RCMD_I2C_SPARE_MODE_BIT = 47;
const uint32_t PB_SCONFIG_WE0_FP_I2C_DVAL_LAUNCH_START_BIT = 48;
const uint32_t PB_SCONFIG_WE0_FP_I2C_DVAL_LAUNCH_END_BIT = 49;
const uint32_t PB_SCONFIG_WE0_FP_I2C_HSHAKE_BIT = 50;
const uint32_t PB_SCONFIG_WE0_FP_I2C_SPARE_MODE_BIT  = 51;
const uint32_t PB_SCONFIG_WE0_FP_C2I_DONE_LAUNCH_BIT = 52;
const uint32_t PB_SCONFIG_WE0_FP_C2I_SPARE_MODE_BIT = 53;
const uint32_t PB_SCONFIG_WE0_CPU_RATIO_TABLE_FULL_START_BIT = 54;
const uint32_t PB_SCONFIG_WE0_CPU_RATIO_TABLE_FULL_END_BIT = 58;
const uint32_t PB_SCONFIG_WE0_CPU_RATIO_TABLE_NOM_START_BIT  = 59;
const uint32_t PB_SCONFIG_WE0_CPU_RATIO_TABLE_NOM_END_BIT = 63;

const uint8_t  PB_SCONFIG_WE0_CMD_C2I_LATE_RD_MODE = true;             // on
const uint8_t  PB_SCONFIG_WE0_CMD_C2I_DELAY_SP_RD = 0x0;               // rc_p1
const bool     PB_SCONFIG_WE0_CMD_C2I_SPARE_MODE = false;              // spare
const uint8_t  PB_SCONFIG_WE0_PRSP_C2I_DONE_LAUNCH = 0x0;              // rc_p1
const bool     PB_SCONFIG_WE0_PRSP_C2I_HW070772_DIS = true;            // on
const uint8_t  PB_SCONFIG_WE0_PRSP_C2I_NOP_MODE = 0x0;                 // 16c
const bool     PB_SCONFIG_WE0_PRSP_C2I_SPARE_MODE = false;             // spare
const bool     PB_SCONFIG_WE0_CRSP_I2C_HSHAKE = false;                 // off
const bool     PB_SCONFIG_WE0_CRSP_I2C_SPARE_MODE = false;             // spare
const bool     PB_SCONFIG_WE0_DATA_I2C_SPARE_MODE = false;             // spare
const bool     PB_SCONFIG_WE0_DATA_I2C_FORCE_FA_ALLOC = false;         // off
const uint8_t  PB_SCONFIG_WE0_DATA_C2I_INITIAL_REQ_DLY = 0x7;          // 7c
const bool     PB_SCONFIG_WE0_DATA_C2I_OUTSTANDING_REQ_COUNT = false;  // 8
const bool     PB_SCONFIG_WE0_DATA_C2I_REQ_ID_ASSIGNMENT_MODE = false; // FA
const bool     PB_SCONFIG_WE0_DATA_C2I_ALLOW_FRAGMENTATION = true;     // on
const bool     PB_SCONFIG_WE0_DATA_C2I_SERIAL_DREQ_ID = true;          // on
const bool     PB_SCONFIG_WE0_DATA_C2I_SPARE_MODE = false;             // spare
const bool     PB_SCONFIG_WE0_RCMD_I2C_HSHAKE = false;                 // off
const bool     PB_SCONFIG_WE0_RCMD_I2C_SPARE_MODE = false;             // spare
const uint8_t  PB_SCONFIG_WE0_FP_I2C_DVAL_LAUNCH = 0x0;                // wc_p1
const uint8_t  PB_SCONFIG_WE0_FP_I2C_HSHAKE = false;                   // off
const bool     PB_SCONFIG_WE0_FP_I2C_SPARE_MODE = false;               // spare
const uint8_t  PB_SCONFIG_WE0_FP_C2I_DONE_LAUNCH = 0x0;                // rc_p1
const bool     PB_SCONFIG_WE0_FP_C2I_SPARE_MODE = false;               // spare
const uint32_t PB_SCONFIG_WE0_CPU_RATIO_TABLE_FULL = 0x0D;             // 13
const uint32_t PB_SCONFIG_WE0_CPU_RATIO_TABLE_NOM = 0x12;              // 18


//
// PBH_PBIEX_EX (east/west, chain #1) field/bit definitions
//

const proc_build_smp_sconfig_def PB_SCONFIG_WE1_DEF = { 0x1, 38, true, { true, false, true } };

const uint32_t PB_SCONFIG_WE1_CMD_C2I_DVAL_LAUNCH_START_BIT = 26;
const uint32_t PB_SCONFIG_WE1_CMD_C2I_DVAL_LAUNCH_END_BIT = 27;
const uint32_t PB_SCONFIG_WE1_CMD_C2I_EARLY_REQ_MODE_BIT = 28;
const uint32_t PB_SCONFIG_WE1_CMD_C2I_SPARE_BIT = 29;
const uint32_t PB_SCONFIG_WE1_CMD_C2I_SPARE_MODE_BIT = 30;
const uint32_t PB_SCONFIG_WE1_PRSP_C2I_DVAL_LAUNCH_START_BIT = 31;
const uint32_t PB_SCONFIG_WE1_PRSP_C2I_DVAL_LAUNCH_END_BIT = 32;
const uint32_t PB_SCONFIG_WE1_PRSP_C2I_HSHAKE_BIT = 33;
const uint32_t PB_SCONFIG_WE1_PRSP_C2I_SPARE_MODE_BIT = 34;
const uint32_t PB_SCONFIG_WE1_CRSP_I2C_DONE_LAUNCH_BIT = 35;
const uint32_t PB_SCONFIG_WE1_CRSP_I2C_PTY_RD_CAPTURE_START_BIT = 36;
const uint32_t PB_SCONFIG_WE1_CRSP_I2C_PTY_RD_CAPTURE_END_BIT = 37;
const uint32_t PB_SCONFIG_WE1_CRSP_I2C_SPARE_MODE_BIT = 38;
const uint32_t PB_SCONFIG_WE1_DATA_I2C_DONE_LAUNCH_START_BIT = 39;
const uint32_t PB_SCONFIG_WE1_DATA_I2C_DONE_LAUNCH_END_BIT = 40;
const uint32_t PB_SCONFIG_WE1_DATA_I2C_DCTR_LAUNCH_START_BIT = 41;
const uint32_t PB_SCONFIG_WE1_DATA_I2C_DCTR_LAUNCH_END_BIT = 42;
const uint32_t PB_SCONFIG_WE1_DATA_I2C_SPARE_MODE_BIT = 43;
const uint32_t PB_SCONFIG_WE1_DATA_C2I_DVAL_LAUNCH_START_BIT = 44;
const uint32_t PB_SCONFIG_WE1_DATA_C2I_DVAL_LAUNCH_END_BIT = 45;
const uint32_t PB_SCONFIG_WE1_DATA_C2I_DREQ_LAUNCH_START_BIT = 46;
const uint32_t PB_SCONFIG_WE1_DATA_C2I_DREQ_LAUNCH_END_BIT = 47;
const uint32_t PB_SCONFIG_WE1_DATA_C2I_SPARE_MODE_BIT = 48;
const uint32_t PB_SCONFIG_WE1_RCMD_I2C_DONE_LAUNCH_BIT = 49;
const uint32_t PB_SCONFIG_WE1_RCMD_I2C_L3_NOT_USE_DCBFL_BIT = 50;
const uint32_t PB_SCONFIG_WE1_RCMD_I2C_PTY_RD_CAPTURE_START_BIT = 51;
const uint32_t PB_SCONFIG_WE1_RCMD_I2C_PTY_RD_CAPTURE_END_BIT = 52;
const uint32_t PB_SCONFIG_WE1_RCMD_I2C_PTY_INJECT_BIT = 53;
const uint32_t PB_SCONFIG_WE1_RCMD_I2C_SPARE_MODE_BIT = 54;
const uint32_t PB_SCONFIG_WE1_FP_I2C_DONE_LAUNCH_BIT = 55;
const uint32_t PB_SCONFIG_WE1_FP_I2C_SPARE_BIT = 56;
const uint32_t PB_SCONFIG_WE1_FP_I2C_PTY_RD_CAPTURE_START_BIT = 57;
const uint32_t PB_SCONFIG_WE1_FP_I2C_PTY_RD_CAPTURE_END_BIT = 58;
const uint32_t PB_SCONFIG_WE1_FP_I2C_SPARE_MODE_BIT = 59;
const uint32_t PB_SCONFIG_WE1_FP_C2I_DVAL_LAUNCH_START_BIT = 60;
const uint32_t PB_SCONFIG_WE1_FP_C2I_DVAL_LAUNCH_END_BIT = 61;
const uint32_t PB_SCONFIG_WE1_FP_C2I_HSHAKE_BIT = 62;
const uint32_t PB_SCONFIG_WE1_FP_C2I_SPARE_MODE_BIT = 63;

const bool    PB_SCONFIG_WE1_CMD_C2I_EARLY_REQ_MODE = false;           // off
const bool    PB_SCONFIG_WE1_CMD_C2I_SPARE = false;                    // spare
const bool    PB_SCONFIG_WE1_CMD_C2I_SPARE_MODE = false;               // spare
const uint8_t PB_SCONFIG_WE1_PRSP_C2I_DVAL_LAUNCH = 0x0;               // rc_p1
const bool    PB_SCONFIG_WE1_PRSP_C2I_HSHAKE = false;                  // off
const bool    PB_SCONFIG_WE1_PRSP_C2I_SPARE_MODE = false;              // spare
const bool    PB_SCONFIG_WE1_CRSP_I2C_SPARE_MODE = false;              // spare
const bool    PB_SCONFIG_WE1_DATA_I2C_SPARE_MODE = false;              // spare
const uint8_t PB_SCONFIG_WE1_DATA_C2I_DREQ_LAUNCH = 0x0;               // rc_d3
const bool    PB_SCONFIG_WE1_DATA_C2I_SPARE_MODE = false;              // off
const bool    PB_SCONFIG_WE1_RCMD_I2C_L3_NOT_USE_DCBFL = false;        // off
const bool    PB_SCONFIG_WE1_RCMD_I2C_PTY_INJECT = false;              // off
const bool    PB_SCONFIG_WE1_RCMD_I2C_SPARE_MODE = false;              // off
const bool    PB_SCONFIG_WE1_FP_I2C_DONE_LAUNCH = false;               // rc_p1
const bool    PB_SCONFIG_WE1_FP_I2C_SPARE = false;                     // spare
const uint8_t PB_SCONFIG_WE1_FP_I2C_PTY_RD_CAPTURE = 0x0;              // rc
const bool    PB_SCONFIG_WE1_FP_I2C_SPARE_MODE = false;                // off
const uint8_t PB_SCONFIG_WE1_FP_C2I_DVAL_LAUNCH = 0x0;                 // wc_p1
const bool    PB_SCONFIG_WE1_FP_C2I_HSHAKE = false;                    // off
const bool    PB_SCONFIG_WE1_FP_C2I_SPARE_MODE = false;                // spare


extern "C"
{

//------------------------------------------------------------------------------
// Function prototypes
//------------------------------------------------------------------------------


//------------------------------------------------------------------------------
// function: program fabric configuration register (hotplug, C/D set)
// parameters: i_smp => structure encapsulating SMP topology
//             i_op  => enumerated type representing SMP build phase
// returns: FAPI_RC_SUCCESS if register reads are successful and all shadow
//               registers are equivalent,
//          RC_PROC_BUILD_SMP_CORE_FLOOR_RATIO_ERR if cache/nest frequency
//              ratio is unsupported,
//          else error
//------------------------------------------------------------------------------
fapi::ReturnCode proc_build_smp_set_fbc_cd(
    proc_build_smp_system& i_smp);


} // extern "C"

#endif // _PROC_BUILD_SMP_FBC_CD_H_
OpenPOWER on IntegriCloud