blob: c6aa87af30c805e22912c1f6f4ae6ee54f13a495 [file] [log] [blame]
AJFISH2ef2b012009-12-06 01:57:05 +00001# FLASH layout file for Beagle board.
2#
hhtian1ebd6c12010-04-29 12:24:22 +00003# Copyright (c) 2009, Apple Inc. All rights reserved.<BR>
AJFISH2ef2b012009-12-06 01:57:05 +00004#
hhtian1ebd6c12010-04-29 12:24:22 +00005# This program and the accompanying materials
AJFISH2ef2b012009-12-06 01:57:05 +00006# 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]
AJFISH05d612f2010-01-08 21:08:31 +000030####BaseAddress = 0x80208000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress #The base address of the FLASH Device.
AJFISH2ef2b012009-12-06 01:57:05 +000031BaseAddress = 0x80008000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress #The base address of the FLASH Device.
32Size = 0x00080000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize #The size in bytes of the FLASH Device
33ErasePolarity = 1
andrewfish785e5972010-12-08 19:58:48 +000034BlockSize = 0x1
35NumBlocks = 0x80000
AJFISH2ef2b012009-12-06 01:57:05 +000036
37################################################################################
38#
39# Following are lists of FD Region layout which correspond to the locations of different
40# images within the flash device.
41#
42# Regions must be defined in ascending order and may not overlap.
43#
44# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
45# the pipe "|" character, followed by the size of the region, also in hex with the leading
46# "0x" characters. Like:
47# Offset|Size
48# PcdOffsetCName|PcdSizeCName
49# RegionType <FV, DATA, or FILE>
50#
51################################################################################
oliviermartin63cea7c2011-07-06 16:46:44 +000052!if $(EDK2_SECOND_STAGE_BOOTOLADER) == 1
530x00000000|0x00080000
54!else
AJFISH2ef2b012009-12-06 01:57:05 +000055# 512 bytes of configuration header & 8 bytes of image header
560x00000000|0x00000208
57
andrewfish785e5972010-12-08 19:58:48 +0000580x00000208|0x0007FDF8
oliviermartin63cea7c2011-07-06 16:46:44 +000059!endif
AJFISH2ef2b012009-12-06 01:57:05 +000060gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize
61FV = FVMAIN_COMPACT
62
63################################################################################
64#
65# FV Section
66#
67# [FV] section is used to define what components or modules are placed within a flash
68# device file. This section also defines order the components and modules are positioned
69# within the image. The [FV] section consists of define statements, set statements and
70# module statements.
71#
72################################################################################
73
74[FV.FvMain]
andrewfish785e5972010-12-08 19:58:48 +000075BlockSize = 0x1
andrewfish8c3f3872010-01-28 23:45:38 +000076NumBlocks = 0 # This FV gets compressed so make it just big enough
77FvAlignment = 8 # FV alignment and FV attributes setting.
AJFISH2ef2b012009-12-06 01:57:05 +000078ERASE_POLARITY = 1
79MEMORY_MAPPED = TRUE
80STICKY_WRITE = TRUE
81LOCK_CAP = TRUE
82LOCK_STATUS = TRUE
83WRITE_DISABLED_CAP = TRUE
84WRITE_ENABLED_CAP = TRUE
85WRITE_STATUS = TRUE
86WRITE_LOCK_CAP = TRUE
87WRITE_LOCK_STATUS = TRUE
88READ_DISABLED_CAP = TRUE
89READ_ENABLED_CAP = TRUE
90READ_STATUS = TRUE
91READ_LOCK_CAP = TRUE
92READ_LOCK_STATUS = TRUE
93
andrewfish8c3f3872010-01-28 23:45:38 +000094 INF MdeModulePkg/Core/Dxe/DxeMain.inf
95
AJFISH2ef2b012009-12-06 01:57:05 +000096 #
97 # PI DXE Drivers producing Architectural Protocols (EFI Services)
98 #
99 INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
100
101 INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
102 INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
103 INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
104 INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
105 INF MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
106 INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
107
108 INF EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
oliviermartin3d15d6c2011-09-22 23:24:54 +0000109 INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
110 INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
111 INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
112 INF EmbeddedPkg/SerialDxe/SerialDxe.inf
113 INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000114
115 INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
116 INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
andrewfish47d5cc92010-01-30 20:41:56 +0000117 INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000118
119 #
120 # Semi-hosting filesystem
121 #
122 INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
123
124 #
125 # Nand Flash
126 #
andrewfishcb0f9ff2010-01-28 21:34:30 +0000127 INF Omap35xxPkg/Flash/Flash.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000128
129 #
130 # MMC/SD
131 #
andrewfishcb0f9ff2010-01-28 21:34:30 +0000132 INF Omap35xxPkg/MMCHSDxe/MMCHS.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000133
134 #
135 # I2C
136 #
andrewfishcb0f9ff2010-01-28 21:34:30 +0000137 INF Omap35xxPkg/SmbusDxe/Smbus.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000138
139 #
140 # SoC Drivers
141 #
andrewfishcb0f9ff2010-01-28 21:34:30 +0000142 INF Omap35xxPkg/Gpio/Gpio.inf
143 INF Omap35xxPkg/InterruptDxe/InterruptDxe.inf
144 INF Omap35xxPkg/TimerDxe/TimerDxe.inf
oliviermartin3d15d6c2011-09-22 23:24:54 +0000145 INF Omap35xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000146
147 #
148 # Power IC
149 #
andrewfishcb0f9ff2010-01-28 21:34:30 +0000150 INF Omap35xxPkg/TPS65950Dxe/TPS65950.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000151
152 #
153 # FAT filesystem + GPT/MBR partitioning
154 #
155 INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
156 INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
157 INF FatPkg/EnhancedFatDxe/Fat.inf
158 INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
159
160 #
161 # USB Support
162 #
163
andrewfishcb0f9ff2010-01-28 21:34:30 +0000164 INF Omap35xxPkg/PciEmulation/PciEmulation.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000165
166 #NOTE: Open source EHCI stack doesn't work on Beagleboard.
167 #NOTE: UsbBus and UsbMassStorage don't work using iPhond SDK tool chain.
andrewfish9e048982010-05-27 23:12:27 +0000168 INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
169 INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
170 INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000171
172 #
173 # UEFI application (Shell Embedded Boot Loader)
174 #
175 INF EmbeddedPkg/Ebl/Ebl.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000176
177 #
178 # Bds
179 #
oliviermartin60884a02011-07-04 13:43:58 +0000180 INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
181 INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
182 INF ArmPlatformPkg/Bds/Bds.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000183
AJFISH2ef2b012009-12-06 01:57:05 +0000184
185
186[FV.FVMAIN_COMPACT]
187FvAlignment = 8
188ERASE_POLARITY = 1
189MEMORY_MAPPED = TRUE
190STICKY_WRITE = TRUE
191LOCK_CAP = TRUE
192LOCK_STATUS = TRUE
193WRITE_DISABLED_CAP = TRUE
194WRITE_ENABLED_CAP = TRUE
195WRITE_STATUS = TRUE
196WRITE_LOCK_CAP = TRUE
197WRITE_LOCK_STATUS = TRUE
198READ_DISABLED_CAP = TRUE
199READ_ENABLED_CAP = TRUE
200READ_STATUS = TRUE
201READ_LOCK_CAP = TRUE
202READ_LOCK_STATUS = TRUE
203
204 INF BeagleBoardPkg/Sec/Sec.inf
AJFISH2ef2b012009-12-06 01:57:05 +0000205
206 FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
207 SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
208 SECTION FV_IMAGE = FVMAIN
209 }
210 }
211
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
223############################################################################
224# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section #
225############################################################################
226#
227#[Rule.Common.DXE_DRIVER]
228# FILE DRIVER = $(NAMED_GUID) {
oliviermartin6740ea72011-09-06 18:41:55 +0000229# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
AJFISH2ef2b012009-12-06 01:57:05 +0000230# COMPRESS PI_STD {
231# GUIDED {
oliviermartin6740ea72011-09-06 18:41:55 +0000232# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000233# UI STRING="$(MODULE_NAME)" Optional
234# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
235# }
236# }
237# }
238#
239############################################################################
240
241[Rule.Common.SEC]
242 FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
oliviermartin6740ea72011-09-06 18:41:55 +0000243 TE TE Align = 32 $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000244 }
245
246[Rule.Common.PEI_CORE]
247 FILE PEI_CORE = $(NAMED_GUID) {
oliviermartin6740ea72011-09-06 18:41:55 +0000248 TE TE $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000249 UI STRING ="$(MODULE_NAME)" Optional
250 }
251
252[Rule.Common.PEIM]
253 FILE PEIM = $(NAMED_GUID) {
oliviermartin6740ea72011-09-06 18:41:55 +0000254 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
255 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000256 UI STRING="$(MODULE_NAME)" Optional
257 }
258
259[Rule.Common.PEIM.TIANOCOMPRESSED]
260 FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
oliviermartin6740ea72011-09-06 18:41:55 +0000261 PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
AJFISH2ef2b012009-12-06 01:57:05 +0000262 GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
oliviermartin6740ea72011-09-06 18:41:55 +0000263 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000264 UI STRING="$(MODULE_NAME)" Optional
265 }
266 }
267
268[Rule.Common.DXE_CORE]
269 FILE DXE_CORE = $(NAMED_GUID) {
oliviermartin6740ea72011-09-06 18:41:55 +0000270 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
andrewfish8c3f3872010-01-28 23:45:38 +0000271 UI STRING="$(MODULE_NAME)" Optional
AJFISH2ef2b012009-12-06 01:57:05 +0000272 }
273
274
275[Rule.Common.UEFI_DRIVER]
276 FILE DRIVER = $(NAMED_GUID) {
oliviermartin6740ea72011-09-06 18:41:55 +0000277 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
278 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000279 UI STRING="$(MODULE_NAME)" Optional
280 }
281
282[Rule.Common.DXE_DRIVER]
283 FILE DRIVER = $(NAMED_GUID) {
oliviermartin6740ea72011-09-06 18:41:55 +0000284 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
285 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000286 UI STRING="$(MODULE_NAME)" Optional
287 }
288
289[Rule.Common.DXE_RUNTIME_DRIVER]
290 FILE DRIVER = $(NAMED_GUID) {
oliviermartin6740ea72011-09-06 18:41:55 +0000291 DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
292 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000293 UI STRING="$(MODULE_NAME)" Optional
294 }
295
296
297[Rule.Common.UEFI_APPLICATION]
298 FILE APPLICATION = $(NAMED_GUID) {
299 UI STRING ="$(MODULE_NAME)" Optional
oliviermartin6740ea72011-09-06 18:41:55 +0000300 PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
AJFISH2ef2b012009-12-06 01:57:05 +0000301 }