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