VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/ArmVirtPkg/ArmVirtQemu.dsc

Last change on this file was 101433, checked in by vboxsync, 8 months ago

Devices/EFI/Firmware/ArmVirtPkg: Start using the VirtualBox Armv8 platform for getting at the FDT instead of relying on the hardcoded PcdDeviceTreeInitialBaseAddress PCD, bugref:10528

This requires disabling the early ID mapping feature (by switching away from ArmPlatformLibQemu to ArmPlatformLibNull) and keeping the MMU disabled until later because the page tables
are fixed and the location of the VirtualBox Armv8 platform descriptor is located at the end of the physical address range which can be different depending on the CPU, and MMIO and RAM regions
are dynamic as well. It is impossible to modify the page tables because they reside in the ROM region and can't be modified (and we don't know the base RAM region when it is activated).

  • Property svn:eol-style set to native
File size: 22.5 KB
Line 
1#
2# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
3# Copyright (c) 2014, Linaro Limited. All rights reserved.
4# Copyright (c) 2015 - 2020, Intel Corporation. All rights reserved.
5#
6# SPDX-License-Identifier: BSD-2-Clause-Patent
7#
8#
9
10################################################################################
11#
12# Defines Section - statements that will be processed to create a Makefile.
13#
14################################################################################
15[Defines]
16 PLATFORM_NAME = ArmVirtQemu
17 PLATFORM_GUID = 37d7e986-f7e9-45c2-8067-e371421a626c
18 PLATFORM_VERSION = 0.1
19 DSC_SPECIFICATION = 0x00010005
20!ifndef $(VBOX_OUTPUT_BASE_DIR)
21 OUTPUT_DIRECTORY = Build/ArmVirtQemu-$(ARCH)
22!else
23!if $(ARCH) == AARCH64
24 OUTPUT_DIRECTORY = $(VBOX_OUTPUT_BASE_DIR)/aarch64
25!else
26 OUTPUT_DIRECTORY = $(VBOX_OUTPUT_BASE_DIR)/aarch32
27!endif
28!endif
29 SUPPORTED_ARCHITECTURES = AARCH64|ARM
30 BUILD_TARGETS = DEBUG|RELEASE|NOOPT
31 SKUID_IDENTIFIER = DEFAULT
32 FLASH_DEFINITION = ArmVirtPkg/ArmVirtQemu.fdf
33
34 #
35 # Defines for default states. These can be changed on the command line.
36 # -D FLAG=VALUE
37 #
38 DEFINE TTY_TERMINAL = FALSE
39 DEFINE SECURE_BOOT_ENABLE = FALSE
40 DEFINE TPM2_ENABLE = FALSE
41 DEFINE TPM2_CONFIG_ENABLE = FALSE
42 DEFINE CAVIUM_ERRATUM_27456 = FALSE
43
44 #
45 # Network definition
46 #
47 DEFINE NETWORK_IP6_ENABLE = FALSE
48 DEFINE NETWORK_HTTP_BOOT_ENABLE = FALSE
49 DEFINE NETWORK_SNP_ENABLE = FALSE
50 DEFINE NETWORK_TLS_ENABLE = FALSE
51 DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = TRUE
52 DEFINE NETWORK_ISCSI_ENABLE = FALSE
53
54!if $(NETWORK_SNP_ENABLE) == TRUE
55 !error "NETWORK_SNP_ENABLE is IA32/X64/EBC only"
56!endif
57
58!include NetworkPkg/NetworkDefines.dsc.inc
59
60!include ArmVirtPkg/ArmVirt.dsc.inc
61
62!include MdePkg/MdeLibs.dsc.inc
63
64[LibraryClasses.common]
65 ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
66 ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
67
68 # Virtio Support
69 VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
70 VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
71 QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibMmio.inf
72 QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf
73 QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf
74 QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf
75
76 TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
77 VirtNorFlashPlatformLib|ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
78
79 CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
80 BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
81 PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
82 PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf
83 CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
84 FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
85 QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
86 FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
87 PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
88 PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
89 PciHostBridgeLib|OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
90 PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf
91 PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf
92
93!if $(TPM2_ENABLE) == TRUE
94 Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandLib.inf
95 Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/DxeTcg2PhysicalPresenceLib.inf
96 TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
97 TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLib/PeiDxeTpmPlatformHierarchyLib.inf
98!else
99 TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
100 TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf
101!endif
102
103[LibraryClasses.AARCH64]
104!ifndef $(VBOX)
105 ArmPlatformLib|ArmVirtPkg/Library/ArmPlatformLibQemu/ArmPlatformLibQemu.inf
106!else
107 ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.inf
108!endif
109
110[LibraryClasses.ARM]
111 ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.inf
112
113[LibraryClasses.common.PEIM]
114!ifndef $(VBOX)
115 ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
116!else
117 ArmVirtMemInfoLib|VBoxPkg/Library/VBoxVirtMemInfoLib/VBoxVirtMemInfoPeiLib.inf
118!endif
119
120!if $(TPM2_ENABLE) == TRUE
121 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
122 ResetSystemLib|MdeModulePkg/Library/PeiResetSystemLib/PeiResetSystemLib.inf
123 Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpm.inf
124!endif
125
126[LibraryClasses.AARCH64.PEIM]
127 ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
128
129[LibraryClasses.common.DXE_DRIVER]
130 AcpiPlatformLib|OvmfPkg/Library/AcpiPlatformLib/DxeAcpiPlatformLib.inf
131 ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
132
133!if $(TPM2_ENABLE) == TRUE
134 Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg2.inf
135!endif
136
137[LibraryClasses.common.UEFI_DRIVER]
138 UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
139
140[BuildOptions]
141!ifndef $(VBOX) # Don't clear the XIPFLAGS as we run with MMU disabled (no early ID mapping).
142!if $(CAVIUM_ERRATUM_27456) == TRUE
143 GCC:*_*_AARCH64_PP_FLAGS = -DCAVIUM_ERRATUM_27456
144!else
145 GCC:*_*_AARCH64_CC_XIPFLAGS ==
146!endif
147!endif
148
149!include NetworkPkg/NetworkBuildOptions.dsc.inc
150
151################################################################################
152#
153# Pcd Section - list of all EDK II PCD Entries defined by this Platform
154#
155################################################################################
156
157[PcdsFeatureFlag.common]
158 gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation|TRUE
159 gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation|TRUE
160
161 ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
162 # It could be set FALSE to save size.
163 gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
164 gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
165
166 gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
167
168 gArmVirtTokenSpaceGuid.PcdTpm2SupportEnabled|$(TPM2_ENABLE)
169
170[PcdsFixedAtBuild.common]
171!if $(ARCH) == AARCH64
172 gArmTokenSpaceGuid.PcdVFPEnabled|1
173!endif
174
175 gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000
176 gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
177 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
178 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
179!if $(NETWORK_TLS_ENABLE) == TRUE
180 #
181 # The cumulative and individual VOLATILE variable size limits should be set
182 # high enough for accommodating several and/or large CA certificates.
183 #
184 gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x80000
185 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize|0x40000
186!endif
187
188 # Size of the region used by UEFI in permanent memory (Reserved 64MB)
189 gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
190
191 #
192 # ARM PrimeCell
193 #
194
195 ## PL011 - Serial Terminal
196 gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
197
198 ## Default Terminal Type
199 ## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
200!if $(TTY_TERMINAL) == TRUE
201 gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
202 # Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
203 gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
204!else
205 gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
206!endif
207
208 #
209 # ARM Virtual Architectural Timer -- fetch frequency from QEMU (TCG) or KVM
210 #
211 gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|0
212
213 #
214 # Network Pcds
215 #
216!include NetworkPkg/NetworkPcds.dsc.inc
217
218 # System Memory Base -- fixed at 0x4000_0000
219 gArmTokenSpaceGuid.PcdSystemMemoryBase|0x40000000
220
221 # initial location of the device tree blob passed by QEMU -- base of DRAM
222 gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000
223
224 gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
225 gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
226
227 #
228 # The maximum physical I/O addressability of the processor, set with
229 # BuildCpuHob().
230 #
231 gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
232
233 #
234 # Enable the non-executable DXE stack. (This gets set up by DxeIpl)
235 #
236 gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
237
238!if $(SECURE_BOOT_ENABLE) == TRUE
239 # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
240 gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
241 gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
242 gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
243!endif
244
245 gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|3
246 gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x20000
247
248 # Shadowing PEI modules is absolutely pointless when the NOR flash is emulated
249 gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnBoot|FALSE
250
251 # System Memory Size -- 128 MB initially, actual size will be fetched from DT
252 gArmTokenSpaceGuid.PcdSystemMemorySize|0x8000000
253
254[PcdsFixedAtBuild.AARCH64]
255 # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
256 # if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
257 # presence of the 32-bit entry point anyway (because many AARCH64 systems
258 # don't have 32-bit addressable physical RAM), and the additional allocations
259 # below 4 GB needlessly fragment the memory map. So expose the 64-bit entry
260 # point only, for entry point versions >= 3.0.
261 gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosEntryPointProvideMethod|0x2
262
263[PcdsDynamicDefault.common]
264 gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
265
266 ## If TRUE, OvmfPkg/AcpiPlatformDxe will not wait for PCI
267 # enumeration to complete before installing ACPI tables.
268 gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
269
270 gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0
271 gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0
272 gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0
273 gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|0x0
274
275 #
276 # ARM General Interrupt Controller
277 #
278 gArmTokenSpaceGuid.PcdGicDistributorBase|0x0
279 gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
280 gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
281
282 ## PL031 RealTimeClock
283 gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
284
285 # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this
286 # PCD and PcdPciDisableBusEnumeration above have not been assigned yet
287 gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF
288
289 gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation|0x0
290
291 #
292 # Set video resolution for boot options and for text setup.
293 # PlatformDxe can set the former at runtime.
294 #
295 gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|1280
296 gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|800
297 gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640
298 gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480
299 gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|0
300 gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|0
301
302 #
303 # SMBIOS entry point version
304 #
305 gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0300
306 gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0
307 gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE
308
309 #
310 # IPv4 and IPv6 PXE Boot support.
311 #
312 gEfiNetworkPkgTokenSpaceGuid.PcdIPv4PXESupport|0x01
313 gEfiNetworkPkgTokenSpaceGuid.PcdIPv6PXESupport|0x01
314
315 #
316 # TPM2 support
317 #
318!if $(TPM2_ENABLE) == TRUE
319 gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0
320 gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid|{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
321 gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask|0
322!else
323[PcdsPatchableInModule]
324 # make this PCD patchable instead of dynamic when TPM support is not enabled
325 # this permits setting the PCD in unreachable code without pulling in dynamic PCD support
326 gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0
327!endif
328
329[PcdsDynamicHii]
330 gUefiOvmfPkgTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gOvmfVariableGuid|0x0|FALSE|NV,BS
331
332!if $(TPM2_CONFIG_ENABLE) == TRUE
333 gEfiSecurityPkgTokenSpaceGuid.PcdTcgPhysicalPresenceInterfaceVer|L"TCG2_VERSION"|gTcg2ConfigFormSetGuid|0x0|"1.3"|NV,BS
334 gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableRev|L"TCG2_VERSION"|gTcg2ConfigFormSetGuid|0x8|3|NV,BS
335!endif
336
337 gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5
338
339[LibraryClasses.common.PEI_CORE, LibraryClasses.common.PEIM]
340!if $(TPM2_ENABLE) == TRUE
341 PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
342!else
343 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
344!endif
345
346################################################################################
347#
348# Components Section - list of all EDK II Modules needed by this Platform
349#
350################################################################################
351[Components.common]
352 #
353 # PEI Phase modules
354 #
355 ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
356 MdeModulePkg/Core/Pei/PeiMain.inf
357 ArmPlatformPkg/PlatformPei/PlatformPeim.inf
358 ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf
359 ArmPkg/Drivers/CpuPei/CpuPei.inf
360
361!if $(TPM2_ENABLE) == TRUE
362 MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
363 <LibraryClasses>
364 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
365 }
366 MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf {
367 <LibraryClasses>
368 ResetSystemLib|ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib/ArmVirtPsciResetSystemPeiLib.inf
369 }
370 OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf
371 SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.inf {
372 <LibraryClasses>
373 HashLib|SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.inf
374 NULL|SecurityPkg/Library/HashInstanceLibSha1/HashInstanceLibSha1.inf
375 NULL|SecurityPkg/Library/HashInstanceLibSha256/HashInstanceLibSha256.inf
376 NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.inf
377 NULL|SecurityPkg/Library/HashInstanceLibSha512/HashInstanceLibSha512.inf
378 NULL|SecurityPkg/Library/HashInstanceLibSm3/HashInstanceLibSm3.inf
379 }
380!endif
381
382 MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
383 <LibraryClasses>
384 NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
385 }
386
387 #
388 # DXE
389 #
390 MdeModulePkg/Core/Dxe/DxeMain.inf {
391 <LibraryClasses>
392 NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
393 DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
394 }
395 MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
396 <LibraryClasses>
397 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
398 }
399
400 #
401 # Architectural Protocols
402 #
403 ArmPkg/Drivers/CpuDxe/CpuDxe.inf
404 MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
405 MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
406 <LibraryClasses>
407 NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
408 NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
409 # don't use unaligned CopyMem () on the UEFI varstore NOR flash region
410 BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
411 }
412!if $(SECURE_BOOT_ENABLE) == TRUE
413 MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
414 <LibraryClasses>
415 NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
416!if $(TPM2_ENABLE) == TRUE
417 NULL|SecurityPkg/Library/DxeTpm2MeasureBootLib/DxeTpm2MeasureBootLib.inf
418!endif
419 }
420 SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
421 OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf
422!else
423 MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
424!endif
425 MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
426 MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
427 MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
428 MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
429 EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf {
430 <LibraryClasses>
431 NULL|ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf
432 }
433 EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
434
435 MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
436 MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
437 MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
438 MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
439 MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
440
441 MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
442
443 ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
444 ArmPkg/Drivers/TimerDxe/TimerDxe.inf {
445 <LibraryClasses>
446 NULL|ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
447 }
448 OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.inf {
449 <LibraryClasses>
450 # don't use unaligned CopyMem () on the UEFI varstore NOR flash region
451 BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
452 }
453 MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
454
455 #
456 # Status Code Routing
457 #
458 MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
459
460 #
461 # Platform Driver
462 #
463 OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf
464 EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
465 OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf
466 OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
467 OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
468 OvmfPkg/VirtioNetDxe/VirtioNet.inf
469 OvmfPkg/VirtioRngDxe/VirtioRng.inf
470 OvmfPkg/VirtioSerialDxe/VirtioSerial.inf
471
472!ifdef $(VBOX)
473 VBoxPkg/VmwSvga3Dxe/VmwSvga3VideoDxe.inf {
474 <LibraryClasses>
475 # Optimized SetMem doesn't work on VGA framebuffer.
476 BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
477 }
478!endif
479
480 #
481 # FAT filesystem + GPT/MBR partitioning + UDF filesystem + virtio-fs
482 #
483 MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
484 MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
485 MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
486 FatPkg/EnhancedFatDxe/Fat.inf
487 MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
488 OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf
489
490 #
491 # Bds
492 #
493 MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {
494 <LibraryClasses>
495 DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
496 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
497 }
498 MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
499 MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
500 MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
501 MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
502!ifndef $(VBOX)
503 MdeModulePkg/Logo/LogoDxe.inf
504!else
505 VBoxPkg/Logo/LogoDxe.inf
506!endif
507 MdeModulePkg/Application/UiApp/UiApp.inf {
508 <LibraryClasses>
509 NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
510 NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
511 NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
512 }
513 OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf {
514 <LibraryClasses>
515 NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf
516 }
517
518 #
519 # Networking stack
520 #
521!include NetworkPkg/NetworkComponents.dsc.inc
522
523 NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf {
524 <LibraryClasses>
525 NULL|OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcdProducerLib.inf
526 }
527
528!if $(NETWORK_TLS_ENABLE) == TRUE
529 NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf {
530 <LibraryClasses>
531 NULL|OvmfPkg/Library/TlsAuthConfigLib/TlsAuthConfigLib.inf
532 }
533!endif
534
535 #
536 # SCSI Bus and Disk Driver
537 #
538 MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
539 MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
540
541 #
542 # NVME Driver
543 #
544 MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
545
546 #
547 # SMBIOS Support
548 #
549 MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {
550 <LibraryClasses>
551 NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
552 }
553 OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
554
555 #
556 # PCI support
557 #
558 ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf {
559 <LibraryClasses>
560 NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
561 }
562 MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
563 MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {
564 <LibraryClasses>
565 NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
566 }
567 OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf
568 OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
569 OvmfPkg/Virtio10Dxe/Virtio10.inf
570
571 #
572 # Video support
573 #
574 OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf
575 OvmfPkg/VirtioGpuDxe/VirtioGpu.inf
576 OvmfPkg/PlatformDxe/Platform.inf
577
578 #
579 # USB Support
580 #
581 MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
582 MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
583 MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
584 MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
585 MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
586 MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
587
588 #
589 # TPM2 support
590 #
591!if $(TPM2_ENABLE) == TRUE
592 SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf {
593 <LibraryClasses>
594 HashLib|SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.inf
595 Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibRouter/Tpm2DeviceLibRouterDxe.inf
596 NULL|SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2InstanceLibDTpm.inf
597 NULL|SecurityPkg/Library/HashInstanceLibSha1/HashInstanceLibSha1.inf
598 NULL|SecurityPkg/Library/HashInstanceLibSha256/HashInstanceLibSha256.inf
599 NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.inf
600 NULL|SecurityPkg/Library/HashInstanceLibSha512/HashInstanceLibSha512.inf
601 NULL|SecurityPkg/Library/HashInstanceLibSm3/HashInstanceLibSm3.inf
602 }
603!if $(TPM2_CONFIG_ENABLE) == TRUE
604 SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf
605!endif
606!endif
607
608 #
609 # ACPI Support
610 #
611 OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf
612[Components.AARCH64]
613 MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
614 OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf {
615 <LibraryClasses>
616 NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
617 }
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use