1## @file 2# Bootloader Payload Package 3# 4# Provides drivers and definitions to create uefi payload for bootloaders. 5# 6# Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.<BR> 7# SPDX-License-Identifier: BSD-2-Clause-Patent 8# 9## 10 11################################################################################ 12[FD.UefiPayload] 13BaseAddress = 0x800000|gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemBase 14Size = 0x410000|gUefiPayloadPkgTokenSpaceGuid.PcdPayloadFdMemSize 15ErasePolarity = 1 16BlockSize = 0x1000 17NumBlocks = 0x410 18 190x00000000|0x030000 20FV = PEIFV 21 220x00030000|0x3E0000 23FV = DXEFV 24 25################################################################################ 26[FV.PEIFV] 27BlockSize = 0x1000 28FvAlignment = 16 29ERASE_POLARITY = 1 30MEMORY_MAPPED = TRUE 31STICKY_WRITE = TRUE 32LOCK_CAP = TRUE 33LOCK_STATUS = TRUE 34WRITE_DISABLED_CAP = TRUE 35WRITE_ENABLED_CAP = TRUE 36WRITE_STATUS = TRUE 37WRITE_LOCK_CAP = TRUE 38WRITE_LOCK_STATUS = TRUE 39READ_DISABLED_CAP = TRUE 40READ_ENABLED_CAP = TRUE 41READ_STATUS = TRUE 42READ_LOCK_CAP = TRUE 43READ_LOCK_STATUS = TRUE 44 45INF UefiPayloadPkg/SecCore/SecCore.inf 46 47INF MdeModulePkg/Core/Pei/PeiMain.inf 48INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf 49INF MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf 50INF MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf 51INF UefiPayloadPkg/BlSupportPei/BlSupportPei.inf 52INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf 53 54################################################################################ 55 56[FV.DXEFV] 57BlockSize = 0x1000 58FvForceRebase = FALSE 59FvAlignment = 16 60ERASE_POLARITY = 1 61MEMORY_MAPPED = TRUE 62STICKY_WRITE = TRUE 63LOCK_CAP = TRUE 64LOCK_STATUS = TRUE 65WRITE_DISABLED_CAP = TRUE 66WRITE_ENABLED_CAP = TRUE 67WRITE_STATUS = TRUE 68WRITE_LOCK_CAP = TRUE 69WRITE_LOCK_STATUS = TRUE 70READ_DISABLED_CAP = TRUE 71READ_ENABLED_CAP = TRUE 72READ_STATUS = TRUE 73READ_LOCK_CAP = TRUE 74READ_LOCK_STATUS = TRUE 75 76APRIORI DXE { 77 INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf 78 INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf 79 INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf 80} 81 82# 83# DXE Phase modules 84# 85INF MdeModulePkg/Core/Dxe/DxeMain.inf 86INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf 87INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf 88INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf 89 90INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf 91INF UefiCpuPkg/CpuDxe/CpuDxe.inf 92INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf 93INF MdeModulePkg/Application/UiApp/UiApp.inf 94INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf 95INF MdeModulePkg/Universal/Metronome/Metronome.inf 96INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf 97INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf 98INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf 99INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf 100INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf 101INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf 102INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf 103 104INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf 105INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf 106INF MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf 107INF PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf 108INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf 109INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf 110INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf 111INF UefiPayloadPkg/BlSupportDxe/BlSupportDxe.inf 112 113INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf 114# 115# PCI Support 116# 117INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf 118INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf 119 120# 121# ISA Support 122# 123INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf 124 125# 126# Console Support 127# 128INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf 129INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf 130INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf 131INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf 132INF UefiPayloadPkg/GraphicsOutputDxe/GraphicsOutputDxe.inf 133 134# 135# SCSI/ATA/IDE/DISK Support 136# 137INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf 138INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf 139INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf 140INF MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf 141INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf 142INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf 143INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf 144INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf 145 146INF FatPkg/EnhancedFatDxe/Fat.inf 147 148# 149# SD/eMMC Support 150# 151INF MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdMmcPciHcDxe.inf 152INF MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.inf 153INF MdeModulePkg/Bus/Sd/SdDxe/SdDxe.inf 154 155# 156# Usb Support 157# 158INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf 159INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf 160INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf 161INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf 162INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf 163INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf 164 165 166# 167# Shell 168# 169!if $(SHELL_TYPE) == BUILD_SHELL 170INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf 171INF ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf 172INF ShellPkg/Application/Shell/Shell.inf 173!endif 174 175!if $(SHELL_TYPE) == MIN_BIN 176!if $(ARCH) == IA32 177INF RuleOverride = BINARY USE = IA32 ShellBinPkg/MinUefiShell/MinUefiShell.inf 178!else 179INF RuleOverride = BINARY USE = X64 ShellBinPkg/MinUefiShell/MinUefiShell.inf 180!endif 181!endif 182 183!if $(SHELL_TYPE) == UEFI_BIN 184!if $(ARCH) == IA32 185INF RuleOverride = BINARY USE = IA32 ShellBinPkg/UefiShell/UefiShell.inf 186!else 187INF RuleOverride = BINARY USE = X64 ShellBinPkg/UefiShell/UefiShell.inf 188!endif 189!endif 190 191 192################################################################################ 193# 194# Rules are use with the [FV] section's module INF type to define 195# how an FFS file is created for a given INF file. The following Rule are the default 196# rules for the different module type. User can add the customized rules to define the 197# content of the FFS file. 198# 199################################################################################ 200 201[Rule.Common.SEC] 202 FILE SEC = $(NAMED_GUID) { 203 PE32 PE32 Align=32 $(INF_OUTPUT)/$(MODULE_NAME).efi 204 } 205 206[Rule.Common.PEI_CORE] 207 FILE PEI_CORE = $(NAMED_GUID) { 208 PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi 209 UI STRING ="$(MODULE_NAME)" Optional 210 VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 211 } 212 213[Rule.Common.PEIM] 214 FILE PEIM = $(NAMED_GUID) { 215 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 216 PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi 217 UI STRING="$(MODULE_NAME)" Optional 218 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 219 } 220 221[Rule.Common.DXE_CORE] 222 FILE DXE_CORE = $(NAMED_GUID) { 223 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 224 UI STRING="$(MODULE_NAME)" Optional 225 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 226 } 227 228[Rule.Common.DXE_DRIVER] 229 FILE DRIVER = $(NAMED_GUID) { 230 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 231 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 232 UI STRING="$(MODULE_NAME)" Optional 233 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 234 } 235 236[Rule.Common.DXE_RUNTIME_DRIVER] 237 FILE DRIVER = $(NAMED_GUID) { 238 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 239 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 240 UI STRING="$(MODULE_NAME)" Optional 241 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 242 } 243 244[Rule.Common.UEFI_DRIVER] 245 FILE DRIVER = $(NAMED_GUID) { 246 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 247 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 248 UI STRING="$(MODULE_NAME)" Optional 249 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 250 } 251 252[Rule.Common.UEFI_DRIVER.BINARY] 253 FILE DRIVER = $(NAMED_GUID) { 254 DXE_DEPEX DXE_DEPEX Optional |.depex 255 PE32 PE32 |.efi 256 UI STRING="$(MODULE_NAME)" Optional 257 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 258 } 259 260[Rule.Common.UEFI_APPLICATION] 261 FILE APPLICATION = $(NAMED_GUID) { 262 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 263 UI STRING="$(MODULE_NAME)" Optional 264 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 265 } 266 267[Rule.Common.UEFI_APPLICATION.BINARY] 268 FILE APPLICATION = $(NAMED_GUID) { 269 PE32 PE32 |.efi 270 UI STRING="$(MODULE_NAME)" Optional 271 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 272 } 273 274[Rule.Common.USER_DEFINED.ACPITABLE] 275 FILE FREEFORM = $(NAMED_GUID) { 276 RAW ACPI |.acpi 277 RAW ASL |.aml 278 } 279 280[Rule.Common.USER_DEFINED.CSM] 281 FILE FREEFORM = $(NAMED_GUID) { 282 RAW BIN |.bin 283 } 284 285[Rule.Common.SEC.RESET_VECTOR] 286 FILE RAW = $(NAMED_GUID) { 287 RAW RAW |.raw 288 } 289