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
/** @file
  Data format for Universal Data Structure
 
  @copyright
  Copyright 1999 - 2021 Intel Corporation. <BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef   __SOCKET_PROCESSORCORE_CONFIGURATION_DATA_H__
#define   __SOCKET_PROCESSORCORE_CONFIGURATION_DATA_H__
 
#include <UncoreCommonIncludes.h>
 
extern EFI_GUID gEfiSocketProcessorCoreVarGuid;
#define SOCKET_PROCESSORCORE_CONFIGURATION_NAME L"SocketProcessorCoreConfig"
 
#pragma pack(1)
 
typedef struct {
 
  UINT8   CpuidMaxValue;
 
  UINT8   ProcessorHyperThreadingDisable;   // Hyper Threading [ALL]
  UINT8   ProcessorVmxEnable;               // Enabling VMX
  UINT8   ProcessorSmxEnable;               // Enabling SMX (TXT LT)
  UINT8   ProcessorLtsxEnable;              // Enabling TXT (TXT LT-SX)
  UINT8   ThreeStrikeTimer;                 // Disable 3strike timer
  UINT8   FastStringEnable;                 // Fast String
  UINT8   MachineCheckEnable;               // Machine Check
  UINT8   MlcStreamerPrefetcherEnable;      // Hardware Prefetch
  UINT8   MlcSpatialPrefetcherEnable;       // Adjacent Cache Line Prefetch
  UINT8   DCUStreamerPrefetcherEnable;      // DCU Streamer Prefetcher
  UINT8   DCUIPPrefetcherEnable;            // DCU IP Prefetcher
  UINT8   DCUModeSelection;                 // DCU Mode Selection
  UINT8   ProcessorX2apic;                  // Enable Processor XAPIC
  UINT8   BspSelection;                     // Select BSP
  UINT8   IedTraceSize;                     // IED trace size
  UINT8   TsegSize;                         // TSEG size
  UINT8   AllowMixedPowerOnCpuRatio;        // Allow Mixed PowerOn CpuRatio
  UINT8   CheckCpuBist;                     // check and disable BIST faile core or ignore
  UINT8   CoreFailover;                     // Enable spare core(s) in place of core(s) that fail BIST
  UINT64  ReservedS192;
  UINT8   ProcessorFlexibleRatio;           // Non-Turbo Mode Processor Core Ratio Multiplier
  UINT8   ProcessorFlexibleRatioOverrideEnable;         // Non-Turbo Mode Processor Core Ratio Multiplier Enable
  UINT8   ForcePhysicalModeEnable;          // Force physical destionation mode
  UINT8   LlcPrefetchEnable;                // LLC Prefetch
  UINT8   CpuMtoIWa;                        // MtoI Workaround;
  UINT8   ProcessorVirtualWireMode;
 
  UINT8   ProcessorMsrLockControl;          // MSR Lock Bit Control
  UINT8   ProcessorMsrPkgCstConfigControlLock; // MSR PKG_CST_CONFIG_CONTROL lock
  UINT8   DebugInterface;                   // IA32_DEBUG_INTERFACE_MSR
  UINT8   AesEnable;
  UINT8   PpinControl;                      // PPIN Control MSR
  UINT8   LockChipset;                      // Lock Chipset
  UINT8   BiosAcmErrorReset;                // Disable LT-SX and reset system when BIOS ACM error occurs
  UINT8   AcmType;                          // 0x80 = debug signed ACM; 0x40 = NPW production signed ACM; 0x00 = PW production signed ACM
 
  // SecurityPolicy Stalagmite
  #include <Guid/SecurityPolicy_Flat.h>
 
  UINT8   SkipStopPbet;                     // Skip StopPbet
 
  UINT64  CoreDisableMask[MAX_SOCKET];      // one for each CPU socket
 
  // IOT/OCLA configs
#ifndef OCLA_TOR_ENTRY_MAX
    #define OCLA_TOR_ENTRY_MIN         0
    #define OCLA_TOR_ENTRY_MAX      0x11      // 15 or 17 depending on Isoch on/off
    #define OCLA_TOR_ENTRY_DEFAULT     1
    #define OCLA_WAY_MIN               0
    #define OCLA_WAY_MAX               8      // max 8 LLC ways out of 11 can be reserved for OCLA
    #define OCLA_WAY_DEFAULT           1
#endif
  UINT8   IotEn[MAX_SOCKET];
  UINT8   OclaMaxTorEntry[MAX_SOCKET];
  UINT8   OclaMinWay[MAX_SOCKET];
  UINT32  IioLlcWaysMask;                         // MSR CBO_SLICE0_CR_IIO_LLC_WAYS bitmask.
  UINT32  ExpandedIioLlcWaysMask;                 // MSR INGRESS_SPARE[10:0] bitmask. - Only Bits[10:0] are used
  UINT32  RemoteWaysMask;                         // MSR INGRESS_SPARE[26:16] bitmask. - Only Bits[10:0] are used
 
  UINT8   PCIeDownStreamPECIWrite;
 
  //
  // SMM Blocked and SMM Delayed
  //
  UINT8 SmmBlockedDelayed;
 
  //
  // eSMM Save State Mode
  //
  UINT8 eSmmSaveState;
 
  UINT8  PeciInTrustControlBit; //On Setup
  UINT8  PeciAgtLegacyTrustBit;
  UINT8  PeciAgtSmbusTrustBit;
  UINT8  PeciAgtIeTrustBit;
  UINT8  PeciAgtGenericTrustBit;
  UINT8  PeciAgtEspiTrustBit;
  UINT8  Poison;
  UINT8  Viral;
  UINT8  EVMode;
  UINT8  SmbusErrorRecovery;
  UINT8  CpuL1NextPagePrefetcherDisable;
  UINT8  CpuPaLimit;
  UINT8  RdtCatOpportunisticTuning;
  UINT8  CpuDbpEnable;         // Enable/Disable DBP-F
  UINT8  GlobalPsmiEnable;
  UINT8  PsmiTrace[MAX_SOCKET];
  UINT8  PsmiHandlerSize[MAX_SOCKET];
  UINT8  PsmiTraceRegion0[MAX_SOCKET];
  UINT8  PsmiTraceBufferSizeRegion0[MAX_SOCKET];
  UINT8  PsmiTraceMemTypeRegion0[MAX_SOCKET];
  UINT8  PsmiTraceRegion1[MAX_SOCKET];
  UINT8  PsmiTraceBufferSizeRegion1[MAX_SOCKET];
  UINT8  PsmiTraceMemTypeRegion1[MAX_SOCKET];
  UINT8  PsmiTraceRegion2[MAX_SOCKET];
  UINT8  PsmiTraceBufferSizeRegion2[MAX_SOCKET];
  UINT8  PsmiTraceMemTypeRegion2[MAX_SOCKET];
  UINT8  PsmiTraceRegion3[MAX_SOCKET];
  UINT8  PsmiTraceBufferSizeRegion3[MAX_SOCKET];
  UINT8  PsmiTraceMemTypeRegion3[MAX_SOCKET];
  UINT8  PsmiTraceRegion4[MAX_SOCKET];
  UINT8  PsmiTraceBufferSizeRegion4[MAX_SOCKET];
  UINT8  PsmiTraceMemTypeRegion4[MAX_SOCKET];
  UINT8  L2RfoPrefetchDisable;      // L2 RFO Prefetch
  UINT8  AmpPrefetchEnable;
  UINT8  TscResetEnable;
  UINT8  AcExceptionOnSplitLockEnable;
  // FuSa (SAF) Start
  UINT8   SafSupport;
  UINT8   EnableSaf;
  // FuSa (SAF) End
  UINT8  CFRS3mEnable;
  UINT8  CFRS3mManualCommit;
  UINT8  CFRPucodeEnable;
  UINT8  CFRPucodeManualCommit;
  UINT8  CpuCrashLogGprs;
} SOCKET_PROCESSORCORE_CONFIGURATION;
#pragma pack()
 
#endif