1## @file
2#  EFI/Framework Open Virtual Machine Firmware (OVMF) platform
3#
4#  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
5#
6#  This program and the accompanying materials
7#  are licensed and made available under the terms and conditions of the BSD License
8#  which accompanies this distribution. The full text of the license may be found at
9#  http://opensource.org/licenses/bsd-license.php
10#
11#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13#
14##
15
16################################################################################
17#
18# Defines Section - statements that will be processed to create a Makefile.
19#
20################################################################################
21[Defines]
22  PLATFORM_NAME                  = Ovmf
23  PLATFORM_GUID                  = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b
24  PLATFORM_VERSION               = 0.1
25  DSC_SPECIFICATION              = 0x00010005
26  OUTPUT_DIRECTORY               = Build/Ovmf3264
27  SUPPORTED_ARCHITECTURES        = IA32|X64
28  BUILD_TARGETS                  = DEBUG|RELEASE
29  SKUID_IDENTIFIER               = DEFAULT
30  FLASH_DEFINITION               = OvmfPkg/OvmfPkgIa32X64.fdf
31
32  #
33  # Defines for default states.  These can be changed on the command line.
34  # -D FLAG=VALUE
35  #
36  DEFINE SECURE_BOOT_ENABLE      = FALSE
37  DEFINE NETWORK_IP6_ENABLE      = FALSE
38  DEFINE HTTP_BOOT_ENABLE        = FALSE
39  DEFINE SMM_REQUIRE             = FALSE
40
41[BuildOptions]
42  GCC:*_UNIXGCC_*_CC_FLAGS             = -DMDEPKG_NDEBUG
43  GCC:RELEASE_*_*_CC_FLAGS             = -DMDEPKG_NDEBUG
44  INTEL:RELEASE_*_*_CC_FLAGS           = /D MDEPKG_NDEBUG
45  MSFT:RELEASE_*_*_CC_FLAGS            = /D MDEPKG_NDEBUG
46  GCC:*_*_*_CC_FLAGS                   = -mno-mmx -mno-sse
47!ifdef $(SOURCE_DEBUG_ENABLE)
48  MSFT:*_*_X64_GENFW_FLAGS  = --keepexceptiontable
49  GCC:*_*_X64_GENFW_FLAGS   = --keepexceptiontable
50  INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable
51!endif
52
53[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
54  GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
55  
56################################################################################
57#
58# SKU Identification section - list of all SKU IDs supported by this Platform.
59#
60################################################################################
61[SkuIds]
62  0|DEFAULT
63
64################################################################################
65#
66# Library Class section - list of all Library Classes needed by this Platform.
67#
68################################################################################
69[LibraryClasses]
70  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
71  TimerLib|OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf
72  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
73  BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
74  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
75  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
76  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
77  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
78  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
79  CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
80  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
81  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
82  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
83  GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
84  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
85  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
86  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
87  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
88  PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
89  PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
90  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
91  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
92  SerialPortLib|PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf
93  MtrrLib|UefiCpuPkg/Library/MtrrLib/MtrrLib.inf
94  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
95  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
96  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
97  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
98  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
99  DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
100  NvVarsFileLib|OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.inf
101  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
102  UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf
103  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
104  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
105  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
106  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
107  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
108  UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
109  SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf
110  QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
111  VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
112  LoadLinuxLib|OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.inf
113!if $(SMM_REQUIRE) == FALSE
114  LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf
115!endif
116  CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
117
118!ifdef $(SOURCE_DEBUG_ENABLE)
119  PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf
120  DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf
121!else
122  PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
123  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
124!endif
125
126  ResetSystemLib|OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf
127  LocalApicLib|UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf
128  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
129
130!if $(SECURE_BOOT_ENABLE) == TRUE
131  PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
132  IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
133  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
134  TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
135  AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
136!if $(NETWORK_IP6_ENABLE) == TRUE
137  TcpIoLib|MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
138!endif
139!else
140  TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
141  AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
142!endif
143  VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
144
145!if $(HTTP_BOOT_ENABLE) == TRUE
146  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
147!endif
148
149  S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf
150  SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
151  OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
152  XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
153
154[LibraryClasses.common]
155!if $(SECURE_BOOT_ENABLE) == TRUE
156  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
157!endif
158
159[LibraryClasses.common.SEC]
160  TimerLib|OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.inf
161  QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgSecLib.inf
162!ifdef $(DEBUG_ON_SERIAL_PORT)
163  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
164!else
165  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
166!endif
167  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
168  ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf
169!ifdef $(SOURCE_DEBUG_ENABLE)
170  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf
171!endif
172  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
173  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
174  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
175  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
176  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf
177
178[LibraryClasses.common.PEI_CORE]
179  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
180  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
181  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
182  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
183  PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
184  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
185  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
186  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
187!ifdef $(DEBUG_ON_SERIAL_PORT)
188  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
189!else
190  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
191!endif
192  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
193
194[LibraryClasses.common.PEIM]
195  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
196  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
197  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
198  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
199  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
200  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
201  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
202  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
203!ifdef $(DEBUG_ON_SERIAL_PORT)
204  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
205!else
206  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
207!endif
208  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
209  PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf
210  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
211!ifdef $(SOURCE_DEBUG_ENABLE)
212  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf
213!endif
214
215[LibraryClasses.common.DXE_CORE]
216  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
217  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
218  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
219  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
220!ifdef $(DEBUG_ON_SERIAL_PORT)
221  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
222!else
223  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
224!endif
225  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
226!ifdef $(SOURCE_DEBUG_ENABLE)
227  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
228!endif
229  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
230  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
231
232[LibraryClasses.common.DXE_RUNTIME_DRIVER]
233  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
234  TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
235  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
236  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
237  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
238  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
239!ifdef $(DEBUG_ON_SERIAL_PORT)
240  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
241!else
242  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
243!endif
244  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
245!if $(SECURE_BOOT_ENABLE) == TRUE
246  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
247!endif
248
249[LibraryClasses.common.UEFI_DRIVER]
250  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
251  TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
252  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
253  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
254  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
255  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
256!ifdef $(DEBUG_ON_SERIAL_PORT)
257  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
258!else
259  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
260!endif
261  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
262
263[LibraryClasses.common.DXE_DRIVER]
264  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
265  TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
266  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
267  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
268  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
269  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
270!ifdef $(DEBUG_ON_SERIAL_PORT)
271  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
272!else
273  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
274!endif
275  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
276  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
277  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
278  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
279  PlatformBdsLib|OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf
280  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
281!if $(SMM_REQUIRE) == TRUE
282  LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
283!else
284  LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf
285!endif
286!ifdef $(SOURCE_DEBUG_ENABLE)
287  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
288!endif
289  QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
290
291[LibraryClasses.common.UEFI_APPLICATION]
292  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
293  TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
294  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
295  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
296!ifdef $(DEBUG_ON_SERIAL_PORT)
297  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
298!else
299  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
300!endif
301
302[LibraryClasses.common.DXE_SMM_DRIVER]
303  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
304  TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
305  MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
306  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
307  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
308  SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf
309  SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
310!ifdef $(DEBUG_ON_SERIAL_PORT)
311  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
312!else
313  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
314!endif
315  CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
316!ifdef $(SOURCE_DEBUG_ENABLE)
317  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf
318!endif
319  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
320
321[LibraryClasses.common.SMM_CORE]
322  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
323  TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
324  SmmCorePlatformHookLib|MdeModulePkg/Library/SmmCorePlatformHookLibNull/SmmCorePlatformHookLibNull.inf
325  MemoryAllocationLib|MdeModulePkg/Library/PiSmmCoreMemoryAllocationLib/PiSmmCoreMemoryAllocationLib.inf
326  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
327  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
328  SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf
329  SmmServicesTableLib|MdeModulePkg/Library/PiSmmCoreSmmServicesTableLib/PiSmmCoreSmmServicesTableLib.inf
330!ifdef $(DEBUG_ON_SERIAL_PORT)
331  DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
332!else
333  DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf
334!endif
335
336################################################################################
337#
338# Pcd Section - list of all EDK II PCD Entries defined by this Platform.
339#
340################################################################################
341[PcdsFeatureFlag]
342  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE
343  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|TRUE
344  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FALSE
345  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|TRUE
346  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
347  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
348!if $(SECURE_BOOT_ENABLE) == TRUE
349  gUefiOvmfPkgTokenSpaceGuid.PcdSecureBootEnable|TRUE
350!endif
351!if $(SMM_REQUIRE) == TRUE
352  gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE
353  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE
354!endif
355
356[PcdsFixedAtBuild]
357  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1
358  gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
359  gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10
360  gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported|6
361  gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv|32
362  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
363  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000
364  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xe000
365
366  gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0
367
368  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
369  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F
370!ifdef $(SOURCE_DEBUG_ENABLE)
371  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17
372!else
373  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F
374!endif
375
376!ifdef $(SOURCE_DEBUG_ENABLE)
377  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2
378!endif
379
380!ifndef $(USE_OLD_SHELL)
381  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
382!endif
383
384[PcdsFixedAtBuild.X64]
385!if $(SMM_REQUIRE) == TRUE
386  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01
387  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmApSyncTimeout|100000
388!endif
389
390!if $(SECURE_BOOT_ENABLE) == TRUE
391  gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x00
392!endif
393
394  # IRQs 5, 9, 10, 11 are level-triggered
395  gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0E20
396
397################################################################################
398#
399# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
400#
401################################################################################
402
403[PcdsDynamicDefault]
404  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
405  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
406  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
407  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
408  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE
409  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
410  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
411  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0
412
413  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0
414
415  # Set video resolution for text setup.
416  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640
417  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480
418
419  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208
420  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0
421  gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE
422
423  # Noexec settings for DXE.
424  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|FALSE
425  gEfiMdeModulePkgTokenSpaceGuid.PcdPropertiesTableEnable|FALSE
426
427################################################################################
428#
429# Components Section - list of all EDK II Modules needed by this Platform.
430#
431################################################################################
432[Components.IA32]
433  OvmfPkg/ResetVector/ResetVector.inf
434
435  #
436  # SEC Phase modules
437  #
438  OvmfPkg/Sec/SecMain.inf {
439    <LibraryClasses>
440      NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
441  }
442
443  #
444  # PEI Phase modules
445  #
446  MdeModulePkg/Core/Pei/PeiMain.inf
447  MdeModulePkg/Universal/PCD/Pei/Pcd.inf  {
448    <LibraryClasses>
449      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
450  }
451  IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
452  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
453    <LibraryClasses>
454      PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
455  }
456
457  OvmfPkg/PlatformPei/PlatformPei.inf {
458    <LibraryClasses>
459      PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
460  }
461  UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf {
462    <LibraryClasses>
463      PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
464!if $(SMM_REQUIRE) == TRUE
465      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf
466!endif
467  }
468!if $(SMM_REQUIRE) == TRUE
469  OvmfPkg/SmmAccess/SmmAccessPei.inf {
470    <LibraryClasses>
471      PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
472  }
473!endif
474
475[Components.X64]
476  #
477  # DXE Phase modules
478  #
479  MdeModulePkg/Core/Dxe/DxeMain.inf {
480    <LibraryClasses>
481      NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
482      DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
483  }
484
485  IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
486  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf  {
487   <LibraryClasses>
488      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
489  }
490
491  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
492
493!if $(SECURE_BOOT_ENABLE) == TRUE
494  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
495    <LibraryClasses>
496      NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
497	}
498!else
499  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
500!endif
501
502  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
503  PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
504  UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
505  UefiCpuPkg/CpuDxe/CpuDxe.inf
506  PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
507  OvmfPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
508  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {
509    <LibraryClasses>
510      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
511  }
512  PcAtChipsetPkg/KbcResetDxe/Reset.inf
513  MdeModulePkg/Universal/Metronome/Metronome.inf
514  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
515  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf {
516    <LibraryClasses>
517!ifdef $(CSM_ENABLE)
518      NULL|OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.inf
519!endif
520  }
521
522  OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
523  OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
524  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
525  OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
526  OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf
527  OvmfPkg/XenBusDxe/XenBusDxe.inf
528  OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf
529  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
530  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
531  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
532  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
533  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
534  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf {
535    <LibraryClasses>
536      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
537  }
538  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
539  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {
540    <LibraryClasses>
541      DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
542      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
543  }
544  MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
545  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
546  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
547  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
548  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
549  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
550  OvmfPkg/SataControllerDxe/SataControllerDxe.inf
551  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
552  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
553  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
554  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
555  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
556  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
557
558  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf {
559    <LibraryClasses>
560      BltLib|OptionRomPkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
561  }
562
563  #
564  # ISA Support
565  #
566  PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf
567  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
568  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf
569  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf
570  IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf
571
572  #
573  # SMBIOS Support
574  #
575  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {
576    <LibraryClasses>
577      NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
578  }
579  OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
580
581  #
582  # ACPI Support
583  #
584  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
585  OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
586  OvmfPkg/AcpiTables/AcpiTables.inf
587  OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
588  MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
589  MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
590
591  #
592  # Network Support
593  #
594  MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
595  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
596  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
597  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
598  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
599  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
600  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
601  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
602  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
603!if $(NETWORK_IP6_ENABLE) == TRUE
604  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
605  NetworkPkg/TcpDxe/TcpDxe.inf
606  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
607  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
608  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
609  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
610!if $(SECURE_BOOT_ENABLE) == TRUE
611  NetworkPkg/IScsiDxe/IScsiDxe.inf
612!else
613  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
614!endif
615!else
616  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
617  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
618  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
619!endif
620!if $(HTTP_BOOT_ENABLE) == TRUE
621  NetworkPkg/DnsDxe/DnsDxe.inf
622  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
623  NetworkPkg/HttpDxe/HttpDxe.inf
624  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
625!endif
626  OvmfPkg/VirtioNetDxe/VirtioNet.inf
627
628  #
629  # Usb Support
630  #
631  MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
632  MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
633  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
634  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
635  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
636  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
637
638!ifdef $(CSM_ENABLE)
639  IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf {
640    <LibraryClasses>
641      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
642  }
643  IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf
644  OvmfPkg/Csm/Csm16/Csm16.inf
645!endif
646
647!ifndef $(USE_OLD_SHELL)
648  ShellPkg/Application/Shell/Shell.inf {
649    <LibraryClasses>
650      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
651      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
652      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
653      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
654      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
655      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
656      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
657      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
658      NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
659      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
660      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
661      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
662      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
663      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
664#      SafeBlockIoLib|ShellPkg/Library/SafeBlockIoLib/SafeBlockIoLib.inf
665#      SafeOpenProtocolLib|ShellPkg/Library/SafeOpenProtocolLib/SafeOpenProtocolLib.inf
666      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
667
668    <PcdsFixedAtBuild>
669      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
670      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
671      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
672  }
673!endif
674
675!if $(SECURE_BOOT_ENABLE) == TRUE
676  SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
677!endif
678
679  OvmfPkg/PlatformDxe/Platform.inf
680
681!if $(SMM_REQUIRE) == TRUE
682  OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
683  OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
684  UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
685
686  #
687  # SMM Initial Program Load (a DXE_RUNTIME_DRIVER)
688  #
689  MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
690
691  #
692  # SMM_CORE
693  #
694  MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
695
696  #
697  # Privileged drivers (DXE_SMM_DRIVER modules)
698  #
699  UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
700  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf {
701    <LibraryClasses>
702      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
703  }
704  UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
705    <LibraryClasses>
706      SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
707      SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
708  }
709
710  #
711  # Variable driver stack (SMM)
712  #
713  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
714  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
715  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
716    <LibraryClasses>
717      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
718  }
719  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
720
721!else
722
723  #
724  # Variable driver stack (non-SMM)
725  #
726  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
727  OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {
728    <LibraryClasses>
729      PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf
730  }
731  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
732  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
733    <LibraryClasses>
734      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
735  }
736!endif
737