• 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.Overdrive1000_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/Overdrive1000Board/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/Overdrive1000Board/FdtBlob/styx-overdrive1000.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  # Marvell Ethernet Driver (Overdrive 1000)
188  #
189  INF OpenPlatformPkg/Drivers/Net/MarvellYukonDxe/MarvellYukonDxe.inf
190
191  #
192  # Networking stack
193  #
194  INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
195  INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
196  INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
197  INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
198# INF MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
199  INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
200  INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
201  INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
202  INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
203  INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
204  INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
205  INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
206## Bug https://bugs.linaro.org/show_bug.cgi?id=2239
207# INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
208
209  #
210  # Core Info
211  #
212  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf
213
214  #
215  # ACPI Support
216  #
217  INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
218  INF RuleOverride=ACPITABLE OpenPlatformPkg/Platforms/AMD/Styx/AcpiTables/AcpiAml.inf
219  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
220
221  #
222  # MP-Boot: ACPI[Parking Protocol] + FDT[Spin-Table]
223  #
224  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/MpBootDxe/MpBootDxe.inf
225
226  #
227  # SMBIOS Support
228  #
229  INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
230  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
231
232  #
233  # UEFI application (Shell Embedded Boot Loader)
234  #
235  INF ShellPkg/Application/Shell/Shell.inf
236
237  #
238  # Bds
239  #
240  INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
241  INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
242  INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
243  INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
244  INF MdeModulePkg/Application/UiApp/UiApp.inf
245
246  #
247  # Crypto Accelerator support (RNG only)
248  #
249  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxRngDxe/StyxRngDxe.inf
250
251[FV.STYX_EFI]
252FvAlignment        = 16
253ERASE_POLARITY     = 1
254MEMORY_MAPPED      = TRUE
255STICKY_WRITE       = TRUE
256LOCK_CAP           = TRUE
257LOCK_STATUS        = TRUE
258WRITE_DISABLED_CAP = TRUE
259WRITE_ENABLED_CAP  = TRUE
260WRITE_STATUS       = TRUE
261WRITE_LOCK_CAP     = TRUE
262WRITE_LOCK_STATUS  = TRUE
263READ_DISABLED_CAP  = TRUE
264READ_ENABLED_CAP   = TRUE
265READ_STATUS        = TRUE
266READ_LOCK_CAP      = TRUE
267READ_LOCK_STATUS   = TRUE
268
269  INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
270  INF MdeModulePkg/Core/Pei/PeiMain.inf
271  INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
272  INF AmdModulePkg/Iscp/IscpPei.inf
273  INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf
274  INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
275  INF ArmPkg/Drivers/CpuPei/CpuPei.inf
276  INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
277  INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
278  INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
279
280  FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
281    SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
282      SECTION FV_IMAGE = FVMAIN
283    }
284  }
285
286
287################################################################################
288#
289# Rules are use with the [FV] section's module INF type to define
290# how an FFS file is created for a given INF file. The following Rule are the default
291# rules for the different module type. User can add the customized rules to define the
292# content of the FFS file.
293#
294################################################################################
295
296
297############################################################################
298# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section   #
299############################################################################
300#
301#[Rule.Common.DXE_DRIVER]
302#  FILE DRIVER = $(NAMED_GUID) {
303#    DXE_DEPEX    DXE_DEPEX               Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
304#    COMPRESS PI_STD {
305#      GUIDED {
306#        PE32     PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
307#        UI       STRING="$(MODULE_NAME)" Optional
308#        VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
309#      }
310#    }
311#  }
312#
313############################################################################
314
315[Rule.Common.SEC]
316  FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
317    TE  TE Align = 4K                   $(INF_OUTPUT)/$(MODULE_NAME).efi
318  }
319
320[Rule.Common.PEI_CORE]
321  FILE PEI_CORE = $(NAMED_GUID) {
322    TE     TE Align = Auto              $(INF_OUTPUT)/$(MODULE_NAME).efi
323    UI     STRING ="$(MODULE_NAME)" Optional
324  }
325
326[Rule.Common.PEIM]
327  FILE PEIM = $(NAMED_GUID) {
328     PEI_DEPEX PEI_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
329     TE       TE Align = Auto           $(INF_OUTPUT)/$(MODULE_NAME).efi
330     UI       STRING="$(MODULE_NAME)" Optional
331  }
332
333[Rule.Common.PEIM.Binary]
334  FILE PEIM = $(NAMED_GUID) {
335     PEI_DEPEX PEI_DEPEX Optional       |.depex
336     TE       TE Align = Auto           |.efi
337     UI       STRING="$(MODULE_NAME)" Optional
338  }
339
340[Rule.Common.PEIM.TIANOCOMPRESSED]
341  FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
342    PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
343    GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
344      PE32      PE32                    $(INF_OUTPUT)/$(MODULE_NAME).efi
345      UI        STRING="$(MODULE_NAME)" Optional
346    }
347  }
348
349[Rule.Common.DXE_CORE]
350  FILE DXE_CORE = $(NAMED_GUID) {
351    PE32     PE32                       $(INF_OUTPUT)/$(MODULE_NAME).efi
352    UI       STRING="$(MODULE_NAME)" Optional
353  }
354
355[Rule.Common.UEFI_DRIVER]
356  FILE DRIVER = $(NAMED_GUID) {
357    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
358    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
359    UI           STRING="$(MODULE_NAME)" Optional
360  }
361
362[Rule.Common.UEFI_DRIVER.Binary]
363  FILE DRIVER = $(NAMED_GUID) {
364    PE32         PE32                   |.efi
365    UI           STRING="$(MODULE_NAME)" Optional
366  }
367
368[Rule.Common.DXE_DRIVER]
369  FILE DRIVER = $(NAMED_GUID) {
370    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
371    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
372    UI           STRING="$(MODULE_NAME)" Optional
373  }
374
375[Rule.Common.DXE_RUNTIME_DRIVER]
376  FILE DRIVER = $(NAMED_GUID) {
377    DXE_DEPEX    DXE_DEPEX              Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
378    PE32         PE32                   $(INF_OUTPUT)/$(MODULE_NAME).efi
379    UI           STRING="$(MODULE_NAME)" Optional
380  }
381
382[Rule.Common.DXE_RUNTIME_DRIVER.Binary]
383  FILE DRIVER = $(NAMED_GUID) {
384    DXE_DEPEX    DXE_DEPEX              Optional |.depex
385    PE32         PE32                   |.efi
386    UI           STRING="$(MODULE_NAME)" Optional
387  }
388
389[Rule.Common.UEFI_APPLICATION]
390  FILE APPLICATION = $(NAMED_GUID) {
391    UI     STRING ="$(MODULE_NAME)"     Optional
392    PE32   PE32                         $(INF_OUTPUT)/$(MODULE_NAME).efi
393  }
394
395[Rule.Common.UEFI_DRIVER.BINARY]
396  FILE DRIVER = $(NAMED_GUID) {
397    DXE_DEPEX DXE_DEPEX Optional      |.depex
398    PE32      PE32                    |.efi
399    UI        STRING="$(MODULE_NAME)" Optional
400    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
401  }
402
403[Rule.Common.UEFI_APPLICATION.BINARY]
404  FILE APPLICATION = $(NAMED_GUID) {
405    PE32      PE32                    |.efi
406    UI        STRING="$(MODULE_NAME)" Optional
407    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
408  }
409
410[Rule.Common.USER_DEFINED.ACPITABLE]
411  FILE FREEFORM = $(NAMED_GUID) {
412    RAW ASL                |.aml
413  }
414
415