• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2#  Copyright (c) 2014 - 2016, AMD Incorporated. All rights reserved.
3#
4#  This program and the accompanying materials
5#  are licensed and made available under the terms and conditions of the BSD License
6#  which accompanies this distribution.  The full text of the license may be found at
7#  http://opensource.org/licenses/bsd-license.php
8#
9#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11#
12
13################################################################################
14#
15# FD Section
16# The [FD] Section is made up of the definition statements and a
17# description of what goes into  the Flash Device Image.  Each FD section
18# defines one flash "device" image.  A flash device image may be one of
19# the following: Removable media bootable image (like a boot floppy
20# image,) an Option ROM image (that would be "flashed" into an add-in
21# card,) a System "Flash"  image (that would be burned into a system's
22# flash) or an Update ("Capsule") image that will be used to update and
23# existing system flash.
24#
25################################################################################
26
27[FD.STYX_ROM]
28BaseAddress   = 0x8000C80000|gArmTokenSpaceGuid.PcdFdBaseAddress  # The base address of the Firmware in NOR Flash.
29Size          = 0x00500000|gArmTokenSpaceGuid.PcdFdSize         # The size in bytes of the FLASH Device
30ErasePolarity = 1
31
32# This one is tricky, it must be: BlockSize * NumBlocks = Size
33BlockSize     = 0x00001000
34NumBlocks     = 0x500
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################################################################################
51
520x00000000|0x00200000
53FILE = OpenPlatformPkg/Platforms/AMD/Styx/OverdriveBoard/Binary/PreUefiFirmware.bin
54
550x00200000|0x00260000
56gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
57FV = STYX_EFI
58
59!include OpenPlatformPkg/Platforms/AMD/Styx/Common/Varstore.fdf.inc
60
61################################################################################
62#
63# FV Section
64#
65# [FV] section is used to define what components or modules are placed within a flash
66# device file.  This section also defines order the components and modules are positioned
67# within the image.  The [FV] section consists of define statements, set statements and
68# module statements.
69#
70################################################################################
71
72[FV.FvMain]
73FvNameGuid         = 94f067ae-2aa6-4b30-aa07-4e47fe518bb8
74BlockSize          = 0x40
75NumBlocks          = 0         # This FV gets compressed so make it just big enough
76FvAlignment        = 16        # FV alignment and FV attributes setting.
77ERASE_POLARITY     = 1
78MEMORY_MAPPED      = TRUE
79STICKY_WRITE       = TRUE
80LOCK_CAP           = TRUE
81LOCK_STATUS        = TRUE
82WRITE_DISABLED_CAP = TRUE
83WRITE_ENABLED_CAP  = TRUE
84WRITE_STATUS       = TRUE
85WRITE_LOCK_CAP     = TRUE
86WRITE_LOCK_STATUS  = TRUE
87READ_DISABLED_CAP  = TRUE
88READ_ENABLED_CAP   = TRUE
89READ_STATUS        = TRUE
90READ_LOCK_CAP      = TRUE
91READ_LOCK_STATUS   = TRUE
92
93  INF MdeModulePkg/Core/Dxe/DxeMain.inf
94  INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
95
96  #
97  # PI DXE Drivers producing Architectural Protocols (EFI Services)
98  #
99  INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
100  INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
101  INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
102  INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
103  INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
104  INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
105  INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
106  INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
107  INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
108  INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
109
110  INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
111  INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
112
113  #
114  # Console IO support
115  #
116  INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
117  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
118
119  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
120  INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
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 FatPkg/EnhancedFatDxe/Fat.inf
128  INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
129
130  #
131  # Environment Variables Protocol
132  #
133  INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
134  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxSpiFvDxe/StyxSpiFvDxe.inf
135
136  #
137  # Iscp support
138  #
139  INF AmdModulePkg/Iscp/IscpDxe.inf
140
141  #
142  # FDT support
143  #
144  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/FdtDxe/FdtDxe.inf
145
146  FILE FREEFORM = PCD(gAmdStyxTokenSpaceGuid.PcdStyxFdt) {
147    SECTION RAW = OpenPlatformPkg/Platforms/AMD/Styx/OverdriveBoard/FdtBlob/styx-overdrive.dtb
148  }
149
150  #
151  # PCI support
152  #
153  INF AmdModulePkg/Gionb/Gionb.inf
154  INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
155  INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
156  INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
157
158  #
159  # AHCI Support
160  #
161  INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
162  INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
163  INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
164  INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
165  INF MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf
166  INF MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf
167  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxSataPlatformDxe/StyxSataPlatformDxe.inf
168
169  #
170  # USB Support
171  #
172  INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
173  INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
174  INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
175  INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
176  INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
177
178!if $(DO_XGBE)
179  #
180  # SNP support
181  #
182  INF AmdModulePkg/SnpDxe/SnpDxePort0.inf
183  INF AmdModulePkg/SnpDxe/SnpDxePort1.inf
184!endif
185
186  #
187  # Networking stack
188  #
189  INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
190  INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
191  INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
192  INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
193# INF MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
194  INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
195  INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
196  INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
197  INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
198  INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
199  INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
200  INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
201## Bug https://bugs.linaro.org/show_bug.cgi?id=2239
202# INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
203
204  #
205  # Core Info
206  #
207  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf
208
209  #
210  # ACPI Support
211  #
212  INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
213  INF RuleOverride=ACPITABLE OpenPlatformPkg/Platforms/AMD/Styx/AcpiTables/AcpiAml.inf
214  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
215
216  #
217  # MP-Boot: ACPI[Parking Protocol] + FDT[Spin-Table]
218  #
219  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/MpBootDxe/MpBootDxe.inf
220
221  #
222  # SMBIOS Support
223  #
224  INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
225  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
226
227  #
228  # UEFI application (Shell Embedded Boot Loader)
229  #
230  INF ShellPkg/Application/Shell/Shell.inf
231
232  #
233  # Bds
234  #
235  INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
236  INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
237  INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
238  INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
239  INF MdeModulePkg/Application/UiApp/UiApp.inf
240
241  #
242  # Crypto Accelerator support (RNG only)
243  #
244  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxRngDxe/StyxRngDxe.inf
245
246[FV.STYX_EFI]
247FvAlignment        = 16
248ERASE_POLARITY     = 1
249MEMORY_MAPPED      = TRUE
250STICKY_WRITE       = TRUE
251LOCK_CAP           = TRUE
252LOCK_STATUS        = TRUE
253WRITE_DISABLED_CAP = TRUE
254WRITE_ENABLED_CAP  = TRUE
255WRITE_STATUS       = TRUE
256WRITE_LOCK_CAP     = TRUE
257WRITE_LOCK_STATUS  = TRUE
258READ_DISABLED_CAP  = TRUE
259READ_ENABLED_CAP   = TRUE
260READ_STATUS        = TRUE
261READ_LOCK_CAP      = TRUE
262READ_LOCK_STATUS   = TRUE
263
264  INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
265  INF MdeModulePkg/Core/Pei/PeiMain.inf
266  INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
267  INF AmdModulePkg/Iscp/IscpPei.inf
268  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf
269  INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
270  INF ArmPkg/Drivers/CpuPei/CpuPei.inf
271  INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
272  INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
273  INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
274
275  FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
276    SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
277      SECTION FV_IMAGE = FVMAIN
278    }
279  }
280
281
282################################################################################
283#
284# Rules are use with the [FV] section's module INF type to define
285# how an FFS file is created for a given INF file. The following Rule are the default
286# rules for the different module type. User can add the customized rules to define the
287# content of the FFS file.
288#
289################################################################################
290
291
292############################################################################
293# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section   #
294############################################################################
295#
296#[Rule.Common.DXE_DRIVER]
297#  FILE DRIVER = $(NAMED_GUID) {
298#    DXE_DEPEX    DXE_DEPEX               Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
299#    COMPRESS PI_STD {
300#      GUIDED {
301#        PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
302#        UI       STRING="$(MODULE_NAME)" Optional
303#        VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
304#      }
305#    }
306#  }
307#
308############################################################################
309
310[Rule.Common.SEC]
311  FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
312    TE  TE Align = 4K                   $(INF_OUTPUT)/$(MODULE_NAME).efi
313  }
314
315[Rule.Common.PEI_CORE]
316  FILE PEI_CORE = $(NAMED_GUID) {
317    TE     TE Align = Auto              $(INF_OUTPUT)/$(MODULE_NAME).efi
318    UI     STRING ="$(MODULE_NAME)" Optional
319  }
320
321[Rule.Common.PEIM]
322  FILE PEIM = $(NAMED_GUID) {
323     PEI_DEPEX PEI_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
324     TE       TE Align = Auto           $(INF_OUTPUT)/$(MODULE_NAME).efi
325     UI       STRING="$(MODULE_NAME)" Optional
326  }
327
328[Rule.Common.PEIM.Binary]
329  FILE PEIM = $(NAMED_GUID) {
330     PEI_DEPEX PEI_DEPEX Optional       |.depex
331     TE       TE Align = Auto           |.efi
332     UI       STRING="$(MODULE_NAME)" Optional
333  }
334
335[Rule.Common.PEIM.TIANOCOMPRESSED]
336  FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
337    PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
338    GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
339      PE32      PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
340      UI        STRING="$(MODULE_NAME)" Optional
341    }
342  }
343
344[Rule.Common.DXE_CORE]
345  FILE DXE_CORE = $(NAMED_GUID) {
346    PE32     PE32                       $(INF_OUTPUT)/$(MODULE_NAME).efi
347    UI       STRING="$(MODULE_NAME)" Optional
348  }
349
350[Rule.Common.UEFI_DRIVER]
351  FILE DRIVER = $(NAMED_GUID) {
352    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
353    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
354    UI           STRING="$(MODULE_NAME)" Optional
355  }
356
357[Rule.Common.UEFI_DRIVER.Binary]
358  FILE DRIVER = $(NAMED_GUID) {
359    PE32         PE32                   |.efi
360    UI           STRING="$(MODULE_NAME)" Optional
361  }
362
363[Rule.Common.DXE_DRIVER]
364  FILE DRIVER = $(NAMED_GUID) {
365    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
366    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
367    UI           STRING="$(MODULE_NAME)" Optional
368  }
369
370[Rule.Common.DXE_RUNTIME_DRIVER]
371  FILE DRIVER = $(NAMED_GUID) {
372    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
373    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
374    UI           STRING="$(MODULE_NAME)" Optional
375  }
376
377[Rule.Common.DXE_RUNTIME_DRIVER.Binary]
378  FILE DRIVER = $(NAMED_GUID) {
379    DXE_DEPEX    DXE_DEPEX              Optional |.depex
380    PE32         PE32                   |.efi
381    UI           STRING="$(MODULE_NAME)" Optional
382  }
383
384[Rule.Common.UEFI_APPLICATION]
385  FILE APPLICATION = $(NAMED_GUID) {
386    UI     STRING ="$(MODULE_NAME)"     Optional
387    PE32   PE32                         $(INF_OUTPUT)/$(MODULE_NAME).efi
388  }
389
390[Rule.Common.UEFI_DRIVER.BINARY]
391  FILE DRIVER = $(NAMED_GUID) {
392    DXE_DEPEX DXE_DEPEX Optional      |.depex
393    PE32      PE32                    |.efi
394    UI        STRING="$(MODULE_NAME)" Optional
395    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
396  }
397
398[Rule.Common.UEFI_APPLICATION.BINARY]
399  FILE APPLICATION = $(NAMED_GUID) {
400    PE32      PE32                    |.efi
401    UI        STRING="$(MODULE_NAME)" Optional
402    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
403  }
404
405[Rule.Common.USER_DEFINED.ACPITABLE]
406  FILE FREEFORM = $(NAMED_GUID) {
407    RAW ASL                |.aml
408  }
409
410