1# 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]
30BaseAddress   = 0x80008000|gArmTokenSpaceGuid.PcdFdBaseAddress  #The base address of the FLASH Device.
31Size          = 0x000B0000|gArmTokenSpaceGuid.PcdFdSize         #The size in bytes of the FLASH Device
32ErasePolarity = 1
33BlockSize     = 0x1
34NumBlocks     = 0xB0000
35
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################################################################################
510x00000000|0x000B0000
52gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
53FV = FVMAIN_COMPACT
54
55################################################################################
56#
57# FV Section
58#
59# [FV] section is used to define what components or modules are placed within a flash
60# device file.  This section also defines order the components and modules are positioned
61# within the image.  The [FV] section consists of define statements, set statements and
62# module statements.
63#
64################################################################################
65
66[FV.FvMain]
67BlockSize          = 0x1
68NumBlocks          = 0         # This FV gets compressed so make it just big enough
69FvAlignment        = 8         # FV alignment and FV attributes setting.
70ERASE_POLARITY     = 1
71MEMORY_MAPPED      = TRUE
72STICKY_WRITE       = TRUE
73LOCK_CAP           = TRUE
74LOCK_STATUS        = TRUE
75WRITE_DISABLED_CAP = TRUE
76WRITE_ENABLED_CAP  = TRUE
77WRITE_STATUS       = TRUE
78WRITE_LOCK_CAP     = TRUE
79WRITE_LOCK_STATUS  = TRUE
80READ_DISABLED_CAP  = TRUE
81READ_ENABLED_CAP   = TRUE
82READ_STATUS        = TRUE
83READ_LOCK_CAP      = TRUE
84READ_LOCK_STATUS   = TRUE
85FvNameGuid         = d0dd3e90-343d-4cb3-8f69-772214989282
86
87  INF MdeModulePkg/Core/Dxe/DxeMain.inf
88
89  #
90  # PI DXE Drivers producing Architectural Protocols (EFI Services)
91  #
92  INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
93
94  INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
95  INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
96  INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
97  INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
98  INF MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
99  INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
100
101  INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
102  INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
103  INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
104  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
105  INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
106
107  INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
108  INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
109  INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
110
111!if $(TARGET) == RELEASE
112  #
113  # Semi-hosting filesystem
114  #
115  INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
116!endif
117
118  #
119  # Nand Flash
120  #
121  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/Flash/Flash.inf
122
123  #
124  # MMC/SD
125  #
126  INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
127  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/MmcHostDxe/MmcHostDxe.inf
128
129  #
130  # I2C
131  #
132  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/SmbusDxe/Smbus.inf
133
134  #
135  # SoC Drivers
136  #
137  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/Gpio/Gpio.inf
138  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/InterruptDxe/InterruptDxe.inf
139  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/TimerDxe/TimerDxe.inf
140  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf
141
142  #
143  # Power IC
144  #
145  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/TPS65950Dxe/TPS65950.inf
146
147  #
148  # FAT filesystem + GPT/MBR partitioning
149  #
150  INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
151  INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
152  INF FatBinPkg/EnhancedFatDxe/Fat.inf
153  INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
154
155  #
156  # USB Support
157  #
158
159  INF OpenPlatformPkg/Chips/TexasInstruments/Omap35xx/PciEmulation/PciEmulation.inf
160
161  INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
162  INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
163  INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
164
165  #
166  # UEFI application (Shell Embedded Boot Loader)
167  #
168  INF ShellBinPkg/UefiShell/UefiShell.inf
169
170  #
171  # Bds
172  #
173  INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
174  INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
175  INF ArmPlatformPkg/Bds/Bds.inf
176
177  # Legacy Linux Loader
178  INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
179
180
181[FV.FVMAIN_COMPACT]
182FvAlignment        = 8
183ERASE_POLARITY     = 1
184MEMORY_MAPPED      = TRUE
185STICKY_WRITE       = TRUE
186LOCK_CAP           = TRUE
187LOCK_STATUS        = TRUE
188WRITE_DISABLED_CAP = TRUE
189WRITE_ENABLED_CAP  = TRUE
190WRITE_STATUS       = TRUE
191WRITE_LOCK_CAP     = TRUE
192WRITE_LOCK_STATUS  = TRUE
193READ_DISABLED_CAP  = TRUE
194READ_ENABLED_CAP   = TRUE
195READ_STATUS        = TRUE
196READ_LOCK_CAP      = TRUE
197READ_LOCK_STATUS   = TRUE
198
199  INF ArmPlatformPkg/PrePi/PeiUniCore.inf
200
201  FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
202    SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
203      SECTION FV_IMAGE = FVMAIN
204    }
205  }
206
207
208################################################################################
209#
210# Rules are use with the [FV] section's module INF type to define
211# how an FFS file is created for a given INF file. The following Rule are the default
212# rules for the different module type. User can add the customized rules to define the
213# content of the FFS file.
214#
215################################################################################
216
217
218############################################################################
219# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section   #
220############################################################################
221#
222#[Rule.Common.DXE_DRIVER]
223#  FILE DRIVER = $(NAMED_GUID) {
224#    DXE_DEPEX    DXE_DEPEX               Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
225#    COMPRESS PI_STD {
226#      GUIDED {
227#        PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
228#        UI       STRING="$(MODULE_NAME)" Optional
229#        VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
230#      }
231#    }
232#  }
233#
234############################################################################
235
236[Rule.Common.SEC]
237  FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
238    TE  TE    Align = 32                $(INF_OUTPUT)/$(MODULE_NAME).efi
239  }
240
241[Rule.Common.PEI_CORE]
242  FILE PEI_CORE = $(NAMED_GUID) {
243    TE     TE                           $(INF_OUTPUT)/$(MODULE_NAME).efi
244    UI     STRING ="$(MODULE_NAME)" Optional
245  }
246
247[Rule.Common.PEIM]
248  FILE PEIM = $(NAMED_GUID) {
249     PEI_DEPEX PEI_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
250     PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
251     UI       STRING="$(MODULE_NAME)" Optional
252  }
253
254[Rule.Common.PEIM.TIANOCOMPRESSED]
255  FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
256    PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
257    GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
258      PE32      PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
259      UI        STRING="$(MODULE_NAME)" Optional
260    }
261  }
262
263[Rule.Common.DXE_CORE]
264  FILE DXE_CORE = $(NAMED_GUID) {
265    PE32     PE32                       $(INF_OUTPUT)/$(MODULE_NAME).efi
266    UI       STRING="$(MODULE_NAME)" Optional
267  }
268
269
270[Rule.Common.UEFI_DRIVER]
271  FILE DRIVER = $(NAMED_GUID) {
272    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
273    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
274    UI           STRING="$(MODULE_NAME)" Optional
275  }
276
277[Rule.Common.DXE_DRIVER]
278  FILE DRIVER = $(NAMED_GUID) {
279    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
280    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
281    UI           STRING="$(MODULE_NAME)" Optional
282  }
283
284[Rule.Common.DXE_RUNTIME_DRIVER]
285  FILE DRIVER = $(NAMED_GUID) {
286    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
287    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
288    UI           STRING="$(MODULE_NAME)" Optional
289  }
290
291[Rule.Common.UEFI_APPLICATION]
292  FILE APPLICATION = $(NAMED_GUID) {
293    UI     STRING ="$(MODULE_NAME)" Optional
294    PE32   PE32                         $(INF_OUTPUT)/$(MODULE_NAME).efi
295  }
296
297[Rule.Common.UEFI_DRIVER.BINARY]
298  FILE DRIVER = $(NAMED_GUID) {
299    DXE_DEPEX DXE_DEPEX Optional      |.depex
300    PE32      PE32                    |.efi
301    UI        STRING="$(MODULE_NAME)" Optional
302    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
303  }
304
305[Rule.Common.UEFI_APPLICATION.BINARY]
306  FILE APPLICATION = $(NAMED_GUID) {
307    PE32      PE32                    |.efi
308    UI        STRING="$(MODULE_NAME)" Optional
309    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
310  }
311