blob: fb1dc26de349f125e6fcfd9f4aa2b7928a902885 [file] [log] [blame]
oliviermartin0bade102011-09-28 18:59:32 +00001# FLASH layout file for Beagle board.
2#
3# Copyright (c) 2009, Apple Inc. 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
29[FD.BeagleBoard_EFI]
Ard Biesheuvela1123292015-08-12 05:25:33 +000030BaseAddress = 0x80007DF8|gArmTokenSpaceGuid.PcdFdBaseAddress #The base address of the FLASH Device.
Olivier Martin55b0a242013-08-30 11:50:36 +000031Size = 0x000B0000|gArmTokenSpaceGuid.PcdFdSize #The size in bytes of the FLASH Device
oliviermartin0bade102011-09-28 18:59:32 +000032ErasePolarity = 1
33BlockSize = 0x1
Olivier Martin55b0a242013-08-30 11:50:36 +000034NumBlocks = 0xB0000
oliviermartin0bade102011-09-28 18:59:32 +000035
36################################################################################
37#
38# Following are lists of FD Region layout which correspond to the locations of different
39# images within the flash device.
40#
41# Regions must be defined in ascending order and may not overlap.
42#
43# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
44# the pipe "|" character, followed by the size of the region, also in hex with the leading
45# "0x" characters. Like:
46# Offset|Size
47# PcdOffsetCName|PcdSizeCName
48# RegionType <FV, DATA, or FILE>
49#
50################################################################################
Ard Biesheuvela1123292015-08-12 05:25:33 +0000510x00000000|0x00000200
52FILE = BeagleBoardPkg/ConfigurationHeader.bin
53
540x00000200|0x00000008
55DATA = {
56 0xF8, 0xFD, 0x0A, 0x00, # image size: 0xB0000 - 0x208 == 0xAFDF8
57 0x00, 0x80, 0x00, 0x80 # entry point: 0x80008000
58}
59
600x00000208|0x000AFDF8
oliviermartinff4d6bb2012-04-13 10:17:39 +000061gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
oliviermartin0bade102011-09-28 18:59:32 +000062FV = FVMAIN_COMPACT
63
64################################################################################
65#
66# FV Section
67#
68# [FV] section is used to define what components or modules are placed within a flash
69# device file. This section also defines order the components and modules are positioned
70# within the image. The [FV] section consists of define statements, set statements and
71# module statements.
72#
73################################################################################
74
75[FV.FvMain]
76BlockSize = 0x1
77NumBlocks = 0 # This FV gets compressed so make it just big enough
78FvAlignment = 8 # FV alignment and FV attributes setting.
79ERASE_POLARITY = 1
80MEMORY_MAPPED = TRUE
81STICKY_WRITE = TRUE
82LOCK_CAP = TRUE
83LOCK_STATUS = TRUE
84WRITE_DISABLED_CAP = TRUE
85WRITE_ENABLED_CAP = TRUE
86WRITE_STATUS = TRUE
87WRITE_LOCK_CAP = TRUE
88WRITE_LOCK_STATUS = TRUE
89READ_DISABLED_CAP = TRUE
90READ_ENABLED_CAP = TRUE
91READ_STATUS = TRUE
92READ_LOCK_CAP = TRUE
93READ_LOCK_STATUS = TRUE
Olivier Martine6c51ea2015-07-06 16:45:13 +000094FvNameGuid = d0dd3e90-343d-4cb3-8f69-772214989282
oliviermartin0bade102011-09-28 18:59:32 +000095
Ronald Cron3402aac2014-08-19 13:29:52 +000096 INF MdeModulePkg/Core/Dxe/DxeMain.inf
oliviermartin0bade102011-09-28 18:59:32 +000097
98 #
Ronald Cron3402aac2014-08-19 13:29:52 +000099 # PI DXE Drivers producing Architectural Protocols (EFI Services)
oliviermartin0bade102011-09-28 18:59:32 +0000100 #
101 INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
Ronald Cron3402aac2014-08-19 13:29:52 +0000102
oliviermartin0bade102011-09-28 18:59:32 +0000103 INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
104 INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
105 INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
106 INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
107 INF MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
108 INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
Ronald Cron3402aac2014-08-19 13:29:52 +0000109
oliviermartin0bade102011-09-28 18:59:32 +0000110 INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
111 INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
Ronald Cron3402aac2014-08-19 13:29:52 +0000112 INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
oliviermartin0bade102011-09-28 18:59:32 +0000113 INF EmbeddedPkg/SerialDxe/SerialDxe.inf
Ronald Cron3402aac2014-08-19 13:29:52 +0000114 INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
oliviermartin0bade102011-09-28 18:59:32 +0000115
116 INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
117 INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
118 INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
Ronald Cron3402aac2014-08-19 13:29:52 +0000119
oliviermartin89a9f542011-11-01 23:46:18 +0000120!if $(TARGET) == RELEASE
oliviermartin0bade102011-09-28 18:59:32 +0000121 #
122 # Semi-hosting filesystem
123 #
124 INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
oliviermartin89a9f542011-11-01 23:46:18 +0000125!endif
Ronald Cron3402aac2014-08-19 13:29:52 +0000126
oliviermartin0bade102011-09-28 18:59:32 +0000127 #
128 # Nand Flash
129 #
130 INF Omap35xxPkg/Flash/Flash.inf
131
132 #
133 # MMC/SD
134 #
135 INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
136 INF Omap35xxPkg/MmcHostDxe/MmcHostDxe.inf
Ronald Cron3402aac2014-08-19 13:29:52 +0000137
oliviermartin0bade102011-09-28 18:59:32 +0000138 #
139 # I2C
140 #
141 INF Omap35xxPkg/SmbusDxe/Smbus.inf
Ronald Cron3402aac2014-08-19 13:29:52 +0000142
oliviermartin0bade102011-09-28 18:59:32 +0000143 #
144 # SoC Drivers
145 #
146 INF Omap35xxPkg/Gpio/Gpio.inf
147 INF Omap35xxPkg/InterruptDxe/InterruptDxe.inf
Ronald Cron3402aac2014-08-19 13:29:52 +0000148 INF Omap35xxPkg/TimerDxe/TimerDxe.inf
oliviermartin0bade102011-09-28 18:59:32 +0000149 INF Omap35xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf
150
151 #
152 # Power IC
153 #
154 INF Omap35xxPkg/TPS65950Dxe/TPS65950.inf
155
156 #
157 # FAT filesystem + GPT/MBR partitioning
158 #
159 INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
160 INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
oliviermartine1772ad2012-09-27 15:31:54 +0000161 INF FatBinPkg/EnhancedFatDxe/Fat.inf
oliviermartin0bade102011-09-28 18:59:32 +0000162 INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
163
164 #
165 # USB Support
166 #
167
168 INF Omap35xxPkg/PciEmulation/PciEmulation.inf
169
oliviermartin0bade102011-09-28 18:59:32 +0000170 INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
171 INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
172 INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
173
174 #
Ronald Cron3402aac2014-08-19 13:29:52 +0000175 # UEFI application (Shell Embedded Boot Loader)
176 #
177 INF ShellBinPkg/UefiShell/UefiShell.inf
oliviermartin0bade102011-09-28 18:59:32 +0000178
179 #
180 # Bds
181 #
182 INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
183 INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
184 INF ArmPlatformPkg/Bds/Bds.inf
185
Ronald Cron0ead5ec2015-07-14 14:32:24 +0000186 # Legacy Linux Loader
187 INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
188
oliviermartin0bade102011-09-28 18:59:32 +0000189
190[FV.FVMAIN_COMPACT]
191FvAlignment = 8
192ERASE_POLARITY = 1
193MEMORY_MAPPED = TRUE
194STICKY_WRITE = TRUE
195LOCK_CAP = TRUE
196LOCK_STATUS = TRUE
197WRITE_DISABLED_CAP = TRUE
198WRITE_ENABLED_CAP = TRUE
199WRITE_STATUS = TRUE
200WRITE_LOCK_CAP = TRUE
201WRITE_LOCK_STATUS = TRUE
202READ_DISABLED_CAP = TRUE
203READ_ENABLED_CAP = TRUE
204READ_STATUS = TRUE
205READ_LOCK_CAP = TRUE
206READ_LOCK_STATUS = TRUE
207
208 INF ArmPlatformPkg/PrePi/PeiUniCore.inf
209
210 FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
211 SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
212 SECTION FV_IMAGE = FVMAIN
213 }
214 }
215
216
217################################################################################
218#
219# Rules are use with the [FV] section's module INF type to define
220# how an FFS file is created for a given INF file. The following Rule are the default
221# rules for the different module type. User can add the customized rules to define the
222# content of the FFS file.
223#
224################################################################################
225
226
227############################################################################
Ronald Cron3402aac2014-08-19 13:29:52 +0000228# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section #
oliviermartin0bade102011-09-28 18:59:32 +0000229############################################################################
230#
231#[Rule.Common.DXE_DRIVER]
232# FILE DRIVER = $(NAMED_GUID) {
233# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
234# COMPRESS PI_STD {
235# GUIDED {
236# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
237# UI STRING="$(MODULE_NAME)" Optional
238# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
239# }
240# }
241# }
242#
243############################################################################
244
245[Rule.Common.SEC]
246 FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
247 TE TE Align = 32 $(INF_OUTPUT)/$(MODULE_NAME).efi
248 }
249
250[Rule.Common.PEI_CORE]
251 FILE PEI_CORE = $(NAMED_GUID) {
252 TE TE $(INF_OUTPUT)/$(MODULE_NAME).efi
Ronald Cron3402aac2014-08-19 13:29:52 +0000253 UI STRING ="$(MODULE_NAME)" Optional
oliviermartin0bade102011-09-28 18:59:32 +0000254 }
255
256[Rule.Common.PEIM]
257 FILE PEIM = $(NAMED_GUID) {
258 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
259 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
Ronald Cron3402aac2014-08-19 13:29:52 +0000260 UI STRING="$(MODULE_NAME)" Optional
oliviermartin0bade102011-09-28 18:59:32 +0000261 }
262
263[Rule.Common.PEIM.TIANOCOMPRESSED]
264 FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
265 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
266 GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
267 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
268 UI STRING="$(MODULE_NAME)" Optional
269 }
270 }
271
272[Rule.Common.DXE_CORE]
273 FILE DXE_CORE = $(NAMED_GUID) {
274 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
275 UI STRING="$(MODULE_NAME)" Optional
276 }
277
278
279[Rule.Common.UEFI_DRIVER]
280 FILE DRIVER = $(NAMED_GUID) {
281 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
282 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
283 UI STRING="$(MODULE_NAME)" Optional
284 }
285
286[Rule.Common.DXE_DRIVER]
287 FILE DRIVER = $(NAMED_GUID) {
288 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
289 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
290 UI STRING="$(MODULE_NAME)" Optional
291 }
292
293[Rule.Common.DXE_RUNTIME_DRIVER]
294 FILE DRIVER = $(NAMED_GUID) {
295 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
296 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
297 UI STRING="$(MODULE_NAME)" Optional
298 }
299
oliviermartin0bade102011-09-28 18:59:32 +0000300[Rule.Common.UEFI_APPLICATION]
301 FILE APPLICATION = $(NAMED_GUID) {
Ronald Cron3402aac2014-08-19 13:29:52 +0000302 UI STRING ="$(MODULE_NAME)" Optional
oliviermartin0bade102011-09-28 18:59:32 +0000303 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
304 }
oliviermartine1772ad2012-09-27 15:31:54 +0000305
306[Rule.Common.UEFI_DRIVER.BINARY]
307 FILE DRIVER = $(NAMED_GUID) {
308 DXE_DEPEX DXE_DEPEX Optional |.depex
309 PE32 PE32 |.efi
310 UI STRING="$(MODULE_NAME)" Optional
311 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
312 }
313
314[Rule.Common.UEFI_APPLICATION.BINARY]
315 FILE APPLICATION = $(NAMED_GUID) {
316 PE32 PE32 |.efi
317 UI STRING="$(MODULE_NAME)" Optional
318 VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
319 }