1# 2# Copyright (c) 2012-2015, ARM Limited. All rights reserved. 3# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> 4# 5# This program and the accompanying materials 6# are licensed and made available under the terms and conditions of the BSD License 7# which accompanies this distribution. The full text of the license may be found at 8# http://opensource.org/licenses/bsd-license.php 9# 10# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12# 13 14################################################################################ 15# 16# FD Section 17# The [FD] Section is made up of the definition statements and a 18# description of what goes into the Flash Device Image. Each FD section 19# defines one flash "device" image. A flash device image may be one of 20# the following: Removable media bootable image (like a boot floppy 21# image,) an Option ROM image (that would be "flashed" into an add-in 22# card,) a System "Flash" image (that would be burned into a system's 23# flash) or an Update ("Capsule") image that will be used to update and 24# existing system flash. 25# 26################################################################################ 27 28[FD.ARM_VEXPRESS_CTA15A7_EFI] 29BaseAddress = 0xB0000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in remapped DRAM. 30Size = 0x000E0000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device 31ErasePolarity = 1 32BlockSize = 0x00001000 33NumBlocks = 0xE0 34 350x00000000|0x000E0000 36gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize 37FV = FVMAIN_COMPACT 38 39################################################################################ 40# 41# FV Section 42# 43# [FV] section is used to define what components or modules are placed within a flash 44# device file. This section also defines order the components and modules are positioned 45# within the image. The [FV] section consists of define statements, set statements and 46# module statements. 47# 48################################################################################ 49[FV.FvMain] 50BlockSize = 0x40 51NumBlocks = 0 # This FV gets compressed so make it just big enough 52FvAlignment = 8 # FV alignment and FV attributes setting. 53ERASE_POLARITY = 1 54MEMORY_MAPPED = TRUE 55STICKY_WRITE = TRUE 56LOCK_CAP = TRUE 57LOCK_STATUS = TRUE 58WRITE_DISABLED_CAP = TRUE 59WRITE_ENABLED_CAP = TRUE 60WRITE_STATUS = TRUE 61WRITE_LOCK_CAP = TRUE 62WRITE_LOCK_STATUS = TRUE 63READ_DISABLED_CAP = TRUE 64READ_ENABLED_CAP = TRUE 65READ_STATUS = TRUE 66READ_LOCK_CAP = TRUE 67READ_LOCK_STATUS = TRUE 68FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 69 70 INF MdeModulePkg/Core/Dxe/DxeMain.inf 71 72 # 73 # PI DXE Drivers producing Architectural Protocols (EFI Services) 74 # 75 INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf 76 INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf 77 INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf 78 INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf 79 INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf 80 INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf 81 INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf 82 INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf 83 INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf 84 INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf 85 86 INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf 87 88 # 89 # Multiple Console IO support 90 # 91 INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf 92 INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf 93 INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf 94 INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf 95 INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf 96 97 INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf 98 INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf 99 INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf 100 #INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf 101 INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf 102 INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf 103 104 # 105 # Platform 106 # 107 INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf 108 109 # 110 # Multimedia Card Interface 111 # 112 INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf 113 INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf 114 115 # 116 # Filesystems 117 # 118!ifndef $(ARM_BIGLITTLE_TC2) 119 INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf 120!endif 121 122 # 123 # FAT filesystem + GPT/MBR partitioning 124 # 125 INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf 126 INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf 127 INF FatBinPkg/EnhancedFatDxe/Fat.inf 128 INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf 129 130 # Versatile Express FileSystem 131 INF ArmPlatformPkg/FileSystem/BootMonFs/BootMonFs.inf 132 133 # 134 # USB support 135 # 136 INF EmbeddedPkg/Drivers/Isp1761UsbDxe/Isp1761UsbDxe.inf 137 138 # 139 # Android Fastboot 140 # 141 INF EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf 142 INF EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf 143 INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBootDxe.inf 144 145 # ACPI Support 146 INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf 147 148 # 149 # Networking stack 150 # 151 INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf 152 INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf 153 INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf 154 INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf 155 INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf 156 INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf 157 INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf 158 INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf 159 INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf 160 INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf 161 INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf 162 INF EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf 163 164 # 165 # UEFI application 166 # 167 INF ShellPkg/Application/Shell/Shell.inf 168 169 # 170 # Bds 171 # 172 INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf 173 INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf 174 INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf 175 INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf 176 INF MdeModulePkg/Application/UiApp/UiApp.inf 177 178 # 179 # TianoCore logo (splash screen) 180 # 181 FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { 182 SECTION RAW = MdeModulePkg/Logo/Logo.bmp 183 } 184 185 # FV Filesystem 186 INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf 187 188 # 189 # FDT installation 190 # 191 # The UEFI driver is at the end of the list of the driver to be dispatched 192 # after the device drivers (eg: Ethernet) to ensure we have support for them. 193 INF EmbeddedPkg/Drivers/FdtPlatformDxe/FdtPlatformDxe.inf 194 195 # Example to add a Device Tree to the Firmware Volume 196 #FILE FREEFORM = PCD(gArmVExpressTokenSpaceGuid.PcdFdtVExpressHwA15x2A7x3) { 197 # SECTION RAW = ArmPlatformPkg/ArmVExpressPkg/Fdts/vexpress-v2p-ca15_a7.dtb 198 #} 199 200[FV.FVMAIN_COMPACT] 201FvBaseAddress = 0xB0000000 202FvForceRebase = TRUE 203FvAlignment = 8 204ERASE_POLARITY = 1 205MEMORY_MAPPED = TRUE 206STICKY_WRITE = TRUE 207LOCK_CAP = TRUE 208LOCK_STATUS = TRUE 209WRITE_DISABLED_CAP = TRUE 210WRITE_ENABLED_CAP = TRUE 211WRITE_STATUS = TRUE 212WRITE_LOCK_CAP = TRUE 213WRITE_LOCK_STATUS = TRUE 214READ_DISABLED_CAP = TRUE 215READ_ENABLED_CAP = TRUE 216READ_STATUS = TRUE 217READ_LOCK_CAP = TRUE 218READ_LOCK_STATUS = TRUE 219 220 INF ArmPlatformPkg/PrePi/PeiMPCore.inf 221 222 FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { 223 SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { 224 SECTION FV_IMAGE = FVMAIN 225 } 226 } 227 228 229################################################################################ 230# 231# Rules are use with the [FV] section's module INF type to define 232# how an FFS file is created for a given INF file. The following Rule are the default 233# rules for the different module type. User can add the customized rules to define the 234# content of the FFS file. 235# 236################################################################################ 237 238 239############################################################################ 240# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section # 241############################################################################ 242# 243#[Rule.Common.DXE_DRIVER] 244# FILE DRIVER = $(NAMED_GUID) { 245# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 246# COMPRESS PI_STD { 247# GUIDED { 248# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 249# UI STRING="$(MODULE_NAME)" Optional 250# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 251# } 252# } 253# } 254# 255############################################################################ 256 257[Rule.Common.SEC] 258 FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED { 259 TE TE Align = 32 $(INF_OUTPUT)/$(MODULE_NAME).efi 260 } 261 262[Rule.Common.PEI_CORE] 263 FILE PEI_CORE = $(NAMED_GUID) { 264 TE TE $(INF_OUTPUT)/$(MODULE_NAME).efi 265 UI STRING ="$(MODULE_NAME)" Optional 266 } 267 268[Rule.Common.PEIM] 269 FILE PEIM = $(NAMED_GUID) { 270 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 271 TE TE $(INF_OUTPUT)/$(MODULE_NAME).efi 272 UI STRING="$(MODULE_NAME)" Optional 273 } 274 275[Rule.Common.PEIM.TIANOCOMPRESSED] 276 FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 { 277 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 278 GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE { 279 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 280 UI STRING="$(MODULE_NAME)" Optional 281 } 282 } 283 284[Rule.Common.DXE_CORE] 285 FILE DXE_CORE = $(NAMED_GUID) { 286 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 287 UI STRING="$(MODULE_NAME)" Optional 288 } 289 290[Rule.Common.UEFI_DRIVER] 291 FILE DRIVER = $(NAMED_GUID) { 292 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 293 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 294 UI STRING="$(MODULE_NAME)" Optional 295 } 296 297[Rule.Common.DXE_DRIVER] 298 FILE DRIVER = $(NAMED_GUID) { 299 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 300 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 301 UI STRING="$(MODULE_NAME)" Optional 302 } 303 304[Rule.Common.DXE_RUNTIME_DRIVER] 305 FILE DRIVER = $(NAMED_GUID) { 306 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex 307 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 308 UI STRING="$(MODULE_NAME)" Optional 309 } 310 311[Rule.Common.UEFI_APPLICATION] 312 FILE APPLICATION = $(NAMED_GUID) { 313 UI STRING ="$(MODULE_NAME)" Optional 314 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi 315 } 316 317[Rule.Common.UEFI_DRIVER.BINARY] 318 FILE DRIVER = $(NAMED_GUID) { 319 DXE_DEPEX DXE_DEPEX Optional |.depex 320 PE32 PE32 |.efi 321 UI STRING="$(MODULE_NAME)" Optional 322 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 323 } 324 325[Rule.Common.UEFI_APPLICATION.BINARY] 326 FILE APPLICATION = $(NAMED_GUID) { 327 PE32 PE32 |.efi 328 UI STRING="$(MODULE_NAME)" Optional 329 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) 330 } 331