]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/OvmfXen.fdf
OvmfPkg/XenAcpiPlatformDxe: create from AcpiPlatformDxe
[mirror_edk2.git] / OvmfPkg / OvmfXen.fdf
CommitLineData
75e85e33
AP
1## @file\r
2# Open Virtual Machine Firmware: FDF\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# Copyright (c) 2019, Citrix Systems, Inc.\r
7#\r
8# SPDX-License-Identifier: BSD-2-Clause-Patent\r
9#\r
10##\r
11\r
12################################################################################\r
13\r
14[Defines]\r
799d88c1 15!include OvmfPkgDefines.fdf.inc\r
75e85e33
AP
16\r
17#\r
1e9d6b0f
AP
18# This will allow the flash device image to be recognize as an ELF, with first\r
19# an ELF headers, then the firmware code.\r
75e85e33
AP
20#\r
21[FD.OVMF]\r
22BaseAddress = $(FW_BASE_ADDRESS)\r
23Size = $(FW_SIZE)\r
24ErasePolarity = 1\r
25BlockSize = $(BLOCK_SIZE)\r
26NumBlocks = $(FW_BLOCKS)\r
27\r
1e9d6b0f
AP
28!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048)\r
290x00000000|0x0000e000\r
30!endif\r
31!if $(FD_SIZE_IN_KB) == 4096\r
320x00000000|0x00040000\r
33!endif\r
34DATA = {\r
35 #\r
36 # This hex array have been generated by OvmfPkg/OvmfXenElfHeaderGenerator.c\r
37 # and copied manually.\r
38 #\r
39 # ELF file header\r
40 0x7f, 0x45, 0x4c, 0x46, # e_ident[0..3]: Magic number\r
41 0x01, # File class: 32-bit objects\r
42 0x01, # Data encoding: 2's complement, little endian\r
43 0x01, # File version\r
44 0x03, # OS ABI identification: Object uses GNU ELF extensions\r
45 0x00, # ABI version\r
46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # e_ident[EI_PAD...]\r
47 0x02, 0x00, # e_type = Executable file\r
48 0x03, 0x00, # e_machine = Intel 80386\r
49 0x01, 0x00, 0x00, 0x00, # e_version\r
50 0xd0, 0xff, 0x2f, 0x00, # e_entry: Entry point virtual address\r
51 0x34, 0x00, 0x00, 0x00, # e_phoff: Program header table file offset\r
52 0x00, 0x00, 0x00, 0x00, # e_shoff: Section header table file offset\r
53 0x00, 0x00, 0x00, 0x00, # e_flags: Processor-specific flags\r
54 0x34, 0x00, # e_ehsize: ELF header size\r
55 0x20, 0x00, # e_phentsize: Program header table entry size\r
56 0x02, 0x00, # e_phnum: Program header table entry count\r
57 0x00, 0x00, # e_shentsize: Section header table entry size\r
58 0x00, 0x00, # e_shnum: Section header table entry count\r
59 0x00, 0x00, # e_shstrndx\r
60\r
61 # ELF Program segment headers\r
62 # - Load segment\r
63 0x01, 0x00, 0x00, 0x00, # p_type = Loadable program segment\r
64 0x00, 0x00, 0x00, 0x00, # p_offset\r
65 0x00, 0x00, 0x10, 0x00, # p_vaddr: Segment virtual address\r
66 0x00, 0x00, 0x10, 0x00, # p_paddr: Segment physical address\r
67 0x00, 0x00, 0x20, 0x00, # p_filesz: Segment size in file\r
68 0x00, 0x00, 0x20, 0x00, # p_memsz: Segment size in memory\r
69 0x07, 0x00, 0x00, 0x00, # p_flags = Segment is executable | writable | readable\r
70 0x00, 0x00, 0x00, 0x00, # p_align\r
71 # - ELFNOTE segment\r
72 0x04, 0x00, 0x00, 0x00, # p_type = PT_NOTE\r
73 0x74, 0x00, 0x00, 0x00, # p_offset = point to XEN_ELFNOTE_PHYS32_ENTRY below\r
74 0x74, 0x00, 0x10, 0x00,\r
75 0x74, 0x00, 0x10, 0x00,\r
76 0x14, 0x00, 0x00, 0x00,\r
77 0x14, 0x00, 0x00, 0x00,\r
78 0x04, 0x00, 0x00, 0x00, # p_flags = Segment is readable\r
79 0x00, 0x00, 0x00, 0x00,\r
80\r
81 # XEN_ELFNOTE_PHYS32_ENTRY\r
82 0x04, 0x00, 0x00, 0x00, # name size\r
83 0x04, 0x00, 0x00, 0x00, # desc size\r
84 0x12, 0x00, 0x00, 0x00, # type = XEN_ELFNOTE_PHYS32_ENTRY\r
85 0x58, 0x65, 0x6e, 0x00, # name = "Xen"\r
86 0xd0, 0xff, 0x2f, 0x00, # desc: PVH entry point\r
87 0x00\r
88}\r
89\r
90!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048)\r
910x0000e000|0x00001000\r
92!endif\r
93!if $(FD_SIZE_IN_KB) == 4096\r
940x00040000|0x00001000\r
95!endif\r
96#NV_EVENT_LOG\r
97\r
98!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048)\r
990x0000f000|0x00001000\r
100!endif\r
101!if $(FD_SIZE_IN_KB) == 4096\r
1020x00041000|0x00001000\r
103!endif\r
104#NV_FTW_WORKING\r
105DATA = {\r
106 # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid =\r
107 # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95 }}\r
108 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49,\r
109 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95,\r
110 # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved\r
111 0x2c, 0xaf, 0x2c, 0x64, 0xFE, 0xFF, 0xFF, 0xFF,\r
112 # WriteQueueSize: UINT64\r
113 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\r
114}\r
115\r
116!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048)\r
1170x00010000|0x00010000\r
118!endif\r
119!if $(FD_SIZE_IN_KB) == 4096\r
1200x00042000|0x00042000\r
121!endif\r
122#NV_FTW_SPARE\r
123\r
75e85e33
AP
124\r
125$(VARS_SIZE)|$(FVMAIN_SIZE)\r
126FV = FVMAIN_COMPACT\r
127\r
128$(SECFV_OFFSET)|$(SECFV_SIZE)\r
129FV = SECFV\r
130\r
131#\r
132# Build the variable store and the firmware code as separate flash device\r
133# images.\r
134#\r
135[FD.OVMF_VARS]\r
136BaseAddress = $(FW_BASE_ADDRESS)\r
137Size = $(VARS_SIZE)\r
138ErasePolarity = 1\r
139BlockSize = $(BLOCK_SIZE)\r
140NumBlocks = $(VARS_BLOCKS)\r
141\r
142!include VarStore.fdf.inc\r
143\r
144[FD.OVMF_CODE]\r
145BaseAddress = $(CODE_BASE_ADDRESS)\r
146Size = $(CODE_SIZE)\r
147ErasePolarity = 1\r
148BlockSize = $(BLOCK_SIZE)\r
149NumBlocks = $(CODE_BLOCKS)\r
150\r
1510x00000000|$(FVMAIN_SIZE)\r
152FV = FVMAIN_COMPACT\r
153\r
154$(FVMAIN_SIZE)|$(SECFV_SIZE)\r
155FV = SECFV\r
156\r
157################################################################################\r
158\r
159[FD.MEMFD]\r
160BaseAddress = $(MEMFD_BASE_ADDRESS)\r
161Size = 0xB00000\r
162ErasePolarity = 1\r
163BlockSize = 0x10000\r
164NumBlocks = 0xB0\r
165\r
1660x000000|0x006000\r
167gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize\r
168\r
1690x006000|0x001000\r
170gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageSize\r
171\r
1720x007000|0x001000\r
173gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|gUefiOvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize\r
174\r
93314ae5
AP
1750x008000|0x001000\r
176# Used by XenResetVector to communicate with XenPlatformPei\r
177gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtr|gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtrSize\r
178\r
75e85e33
AP
1790x010000|0x010000\r
180gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize\r
181\r
1820x020000|0x0E0000\r
183gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize\r
184FV = PEIFV\r
185\r
1860x100000|0xA00000\r
187gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize\r
188FV = DXEFV\r
189\r
190################################################################################\r
191\r
192[FV.SECFV]\r
193FvNameGuid = 763BED0D-DE9F-48F5-81F1-3E90E1B1A015\r
194BlockSize = 0x1000\r
195FvAlignment = 16\r
196ERASE_POLARITY = 1\r
197MEMORY_MAPPED = TRUE\r
198STICKY_WRITE = TRUE\r
199LOCK_CAP = TRUE\r
200LOCK_STATUS = TRUE\r
201WRITE_DISABLED_CAP = TRUE\r
202WRITE_ENABLED_CAP = TRUE\r
203WRITE_STATUS = TRUE\r
204WRITE_LOCK_CAP = TRUE\r
205WRITE_LOCK_STATUS = TRUE\r
206READ_DISABLED_CAP = TRUE\r
207READ_ENABLED_CAP = TRUE\r
208READ_STATUS = TRUE\r
209READ_LOCK_CAP = TRUE\r
210READ_LOCK_STATUS = TRUE\r
211\r
212#\r
213# SEC Phase modules\r
214#\r
215# The code in this FV handles the initial firmware startup, and\r
216# decompresses the PEI and DXE FVs which handles the rest of the boot sequence.\r
217#\r
218INF OvmfPkg/Sec/SecMain.inf\r
219\r
c05de360 220INF RuleOverride=RESET_VECTOR OvmfPkg/XenResetVector/XenResetVector.inf\r
75e85e33
AP
221\r
222################################################################################\r
223[FV.PEIFV]\r
224FvNameGuid = 6938079B-B503-4E3D-9D24-B28337A25806\r
225BlockSize = 0x10000\r
226FvAlignment = 16\r
227ERASE_POLARITY = 1\r
228MEMORY_MAPPED = TRUE\r
229STICKY_WRITE = TRUE\r
230LOCK_CAP = TRUE\r
231LOCK_STATUS = TRUE\r
232WRITE_DISABLED_CAP = TRUE\r
233WRITE_ENABLED_CAP = TRUE\r
234WRITE_STATUS = TRUE\r
235WRITE_LOCK_CAP = TRUE\r
236WRITE_LOCK_STATUS = TRUE\r
237READ_DISABLED_CAP = TRUE\r
238READ_ENABLED_CAP = TRUE\r
239READ_STATUS = TRUE\r
240READ_LOCK_CAP = TRUE\r
241READ_LOCK_STATUS = TRUE\r
242\r
243APRIORI PEI {\r
244 INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf\r
245}\r
246\r
247#\r
248# PEI Phase modules\r
249#\r
250INF MdeModulePkg/Core/Pei/PeiMain.inf\r
251INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf\r
252INF MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf\r
253INF MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf\r
3b96221f 254INF OvmfPkg/XenPlatformPei/XenPlatformPei.inf\r
75e85e33
AP
255INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf\r
256INF UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf\r
257INF UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
258\r
259################################################################################\r
260\r
261[FV.DXEFV]\r
262FvForceRebase = FALSE\r
263FvNameGuid = 7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1\r
264BlockSize = 0x10000\r
265FvAlignment = 16\r
266ERASE_POLARITY = 1\r
267MEMORY_MAPPED = TRUE\r
268STICKY_WRITE = TRUE\r
269LOCK_CAP = TRUE\r
270LOCK_STATUS = TRUE\r
271WRITE_DISABLED_CAP = TRUE\r
272WRITE_ENABLED_CAP = TRUE\r
273WRITE_STATUS = TRUE\r
274WRITE_LOCK_CAP = TRUE\r
275WRITE_LOCK_STATUS = TRUE\r
276READ_DISABLED_CAP = TRUE\r
277READ_ENABLED_CAP = TRUE\r
278READ_STATUS = TRUE\r
279READ_LOCK_CAP = TRUE\r
280READ_LOCK_STATUS = TRUE\r
281\r
282APRIORI DXE {\r
283 INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
284 INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf\r
285 INF OvmfPkg/AmdSevDxe/AmdSevDxe.inf\r
286 INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf\r
287}\r
288\r
289#\r
290# DXE Phase modules\r
291#\r
292INF MdeModulePkg/Core/Dxe/DxeMain.inf\r
293\r
294INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf\r
295INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf\r
296INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf\r
297\r
298INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
299INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
300INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf\r
d668c8bc 301INF OvmfPkg/XenTimerDxe/XenTimerDxe.inf\r
75e85e33
AP
302INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf\r
303INF UefiCpuPkg/CpuDxe/CpuDxe.inf\r
75e85e33
AP
304INF OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf\r
305INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf\r
306INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf\r
307INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf\r
308INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf\r
309INF MdeModulePkg/Universal/Metronome/Metronome.inf\r
1237517b 310INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf\r
75e85e33 311\r
833cd3e0 312INF OvmfPkg/XenIoPvhDxe/XenIoPvhDxe.inf\r
75e85e33
AP
313INF OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf\r
314INF OvmfPkg/XenBusDxe/XenBusDxe.inf\r
315INF OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf\r
05480e2f 316INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
75e85e33
AP
317\r
318INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf\r
319INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf\r
320INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
321INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
322INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
323INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
324INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
325INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf\r
326INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf\r
327INF MdeModulePkg/Application/UiApp/UiApp.inf\r
328INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
329INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf\r
330INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
331INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
332INF MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf\r
333INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
334INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf\r
335INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf\r
336INF OvmfPkg/SataControllerDxe/SataControllerDxe.inf\r
337INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf\r
338INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf\r
339INF MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf\r
340INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
341INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf\r
342INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf\r
343INF MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf\r
344\r
345INF OvmfPkg/SioBusDxe/SioBusDxe.inf\r
46bb8120 346!if $(SOURCE_DEBUG_ENABLE) == FALSE\r
75e85e33
AP
347INF MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf\r
348!endif\r
349INF MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf\r
350\r
351INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf\r
352INF OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf\r
353\r
354INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf\r
c9bba52f 355INF OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf\r
75e85e33
AP
356INF RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf\r
357INF MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf\r
358INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf\r
359INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf\r
360\r
361INF FatPkg/EnhancedFatDxe/Fat.inf\r
362INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf\r
363\r
364!if $(TOOL_CHAIN_TAG) != "XCODE5"\r
365INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf\r
2d8ca4f9 366INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf\r
ec41733c 367INF OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf\r
bcf181a3 368!endif\r
75e85e33
AP
369INF ShellPkg/Application/Shell/Shell.inf\r
370\r
371INF MdeModulePkg/Logo/LogoDxe.inf\r
372\r
373#\r
374# Network modules\r
375#\r
376!if $(E1000_ENABLE)\r
377 FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {\r
378 SECTION PE32 = Intel3.5/EFIX64/E3522X2.EFI\r
379 }\r
380!endif\r
381!include NetworkPkg/Network.fdf.inc\r
382\r
383#\r
384# Usb Support\r
385#\r
386INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf\r
387INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf\r
388INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf\r
389INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf\r
390INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf\r
391INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf\r
392\r
393!ifdef $(CSM_ENABLE)\r
394INF OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf\r
395INF OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf\r
396INF RuleOverride=CSM OvmfPkg/Csm/Csm16/Csm16.inf\r
397!endif\r
398\r
399INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf\r
400INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf\r
401INF OvmfPkg/PlatformDxe/Platform.inf\r
402INF OvmfPkg/AmdSevDxe/AmdSevDxe.inf\r
403INF OvmfPkg/IoMmuDxe/IoMmuDxe.inf\r
404\r
405#\r
406# Variable driver stack (non-SMM)\r
407#\r
408INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf\r
409INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf\r
410INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf\r
411INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf\r
412\r
413################################################################################\r
414\r
415[FV.FVMAIN_COMPACT]\r
416FvNameGuid = 48DB5E17-707C-472D-91CD-1613E7EF51B0\r
417FvAlignment = 16\r
418ERASE_POLARITY = 1\r
419MEMORY_MAPPED = TRUE\r
420STICKY_WRITE = TRUE\r
421LOCK_CAP = TRUE\r
422LOCK_STATUS = TRUE\r
423WRITE_DISABLED_CAP = TRUE\r
424WRITE_ENABLED_CAP = TRUE\r
425WRITE_STATUS = TRUE\r
426WRITE_LOCK_CAP = TRUE\r
427WRITE_LOCK_STATUS = TRUE\r
428READ_DISABLED_CAP = TRUE\r
429READ_ENABLED_CAP = TRUE\r
430READ_STATUS = TRUE\r
431READ_LOCK_CAP = TRUE\r
432READ_LOCK_STATUS = TRUE\r
433\r
434FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {\r
435 SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {\r
436 #\r
437 # These firmware volumes will have files placed in them uncompressed,\r
438 # and then both firmware volumes will be compressed in a single\r
439 # compression operation in order to achieve better overall compression.\r
440 #\r
441 SECTION FV_IMAGE = PEIFV\r
442 SECTION FV_IMAGE = DXEFV\r
443 }\r
444 }\r
445\r
799d88c1 446!include FvmainCompactScratchEnd.fdf.inc\r
75e85e33
AP
447\r
448################################################################################\r
449\r
450[Rule.Common.SEC]\r
451 FILE SEC = $(NAMED_GUID) {\r
452 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi\r
453 UI STRING ="$(MODULE_NAME)" Optional\r
454 VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
455 }\r
456\r
457[Rule.Common.PEI_CORE]\r
458 FILE PEI_CORE = $(NAMED_GUID) {\r
459 PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi\r
460 UI STRING ="$(MODULE_NAME)" Optional\r
461 VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
462 }\r
463\r
464[Rule.Common.PEIM]\r
465 FILE PEIM = $(NAMED_GUID) {\r
466 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex\r
467 PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi\r
468 UI STRING="$(MODULE_NAME)" Optional\r
469 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
470 }\r
471\r
472[Rule.Common.DXE_CORE]\r
473 FILE DXE_CORE = $(NAMED_GUID) {\r
474 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi\r
475 UI STRING="$(MODULE_NAME)" Optional\r
476 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
477 }\r
478\r
479[Rule.Common.DXE_DRIVER]\r
480 FILE DRIVER = $(NAMED_GUID) {\r
481 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex\r
482 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi\r
483 UI STRING="$(MODULE_NAME)" Optional\r
484 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
485 RAW ACPI Optional |.acpi\r
486 RAW ASL Optional |.aml\r
487 }\r
488\r
489[Rule.Common.DXE_RUNTIME_DRIVER]\r
490 FILE DRIVER = $(NAMED_GUID) {\r
491 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex\r
492 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi\r
493 UI STRING="$(MODULE_NAME)" Optional\r
494 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
495 }\r
496\r
497[Rule.Common.UEFI_DRIVER]\r
498 FILE DRIVER = $(NAMED_GUID) {\r
499 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex\r
500 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi\r
501 UI STRING="$(MODULE_NAME)" Optional\r
502 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
503 }\r
504\r
505[Rule.Common.UEFI_DRIVER.BINARY]\r
506 FILE DRIVER = $(NAMED_GUID) {\r
507 DXE_DEPEX DXE_DEPEX Optional |.depex\r
508 PE32 PE32 |.efi\r
509 UI STRING="$(MODULE_NAME)" Optional\r
510 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
511 }\r
512\r
513[Rule.Common.UEFI_APPLICATION]\r
514 FILE APPLICATION = $(NAMED_GUID) {\r
515 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi\r
516 UI STRING="$(MODULE_NAME)" Optional\r
517 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
518 }\r
519\r
520[Rule.Common.UEFI_APPLICATION.BINARY]\r
521 FILE APPLICATION = $(NAMED_GUID) {\r
522 PE32 PE32 |.efi\r
523 UI STRING="$(MODULE_NAME)" Optional\r
524 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
525 }\r
526\r
527[Rule.Common.USER_DEFINED.ACPITABLE]\r
528 FILE FREEFORM = $(NAMED_GUID) {\r
529 RAW ACPI |.acpi\r
530 RAW ASL |.aml\r
531 }\r
532\r
533[Rule.Common.USER_DEFINED.CSM]\r
534 FILE FREEFORM = $(NAMED_GUID) {\r
535 RAW BIN |.bin\r
536 }\r
537\r
538[Rule.Common.SEC.RESET_VECTOR]\r
539 FILE RAW = $(NAMED_GUID) {\r
540 RAW BIN Align = 16 |.bin\r
541 }\r