]> git.proxmox.com Git - mirror_edk2.git/blame - ArmVirtPkg/ArmVirtKvmTool.fdf
ArmVirtPkg: Enable PCIe support for Kvmtool
[mirror_edk2.git] / ArmVirtPkg / ArmVirtKvmTool.fdf
CommitLineData
6038e7a2 1#\r
4dda0f7a 2# Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.\r
6038e7a2
SM
3#\r
4# SPDX-License-Identifier: BSD-2-Clause-Patent\r
5#\r
6#\r
7\r
8################################################################################\r
9#\r
10# FD Section\r
11# The [FD] Section is made up of the definition statements and a\r
12# description of what goes into the Flash Device Image. Each FD section\r
13# defines one flash "device" image. A flash device image may be one of\r
14# the following: Removable media bootable image (like a boot floppy\r
15# image,) an Option ROM image (that would be "flashed" into an add-in\r
16# card,) a System "Flash" image (that would be burned into a system's\r
17# flash) or an Update ("Capsule") image that will be used to update and\r
18# existing system flash.\r
19#\r
20################################################################################\r
21\r
22[FD.KVMTOOL_EFI]\r
23BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress\r
24# The size in bytes of the FLASH Device\r
25Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize\r
26ErasePolarity = 1\r
27\r
28# This one is tricky, it must be: BlockSize * NumBlocks = Size\r
29BlockSize = 0x00001000\r
30NumBlocks = 0x200\r
31\r
32################################################################################\r
33#\r
34# Following are lists of FD Region layout which correspond to the locations of different\r
35# images within the flash device.\r
36#\r
37# Regions must be defined in ascending order and may not overlap.\r
38#\r
39# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by\r
40# the pipe "|" character, followed by the size of the region, also in hex with the leading\r
41# "0x" characters. Like:\r
42# Offset|Size\r
43# PcdOffsetCName|PcdSizeCName\r
44# RegionType <FV, DATA, or FILE>\r
45#\r
46################################################################################\r
47\r
48#\r
49# Implement the Linux kernel header layout so that the loader will identify\r
50# it as something bootable, and execute it with a FDT pointer in x0 or r2.\r
51# This area will be reused to store a copy of the FDT so round it up to 32 KB.\r
52#\r
530x00000000|0x00008000\r
54DATA = {\r
55!if $(ARCH) == AARCH64\r
56 0x01, 0x00, 0x00, 0x10, # code0: adr x1, .\r
57 0xff, 0x1f, 0x00, 0x14, # code1: b 0x8000\r
58 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, # text_offset: 512 KB\r
59 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB\r
60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # flags\r
61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res2\r
62 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res3\r
63 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res4\r
64 0x41, 0x52, 0x4d, 0x64, # magic: "ARM\x64"\r
65 0x00, 0x00, 0x00, 0x00 # res5\r
66!else\r
67 0x08, 0x10, 0x4f, 0xe2, # adr r1, .\r
68 0x02, 0x00, 0xa0, 0xe1, # mov r0, r2 (DTB)\r
69 0x00, 0x00, 0xa0, 0xe1, # nop\r
70 0x00, 0x00, 0xa0, 0xe1, # nop\r
71 0x00, 0x00, 0xa0, 0xe1, # nop\r
72 0x00, 0x00, 0xa0, 0xe1, # nop\r
73 0x00, 0x00, 0xa0, 0xe1, # nop\r
74 0x00, 0x00, 0xa0, 0xe1, # nop\r
75\r
76 0xf6, 0x1f, 0x00, 0xea, # b 0x8000\r
77 0x18, 0x28, 0x6f, 0x01, # magic\r
78 0x00, 0x00, 0x00, 0x00, # start\r
79 0x00, 0x00, 0x20, 0x00, # image size: 2 MB\r
80 0x01, 0x02, 0x03, 0x04 # endiannness flag\r
81!endif\r
82}\r
83\r
840x00008000|0x001f8000\r
85gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize\r
86FV = FVMAIN_COMPACT\r
87\r
88################################################################################\r
89#\r
90# FV Section\r
91#\r
92# [FV] section is used to define what components or modules are placed within a flash\r
93# device file. This section also defines order the components and modules are positioned\r
94# within the image. The [FV] section consists of define statements, set statements and\r
95# module statements.\r
96#\r
97################################################################################\r
98\r
99[FV.FvMain]\r
100FvNameGuid = 8A91C08E-7D9D-4933-84D6-901D26D0766E\r
101BlockSize = 0x40\r
102NumBlocks = 0 # This FV gets compressed so make it just big enough\r
103FvAlignment = 16 # FV alignment and FV attributes setting.\r
104ERASE_POLARITY = 1\r
105MEMORY_MAPPED = TRUE\r
106STICKY_WRITE = TRUE\r
107LOCK_CAP = TRUE\r
108LOCK_STATUS = TRUE\r
109WRITE_DISABLED_CAP = TRUE\r
110WRITE_ENABLED_CAP = TRUE\r
111WRITE_STATUS = TRUE\r
112WRITE_LOCK_CAP = TRUE\r
113WRITE_LOCK_STATUS = TRUE\r
114READ_DISABLED_CAP = TRUE\r
115READ_ENABLED_CAP = TRUE\r
116READ_STATUS = TRUE\r
117READ_LOCK_CAP = TRUE\r
118READ_LOCK_STATUS = TRUE\r
119\r
120 INF MdeModulePkg/Core/Dxe/DxeMain.inf\r
121 INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf\r
122 INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf\r
123 INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf\r
124 INF ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf\r
125 INF ArmVirtPkg/HighMemDxe/HighMemDxe.inf\r
126\r
127 #\r
128 # PI DXE Drivers producing Architectural Protocols (EFI Services)\r
129 #\r
130 INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf\r
131 INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
132 INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
133 INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
134 INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf\r
135 INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf\r
136\r
137 INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf\r
138 INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf\r
139\r
140 INF MdeModulePkg/Universal/Metronome/Metronome.inf\r
141 INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf\r
142\r
143 INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
144\r
145 #\r
146 # Multiple Console IO support\r
147 #\r
148 INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
149 INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
150 INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
151 INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
152 INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
153\r
154 INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
155 INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf\r
156 INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf\r
157 INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf\r
158\r
159 #\r
160 # FAT filesystem + GPT/MBR partitioning + UDF filesystem\r
161 #\r
162 INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
163 INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
164 INF FatPkg/EnhancedFatDxe/Fat.inf\r
165 INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
166 INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf\r
167\r
168 #\r
169 # Platform Driver\r
170 #\r
171 INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
172 INF OvmfPkg/VirtioNetDxe/VirtioNet.inf\r
173 INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf\r
174 INF OvmfPkg/VirtioRngDxe/VirtioRng.inf\r
175\r
176 #\r
177 # UEFI application (Shell Embedded Boot Loader)\r
178 #\r
179 INF ShellPkg/Application/Shell/Shell.inf\r
180 INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf\r
181\r
182 #\r
183 # Bds\r
184 #\r
185 INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
186 INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf\r
187 INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf\r
188 INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf\r
189 INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf\r
190 INF MdeModulePkg/Application/UiApp/UiApp.inf\r
191\r
192 #\r
193 # SCSI Bus and Disk Driver\r
194 #\r
195 INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf\r
196 INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf\r
197\r
4dda0f7a
SM
198 #\r
199 # PCI support\r
200 #\r
201 INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf\r
202 INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf\r
203 INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf\r
204 INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf\r
205 INF OvmfPkg/Virtio10Dxe/Virtio10.inf\r
206\r
6038e7a2
SM
207 #\r
208 # TianoCore logo (splash screen)\r
209 #\r
210 INF MdeModulePkg/Logo/LogoDxe.inf\r
211\r
212 #\r
213 # Ramdisk support\r
214 #\r
215 INF MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf\r
216\r
217[FV.FVMAIN_COMPACT]\r
218FvAlignment = 16\r
219ERASE_POLARITY = 1\r
220MEMORY_MAPPED = TRUE\r
221STICKY_WRITE = TRUE\r
222LOCK_CAP = TRUE\r
223LOCK_STATUS = TRUE\r
224WRITE_DISABLED_CAP = TRUE\r
225WRITE_ENABLED_CAP = TRUE\r
226WRITE_STATUS = TRUE\r
227WRITE_LOCK_CAP = TRUE\r
228WRITE_LOCK_STATUS = TRUE\r
229READ_DISABLED_CAP = TRUE\r
230READ_ENABLED_CAP = TRUE\r
231READ_STATUS = TRUE\r
232READ_LOCK_CAP = TRUE\r
233READ_LOCK_STATUS = TRUE\r
234\r
235 INF RuleOverride = SELF_RELOC ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf\r
236\r
237 FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {\r
238 SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {\r
239 SECTION FV_IMAGE = FVMAIN\r
240 }\r
241 }\r
242\r
243!include ArmVirtRules.fdf.inc\r