1 # FLASH layout file for ARM RealView EB.
3 # Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
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
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.
14 ################################################################################
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.
26 ################################################################################
29 [FD.ArmRealViewEb_EFI]
30 BaseAddress = 0x40000000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress #The base address of the FLASH Device.
31 Size = 0x00200000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize #The size in bytes of the FLASH Device
33 BlockSize = 0x00010000
36 ################################################################################
38 # Following are lists of FD Region layout which correspond to the locations of different
39 # images within the flash device.
41 # Regions must be defined in ascending order and may not overlap.
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:
47 # PcdOffsetCName|PcdSizeCName
48 # RegionType <FV, DATA, or FILE>
50 ################################################################################
53 gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize
57 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
60 ## This is the EFI_FIRMWARE_VOLUME_HEADER
62 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
64 # FileSystemGuid: gEfiSystemNvDataFvGuid =
65 # { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
66 0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C,
67 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50,
69 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
70 #Signature "_FVH" #Attributes
71 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00,
72 #HeaderLength #CheckSum #ExtHeaderOffset #Reserved #Revision
73 0x48, 0x00, 0x36, 0x09, 0x00, 0x00, 0x00, 0x02,
74 #Blockmap[0]: 2 Blocks * 0x10000 Bytes / Block
75 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
77 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
78 ## This is the VARIABLE_STORE_HEADER
79 #Signature: gEfiVariableGuid =
80 # { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}
81 0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41,
82 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d,
83 #Size: 0xc000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xBFB8
84 # This can speed up the Variable Dispatch a bit.
85 0xB8, 0xBF, 0x00, 0x00,
86 #FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32
87 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
90 ################################################################################
94 # [FV] section is used to define what components or modules are placed within a flash
95 # device file. This section also defines order the components and modules are positioned
96 # within the image. The [FV] section consists of define statements, set statements and
99 ################################################################################
103 NumBlocks = 0 # This FV gets compressed so make it just big enough
104 FvAlignment = 8 # FV alignment and FV attributes setting.
110 WRITE_DISABLED_CAP = TRUE
111 WRITE_ENABLED_CAP = TRUE
113 WRITE_LOCK_CAP = TRUE
114 WRITE_LOCK_STATUS = TRUE
115 READ_DISABLED_CAP = TRUE
116 READ_ENABLED_CAP = TRUE
119 READ_LOCK_STATUS = TRUE
121 #INF MdeModulePkg/Core/Dxe/DxeMain.inf
124 # PI DXE Drivers producing Architectural Protocols (EFI Services)
126 INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
128 INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
129 INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
130 INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
131 INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
132 INF MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
133 INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
135 INF EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
137 INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
138 INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
139 INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
141 INF ArmRealViewEbPkg/InterruptDxe/InterruptDxe.inf
142 INF ArmRealViewEbPkg/TimerDxe/TimerDxe.inf
145 # Semi-hosting filesystem
147 INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
150 # FAT filesystem + GPT/MBR partitioning
152 INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
153 INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
154 INF FatPkg/EnhancedFatDxe/Fat.inf
155 INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
158 # UEFI application (Shell Embedded Boot Loader)
160 INF EmbeddedPkg/Ebl/Ebl.inf
166 INF ArmRealViewEbPkg/Bds/Bds.inf
176 WRITE_DISABLED_CAP = TRUE
177 WRITE_ENABLED_CAP = TRUE
179 WRITE_LOCK_CAP = TRUE
180 WRITE_LOCK_STATUS = TRUE
181 READ_DISABLED_CAP = TRUE
182 READ_ENABLED_CAP = TRUE
185 READ_LOCK_STATUS = TRUE
187 INF ArmRealViewEbPkg/SecForPei/Sec.inf
188 INF MdeModulePkg/Core/Pei/PeiMain.inf
189 INF ArmPkg/Drivers/CpuPei/CpuPei.inf
190 INF ArmRealViewEbPkg/PlatformPei/PlatformPei.inf
191 INF ArmRealViewEbPkg/MemoryInitPei/MemoryInitPei.inf
192 INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
193 INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
194 INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
195 INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
197 # note: this needs to back in fvmaincompressed
198 # need to add decompression of fvmain
199 INF MdeModulePkg/Core/Dxe/DxeMain.inf
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
208 ################################################################################
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.
215 ################################################################################
218 ############################################################################
219 # Example of a DXE_DRIVER FFS file with a Checksum encapsulation section #
220 ############################################################################
222 #[Rule.Common.DXE_DRIVER]
223 # FILE DRIVER = $(NAMED_GUID) {
224 # DXE_DEPEX DXE_DEPEX Optional |.depex
228 # UI STRING="$(MODULE_NAME)" Optional
229 # VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
234 ############################################################################
237 FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
238 TE TE Align = 8 |.efi
241 [Rule.Common.PEI_CORE]
242 FILE PEI_CORE = $(NAMED_GUID) {
244 UI STRING ="$(MODULE_NAME)" Optional
248 FILE PEIM = $(NAMED_GUID) {
249 PEI_DEPEX PEI_DEPEX Optional |.depex
251 UI STRING="$(MODULE_NAME)" Optional
254 [Rule.Common.PEIM.TIANOCOMPRESSED]
255 FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
256 PEI_DEPEX PEI_DEPEX Optional |.depex
257 GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
259 UI STRING="$(MODULE_NAME)" Optional
263 [Rule.Common.DXE_CORE]
264 FILE DXE_CORE = $(NAMED_GUID) {
266 UI STRING="$(MODULE_NAME)" Optional
270 [Rule.Common.UEFI_DRIVER]
271 FILE DRIVER = $(NAMED_GUID) {
272 DXE_DEPEX DXE_DEPEX Optional |.depex
274 UI STRING="$(MODULE_NAME)" Optional
277 [Rule.Common.DXE_DRIVER]
278 FILE DRIVER = $(NAMED_GUID) {
279 DXE_DEPEX DXE_DEPEX Optional |.depex
281 UI STRING="$(MODULE_NAME)" Optional
284 [Rule.Common.DXE_RUNTIME_DRIVER]
285 FILE DRIVER = $(NAMED_GUID) {
286 DXE_DEPEX DXE_DEPEX Optional |.depex
288 UI STRING="$(MODULE_NAME)" Optional
292 [Rule.Common.UEFI_APPLICATION]
293 FILE APPLICATION = $(NAMED_GUID) {
294 UI STRING ="$(MODULE_NAME)" Optional