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