hc
2024-03-25 edb30157bad0c0001c32b854271ace01d3b9a16a
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
/** @file
  Data format for Universal Data Structure
 
  @copyright
  Copyright 1999 - 2021 Intel Corporation. <BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef _SOCKET_IIO_VARIABLE_H_
#define _SOCKET_IIO_VARIABLE_H_
 
#include <UncoreCommonIncludes.h>
 
extern EFI_GUID gEfiSocketIioVariableGuid;
#define SOCKET_IIO_CONFIGURATION_NAME L"SocketIioConfig"
 
/*
  These vars are not used anywhere - it is left here for reference as this is used in comments below.
  Number must be used directly because of VFR compiler...
 
  #ifndef MAX_STACKS_PER_SOCKET_VAR
      #define MAX_STACKS_PER_SOCKET_VAR   6
      #define MAX_PORTS_PER_SOCKET_VAR    21
    #endif
  #endif
*/
 
#if MAX_SOCKET == 1
  #define TOTAL_VMD_STACKS_VAR        6             // MAX_STACKS_PER_SOCKET_VAR *  MAX_SOCKET
 
  #define TOTAL_NTB_PORTS_VAR         5             // NUMBER_NTB_PORTS_PER_SOCKET * MAX_SOCKET
  #define TOTAL_IOU_VAR               5             // MAX_IOU_PER_SOCKET * MAX_SOCKET
  #define TOTAL_VMD_PCH_ROOTPORTS_VAR 20            // MAX_PCH_ROOTPORTS * MAX_SOCKET
  #define TOTAL_RETIMERS_VAR          12            // MAX_SOCKET * MAX_STACKS_PER_SOCKET_VAR * MAX_RETIMERS_PER_STACK (ICX-SP related)
 
    #define TOTAL_NPK_VAR             1             // NUMBER_TRACE_HUB_PER_SOCKET * MAX_SOCKET
    #define TOTAL_PORTS_VAR           21            // MAX_PORTS_PER_SOCKET_VAR  *  MAX_SOCKET
    #define TOTAL_VMD_PORTS_VAR       24            // MAX_PORTS_PER_STACK * MAX_STACKS_PER_SOCKET_VAR * MAX_SOCKET
    #define TOTAL_DSA_VAR             1             // 1_DSA_PER_SOCKET * MAX_SOCKET
    #define TOTAL_IAX_VAR             1             // 1_IAX_PER_SOCKET * MAX_SOCKET
    #define TOTAL_CPM_VAR             1             // 1_CPM_PER_SOCKET * MAX_SOCKET
    #define TOTAL_HQM_VAR             1             // 1_HQM_PER_SOCKET * MAX_SOCKET
 
#endif
 
#if MAX_SOCKET == 4
  #define TOTAL_VMD_STACKS_VAR        24            // MAX_STACKS_PER_SOCKET_VAR *  MAX_SOCKET
  #define TOTAL_NTB_PORTS_VAR         20            // NUMBER_NTB_PORTS_PER_SOCKET * MAX_SOCKET
  #define TOTAL_IOU_VAR               20            // MAX_IOU_PER_SOCKET * MAX_SOCKET
  #define TOTAL_VMD_PCH_ROOTPORTS_VAR 80            // MAX_PCH_ROOTPORTS * MAX_SOCKET
  #define TOTAL_RETIMERS_VAR          48            // MAX_SOCKET * MAX_STACKS_PER_SOCKET_VAR * MAX_RETIMERS_PER_STACK (ICX-SP related)
    #define TOTAL_NPK_VAR             4             // NUMBER_TRACE_HUB_PER_SOCKET * MAX_SOCKET
    #define TOTAL_PORTS_VAR           84            // MAX_PORTS_PER_SOCKET_VAR  *  MAX_SOCKET
    #define TOTAL_VMD_PORTS_VAR       96            // MAX_PORTS_PER_STACK * MAX_STACKS_PER_SOCKET_VAR * MAX_SOCKET
    #define TOTAL_DSA_VAR             4             // 1_DSA_PER_SOCKET * MAX_SOCKET
    #define TOTAL_IAX_VAR             4             // 1_IAX_PER_SOCKET * MAX_SOCKET
    #define TOTAL_CPM_VAR             4             // 1_CPM_PER_SOCKET * MAX_SOCKET
    #define TOTAL_HQM_VAR             4             // 1_HQM_PER_SOCKET * MAX_SOCKET
#endif
 
#if MAX_SOCKET == 2
  #define TOTAL_VMD_STACKS_VAR        12            // MAX_STACKS_PER_SOCKET_VAR *  MAX_SOCKET
  #define TOTAL_NTB_PORTS_VAR         10            // NUMBER_NTB_PORTS_PER_SOCKET * MAX_SOCKET
  #define TOTAL_IOU_VAR               10            // MAX_IOU_PER_SOCKET * MAX_SOCKET
  #define TOTAL_VMD_PCH_ROOTPORTS_VAR 40            // MAX_PCH_ROOTPORTS * MAX_SOCKET
  #define TOTAL_RETIMERS_VAR          24            // MAX_SOCKET * MAX_STACKS_PER_SOCKET_VAR * MAX_RETIMERS_PER_STACK (ICX-SP related)
    #define TOTAL_NPK_VAR             2             // NUMBER_TRACE_HUB_PER_SOCKET * MAX_SOCKET
    #define TOTAL_PORTS_VAR           42            // MAX_PORTS_PER_SOCKET_VAR  *  MAX_SOCKET
    #define TOTAL_VMD_PORTS_VAR       48            // MAX_PORTS_PER_STACK * MAX_STACKS_PER_SOCKET_VAR * MAX_SOCKET
    #define TOTAL_DSA_VAR             2             // 1_DSA_PER_SOCKET * MAX_SOCKET
    #define TOTAL_IAX_VAR             2             // 1_IAX_PER_SOCKET * MAX_SOCKET
    #define TOTAL_CPM_VAR             2             // 1_CPM_PER_SOCKET * MAX_SOCKET
    #define TOTAL_HQM_VAR             2             // 1_HQM_PER_SOCKET * MAX_SOCKET
#endif
 
#if MAX_SOCKET > 4
  #define TOTAL_VMD_PCH_ROOTPORTS_VAR 160           // MAX_PCH_ROOTPORTS * MAX_SOCKET
  #define TOTAL_NTB_PORTS_VAR         40            // NUMBER_NTB_PORTS_PER_SOCKET * MAX_SOCKET
  #define TOTAL_IOU_VAR               40            // MAX_IOU_PER_SOCKET * MAX_SOCKET
  #define TOTAL_VMD_STACKS_VAR        48            // MAX_STACKS_PER_SOCKET_VAR *  MAX_SOCKET
  #define TOTAL_RETIMERS_VAR          96            // MAX_SOCKET * MAX_STACKS_PER_SOCKET_VAR * MAX_RETIMERS_PER_STACK (ICX-SP related)
    #define TOTAL_NPK_VAR             8             // NUMBER_TRACE_HUB_PER_SOCKET * MAX_SOCKET
    #define TOTAL_PORTS_VAR           168           // MAX_PORTS_PER_SOCKET_VAR  *  MAX_SOCKET
    #define TOTAL_VMD_PORTS_VAR       192           // MAX_PORTS_PER_STACK * MAX_STACKS_PER_SOCKET_VAR * MAX_SOCKET
    #define TOTAL_DSA_VAR             MAX_SOCKET    // 1_DSA_PER_SOCKET * MAX_SOCKET
    #define TOTAL_IAX_VAR             MAX_SOCKET    // 1_IAX_PER_SOCKET * MAX_SOCKET
    #define TOTAL_CPM_VAR             MAX_SOCKET    // 1_CPM_PER_SOCKET * MAX_SOCKET
    #define TOTAL_HQM_VAR             MAX_SOCKET    // 1_HQM_PER_SOCKET * MAX_SOCKET
#endif
 
#pragma pack(1)
 
typedef struct {
 
/**
==================================================================================================
==================================      VTd Setup Options       ==================================
==================================================================================================
**/
    UINT8    VTdSupport;
    UINT8    DmaCtrlOptIn;
    UINT8    InterruptRemap;
    UINT8    PostedInterrupt;
    UINT8    ATS;
    UINT8    CoherencySupport;
/**
==================================================================================================
==================================      PCIE Setup Options       ==================================
==================================================================================================
**/
    // Vars used to configure (disable/greyout) parts of setup menu
    UINT8   IioPresent[MAX_SOCKET];
    UINT8   IioStackPresent[TOTAL_IIO_STACKS];  // based on sysInfo data
    UINT8   PchPresentOnStack[MAX_SOCKET];      // stub for multiPCH
    UINT8   RetimerPresent[TOTAL_RETIMERS_VAR]; // retimer detected in stack
 
    UINT8   VtdAcsWa;
 
    // Platform data needs to update these PCI Configuration settings
    UINT8    PcieHotPlugOnPort[TOTAL_PORTS_VAR];
    UINT8    SLOTHPSUP[TOTAL_PORTS_VAR];        // Hot Plug surprise supported - Slot Capabilities (D0-10 / F0 / R0xA4 / B5)
 
    // General PCIE Configuration
    UINT8   ConfigIOU0[MAX_SOCKET];
    UINT8   ConfigIOU1[MAX_SOCKET];
    UINT8   ConfigIOU2[MAX_SOCKET];
    UINT8   ConfigIOU3[MAX_SOCKET];
    UINT8   ConfigIOU4[MAX_SOCKET];
    UINT8   ConfigIOU5[MAX_SOCKET];
    UINT8   ConfigIOU6[MAX_SOCKET];
    UINT8   ConfigIOU7[MAX_SOCKET];
    UINT8   PcieSubSystemMode[TOTAL_IOU_VAR];
    UINT8   CompletionTimeoutGlobal;
    UINT8   CompletionTimeoutGlobalValue;
    UINT8   CompletionTimeout[MAX_SOCKET];  // On Setup
    UINT8   CompletionTimeoutValue[MAX_SOCKET]; // On Setup
    UINT8   CoherentReadPart;
    UINT8   CoherentReadFull;
    UINT8   PcieGlobalAspm;
    UINT8   StopAndScream;
    UINT8   SnoopResponseHoldOff;
    //
    // PCIE capability
    //
    UINT8   PCIe_LTR;
    UINT8   PcieExtendedTagField;
    UINT8   Pcie10bitTag;
    UINT8   PCIe_AtomicOpReq;
    UINT8   PcieMaxReadRequestSize;
    UINT8   PciePtm;
 
 
    UINT8   RpCorrectableErrorEsc[MAX_SOCKET];           //on Setup
    UINT8   RpUncorrectableNonFatalErrorEsc[MAX_SOCKET]; //on Setup
    UINT8   RpUncorrectableFatalErrorEsc[MAX_SOCKET];    //on Setup
 
    // mixc PCIE configuration
    UINT8    PcieLinkDis[TOTAL_PORTS_VAR];            // On Setup
    UINT8    PcieAspm[TOTAL_PORTS_VAR];               // On Setup
    UINT8    PcieCommonClock[TOTAL_PORTS_VAR];        // On Setup
    UINT8    PcieMaxPayload[TOTAL_PORTS_VAR];         // On Setup PRD
    UINT8    PcieDState[TOTAL_PORTS_VAR];             // On Setup
    UINT8    PcieL1Latency[TOTAL_PORTS_VAR];          // On Setup
    UINT8    MsiEn[TOTAL_PORTS_VAR];                  // On Setup
    UINT8    ExtendedSync[TOTAL_PORTS_VAR];           // On Setup
    UINT8    PciePortEnable[TOTAL_PORTS_VAR];        // On Setup
    UINT8    IODC[TOTAL_PORTS_VAR];                   // On Setup
    UINT8    MctpEn[TOTAL_PORTS_VAR];                 // On Setup
 
    //
    // PCIE setup options for Link Control2
    //
    UINT8    PciePortLinkSpeed[TOTAL_PORTS_VAR];    //on Setup
    UINT8    ComplianceMode[TOTAL_PORTS_VAR];       // On Setup  PRD
    UINT8    PciePortLinkMaxWidth[TOTAL_PORTS_VAR]; // On Setup
    UINT8    DeEmphasis[TOTAL_PORTS_VAR];           // On Setup
 
    //
    // PCIE setup options for MISCCTRLSTS
    //
    UINT8    EOI[TOTAL_PORTS_VAR];              // On Setup
    UINT8    MSIFATEN[TOTAL_PORTS_VAR];         //On Setup.
    UINT8    MSINFATEN[TOTAL_PORTS_VAR];        //On Setup.
    UINT8    MSICOREN[TOTAL_PORTS_VAR];         //On Setup.
    UINT8    ACPIPMEn[TOTAL_PORTS_VAR];         //On Setup
    UINT8    P2PRdDis[TOTAL_PORTS_VAR];         //On Setup Peer 2 peer
    UINT8    DisPMETOAck[TOTAL_PORTS_VAR];      //On Setup
    UINT8    ACPIHP[TOTAL_PORTS_VAR];           //On Setup
    UINT8    ACPIPM[TOTAL_PORTS_VAR];           //On Setup
    UINT8    SRIS[TOTAL_PORTS_VAR];             //On Setup
    UINT8    TXEQ[TOTAL_PORTS_VAR];             //On Setup
    UINT8    SERRE[TOTAL_PORTS_VAR];            //On Setup
    //
    // PCIE RAS (Errors)
    //
 
    UINT8   PcieUnsupportedRequests[TOTAL_PORTS_VAR];   // Unsupported Request per-port option
 
    //
    // PCIE  Link Training Ctrl
    //
 
 
    //
    // North Peak (NPK)
    //
 
    UINT8   NorthTraceHubMode[TOTAL_NPK_VAR];
    UINT32  NorthTraceHubMemReg0Size[TOTAL_NPK_VAR];
    UINT32  NorthTraceHubMemReg1Size[TOTAL_NPK_VAR];
 
    //
    // Sierra Peak (SPK)
    //
    UINT8   SierraPeakMemBufferSize[MAX_SOCKET];
 
    //
    // MMIO poison enabling per stack
    //
    UINT8   PoisonMmioReadEn[TOTAL_IIO_STACKS]; // on setup
/**
==================================================================================================
==================================    Crystal Beach 3 Setup Options    ===========================
==================================================================================================
**/
      UINT8                 Cb3DmaEn[TOTAL_CB3_DEVICES];        // on setup
      UINT8                 Cb3NoSnoopEn[TOTAL_CB3_DEVICES];    // on setup
      UINT8                 DisableTPH;
      UINT8                 PrioritizeTPH;
      UINT8                 CbRelaxedOrdering;
      UINT8                 CbDmaMultiCastEnable;               // CbDmaMultiCastEnable test enable
 
      UINT8                 DsaEn[TOTAL_DSA_VAR];               // on setup
      UINT8                 IaxEn[TOTAL_IAX_VAR];               // on setup
      UINT8                 CpmEn[TOTAL_CPM_VAR];               // on setup
      UINT8                 HqmEn[TOTAL_HQM_VAR];               // on setup
 
/**
==================================================================================================
==================================    MISC IOH Setup Options            ==========================
==================================================================================================
**/
 
    // The following are for hiding each individual device and function
    UINT8   PEXPHIDE[TOTAL_PORTS_VAR];            // Hide any of the DMI or PCIE devices - SKT 0,1,2,3; Device 0-10 PRD
    UINT8   DevPresIoApicIio[TOTAL_IIO_STACKS];
                                                     // Hide IOAPIC Device 5, Function 4
    UINT8   PCUF6Hide;                            // Hide Device PCU Device 30, Function 6
    UINT8   EN1K;                                 // Enable/Disable 1K granularity of IO for P2P bridges 0:20:0:98 bit 2
    UINT8   DualCvIoFlow;                         // Dual CV IO Flow
    UINT8   Xppdef;
    UINT8   Pci64BitResourceAllocation;
    UINT8   PcieBiosTrainEnable;                  // Used as a work around for A0 PCIe
    UINT8   MultiCastEnable;                      // MultiCastEnable test enable
    UINT8   McastBaseAddrRegion;                  // McastBaseAddrRegion
    UINT8   McastIndexPosition;                   // McastIndexPosition
    UINT8   McastNumGroup;                        // McastNumGroup
 
 
    UINT8   HidePEXPMenu[TOTAL_PORTS_VAR];          // to suppress /display the PCIe port menu
 
/**
==================================================================================================
==================================    NTB Related Setup Options ==========================
==================================================================================================
**/
    UINT8   NtbPpd[TOTAL_NTB_PORTS_VAR];                   //on setup option
    UINT8   NtbBarSizeOverride[TOTAL_NTB_PORTS_VAR];       //on setup option
    UINT8   NtbSplitBar[TOTAL_NTB_PORTS_VAR];             //on setup option
    UINT8   NtbBarSizeImBar1[TOTAL_NTB_PORTS_VAR];         //on setup option
    UINT8   NtbBarSizeImBar2[TOTAL_NTB_PORTS_VAR];         //on setup option
    UINT8   NtbBarSizeImBar2_0[TOTAL_NTB_PORTS_VAR];          //on setup option
    UINT8   NtbBarSizeImBar2_1[TOTAL_NTB_PORTS_VAR];          //on setup option
    UINT8   NtbBarSizeEmBarSZ1[TOTAL_NTB_PORTS_VAR];         //on setup option
    UINT8   NtbBarSizeEmBarSZ2[TOTAL_NTB_PORTS_VAR];         //on setup option
    UINT8   NtbBarSizeEmBarSZ2_0[TOTAL_NTB_PORTS_VAR];          //on setup option
    UINT8   NtbBarSizeEmBarSZ2_1[TOTAL_NTB_PORTS_VAR];          //on setup option
    UINT8   NtbXlinkCtlOverride[TOTAL_NTB_PORTS_VAR];      //on setup option
 
    UINT8   NtbLinkBiosTrainEn;
/**
==================================================================================================
==================================    VMD Related Setup Options ==========================
==================================================================================================
**/
  UINT8   VMDEnabled[TOTAL_VMD_STACKS_VAR];                 // indicates if VMD is enabled on given stack
  UINT8   VMDPortEnable[TOTAL_VMD_PORTS_VAR];               // indicated if VMD is enabled on given port is enabled
  UINT8   VMDPchPortAllowed[TOTAL_VMD_PCH_ROOTPORTS_VAR];   // indicates if VMD CAN BE enabled on given PCH Rp
  UINT8   VMDPchPortEnable[TOTAL_VMD_PCH_ROOTPORTS_VAR];    // indicates if VMD IS enabled on given PCH Rp
  UINT8   VMDHotPlugEnable[TOTAL_VMD_STACKS_VAR];
  UINT8   VMDCfgBarSz[TOTAL_VMD_STACKS_VAR];
  UINT8   VMDCfgBarAttr[TOTAL_VMD_STACKS_VAR];
  UINT8   VMDMemBarSz1[TOTAL_VMD_STACKS_VAR];
  UINT8   VMDMemBar1Attr[TOTAL_VMD_STACKS_VAR];
  UINT8   VMDMemBarSz2[TOTAL_VMD_STACKS_VAR];
  UINT8   VMDMemBar2Attr[TOTAL_VMD_STACKS_VAR];
  UINT8   VMDDirectAssign[TOTAL_VMD_STACKS_VAR];
 
  /**
  ==================================================================================================
  ==================================    PCIe SSD Related Setup Options ==========================
  ==================================================================================================
  **/
 
    UINT8   PcieAICEnabled[TOTAL_VMD_STACKS_VAR];
    UINT8   PcieAICPortEnable[TOTAL_PORTS_VAR];
    UINT8   PcieAICHotPlugEnable[TOTAL_VMD_STACKS_VAR];
 
 
    /**
    ==================================================================================================
    ==================================    Retimers Related Setup Options ==========================
    ==================================================================================================
    **/
 
    UINT32   RetimerGlParmReg0Override[TOTAL_RETIMERS_VAR];
    UINT32   RetimerPseudoPort0Reg2Override[TOTAL_RETIMERS_VAR];
    UINT32   RetimerPseudoPort1Reg2Override[TOTAL_RETIMERS_VAR];
 
  /**
  ==================================================================================================
  ========================   PCI-E Port Clock Gating Related Setup Options  ========================
  ==================================================================================================
  **/
  UINT8   PciePortClkGateEnable[TOTAL_PORTS_VAR];              // Indicates Clock gating for this PCIe port is enabled or not
  /**
  ==================================================================================================
  ==================================    PCIe Global Related Setup Options ==========================
  ==================================================================================================
  **/
  UINT8   NoSnoopRdCfg;                             //on Setup
  UINT8   NoSnoopWrCfg;                             //on Setup
  UINT8   MaxReadCompCombSize;                      //on Setup
  UINT8   ProblematicPort;                          //on Setup
  UINT8   DmiAllocatingFlow;                        //on Setup
  UINT8   PcieAllocatingFlow;                       //on Setup
  UINT8   PcieHotPlugEnable;                        //on Setup
  UINT8   PcieAcpiHotPlugEnable;                    //on Setup
  UINT8   PcieLowLatencyRetimersEnabled;
  UINT8   HaltOnDmiDegraded;                        //on Setup
  UINT8   RxClockWA;
  UINT8   GlobalPme2AckTOCtrl;                      //on Setup
  UINT8   PcieSlotOprom1;                           //On Setup
  UINT8   PcieSlotOprom2;                           //On Setup
  UINT8   PcieSlotOprom3;                           //On Setup
  UINT8   PcieSlotOprom4;                           //On Setup
  UINT8   PcieSlotOprom5;                           //On Setup
  UINT8   PcieSlotOprom6;                           //On Setup
  UINT8   PcieSlotOprom7;                           //On Setup
  UINT8   PcieSlotOprom8;                           //On Setup
  UINT8   PcieSlotItemCtrl;                         //On Setup
  UINT8   PcieRelaxedOrdering;                      //On Setup
  UINT8   PciePhyTestMode;                          //On setup
  UINT8   PcieEnqCmdSupport;                        //On setup
  UINT16  DelayBeforePCIeLinkTraining;              //On Setup
/**
==================================================================================================
==================================    Reserved Setup Options ==========================
==================================================================================================
**/
  UINT8  ReservedS9;
  UINT8  ReservedS10;
  UINT8  ReservedS11;                // On Setup
  UINT8  ReservedS12;            // On Setup
  UINT8  ReservedS13;           // On Setup
  UINT8  ReservedS14;            // On Setup
  UINT8  ReservedS15;               // On Setup
  UINT8  ReservedS16;                  // On Setup
  UINT8  ReservedS17;            // On Setup
  UINT8  ReservedS18;        // On Setup
  UINT8  ReservedS19;       // On Setup
  UINT8  ReservedS20;          // On Setup
  UINT32 ReservedS21[MAX_DEVHIDE_REGS_PER_SYSTEM]; // On Setup
  UINT8  ReservedS22[TOTAL_PORTS_VAR];                   // On Setup
 
  UINT8  ReservedS23[TOTAL_PORTS_VAR];          //On Setup
  UINT8  ReservedS24[TOTAL_PORTS_VAR];              //On Setup
  UINT8  ReservedS25[TOTAL_PORTS_VAR];   //On Setup
  UINT8  ReservedS26[TOTAL_PORTS_VAR];      //On Setup
  UINT8  ReservedS27[TOTAL_PORTS_VAR];  //On Setup
  UINT8  ReservedS28[TOTAL_PORTS_VAR];   //On Setup
  UINT8  ReservedS29[TOTAL_PORTS_VAR];      //On Setup
  UINT8  ReservedS30[TOTAL_PORTS_VAR];  //On Setup
 
  UINT8  ReservedS31[TOTAL_PORTS_VAR];          //On Setup
  UINT8  ReservedS32[TOTAL_PORTS_VAR];              //On Setup
  UINT8  ReservedS33[TOTAL_PORTS_VAR];   //On Setup
  UINT8  ReservedS34[TOTAL_PORTS_VAR];      //On Setup
  UINT8  ReservedS35[TOTAL_PORTS_VAR];  //On Setup
  UINT8  ReservedS36[TOTAL_PORTS_VAR];   //On Setup
  UINT8  ReservedS37[TOTAL_PORTS_VAR];      //On Setup
  UINT8  ReservedS38[TOTAL_PORTS_VAR];  //On Setup
 
  UINT8  ReservedS39[TOTAL_PORTS_VAR];                //On Setup
  UINT8  ReservedS40[TOTAL_PORTS_VAR];                  //On Setup
  UINT8  ReservedS41[TOTAL_PORTS_VAR];                //On Setup
  UINT8  ReservedS42[TOTAL_PORTS_VAR];            //On Setup
  UINT8  ReservedS43[TOTAL_PORTS_VAR];            //On Setup
 
 
  UINT8  ReservedS44[TOTAL_PORTS_VAR];
  UINT8  ReservedS45[TOTAL_PORTS_VAR];         //On Setup
  UINT8  ReservedS46;                       //On Setup
 
  UINT8  ReservedS47;                               //On Setup
 
/**
==================================================================================================
======================    IIO Global Performance Tuner Related Setup Options =====================
==================================================================================================
**/
  UINT8  PerformanceTuningMode;
 
  /**
  ==================================================================================================
  ======================    PCI-E Data Link Feature Exchange Enable  ===============================
  ==================================================================================================
  **/
  UINT8  PcieDataLinkFeatureExchangeEnable[TOTAL_PORTS_VAR];    //On Setup
  /**
  ==================================================================================================
  ======================       Variables added post Beta             ===============================
  ==================================================================================================
  **/
  UINT8    PcieTxRxDetPoll[TOTAL_PORTS_VAR];
  UINT8    EcrcGenEn[TOTAL_PORTS_VAR];        //On Setup
  UINT8    EcrcChkEn[TOTAL_PORTS_VAR];        //On Setup
  UINT8    ControlIommu;
  UINT32   VtdDisabledBitmask[MAX_SOCKET];
  UINT8    X2ApicOptOut;
  UINT8    SkipRetimersDetection;
 
  UINT8    VtdPciAcsCtlWaEn;          // Enables override of ACSCTL on PCIe root ports for VTd
  UINT8    VtdPciAcsCtlBit0;
  UINT8    VtdPciAcsCtlBit1;
  UINT8    VtdPciAcsCtlBit2;
  UINT8    VtdPciAcsCtlBit3;
  UINT8    VtdPciAcsCtlBit4;
  UINT8    AltAttenTable[TOTAL_PORTS_VAR];    //On Setup
} SOCKET_IIO_CONFIGURATION;
#pragma pack()
 
#endif // _SOCKET_IIO_VARIABLE_H_