blob: ef0b5a300a510e814c8e5be572038b90a648d7e7 (
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
|
/** @file
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#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 DieSparingAggressivenessLevel;
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 RtoDimmManagement;
UINT8 RtoPartitionDDRTDimm;
UINT8 RtoPartitionRatio[16]; //[MAX_SOCKET * MAX_IMC] = [8]
UINT8 volMemMode;
UINT8 RtoPerMemMode;
UINT8 memInterleaveGran1LM;
UINT8 RtoMemInterleaveGranPMemUMA;
UINT8 RtoCfgMask2LM;
UINT8 ImcInterleaving;
UINT8 ChannelInterleaving;
UINT8 RankInterleaving;
UINT8 CkeProgramming;
UINT8 SrefProgramming;
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 oneRankTimingMode;
UINT8 eyeDiagram;
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 setTDPDIMMPower;
UINT8 setSecureEraseAllDIMMs;
UINT8 setSecureEraseSktCh[48];
//
// PPR related
//
UINT8 pprType;
UINT8 pprErrInjTest;
// CR QoS Configuration Profiles
UINT8 crQosConfig;
UINT8 Reserved_11;
UINT8 Reserved_12;
UINT8 Reserved_13;
UINT8 imcBclk;
UINT8 spdCrcCheck;
} SOCKET_MEMORY_CONFIGURATION;
#pragma pack()
#endif
|