hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
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
/** @file
 
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
 
**/
 
#ifndef   __SOCKET_MEMORY_CONFIG_DATA_H__
#define   __SOCKET_MEMORY_CONFIG_DATA_H__
 
 
#include <UncoreCommonIncludes.h>
#include "SocketConfiguration.h"
#include <MemDefaults.h>
 
extern EFI_GUID gEfiSocketMemoryVariableGuid;
#define SOCKET_MEMORY_CONFIGURATION_NAME L"SocketMemoryConfig"
 
#pragma pack(1)
typedef struct {
    UINT8                   RtoMaxNodeInterleave;
    UINT8                   MemoryHotPlugBase;
    UINT8                   MemoryHotPlugLen;
    UINT8                   Srat;
    UINT8                   SratMemoryHotPlug;
    UINT8                   SratCpuHotPlug;
    UINT8                   PagePolicy;
    UINT8                   PatrolScrub;
    UINT8                   PatrolScrubDuration;
    UINT8                   PatrolScrubAddrMode;
    UINT8                   partialmirror;
    UINT8                   partialmirrorsad0;
    UINT8                   PartialMirrorUefi;
    UINT16                  PartialMirrorUefiPercent;
    UINT16                  partialmirrorsize[MAX_PARTIAL_MIRROR]; // Array of sizes of different partial mirrors
    UINT8                   DemandScrubMode;
    UINT8                   SddcPlusOneEn;
    UINT16                  spareErrTh;
    UINT8                   DieSparing;
    UINT8                   Reserved1;
    UINT8                   ADDDCEn;
    UINT8                   AdddcErrInjEn;
    UINT8                   leakyBktLo;
    UINT8                   leakyBktHi;
    UINT8                   DutyCycleTraining;
    UINT8                   refreshMode;
    UINT8                   dllResetTestLoops;
    UINT8                   DdrMemoryType;
    UINT8                   HwMemTest;
    UINT16                  MemTestLoops;
    UINT8                   EccSupport;
    UINT8                   SocketInterleaveBelow4GB;
    UINT8                   Reserved2;
    UINT8                   Reserved3;
    UINT8                   Reserved4[16];
    UINT8                   volMemMode;
    UINT8                   Reserved5;
    UINT8                   memInterleaveGran1LM;
    UINT8                   RtoMemInterleaveGranPMemUMA;
    UINT8                   RtoCfgMask2LM;
    UINT8                   ImcInterleaving;
    UINT8                   ChannelInterleaving;
    UINT8                   RankInterleaving;
    UINT8                   CkeProgramming;
    UINT8                   Reserved6;
    UINT8                   PkgcSrefEn;
    UINT8                   CkeIdleTimer;
    UINT8                   ApdEn;
    UINT8                   PpdEn;
    UINT8                   DdrtCkeEn;
    UINT8                   OppSrefEn;
    UINT8                   DdrtSrefEn;
    UINT8                   MdllOffEn;
    UINT8                   CkMode;
    UINT8                   MemTestOnFastBoot;
    UINT8                   AttemptFastBoot;
    UINT8                   AttemptFastBootCold;
    UINT8                   bdatEn;
    UINT8                   ScrambleEnDDRT;
    UINT8                   ScrambleEn;  // for ddr4
    UINT8                   allowCorrectableError;
    UINT16                  ScrambleSeedLow;
    UINT16                  ScrambleSeedHigh;
    UINT8                   CustomRefreshRateEn;
    UINT8                   CustomRefreshRate;
    UINT8                   mcBgfThreshold;
    UINT8                   readVrefCenter;
    UINT8                   wrVrefCenter;
    UINT8                   haltOnMemErr;
    UINT8                   thermalthrottlingsupport;
    UINT8                   thermalmemtrip;
    UINT8                   DimmTempStatValue;
    UINT8                   XMPProfilesSup;
    UINT8                   XMPMode;
    UINT8                   tCAS;
    UINT8                   tRP;
    UINT8                   tRCD;
    UINT8                   tRAS;
    UINT8                   tWR;
    UINT16                  tRFC;
    UINT8                   tRRD;
    UINT8                   tRTP;
    UINT8                   tWTR;
    UINT8                   tFAW;
    UINT8                   tCWL;
    UINT8                   tRC;
    UINT8                   commandTiming;
    UINT16                  tREFI;
    UINT8                   DdrFreqLimit;
    UINT16                  Vdd;
    UINT8                   lrdimmModuleDelay;
    UINT32                  rmtPatternLength;
    UINT32                  rmtPatternLengthExt;
    UINT8                   check_pm_sts;
    UINT8                   check_platform_detect;
    UINT8                   MemPwrSave;
    UINT8                   ElectricalThrottlingMode;
    UINT8                   MultiThreaded;
    UINT8                   promoteMrcWarnings;
    UINT8                   promoteWarnings;
    UINT8                   oppReadInWmm;
    UINT16                  normOppInterval;
    UINT8                   sck0ch0;
    UINT8                   sck0ch1;
    UINT8                   sck0ch2;
    UINT8                   sck0ch3;
    UINT8                   sck0ch4;
    UINT8                   sck0ch5;
    UINT8                   sck1ch0;
    UINT8                   sck1ch1;
    UINT8                   sck1ch2;
    UINT8                   sck1ch3;
    UINT8                   sck1ch4;
    UINT8                   sck1ch5;
    UINT8                   sck2ch0;
    UINT8                   sck2ch1;
    UINT8                   sck2ch2;
    UINT8                   sck2ch3;
    UINT8                   sck2ch4;
    UINT8                   sck2ch5;
    UINT8                   sck3ch0;
    UINT8                   sck3ch1;
    UINT8                   sck3ch2;
    UINT8                   sck3ch3;
    UINT8                   sck3ch4;
    UINT8                   sck3ch5;
    UINT8                   mdllSden;
    UINT8                   memhotSupport;
    UINT8                   MemhotOutputOnlyOpt;
    UINT8                   ADREn;
    UINT8                   RankMargin;
    UINT8                   EnableBacksideRMT;
    UINT8                   EnableBacksideCMDRMT;
    UINT8                   Reserved_0;
    UINT8                   rankMaskEn;
    UINT8                   RankSparing;
    UINT8                   multiSparingRanks;
    UINT8                   caParity;
    UINT8                   dimmIsolation;
    UINT8                   smbSpeed;
    UINT8                   EnforcePOR;
    UINT8                   pda;
    UINT8                   turnaroundOpt;
    UINT8                   dramrxeqEnable;
    UINT8                   rxmodctleEnable;
    UINT8                   oneRankTimingMode;
    UINT8                   eyeDiagram;
 
    UINT8                   Reserved9;
    UINT8                   Reserved10;
    UINT8                   Reserved11;
    UINT8                   Reserved12;
    UINT8                   Reserved13;
    UINT8                   Reserved14;
    UINT8                   Reserved15;
    UINT8                   Reserved16;
    UINT8                   Reserved17;
    UINT8                   Reserved18;
    UINT8                   Reserved19;
    UINT8                   Reserved20;
    UINT8                   Reserved21;
    UINT8                   Reserved22;
    UINT8                   Reserved23;
    UINT8                   Reserved24;
    UINT8                   Reserved25;
    UINT8                   Reserved26;
    UINT8                   Reserved27;
    UINT8                   Reserved28;
    UINT8                   DramRaplInit;
    UINT8                   BwLimitTfOvrd;
    UINT8                   perbitmargin;
    UINT8                   DramRaplExtendedRange;
    UINT8                   CmsEnableDramPm;
    UINT8                   logParsing;
    UINT8                   WritePreamble;
    UINT8                   ReadPreamble;
    UINT8                   WrCRC;
 
    UINT8                   Reserved_1;
    UINT8                   Reserved_2;
    UINT8                   Reserved_3;
    UINT8                   Reserved_4;
    UINT8                   Reserved_5;
    UINT8                   Reserved_6;
    UINT8                   Reserved_7;
    UINT8                   Reserved_8;
 
    UINT8                   RmtOnColdFastBoot;
    UINT8                   mrcRepeatTest;
    UINT8                   RtoLowMemChannel;
    UINT8                   RtoHighAddressStartBitPosition;
    UINT8                   staggerref;
    UINT32                  memFlows;
    UINT32                  memFlowsExt;
    UINT8                   Blockgnt2cmd1cyc;
    UINT8                   Disddrtopprd;
    UINT8                   Reserved8;
    UINT8                   setSecureEraseAllDIMMs;
    UINT8                   setSecureEraseSktCh[MAX_AEP_DIMM_SETUP];
    UINT8                   SetSecureEraseSktChHob[MAX_AEP_DIMM_SETUP];
    //
    // PPR related
    //
    UINT8                   pprType;
    UINT8                   pprErrInjTest;
    // CR QoS Configuration Profiles
    UINT8                   FastGoConfig;
    UINT8                   Reserved_11;
    UINT8                   Reserved_12;
    UINT8                   Reserved_13;
    UINT8                   ADRDataSaveMode;
    UINT8                   eraseArmNVDIMMS;
    UINT8                   restoreNVDIMMS;
    UINT8                   interNVDIMMS;
    UINT8                   imcBclk;
    UINT8                   spdCrcCheck;
    UINT8                   TrainingResultOffsetFunctionEnable;
    UINT16                  OffsetTxDq;
    UINT16                  OffsetRxDq;
    UINT16                  OffsetTxVref;
    UINT16                  OffsetRxVref;
    UINT16                  OffsetCmdAll;
    UINT16                  OffsetCmdVref;
    UINT16                  OffsetCtlAll;
    UINT8                   PmemCaching;
    UINT8                   tRRD_L;
    UINT8                   turnaroundOptDdrt;
    UINT8                   NvmdimmPerfConfig; // NVMDIMM Performance related
    UINT8                   AepOnSystem;
    UINT8                   NgnEccExitCorr;
    UINT8                   NgnArsPublish;
    UINT16                  NgnAveragePower;
    UINT8                   NgnThrottleTemp;
    UINT8                   AppDirectMemoryHole;
    UINT8                   LatchSystemShutdownState;
    UINT8                   EliminateDirectoryInFarMemory;
    UINT8                   NvmdimmPowerCyclePolicy;
    UINT8                   ShortStroke2GB;
    UINT8                   Reserved29;
    UINT8                   Reserved30;
    UINT8                   Reserved31;
    UINT8                   NvmQos;
    UINT8                   ExtendedType17;
    UINT8                   Force1ChWayFM;
    UINT8                   DisableDirForAppDirect;
    UINT8                   NvmMediaStatusException;
    UINT8                   sck4ch0;
    UINT8                   sck4ch1;
    UINT8                   sck4ch2;
    UINT8                   sck4ch3;
    UINT8                   sck4ch4;
    UINT8                   sck4ch5;
    UINT8                   sck5ch0;
    UINT8                   sck5ch1;
    UINT8                   sck5ch2;
    UINT8                   sck5ch3;
    UINT8                   sck5ch4;
    UINT8                   sck5ch5;
    UINT8                   sck6ch0;
    UINT8                   sck6ch1;
    UINT8                   sck6ch2;
    UINT8                   sck6ch3;
    UINT8                   sck6ch4;
    UINT8                   sck6ch5;
    UINT8                   sck7ch0;
    UINT8                   sck7ch1;
    UINT8                   sck7ch2;
    UINT8                   sck7ch3;
    UINT8                   sck7ch4;
    UINT8                   sck7ch5;
    UINT8                   Reserved32;
    UINT8                   EadrSupport;
    UINT8                   Reserved33;
    UINT8                   FactoryResetClear;
    UINT8                   LsxImplementation;
    UINT32                  NvdimmSmbusMaxAccessTime;
    UINT32                  NvdimmSmbusReleaseDelay;
    UINT8                   Reserved34;
    UINT8                   Reserved35;
    UINT8                   TrfcPerfEnable;
    UINT8                   PanicWm;
    UINT32                  AdvMemTestOptions;
    UINT8                   AdvMemTestResetList;
    UINT8                   AdvMemTestCondition;
    UINT16                  AdvMemTestCondVdd;
    UINT8                   AdvMemTestCondTwr;
    UINT16                  AdvMemTestCondTrefi;
    UINT32                  AdvMemTestCondPause;
    UINT16                  OffsetRecEn;
    UINT8                   RcvenAve;
    UINT8                   allowCorrectableMemTestError;
    UINT8                   AdrPatrolScrubDisable;
    UINT8                   PatrolErrorDowngradeEn;
    UINT8                   BankXorEnable;
    UINT8                   AdvMemTestRetryAfterRepair;
} SOCKET_MEMORY_CONFIGURATION;
 
#pragma pack()
 
#endif