OvmfPkgX64.dsc revision 65d2bf42235d04f6e12ac80b661ab4aa0484bd6e
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/OvmfX64
27  SUPPORTED_ARCHITECTURES        = X64
28  BUILD_TARGETS                  = DEBUG|RELEASE
29  SKUID_IDENTIFIER               = DEFAULT
30  FLASH_DEFINITION               = OvmfPkg/OvmfPkgX64.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|FALSE
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!if $(SMM_REQUIRE) == TRUE
385  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01
386  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmApSyncTimeout|100000
387!endif
388
389  # IRQs 5, 9, 10, 11 are level-triggered
390  gPcAtChipsetPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0E20
391
392################################################################################
393#
394# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
395#
396################################################################################
397
398[PcdsDynamicDefault]
399  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
400  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
401  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
402  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
403  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE
404  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
405  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
406  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0
407
408  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0
409
410  # Set video resolution for text setup.
411  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640
412  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480
413
414  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208
415  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0
416  gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE
417
418  # Noexec settings for DXE.
419  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|FALSE
420  gEfiMdeModulePkgTokenSpaceGuid.PcdPropertiesTableEnable|FALSE
421
422################################################################################
423#
424# Components Section - list of all EDK II Modules needed by this Platform.
425#
426################################################################################
427[Components]
428  OvmfPkg/ResetVector/ResetVector.inf
429
430  #
431  # SEC Phase modules
432  #
433  OvmfPkg/Sec/SecMain.inf {
434    <LibraryClasses>
435      NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
436  }
437
438  #
439  # PEI Phase modules
440  #
441  MdeModulePkg/Core/Pei/PeiMain.inf
442  MdeModulePkg/Universal/PCD/Pei/Pcd.inf  {
443    <LibraryClasses>
444      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
445  }
446  IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
447  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
448    <LibraryClasses>
449      PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
450  }
451
452  OvmfPkg/PlatformPei/PlatformPei.inf {
453    <LibraryClasses>
454      PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
455  }
456  UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf {
457    <LibraryClasses>
458      PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
459!if $(SMM_REQUIRE) == TRUE
460      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf
461!endif
462  }
463!if $(SMM_REQUIRE) == TRUE
464  OvmfPkg/SmmAccess/SmmAccessPei.inf {
465    <LibraryClasses>
466      PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
467  }
468!endif
469
470  #
471  # DXE Phase modules
472  #
473  MdeModulePkg/Core/Dxe/DxeMain.inf {
474    <LibraryClasses>
475      NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
476      DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
477  }
478
479  IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
480  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf  {
481   <LibraryClasses>
482      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
483  }
484
485  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
486
487!if $(SECURE_BOOT_ENABLE) == TRUE
488  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
489    <LibraryClasses>
490      NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
491	}
492!else
493  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
494!endif
495
496  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
497  PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
498  UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
499  UefiCpuPkg/CpuDxe/CpuDxe.inf
500  PcAtChipsetPkg/8254TimerDxe/8254Timer.inf
501  OvmfPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf
502  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {
503    <LibraryClasses>
504      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
505  }
506  PcAtChipsetPkg/KbcResetDxe/Reset.inf
507  MdeModulePkg/Universal/Metronome/Metronome.inf
508  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
509  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf {
510    <LibraryClasses>
511!ifdef $(CSM_ENABLE)
512      NULL|OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.inf
513!endif
514  }
515
516  OvmfPkg/BlockMmioToBlockIoDxe/BlockIo.inf
517  OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
518  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
519  OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
520  OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf
521  OvmfPkg/XenBusDxe/XenBusDxe.inf
522  OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf
523  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
524  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
525  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
526  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
527  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
528  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf {
529    <LibraryClasses>
530      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
531  }
532  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
533  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {
534    <LibraryClasses>
535      DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
536      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
537  }
538  MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
539  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
540  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
541  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
542  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
543  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
544  OvmfPkg/SataControllerDxe/SataControllerDxe.inf
545  MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
546  MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
547  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
548  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
549  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
550  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
551
552  OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf {
553    <LibraryClasses>
554      BltLib|OptionRomPkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
555  }
556
557  #
558  # ISA Support
559  #
560  PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf
561  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
562  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf
563  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf
564  IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf
565
566  #
567  # SMBIOS Support
568  #
569  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {
570    <LibraryClasses>
571      NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
572  }
573  OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
574
575  #
576  # ACPI Support
577  #
578  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
579  OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
580  OvmfPkg/AcpiTables/AcpiTables.inf
581  OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
582  MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
583  MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
584
585  #
586  # Network Support
587  #
588  MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
589  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
590  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
591  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
592  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
593  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
594  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
595  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
596  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
597!if $(NETWORK_IP6_ENABLE) == TRUE
598  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
599  NetworkPkg/TcpDxe/TcpDxe.inf
600  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
601  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
602  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
603  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
604!if $(SECURE_BOOT_ENABLE) == TRUE
605  NetworkPkg/IScsiDxe/IScsiDxe.inf
606!else
607  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
608!endif
609!else
610  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
611  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
612  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
613!endif
614!if $(HTTP_BOOT_ENABLE) == TRUE
615  NetworkPkg/DnsDxe/DnsDxe.inf
616  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
617  NetworkPkg/HttpDxe/HttpDxe.inf
618  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
619!endif
620  OvmfPkg/VirtioNetDxe/VirtioNet.inf
621
622  #
623  # Usb Support
624  #
625  MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
626  MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
627  MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
628  MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
629  MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
630  MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
631
632!ifdef $(CSM_ENABLE)
633  IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf {
634    <LibraryClasses>
635      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
636  }
637  IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf
638  OvmfPkg/Csm/Csm16/Csm16.inf
639!endif
640
641!ifndef $(USE_OLD_SHELL)
642  ShellPkg/Application/Shell/Shell.inf {
643    <LibraryClasses>
644      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
645      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
646      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
647      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
648      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
649      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
650      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
651      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
652      NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
653      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
654      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
655      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
656      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
657      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
658#      SafeBlockIoLib|ShellPkg/Library/SafeBlockIoLib/SafeBlockIoLib.inf
659#      SafeOpenProtocolLib|ShellPkg/Library/SafeOpenProtocolLib/SafeOpenProtocolLib.inf
660      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
661
662    <PcdsFixedAtBuild>
663      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
664      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
665      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
666  }
667!endif
668
669!if $(SECURE_BOOT_ENABLE) == TRUE
670  SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
671!endif
672
673  OvmfPkg/PlatformDxe/Platform.inf
674
675!if $(SMM_REQUIRE) == TRUE
676  OvmfPkg/SmmAccess/SmmAccess2Dxe.inf
677  OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf
678  UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf
679
680  #
681  # SMM Initial Program Load (a DXE_RUNTIME_DRIVER)
682  #
683  MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
684
685  #
686  # SMM_CORE
687  #
688  MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
689
690  #
691  # Privileged drivers (DXE_SMM_DRIVER modules)
692  #
693  UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
694  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf {
695    <LibraryClasses>
696      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
697  }
698  UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {
699    <LibraryClasses>
700      SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
701      SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
702  }
703
704  #
705  # Variable driver stack (SMM)
706  #
707  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
708  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
709  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
710    <LibraryClasses>
711      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
712  }
713  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
714
715!else
716
717  #
718  # Variable driver stack (non-SMM)
719  #
720  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
721  OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {
722    <LibraryClasses>
723      PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf
724  }
725  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
726  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
727    <LibraryClasses>
728      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
729  }
730!endif
731