• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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