]> git.proxmox.com Git - mirror_edk2.git/blame - ArmVirtPkg/ArmVirtKvmTool.dsc
ArmVirtPkg/Kvmtool: Enable ACPI support
[mirror_edk2.git] / ArmVirtPkg / ArmVirtKvmTool.dsc
CommitLineData
6038e7a2
SM
1# @file\r
2# Workspace file for KVMTool virtual platform.\r
3#\r
4dda0f7a 4# Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.\r
6038e7a2
SM
5#\r
6# SPDX-License-Identifier: BSD-2-Clause-Patent\r
7#\r
8#\r
9\r
10################################################################################\r
11#\r
12# Defines Section - statements that will be processed to create a Makefile.\r
13#\r
14################################################################################\r
15[Defines]\r
16 PLATFORM_NAME = ArmVirtKvmTool\r
17 PLATFORM_GUID = 4CB2C61E-FA32-4130-8E37-54ABC71A1A43\r
18 PLATFORM_VERSION = 0.1\r
19 DSC_SPECIFICATION = 0x0001001B\r
20!ifdef $(EDK2_OUT_DIR)\r
21 OUTPUT_DIRECTORY = $(EDK2_OUT_DIR)\r
22!else\r
23 OUTPUT_DIRECTORY = Build/ArmVirtKvmTool-$(ARCH)\r
24!endif\r
25 SUPPORTED_ARCHITECTURES = AARCH64|ARM\r
26 BUILD_TARGETS = DEBUG|RELEASE\r
27 SKUID_IDENTIFIER = DEFAULT\r
28 FLASH_DEFINITION = ArmVirtPkg/ArmVirtKvmTool.fdf\r
29\r
30!include ArmVirtPkg/ArmVirt.dsc.inc\r
31\r
17a02163
SM
32!if $(ARCH) == AARCH64\r
33!include DynamicTablesPkg/DynamicTables.dsc.inc\r
34!endif\r
35\r
c8a5d993
DB
36!include MdePkg/MdeLibs.dsc.inc\r
37\r
6038e7a2
SM
38[LibraryClasses.common]\r
39 ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf\r
40 ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf\r
41\r
42 # Virtio Support\r
43 VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf\r
44 VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf\r
45\r
46 ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.inf\r
47 ArmVirtMemInfoLib|ArmVirtPkg/Library/KvmtoolVirtMemInfoLib/KvmtoolVirtMemInfoLib.inf\r
48\r
49 TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf\r
50 NorFlashPlatformLib|ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtoolLib.inf\r
51\r
52 CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf\r
53\r
54 # BDS Libraries\r
55 UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf\r
56 PlatformBootManagerLib|ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf\r
57 BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf\r
58\r
59 CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf\r
60 FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf\r
61\r
62 FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf\r
63\r
77e9b3a7 64 PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf\r
6038e7a2 65 PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf\r
9a7509e4 66 PciHostBridgeLib|OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf\r
4dda0f7a 67 PciHostBridgeUtilityLib|ArmVirtPkg/Library/ArmVirtPciHostBridgeUtilityLib/ArmVirtPciHostBridgeUtilityLib.inf\r
6038e7a2
SM
68\r
69 TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf\r
70 AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf\r
71\r
72 PlatformPeiLib|ArmVirtPkg/Library/KvmtoolPlatformPeiLib/KvmtoolPlatformPeiLib.inf\r
73\r
74 PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf\r
75 PlatformHookLib|ArmVirtPkg/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.inf\r
76 SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf\r
77\r
17a02163
SM
78 HwInfoParserLib|DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfoParserLib.inf\r
79 DynamicPlatRepoLib|DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepoLib.inf\r
80\r
6038e7a2
SM
81[LibraryClasses.common.SEC, LibraryClasses.common.PEI_CORE, LibraryClasses.common.PEIM]\r
82 PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf\r
83 PlatformHookLib|ArmVirtPkg/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf\r
84 SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf\r
85\r
86[LibraryClasses.common.UEFI_DRIVER]\r
87 UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf\r
88\r
89[BuildOptions]\r
90 *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES\r
91 #\r
92 # We need to avoid jump tables in SEC and BASE modules, so that the PE/COFF\r
93 # self-relocation code itself is guaranteed to be position independent.\r
94 #\r
95 GCC:*_*_*_CC_XIPFLAGS = -fno-jump-tables\r
96\r
97################################################################################\r
98#\r
99# Pcd Section - list of all EDK II PCD Entries defined by this Platform\r
100#\r
101################################################################################\r
102\r
103[PcdsFeatureFlag.common]\r
104 ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.\r
105 # It could be set FALSE to save size.\r
106 gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE\r
107 gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE\r
108\r
109 # Use MMIO for accessing RTC controller registers.\r
110 gPcAtChipsetPkgTokenSpaceGuid.PcdRtcUseMmio|TRUE\r
111\r
112[PcdsFixedAtBuild.common]\r
113 gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F\r
114\r
115 gArmPlatformTokenSpaceGuid.PcdCoreCount|1\r
116\r
117!if $(ARCH) == AARCH64\r
118 gArmTokenSpaceGuid.PcdVFPEnabled|1\r
119!endif\r
120\r
121 gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000\r
122 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000\r
123 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800\r
124\r
125 # Size of the region used by UEFI in permanent memory (Reserved 64MB)\r
126 gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000\r
127\r
128 #\r
129 # TTY Terminal Type\r
130 # 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM\r
131 gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4\r
132\r
133 #\r
134 # ARM Virtual Architectural Timer -- fetch frequency from KVM\r
135 #\r
136 gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|0\r
137\r
138 # Use MMIO for accessing Serial port registers.\r
139 gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE\r
140 gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo|{0xFF}\r
141\r
142 gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE\r
143 gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }\r
144\r
145 #\r
146 # The maximum physical I/O addressability of the processor, set with\r
147 # BuildCpuHob().\r
148 #\r
149 gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16\r
150\r
151[PcdsPatchableInModule.common]\r
152 #\r
153 # This will be overridden in the code\r
154 #\r
155 gArmTokenSpaceGuid.PcdSystemMemoryBase|0x0\r
156 gArmTokenSpaceGuid.PcdSystemMemorySize|0x0\r
157\r
158 #\r
159 # The device tree base address is handed off by kvmtool.\r
160 # We are booting from RAM using the Linux kernel boot protocol,\r
161 # x0 will point to the DTB image in memory.\r
162 #\r
163 gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0\r
164\r
165 gArmTokenSpaceGuid.PcdFdBaseAddress|0x0\r
166 gArmTokenSpaceGuid.PcdFvBaseAddress|0x0\r
167\r
168 gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x0\r
169\r
170[PcdsDynamicDefault.common]\r
171 gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3\r
172\r
173 gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0\r
174 gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0\r
175 gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0\r
176 gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|0x0\r
177\r
178 #\r
179 # ARM General Interrupt Controller\r
180 #\r
181 gArmTokenSpaceGuid.PcdGicDistributorBase|0x0\r
182 gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0\r
183 gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0\r
184\r
4dda0f7a
SM
185 #\r
186 # PCI settings\r
187 #\r
188 gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE\r
189\r
190 # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this\r
191 # PCD and PcdPciDisableBusEnumeration above have not been assigned yet\r
192 gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF\r
193\r
7d78a86e 194 gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation|0x0\r
4dda0f7a 195\r
6038e7a2
SM
196 #\r
197 # Set video resolution for boot options and for text setup.\r
198 # PlatformDxe can set the former at runtime.\r
199 #\r
200 gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800\r
201 gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600\r
202 gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640\r
203 gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480\r
204\r
6038e7a2
SM
205 # Setup Flash storage variables\r
206 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0\r
207 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x40000\r
208 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0\r
209 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x40000\r
210 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0\r
211 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x40000\r
212\r
213 ## RTC Register address in MMIO space.\r
214 gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister64|0x0\r
215 gPcAtChipsetPkgTokenSpaceGuid.PcdRtcTargetRegister64|0x0\r
216\r
217################################################################################\r
218#\r
219# Components Section - list of all EDK II Modules needed by this Platform\r
220#\r
221################################################################################\r
222[Components.common]\r
223 #\r
224 # PEI Phase modules\r
225 #\r
226 ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf {\r
227 <LibraryClasses>\r
228 ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf\r
229 LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
230 PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf\r
231 HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf\r
232 PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf\r
233 MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf\r
234 }\r
235\r
236 #\r
237 # DXE\r
238 #\r
239 MdeModulePkg/Core/Dxe/DxeMain.inf {\r
240 <LibraryClasses>\r
241 NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf\r
242 DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
243 }\r
244 MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {\r
245 <LibraryClasses>\r
246 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
247 }\r
248\r
249 #\r
250 # Architectural Protocols\r
251 #\r
252 ArmPkg/Drivers/CpuDxe/CpuDxe.inf\r
253 MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
254 MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {\r
255 <LibraryClasses>\r
256 NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf\r
257 NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf\r
258 BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
259 }\r
260\r
261 MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
262 MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
263 MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf {\r
264 <LibraryClasses>\r
265 NULL|ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtoolLib.inf\r
266 }\r
267\r
268 MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf\r
269 MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf\r
270 MdeModulePkg/Universal/Metronome/Metronome.inf\r
271 PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf {\r
272 <LibraryClasses>\r
273 NULL|ArmVirtPkg/Library/KvmtoolRtcFdtClientLib/KvmtoolRtcFdtClientLib.inf\r
274 }\r
275\r
276 MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
277 MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
278 MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
279 MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
280 MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
281\r
282 MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
283\r
284 ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
285 ArmPkg/Drivers/TimerDxe/TimerDxe.inf {\r
286 <LibraryClasses>\r
287 NULL|ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf\r
288 }\r
289\r
290 ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf\r
291\r
292 MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf\r
293\r
294 #\r
295 # Platform Driver\r
296 #\r
297 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf\r
e0c23cba 298 OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf\r
e40fefaf 299 EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf\r
d881c6dd 300 OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf\r
6038e7a2
SM
301 OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
302 OvmfPkg/VirtioScsiDxe/VirtioScsi.inf\r
303 OvmfPkg/VirtioNetDxe/VirtioNet.inf\r
304 OvmfPkg/VirtioRngDxe/VirtioRng.inf\r
305\r
306 #\r
307 # FAT filesystem + GPT/MBR partitioning + UDF filesystem\r
308 #\r
309 MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
310 MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
311 MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
312 FatPkg/EnhancedFatDxe/Fat.inf\r
313 MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf\r
314\r
315 #\r
316 # Bds\r
317 #\r
318 MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {\r
319 <LibraryClasses>\r
320 DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
321 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
322 }\r
323 MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf\r
324 MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf\r
325 MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf\r
326 MdeModulePkg/Universal/BdsDxe/BdsDxe.inf\r
327 MdeModulePkg/Logo/LogoDxe.inf\r
328 MdeModulePkg/Application/UiApp/UiApp.inf {\r
329 <LibraryClasses>\r
330 NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf\r
331 NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf\r
332 NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf\r
333 }\r
334\r
335 #\r
336 # SCSI Bus and Disk Driver\r
337 #\r
338 MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf\r
339 MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf\r
4dda0f7a
SM
340 #\r
341 # PCI support\r
342 #\r
343 ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf {\r
344 <LibraryClasses>\r
77e9b3a7 345 NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf\r
ba79becd 346 NULL|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf\r
4dda0f7a
SM
347 }\r
348 MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf {\r
349 <LibraryClasses>\r
77e9b3a7 350 NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf\r
ba79becd 351 NULL|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf\r
4dda0f7a
SM
352 }\r
353 MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {\r
354 <LibraryClasses>\r
77e9b3a7 355 NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf\r
ba79becd 356 NULL|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf\r
4dda0f7a
SM
357 }\r
358 OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf\r
359 OvmfPkg/Virtio10Dxe/Virtio10.inf\r
17a02163
SM
360\r
361!if $(ARCH) == AARCH64\r
362 #\r
363 # ACPI Support\r
364 #\r
365 ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManagerDxe.inf\r
366!endif\r