68073ef55b4dad046fc250531a684d0c33cfdb62
[mirror_edk2.git] / OvmfPkg / OvmfPkgX64.dsc
1 ## @file\r
2 #  EFI/Framework Open Virtual Machine Firmware (OVMF) platform\r
3 #\r
4 #  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
5 #  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
6 #\r
7 #  SPDX-License-Identifier: BSD-2-Clause-Patent\r
8 #\r
9 ##\r
10 \r
11 ################################################################################\r
12 #\r
13 # Defines Section - statements that will be processed to create a Makefile.\r
14 #\r
15 ################################################################################\r
16 [Defines]\r
17   PLATFORM_NAME                  = Ovmf\r
18   PLATFORM_GUID                  = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b\r
19   PLATFORM_VERSION               = 0.1\r
20   DSC_SPECIFICATION              = 0x00010005\r
21   OUTPUT_DIRECTORY               = Build/OvmfX64\r
22   SUPPORTED_ARCHITECTURES        = X64\r
23   BUILD_TARGETS                  = NOOPT|DEBUG|RELEASE\r
24   SKUID_IDENTIFIER               = DEFAULT\r
25   FLASH_DEFINITION               = OvmfPkg/OvmfPkgX64.fdf\r
26 \r
27   #\r
28   # Defines for default states.  These can be changed on the command line.\r
29   # -D FLAG=VALUE\r
30   #\r
31   DEFINE SECURE_BOOT_ENABLE      = FALSE\r
32   DEFINE SMM_REQUIRE             = FALSE\r
33   DEFINE TPM2_ENABLE             = FALSE\r
34   DEFINE TPM2_CONFIG_ENABLE      = FALSE\r
35   DEFINE USE_LEGACY_ISA_STACK    = FALSE\r
36 \r
37   #\r
38   # Network definition\r
39   #\r
40   DEFINE NETWORK_TLS_ENABLE             = FALSE\r
41   DEFINE NETWORK_IP6_ENABLE             = FALSE\r
42   DEFINE NETWORK_HTTP_BOOT_ENABLE       = FALSE\r
43   DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = TRUE\r
44 \r
45 !include NetworkPkg/NetworkDefines.dsc.inc\r
46 \r
47   #\r
48   # Flash size selection. Setting FD_SIZE_IN_KB on the command line directly to\r
49   # one of the supported values, in place of any of the convenience macros, is\r
50   # permitted.\r
51   #\r
52 !ifdef $(FD_SIZE_1MB)\r
53   DEFINE FD_SIZE_IN_KB           = 1024\r
54 !else\r
55 !ifdef $(FD_SIZE_2MB)\r
56   DEFINE FD_SIZE_IN_KB           = 2048\r
57 !else\r
58 !ifdef $(FD_SIZE_4MB)\r
59   DEFINE FD_SIZE_IN_KB           = 4096\r
60 !else\r
61   DEFINE FD_SIZE_IN_KB           = 4096\r
62 !endif\r
63 !endif\r
64 !endif\r
65 \r
66 [BuildOptions]\r
67   GCC:RELEASE_*_*_CC_FLAGS             = -DMDEPKG_NDEBUG\r
68   INTEL:RELEASE_*_*_CC_FLAGS           = /D MDEPKG_NDEBUG\r
69   MSFT:RELEASE_*_*_CC_FLAGS            = /D MDEPKG_NDEBUG\r
70 !if $(TOOL_CHAIN_TAG) != "XCODE5"\r
71   GCC:*_*_*_CC_FLAGS                   = -mno-mmx -mno-sse\r
72 !endif\r
73 !ifdef $(SOURCE_DEBUG_ENABLE)\r
74   MSFT:*_*_X64_GENFW_FLAGS  = --keepexceptiontable\r
75   GCC:*_*_X64_GENFW_FLAGS   = --keepexceptiontable\r
76   INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable\r
77 !endif\r
78 \r
79   #\r
80   # Disable deprecated APIs.\r
81   #\r
82   MSFT:*_*_*_CC_FLAGS = /D DISABLE_NEW_DEPRECATED_INTERFACES\r
83   INTEL:*_*_*_CC_FLAGS = /D DISABLE_NEW_DEPRECATED_INTERFACES\r
84   GCC:*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES\r
85 \r
86 [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]\r
87   GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000\r
88   XCODE:*_*_*_DLINK_FLAGS =\r
89 \r
90 # Force PE/COFF sections to be aligned at 4KB boundaries to support page level\r
91 # protection of DXE_SMM_DRIVER/SMM_CORE modules\r
92 [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE]\r
93   GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000\r
94   XCODE:*_*_*_DLINK_FLAGS =\r
95 \r
96 ################################################################################\r
97 #\r
98 # SKU Identification section - list of all SKU IDs supported by this Platform.\r
99 #\r
100 ################################################################################\r
101 [SkuIds]\r
102   0|DEFAULT\r
103 \r
104 ################################################################################\r
105 #\r
106 # Library Class section - list of all Library Classes needed by this Platform.\r
107 #\r
108 ################################################################################\r
109 [LibraryClasses]\r
110   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
111   TimerLib|OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf\r
112   PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf\r
113   BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf\r
114   BaseLib|MdePkg/Library/BaseLib/BaseLib.inf\r
115   SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf\r
116   BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf\r
117   SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf\r
118   CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf\r
119   PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf\r
120   PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf\r
121   CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf\r
122   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf\r
123   UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf\r
124   HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf\r
125   SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf\r
126   UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf\r
127   BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf\r
128   FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf\r
129   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf\r
130   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf\r
131   DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
132   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf\r
133   PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf\r
134   PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf\r
135   PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf\r
136   PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf\r
137   PciCapLib|OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf\r
138   PciCapPciSegmentLib|OvmfPkg/Library/BasePciCapPciSegmentLib/BasePciCapPciSegmentLib.inf\r
139   PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf\r
140   IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf\r
141   OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf\r
142   SerialPortLib|PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf\r
143   MtrrLib|UefiCpuPkg/Library/MtrrLib/MtrrLib.inf\r
144   UefiLib|MdePkg/Library/UefiLib/UefiLib.inf\r
145   UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
146   UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf\r
147   UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf\r
148   UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf\r
149   DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf\r
150   NvVarsFileLib|OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.inf\r
151   FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf\r
152   UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf\r
153   SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf\r
154   UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf\r
155   SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf\r
156   QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgDxeLib.inf\r
157   VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf\r
158   LoadLinuxLib|OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.inf\r
159   MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/BaseMemEncryptSevLib.inf\r
160 !if $(SMM_REQUIRE) == FALSE\r
161   LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf\r
162 !endif\r
163   CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf\r
164   FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf\r
165 \r
166 !ifdef $(SOURCE_DEBUG_ENABLE)\r
167   PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf\r
168   DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf\r
169 !else\r
170   PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf\r
171   DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf\r
172 !endif\r
173 \r
174   ResetSystemLib|OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf\r
175   LocalApicLib|UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf\r
176   DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf\r
177 \r
178   IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf\r
179 !if $(NETWORK_TLS_ENABLE) == TRUE\r
180   OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf\r
181 !else\r
182   OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf\r
183 !endif\r
184 \r
185 !if $(SECURE_BOOT_ENABLE) == TRUE\r
186   PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf\r
187   TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf\r
188   AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf\r
189 !else\r
190   TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf\r
191   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf\r
192 !endif\r
193   VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf\r
194 \r
195 \r
196   #\r
197   # Network libraries\r
198   #\r
199 !include NetworkPkg/NetworkLibs.dsc.inc\r
200 \r
201 !if $(NETWORK_TLS_ENABLE) == TRUE\r
202   TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf\r
203 !endif\r
204 \r
205   ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf\r
206   ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf\r
207   S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf\r
208   SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf\r
209   OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf\r
210   XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf\r
211 \r
212 !if $(TPM2_ENABLE) == TRUE\r
213   Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandLib.inf\r
214   Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/DxeTcg2PhysicalPresenceLib.inf\r
215   Tcg2PpVendorLib|SecurityPkg/Library/Tcg2PpVendorLibNull/Tcg2PpVendorLibNull.inf\r
216 !else\r
217   Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibNull/DxeTcg2PhysicalPresenceLib.inf\r
218 !endif\r
219 \r
220 [LibraryClasses.common]\r
221   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf\r
222 \r
223 [LibraryClasses.common.SEC]\r
224   TimerLib|OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.inf\r
225   QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgSecLib.inf\r
226 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
227   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
228 !else\r
229   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf\r
230 !endif\r
231   ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf\r
232   ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf\r
233 !ifdef $(SOURCE_DEBUG_ENABLE)\r
234   DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf\r
235 !endif\r
236   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
237   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
238   PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf\r
239   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r
240   CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf\r
241 \r
242 [LibraryClasses.common.PEI_CORE]\r
243   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
244   PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf\r
245   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
246   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r
247   PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf\r
248   ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf\r
249   OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf\r
250   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf\r
251 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
252   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
253 !else\r
254   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
255 !endif\r
256   PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf\r
257 \r
258 [LibraryClasses.common.PEIM]\r
259   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
260   PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf\r
261   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
262   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r
263   PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf\r
264   ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf\r
265   OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf\r
266   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf\r
267 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
268   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
269 !else\r
270   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
271 !endif\r
272   PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf\r
273   ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf\r
274   ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf\r
275 !ifdef $(SOURCE_DEBUG_ENABLE)\r
276   DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf\r
277 !endif\r
278   CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf\r
279   MpInitLib|UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf\r
280   QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/PeiQemuFwCfgS3LibFwCfg.inf\r
281   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf\r
282   QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf\r
283 \r
284 !if $(TPM2_ENABLE) == TRUE\r
285   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf\r
286   Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpm.inf\r
287 !endif\r
288 \r
289 [LibraryClasses.common.DXE_CORE]\r
290   HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf\r
291   DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf\r
292   MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf\r
293   ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
294 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
295   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
296 !else\r
297   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
298 !endif\r
299   ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf\r
300 !ifdef $(SOURCE_DEBUG_ENABLE)\r
301   DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf\r
302 !endif\r
303   CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf\r
304   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
305 \r
306 [LibraryClasses.common.DXE_RUNTIME_DRIVER]\r
307   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
308   TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf\r
309   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
310   DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf\r
311   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf\r
312   ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf\r
313 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
314   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
315 !else\r
316   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
317 !endif\r
318   UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf\r
319   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf\r
320   PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf\r
321   QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf\r
322 \r
323 [LibraryClasses.common.UEFI_DRIVER]\r
324   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
325   TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf\r
326   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
327   DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf\r
328   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf\r
329   ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
330 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
331   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
332 !else\r
333   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
334 !endif\r
335   UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf\r
336   PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf\r
337 \r
338 [LibraryClasses.common.DXE_DRIVER]\r
339   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
340   TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf\r
341   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
342   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf\r
343   ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
344   UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf\r
345 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
346   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
347 !else\r
348   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
349 !endif\r
350   PlatformBootManagerLib|OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf\r
351   PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf\r
352   QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf\r
353   CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf\r
354 !if $(SMM_REQUIRE) == TRUE\r
355   LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf\r
356 !else\r
357   LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf\r
358 !endif\r
359 !ifdef $(SOURCE_DEBUG_ENABLE)\r
360   DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf\r
361 !endif\r
362   PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf\r
363   MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf\r
364   QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf\r
365 !if $(TPM2_ENABLE) == TRUE\r
366   Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg2.inf\r
367 !endif\r
368 \r
369 [LibraryClasses.common.UEFI_APPLICATION]\r
370   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
371   TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf\r
372   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
373   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf\r
374   ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
375 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
376   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
377 !else\r
378   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
379 !endif\r
380   PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf\r
381 \r
382 [LibraryClasses.common.DXE_SMM_DRIVER]\r
383   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
384   TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf\r
385   MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf\r
386   ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
387   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
388   SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf\r
389   MmServicesTableLib|MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf\r
390   SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf\r
391 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
392   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
393 !else\r
394   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
395 !endif\r
396   CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf\r
397 !ifdef $(SOURCE_DEBUG_ENABLE)\r
398   DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf\r
399 !endif\r
400   BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf\r
401   PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf\r
402 \r
403 [LibraryClasses.common.SMM_CORE]\r
404   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
405   TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf\r
406   SmmCorePlatformHookLib|MdeModulePkg/Library/SmmCorePlatformHookLibNull/SmmCorePlatformHookLibNull.inf\r
407   MemoryAllocationLib|MdeModulePkg/Library/PiSmmCoreMemoryAllocationLib/PiSmmCoreMemoryAllocationLib.inf\r
408   ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf\r
409   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf\r
410   SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf\r
411   SmmServicesTableLib|MdeModulePkg/Library/PiSmmCoreSmmServicesTableLib/PiSmmCoreSmmServicesTableLib.inf\r
412 !ifdef $(DEBUG_ON_SERIAL_PORT)\r
413   DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
414 !else\r
415   DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf\r
416 !endif\r
417   PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf\r
418 \r
419 ################################################################################\r
420 #\r
421 # Pcd Section - list of all EDK II PCD Entries defined by this Platform.\r
422 #\r
423 ################################################################################\r
424 [PcdsFeatureFlag]\r
425   gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE\r
426   gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE\r
427   gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|TRUE\r
428   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FALSE\r
429   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE\r
430   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE\r
431   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE\r
432   gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE\r
433 !if $(SMM_REQUIRE) == TRUE\r
434   gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE\r
435   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE\r
436 !endif\r
437 \r
438 [PcdsFixedAtBuild]\r
439   gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1\r
440   gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE\r
441   gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10\r
442 !if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048)\r
443   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000\r
444   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800\r
445 !if $(NETWORK_TLS_ENABLE) == FALSE\r
446   # match PcdFlashNvStorageVariableSize purely for convenience\r
447   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xe000\r
448 !endif\r
449 !endif\r
450 !if $(FD_SIZE_IN_KB) == 4096\r
451   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x8400\r
452   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x8400\r
453 !if $(NETWORK_TLS_ENABLE) == FALSE\r
454   # match PcdFlashNvStorageVariableSize purely for convenience\r
455   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x40000\r
456 !endif\r
457 !endif\r
458 !if $(NETWORK_TLS_ENABLE) == TRUE\r
459   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x80000\r
460   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize|0x40000\r
461 !endif\r
462 \r
463   gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0\r
464 \r
465   gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07\r
466 \r
467   # DEBUG_INIT      0x00000001  // Initialization\r
468   # DEBUG_WARN      0x00000002  // Warnings\r
469   # DEBUG_LOAD      0x00000004  // Load events\r
470   # DEBUG_FS        0x00000008  // EFI File system\r
471   # DEBUG_POOL      0x00000010  // Alloc & Free (pool)\r
472   # DEBUG_PAGE      0x00000020  // Alloc & Free (page)\r
473   # DEBUG_INFO      0x00000040  // Informational debug messages\r
474   # DEBUG_DISPATCH  0x00000080  // PEI/DXE/SMM Dispatchers\r
475   # DEBUG_VARIABLE  0x00000100  // Variable\r
476   # DEBUG_BM        0x00000400  // Boot Manager\r
477   # DEBUG_BLKIO     0x00001000  // BlkIo Driver\r
478   # DEBUG_NET       0x00004000  // SNP Driver\r
479   # DEBUG_UNDI      0x00010000  // UNDI Driver\r
480   # DEBUG_LOADFILE  0x00020000  // LoadFile\r
481   # DEBUG_EVENT     0x00080000  // Event messages\r
482   # DEBUG_GCD       0x00100000  // Global Coherency Database changes\r
483   # DEBUG_CACHE     0x00200000  // Memory range cachability changes\r
484   # DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may\r
485   #                             // significantly impact boot performance\r
486   # DEBUG_ERROR     0x80000000  // Error\r
487   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F\r
488 \r
489 !ifdef $(SOURCE_DEBUG_ENABLE)\r
490   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17\r
491 !else\r
492   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F\r
493 !endif\r
494 \r
495   # This PCD is used to set the base address of the PCI express hierarchy. It\r
496   # is only consulted when OVMF runs on Q35. In that case it is programmed into\r
497   # the PCIEXBAR register.\r
498   #\r
499   # On Q35 machine types that QEMU intends to support in the long term, QEMU\r
500   # never lets the RAM below 4 GB exceed 2816 MB.\r
501   gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xB0000000\r
502 \r
503 !ifdef $(SOURCE_DEBUG_ENABLE)\r
504   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2\r
505 !endif\r
506 \r
507   #\r
508   # Network Pcds\r
509   #\r
510 !include NetworkPkg/NetworkPcds.dsc.inc\r
511 \r
512   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }\r
513 \r
514 !if $(SMM_REQUIRE) == TRUE\r
515   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStackSize|0x4000\r
516 !endif\r
517 \r
518   # IRQs 5, 9, 10, 11 are level-triggered\r
519   gUefiOvmfPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0E20\r
520 \r
521   # Point to the MdeModulePkg/Application/UiApp/UiApp.inf\r
522   gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }\r
523 \r
524 ################################################################################\r
525 #\r
526 # Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform\r
527 #\r
528 ################################################################################\r
529 \r
530 [PcdsDynamicDefault]\r
531   # only set when\r
532   #   ($(SMM_REQUIRE) == FALSE)\r
533   gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0\r
534 \r
535   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0\r
536   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0\r
537   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0\r
538   gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE\r
539   gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800\r
540   gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600\r
541   gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable|FALSE\r
542   gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0\r
543   gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0\r
544   gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize|0x0\r
545   gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0\r
546   gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0\r
547   gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0\r
548   gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000\r
549 \r
550   gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0\r
551 \r
552   # Set video resolution for text setup.\r
553   gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640\r
554   gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480\r
555 \r
556   gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208\r
557   gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0\r
558   gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE\r
559 \r
560   # Noexec settings for DXE.\r
561   gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|FALSE\r
562   gEfiMdeModulePkgTokenSpaceGuid.PcdPropertiesTableEnable|FALSE\r
563 \r
564   # UefiCpuPkg PCDs related to initial AP bringup and general AP management.\r
565   gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|64\r
566   gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds|50000\r
567 \r
568   # Set memory encryption mask\r
569   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0\r
570 \r
571 !if $(SMM_REQUIRE) == TRUE\r
572   gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8\r
573   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01\r
574   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmApSyncTimeout|100000\r
575 !endif\r
576 \r
577   gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x00\r
578 \r
579 !if $(TPM2_ENABLE) == TRUE\r
580   gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid|{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}\r
581 !endif\r
582 \r
583 ################################################################################\r
584 #\r
585 # Components Section - list of all EDK II Modules needed by this Platform.\r
586 #\r
587 ################################################################################\r
588 [Components]\r
589   OvmfPkg/ResetVector/ResetVector.inf\r
590 \r
591   #\r
592   # SEC Phase modules\r
593   #\r
594   OvmfPkg/Sec/SecMain.inf {\r
595     <LibraryClasses>\r
596       NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
597   }\r
598 \r
599   #\r
600   # PEI Phase modules\r
601   #\r
602   MdeModulePkg/Core/Pei/PeiMain.inf\r
603   MdeModulePkg/Universal/PCD/Pei/Pcd.inf  {\r
604     <LibraryClasses>\r
605       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
606   }\r
607   MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf {\r
608     <LibraryClasses>\r
609       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
610   }\r
611   MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf {\r
612     <LibraryClasses>\r
613       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
614   }\r
615   MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf\r
616 \r
617   OvmfPkg/PlatformPei/PlatformPei.inf\r
618   UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf {\r
619     <LibraryClasses>\r
620 !if $(SMM_REQUIRE) == TRUE\r
621       LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf\r
622 !endif\r
623   }\r
624 !if $(SMM_REQUIRE) == TRUE\r
625   OvmfPkg/SmmAccess/SmmAccessPei.inf\r
626 !endif\r
627   UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
628 \r
629 !if $(TPM2_ENABLE) == TRUE\r
630   OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf\r
631   SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.inf {\r
632     <LibraryClasses>\r
633       HashLib|SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.inf\r
634       NULL|SecurityPkg/Library/HashInstanceLibSha1/HashInstanceLibSha1.inf\r
635       NULL|SecurityPkg/Library/HashInstanceLibSha256/HashInstanceLibSha256.inf\r
636       NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.inf\r
637       NULL|SecurityPkg/Library/HashInstanceLibSha512/HashInstanceLibSha512.inf\r
638   }\r
639 !if $(TPM2_CONFIG_ENABLE) == TRUE\r
640   SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf\r
641 !endif\r
642 !endif\r
643 \r
644   #\r
645   # DXE Phase modules\r
646   #\r
647   MdeModulePkg/Core/Dxe/DxeMain.inf {\r
648     <LibraryClasses>\r
649       NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
650       DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
651   }\r
652 \r
653   MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf\r
654   MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf\r
655   MdeModulePkg/Universal/PCD/Dxe/Pcd.inf  {\r
656    <LibraryClasses>\r
657       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
658   }\r
659 \r
660   MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
661 \r
662   MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {\r
663     <LibraryClasses>\r
664 !if $(SECURE_BOOT_ENABLE) == TRUE\r
665       NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf\r
666 !endif\r
667 !if $(TPM2_ENABLE) == TRUE\r
668       NULL|SecurityPkg/Library/DxeTpm2MeasureBootLib/DxeTpm2MeasureBootLib.inf\r
669 !endif\r
670   }\r
671 \r
672   MdeModulePkg/Universal/EbcDxe/EbcDxe.inf\r
673   OvmfPkg/8259InterruptControllerDxe/8259.inf\r
674   UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf\r
675   UefiCpuPkg/CpuDxe/CpuDxe.inf\r
676   OvmfPkg/8254TimerDxe/8254Timer.inf\r
677   OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf\r
678   OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf\r
679   MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf {\r
680     <LibraryClasses>\r
681       PciHostBridgeLib|OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf\r
682       NULL|OvmfPkg/Library/PlatformHasIoMmuLib/PlatformHasIoMmuLib.inf\r
683   }\r
684   MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {\r
685     <LibraryClasses>\r
686       PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
687   }\r
688   MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf\r
689   MdeModulePkg/Universal/Metronome/Metronome.inf\r
690   PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf\r
691   MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf\r
692   MdeModulePkg/Universal/BdsDxe/BdsDxe.inf {\r
693     <LibraryClasses>\r
694 !ifdef $(CSM_ENABLE)\r
695       NULL|OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.inf\r
696       NULL|IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.inf\r
697 !endif\r
698   }\r
699   MdeModulePkg/Logo/LogoDxe.inf\r
700   MdeModulePkg/Application/UiApp/UiApp.inf {\r
701     <LibraryClasses>\r
702       NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf\r
703       NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf\r
704       NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf\r
705 !ifdef $(CSM_ENABLE)\r
706       NULL|IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.inf\r
707       NULL|IntelFrameworkModulePkg/Library/LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf\r
708 !endif\r
709   }\r
710   OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf\r
711   OvmfPkg/Virtio10Dxe/Virtio10.inf\r
712   OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
713   OvmfPkg/VirtioScsiDxe/VirtioScsi.inf\r
714   OvmfPkg/VirtioRngDxe/VirtioRng.inf\r
715   OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf\r
716   OvmfPkg/XenBusDxe/XenBusDxe.inf\r
717   OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf\r
718   MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf\r
719   MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf\r
720   MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
721   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
722   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
723   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf {\r
724     <LibraryClasses>\r
725       PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
726   }\r
727   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
728   MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {\r
729     <LibraryClasses>\r
730       DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
731       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
732   }\r
733   MdeModulePkg/Universal/PrintDxe/PrintDxe.inf\r
734   MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
735   MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
736   MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf\r
737   MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
738   FatPkg/EnhancedFatDxe/Fat.inf\r
739   MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf\r
740   MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf\r
741   MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf\r
742   OvmfPkg/SataControllerDxe/SataControllerDxe.inf\r
743   MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf\r
744   MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf\r
745   MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf\r
746   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
747   MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf\r
748   MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf\r
749   MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf\r
750 \r
751   OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf\r
752   OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf\r
753   OvmfPkg/VirtioGpuDxe/VirtioGpu.inf\r
754 \r
755   #\r
756   # ISA Support\r
757   #\r
758 !if $(USE_LEGACY_ISA_STACK) == FALSE\r
759   OvmfPkg/SioBusDxe/SioBusDxe.inf\r
760   MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf\r
761   MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf\r
762 !else\r
763   PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf\r
764   IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf\r
765   IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf\r
766   IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf\r
767 !endif\r
768 \r
769   #\r
770   # SMBIOS Support\r
771   #\r
772   MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {\r
773     <LibraryClasses>\r
774       NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf\r
775   }\r
776   OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf\r
777 \r
778   #\r
779   # ACPI Support\r
780   #\r
781   MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf\r
782   OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf\r
783   OvmfPkg/AcpiTables/AcpiTables.inf\r
784   MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf\r
785   MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf\r
786   MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf\r
787 \r
788   #\r
789   # Network Support\r
790   #\r
791 !include NetworkPkg/NetworkComponents.dsc.inc\r
792 \r
793 !if $(NETWORK_TLS_ENABLE) == TRUE\r
794   NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf {\r
795     <LibraryClasses>\r
796       NULL|OvmfPkg/Library/TlsAuthConfigLib/TlsAuthConfigLib.inf\r
797   }\r
798 !endif\r
799   OvmfPkg/VirtioNetDxe/VirtioNet.inf\r
800 \r
801   #\r
802   # Usb Support\r
803   #\r
804   MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf\r
805   MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf\r
806   MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf\r
807   MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf\r
808   MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf\r
809   MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf\r
810 \r
811 !ifdef $(CSM_ENABLE)\r
812   IntelFrameworkModulePkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf {\r
813     <LibraryClasses>\r
814       PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
815   }\r
816   IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf\r
817   OvmfPkg/Csm/Csm16/Csm16.inf\r
818 !endif\r
819 \r
820 !if $(TOOL_CHAIN_TAG) != "XCODE5"\r
821   ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {\r
822     <PcdsFixedAtBuild>\r
823       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
824   }\r
825 !endif\r
826   ShellPkg/Application/Shell/Shell.inf {\r
827     <LibraryClasses>\r
828       ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf\r
829       NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf\r
830       NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf\r
831       NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf\r
832       NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf\r
833       NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf\r
834       NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf\r
835       NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf\r
836 !if $(NETWORK_IP6_ENABLE) == TRUE\r
837       NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf\r
838 !endif\r
839       HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf\r
840       PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf\r
841       BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf\r
842 \r
843     <PcdsFixedAtBuild>\r
844       gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF\r
845       gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
846       gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000\r
847   }\r
848 \r
849 !if $(SECURE_BOOT_ENABLE) == TRUE\r
850   SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf\r
851   OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf\r
852 !endif\r
853 \r
854   OvmfPkg/PlatformDxe/Platform.inf\r
855   OvmfPkg/AmdSevDxe/AmdSevDxe.inf\r
856   OvmfPkg/IoMmuDxe/IoMmuDxe.inf\r
857 \r
858 !if $(SMM_REQUIRE) == TRUE\r
859   OvmfPkg/SmmAccess/SmmAccess2Dxe.inf\r
860   OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf\r
861   UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf\r
862 \r
863   #\r
864   # SMM Initial Program Load (a DXE_RUNTIME_DRIVER)\r
865   #\r
866   MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf\r
867 \r
868   #\r
869   # SMM_CORE\r
870   #\r
871   MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf\r
872 \r
873   #\r
874   # Privileged drivers (DXE_SMM_DRIVER modules)\r
875   #\r
876   UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf\r
877   MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf {\r
878     <LibraryClasses>\r
879       LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf\r
880   }\r
881   UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf {\r
882     <LibraryClasses>\r
883       SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf\r
884       SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf\r
885   }\r
886 \r
887   #\r
888   # Variable driver stack (SMM)\r
889   #\r
890   OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf\r
891   MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf\r
892   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {\r
893     <LibraryClasses>\r
894       NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf\r
895   }\r
896   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf\r
897 \r
898 !else\r
899 \r
900   #\r
901   # Variable driver stack (non-SMM)\r
902   #\r
903   OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf\r
904   OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {\r
905     <LibraryClasses>\r
906       PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf\r
907   }\r
908   MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf\r
909   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {\r
910     <LibraryClasses>\r
911       NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf\r
912   }\r
913 !endif\r
914 \r
915 !if $(TPM2_ENABLE) == TRUE\r
916   SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf {\r
917     <LibraryClasses>\r
918       Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibRouter/Tpm2DeviceLibRouterDxe.inf\r
919       NULL|SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2InstanceLibDTpm.inf\r
920       HashLib|SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.inf\r
921       NULL|SecurityPkg/Library/HashInstanceLibSha1/HashInstanceLibSha1.inf\r
922       NULL|SecurityPkg/Library/HashInstanceLibSha256/HashInstanceLibSha256.inf\r
923       NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.inf\r
924       NULL|SecurityPkg/Library/HashInstanceLibSha512/HashInstanceLibSha512.inf\r
925   }\r
926 !endif\r