UefiCpuPkg/PiSmmCpuDxeSmm: Add SmmMemoryAttribute protocol
[mirror_edk2.git] / UefiCpuPkg / PiSmmCpuDxeSmm / PiSmmCpuDxeSmm.inf
1 ## @file
2 # CPU SMM driver.
3 #
4 # This SMM driver performs SMM initialization, deploy SMM Entry Vector,
5 # provides CPU specific services in SMM.
6 #
7 # Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
8 # Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
9 #
10 # This program and the accompanying materials
11 # are licensed and made available under the terms and conditions of the BSD License
12 # which accompanies this distribution. The full text of the license may be found at
13 # http://opensource.org/licenses/bsd-license.php
14 #
15 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #
18 ##
19
20 [Defines]
21 INF_VERSION = 0x00010005
22 BASE_NAME = PiSmmCpuDxeSmm
23 MODULE_UNI_FILE = PiSmmCpuDxeSmm.uni
24 FILE_GUID = A3FF0EF5-0C28-42f5-B544-8C7DE1E80014
25 MODULE_TYPE = DXE_SMM_DRIVER
26 VERSION_STRING = 1.0
27 PI_SPECIFICATION_VERSION = 0x0001000A
28 ENTRY_POINT = PiCpuSmmEntry
29
30 #
31 # The following information is for reference only and not required by the build tools.
32 #
33 # VALID_ARCHITECTURES = IA32 X64
34 #
35
36 [Sources]
37 PiSmmCpuDxeSmm.c
38 PiSmmCpuDxeSmm.h
39 MpService.c
40 SyncTimer.c
41 CpuS3.c
42 CpuService.c
43 CpuService.h
44 SmmProfile.c
45 SmmProfile.h
46 SmmProfileInternal.h
47 SmramSaveState.c
48 SmmCpuMemoryManagement.c
49
50 [Sources.Ia32]
51 Ia32/Semaphore.c
52 Ia32/PageTbl.c
53 Ia32/SmmFuncsArch.c
54 Ia32/SmmProfileArch.c
55 Ia32/SmmProfileArch.h
56 Ia32/SmmInit.asm
57 Ia32/SmiEntry.asm
58 Ia32/SmiException.asm
59 Ia32/MpFuncs.asm
60
61 Ia32/SmmInit.nasm
62 Ia32/SmiEntry.nasm
63 Ia32/SmiException.nasm
64 Ia32/MpFuncs.nasm
65
66 Ia32/SmmInit.S
67 Ia32/SmiEntry.S
68 Ia32/SmiException.S
69 Ia32/MpFuncs.S
70
71 [Sources.X64]
72 X64/Semaphore.c
73 X64/PageTbl.c
74 X64/SmmFuncsArch.c
75 X64/SmmProfileArch.c
76 X64/SmmProfileArch.h
77 X64/SmmInit.asm
78 X64/SmiEntry.asm
79 X64/SmiException.asm
80 X64/MpFuncs.asm
81
82 X64/SmmInit.nasm
83 X64/SmiEntry.nasm
84 X64/SmiException.nasm
85 X64/MpFuncs.nasm
86
87 X64/SmmInit.S
88 X64/SmiEntry.S
89 X64/SmiException.S
90 X64/MpFuncs.S
91
92 [Packages]
93 MdePkg/MdePkg.dec
94 MdeModulePkg/MdeModulePkg.dec
95 UefiCpuPkg/UefiCpuPkg.dec
96
97 [LibraryClasses]
98 UefiDriverEntryPoint
99 UefiRuntimeServicesTableLib
100 CacheMaintenanceLib
101 PcdLib
102 DebugLib
103 BaseLib
104 SynchronizationLib
105 BaseMemoryLib
106 MtrrLib
107 IoLib
108 TimerLib
109 SmmServicesTableLib
110 MemoryAllocationLib
111 DebugAgentLib
112 HobLib
113 PciLib
114 LocalApicLib
115 UefiCpuLib
116 SmmCpuPlatformHookLib
117 CpuExceptionHandlerLib
118 UefiLib
119 DxeServicesTableLib
120 CpuLib
121 ReportStatusCodeLib
122 SmmCpuFeaturesLib
123 PeCoffGetEntryPointLib
124
125 [Protocols]
126 gEfiSmmAccess2ProtocolGuid ## CONSUMES
127 gEfiMpServiceProtocolGuid ## CONSUMES
128 gEfiSmmConfigurationProtocolGuid ## PRODUCES
129 gEfiSmmCpuProtocolGuid ## PRODUCES
130 gEfiSmmReadyToLockProtocolGuid ## NOTIFY
131 gEfiSmmCpuServiceProtocolGuid ## PRODUCES
132 gEdkiiSmmMemoryAttributeProtocolGuid ## PRODUCES
133
134 [Guids]
135 gEfiAcpiVariableGuid ## SOMETIMES_CONSUMES ## HOB # it is used for S3 boot.
136 gEfiGlobalVariableGuid ## SOMETIMES_PRODUCES ## Variable:L"SmmProfileData"
137 gEfiAcpi20TableGuid ## SOMETIMES_CONSUMES ## SystemTable
138 gEfiAcpi10TableGuid ## SOMETIMES_CONSUMES ## SystemTable
139 gEdkiiPiSmmMemoryAttributesTableGuid ## CONSUMES ## SystemTable
140
141 [FeaturePcd]
142 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmDebug ## CONSUMES
143 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmBlockStartupThisAp ## CONSUMES
144 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection ## CONSUMES
145 gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugSupport ## CONSUMES
146 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStackGuard ## CONSUMES
147 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmProfileEnable ## CONSUMES
148 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmProfileRingBuffer ## CONSUMES
149 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmFeatureControlMsrLock ## CONSUMES
150
151 [Pcd]
152 gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber ## SOMETIMES_CONSUMES
153 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmProfileSize ## SOMETIMES_CONSUMES
154 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStackSize ## CONSUMES
155 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmApSyncTimeout ## CONSUMES
156 gUefiCpuPkgTokenSpaceGuid.PcdCpuS3DataAddress ## SOMETIMES_CONSUMES
157 gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugDataAddress ## SOMETIMES_PRODUCES
158 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmCodeAccessCheckEnable ## CONSUMES
159 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode ## CONSUMES
160 gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStaticPageTable ## CONSUMES
161 gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable ## CONSUMES
162 gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES
163 gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask ## CONSUMES
164 gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPropertyMask ## CONSUMES
165
166 [Depex]
167 gEfiMpServiceProtocolGuid
168
169 [UserExtensions.TianoCore."ExtraFiles"]
170 PiSmmCpuDxeSmmExtra.uni