blob: 5159708db333cfa1d190cc03b4eaed8987956850 [file] [log] [blame]
lgao424491cf2007-07-03 03:10:14 +00001# This is NT32 FDF file
klu2a9ce5752007-07-27 05:33:01 +00002#
3# Copyright (c) 2007, Intel Corporation
4#
5# All rights reserved. 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#
lgao424491cf2007-07-03 03:10:14 +000013
lgao4f5d74f62007-07-03 09:10:26 +000014################################################################################
15#
16# FD Section
vanjeff7800ef42007-07-16 06:38:10 +000017# 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
lgao4d88bd7a2007-07-26 06:35:29 +000019# defines one flash "device" image. A flash device image may be one of
vanjeff7800ef42007-07-16 06:38:10 +000020# the following: Removable media bootable image (like a boot floppy
lgao4d88bd7a2007-07-26 06:35:29 +000021# 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
lgao4f5d74f62007-07-03 09:10:26 +000024# existing system flash.
25#
26################################################################################
lgao424491cf2007-07-03 03:10:14 +000027[FD.Fv_Recovery]
lgao4f5d74f62007-07-03 09:10:26 +000028BaseAddress = 0x0|PcdFdBaseAddress #The base address of the FLASH Device.
29Size = 0x002a0000 #The size in bytes of the FLASH Device
lgao424491cf2007-07-03 03:10:14 +000030ErasePolarity = 1
31BlockSize = 0x10000
32NumBlocks = 0x2a
33
lgao4f5d74f62007-07-03 09:10:26 +000034################################################################################
35#
vanjeff7800ef42007-07-16 06:38:10 +000036# Following are lists of FD Region layout which correspond to the locations of different
37# images within the flash device.
38#
lgao4f5d74f62007-07-03 09:10:26 +000039# Regions must be defined in ascending order and may not overlap.
40#
lgao4d88bd7a2007-07-26 06:35:29 +000041# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
42# the pipe "|" character, followed by the size of the region, also in hex with the leading
43# "0x" characters. Like:
lgao4f5d74f62007-07-03 09:10:26 +000044# Offset|Size
45# PcdOffsetCName|PcdSizeCName
46# RegionType <FV, DATA, or FILE>
47#
48################################################################################
lgao424491cf2007-07-03 03:10:14 +0000490x00000000|0x00280000
50PcdFlashFvRecoveryBase|PcdFlashFvRecoverySize
51FV = FvRecovery
52
530x00280000|0x0000c000
54PcdFlashNvStorageBase|PcdFlashNvStorageSize
55DATA = {
vanjeff7800ef42007-07-16 06:38:10 +000056 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58 0x8d, 0x2b, 0xf1, 0xff, 0x96, 0x76, 0x8b, 0x4c,
59 0xa9, 0x85, 0x27, 0x47, 0x07, 0x5b, 0x4f, 0x50,
60 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
61 0x5f, 0x46, 0x56, 0x48, 0xff, 0x8c, 0xff, 0xff,
62 0x48, 0x00, 0x3b, 0x7c, 0x00, 0x00, 0x00, 0x01,
63 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65 0x24, 0x56, 0x53, 0x53, 0xb8, 0xbf, 0x00, 0x00,
lgao424491cf2007-07-03 03:10:14 +000066 0x5a, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
67}
68
690x0028c000|0x00002000
70PcdFlashNvStorageEventLogBase|PcdFlashNvStorageEventLogSize
71
720x0028e000|0x00002000
73PcdFlashNvStorageFtwWorkingBase|PcdFlashNvStorageFtwWorkingSize
vanjeff7800ef42007-07-16 06:38:10 +000074DATA = {
75 0x8d, 0x2b, 0xf1, 0xff, 0x96, 0x76, 0x8b, 0x4c,
76 0xa9, 0x85, 0x27, 0x47, 0x07, 0x5b, 0x4f, 0x50,
77 0xd2, 0x5f, 0x05, 0x9e, 0xfe, 0xff, 0xff, 0xff,
78 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0x00, 0x00
lgao424491cf2007-07-03 03:10:14 +000079}
80
810x00290000|0x00010000
82PcdFlashNvStorageFtwSpareBase|PcdFlashNvStorageFtwSpareBase
83
lgao4f5d74f62007-07-03 09:10:26 +000084################################################################################
85#
86# FV Section
87#
88# [FV] section is used to define what components or modules are placed within a flash
89# device file. This section also defines order the components and modules are positioned
90# within the image. The [FV] section consists of define statements, set statements and
91# module statements.
92#
93################################################################################
lgao424491cf2007-07-03 03:10:14 +000094[FV.FvRecovery]
vanjeff7800ef42007-07-16 06:38:10 +000095FvAlignment = 16 #FV alignment and FV attributes setting.
lgao424491cf2007-07-03 03:10:14 +000096ERASE_POLARITY = 1
97MEMORY_MAPPED = TRUE
98STICKY_WRITE = TRUE
99LOCK_CAP = TRUE
100LOCK_STATUS = TRUE
101WRITE_DISABLED_CAP = TRUE
102WRITE_ENABLED_CAP = TRUE
103WRITE_STATUS = TRUE
104WRITE_LOCK_CAP = TRUE
105WRITE_LOCK_STATUS = TRUE
106READ_DISABLED_CAP = TRUE
107READ_ENABLED_CAP = TRUE
108READ_STATUS = TRUE
109READ_LOCK_CAP = TRUE
110READ_LOCK_STATUS = TRUE
111
lgao4f5d74f62007-07-03 09:10:26 +0000112################################################################################
113#
114# The INF statements point to EDK component and EDK II module INF files, which will be placed into this FV image.
115# Parsing tools will scan the INF file to determine the type of component or module.
vanjeff7800ef42007-07-16 06:38:10 +0000116# The component or module type is used to reference the standard rules
lgao4f5d74f62007-07-03 09:10:26 +0000117# defined elsewhere in the FDF file.
118#
119# The format for INF statements is:
120# INF $(PathAndInfFileName)
121#
122################################################################################
klu204eced52007-07-06 14:56:41 +0000123 ##
124 # PEI Phase modules
125 ##
klu2f5342062007-07-05 05:57:27 +0000126INF $(WORKSPACE)/MdeModulePkg/Core/Pei/PeiMain.inf
klu204eced52007-07-06 14:56:41 +0000127INF $(WORKSPACE)/MdeModulePkg/Universal/PCD/Pei/Pcd.inf
vanjeff7800ef42007-07-16 06:38:10 +0000128INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/StatusCode/Pei/PeiStatusCode.inf
klu2425152f2007-07-16 17:19:46 +0000129INF $(WORKSPACE)/Nt32Pkg/BootModePei/BootModePei.inf
klu203e9fdb2007-07-17 01:31:48 +0000130INF $(WORKSPACE)/Nt32Pkg/WinNtFlashMapPei/WinNtFlashMapPei.inf
yshang105177be2007-07-19 08:26:33 +0000131INF $(WORKSPACE)/MdeModulePkg/Universal/MemoryTest/BaseMemoryTestPei/BaseMemoryTestPei.inf
yshang18d3a5c82007-07-19 10:09:07 +0000132INF $(WORKSPACE)/MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
klu2590d33c2007-07-16 18:10:40 +0000133INF $(WORKSPACE)/Nt32Pkg/WinNtAutoScanPei/WinNtAutoScanPei.inf
klu29e851ec2007-07-17 02:18:39 +0000134INF $(WORKSPACE)/Nt32Pkg/WinNtFirmwareVolumePei/WinNtFirmwareVolumePei.inf
klu29b4fb0a2007-07-17 01:54:43 +0000135INF $(WORKSPACE)/Nt32Pkg/WinNtThunkPPIToProtocolPei/WinNtThunkPPIToProtocolPei.inf
vanjeff7800ef42007-07-16 06:38:10 +0000136INF $(WORKSPACE)/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
137
klu204eced52007-07-06 14:56:41 +0000138 ##
139 # DXE Phase modules
140 ##
vanjeff7800ef42007-07-16 06:38:10 +0000141INF $(WORKSPACE)/MdeModulePkg/Core/Dxe/DxeMain.inf
142INF $(WORKSPACE)/MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
klu2425152f2007-07-16 17:19:46 +0000143INF $(WORKSPACE)/Nt32Pkg/MetronomeDxe/MetronomeDxe.inf
144INF $(WORKSPACE)/Nt32Pkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
145INF $(WORKSPACE)/Nt32Pkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
yshang1f2abdc92007-07-19 08:36:30 +0000146INF $(WORKSPACE)/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
klu29e851ec2007-07-17 02:18:39 +0000147INF $(WORKSPACE)/Nt32Pkg/FvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
yshang1d8775052007-07-19 09:01:25 +0000148INF $(WORKSPACE)/MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
qhuang89468e242007-07-18 14:36:12 +0000149INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf
150INF $(WORKSPACE)/MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
yshang105177be2007-07-19 08:26:33 +0000151INF $(WORKSPACE)/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
vanjeff7800ef42007-07-16 06:38:10 +0000152INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/HiiDataBaseDxe/HiiDatabase.inf
klu2cba9a242007-07-17 01:51:56 +0000153INF $(WORKSPACE)/Nt32Pkg/WinNtThunkDxe/WinNtThunkDxe.inf
qhuang89468e242007-07-18 14:36:12 +0000154INF $(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/Crc32SectionExtractDxe/Crc32SectionExtractDxe.inf
klu2425152f2007-07-16 17:19:46 +0000155INF $(WORKSPACE)/Nt32Pkg/CpuRuntimeDxe/CpuRuntimeDxe.inf
156INF $(WORKSPACE)/Nt32Pkg/PlatformBdsDxe/PlatformBdsDxe.inf
qhuang89468e242007-07-18 14:36:12 +0000157INF $(WORKSPACE)/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwLite.inf
158INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DataHubStdErrDxe/DataHubStdErrDxe.inf
klu2425152f2007-07-16 17:19:46 +0000159INF $(WORKSPACE)/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubClassPlatformDxe.inf
160INF $(WORKSPACE)/Nt32Pkg/TimerDxe/TimerDxe.inf
vanjeff7800ef42007-07-16 06:38:10 +0000161INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/StatusCode/Dxe/DxeStatusCode.inf
yshang18d3a5c82007-07-19 10:09:07 +0000162INF $(WORKSPACE)/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
klu204eced52007-07-06 14:56:41 +0000163INF $(WORKSPACE)/MdeModulePkg/Universal/WatchDogTimerDxe/WatchDogTimer.inf
qhuang89468e242007-07-18 14:36:12 +0000164INF $(WORKSPACE)/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
165INF $(WORKSPACE)/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
166INF $(WORKSPACE)/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
167INF $(WORKSPACE)/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
168INF $(WORKSPACE)/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
klu208523b02007-07-17 02:23:15 +0000169INF $(WORKSPACE)/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
klu206733a92007-07-17 02:26:33 +0000170INF $(WORKSPACE)/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
vanjeff7800ef42007-07-16 06:38:10 +0000171INF $(WORKSPACE)/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
172INF $(WORKSPACE)/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
lgao424491cf2007-07-03 03:10:14 +0000173INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/SetupBrowserDxe/SetupBrowser.inf
vanjeff7800ef42007-07-16 06:38:10 +0000174INF $(WORKSPACE)/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
175INF $(WORKSPACE)/MdeModulePkg/Bus/Pci/AtapiPassThruDxe/AtapiPassThru.inf
qhuang89468e242007-07-18 14:36:12 +0000176INF $(WORKSPACE)/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
klu242d600c2007-07-16 17:30:02 +0000177INF $(WORKSPACE)/MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf ##This driver follows UEFI specification definition
178INF $(WORKSPACE)/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf ##This driver follows UEFI specification definition
qhuang89468e242007-07-18 14:36:12 +0000179INF $(WORKSPACE)/IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
klu223545f12007-07-17 04:01:44 +0000180INF $(WORKSPACE)/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriverDxe.inf
klu2590d33c2007-07-16 18:10:40 +0000181INF $(WORKSPACE)/Nt32Pkg/WinNtBlockIoDxe/WinNtBlockIoDxe.inf
klu201b60512007-07-17 01:24:53 +0000182INF $(WORKSPACE)/Nt32Pkg/WinNtConsoleDxe/WinNtConsoleDxe.inf
klu279558002007-07-17 01:46:50 +0000183INF $(WORKSPACE)/Nt32Pkg/WinNtSerialIoDxe/WinNtSerialIoDxe.inf
klu22ad8b202007-07-17 01:44:30 +0000184INF $(WORKSPACE)/Nt32Pkg/WinNtGopDxe/WinNtGopDxe.inf
klu2a1ad1ca2007-07-17 01:49:53 +0000185INF $(WORKSPACE)/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystemDxe.inf
vanjeff7800ef42007-07-16 06:38:10 +0000186INF $(WORKSPACE)/IntelFrameworkModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf
klu204eced52007-07-06 14:56:41 +0000187INF $(WORKSPACE)/MdeModulePkg/Application/HelloWorld/HelloWorld.inf
lgao4f5d74f62007-07-03 09:10:26 +0000188
189################################################################################
190#
vanjeff7800ef42007-07-16 06:38:10 +0000191# FILE statements are provided so that a platform integrator can include
192# complete EFI FFS files, as well as a method for constructing FFS files
193# using curly "{}" brace scoping. The following three FILEs are
lgao4f5d74f62007-07-03 09:10:26 +0000194# for binary shell, binary fat and logo module.
195#
196################################################################################
klu204eced52007-07-06 14:56:41 +0000197FILE APPLICATION = c57ad6b7-0515-40a8-9d21-551652854e37 CHECKSUM {
198 SECTION COMPRESS PI_STD {
vanjeff7800ef42007-07-16 06:38:10 +0000199 SECTION GUIDED {
klu204eced52007-07-06 14:56:41 +0000200 SECTION PE32 = EdkShellBinPkg/FullShell/ia32/Shell_Full.efi
201 }
202 }
203 }
qhuang8e0086b52007-07-07 05:40:48 +0000204FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F CHECKSUM {
205 SECTION COMPRESS PI_STD {
206 SECTION GUIDED {
qhuang8d4b81622007-07-09 05:09:42 +0000207 SECTION PE32 = FatBinPkg/EnhancedFatDxe/Ia32/Fat.efi
qhuang8e0086b52007-07-07 05:40:48 +0000208 }
209 }
210 }
klu204eced52007-07-06 14:56:41 +0000211FILE FREEFORM = 7BB28B99-61BB-11D5-9A5D-0090273FC14D CHECKSUM {
vanjeff7800ef42007-07-16 06:38:10 +0000212 SECTION COMPRESS PI_STD {
klu204eced52007-07-06 14:56:41 +0000213 SECTION GUIDED {
mdkinney49ddf612007-07-16 23:34:46 +0000214 SECTION RAW = MdeModulePkg/Logo/Logo.bmp
klu204eced52007-07-06 14:56:41 +0000215 }
vanjeff7800ef42007-07-16 06:38:10 +0000216 }
217 }
lgao424491cf2007-07-03 03:10:14 +0000218
lgao4f5d74f62007-07-03 09:10:26 +0000219
220################################################################################
221#
vanjeff7800ef42007-07-16 06:38:10 +0000222# Rules are use with the [FV] section¡¯s module INF type to define
lgao4f5d74f62007-07-03 09:10:26 +0000223# how an FFS file is created for a given INF file. The following Rule are the default
224# rules for the different module type. User can add the customized rules to define the
225# content of the FFS file.
226#
227################################################################################
lgao424491cf2007-07-03 03:10:14 +0000228[Rule.Common.PEI_CORE]
229 FILE PEI_CORE = $(NAMED_GUID) CheckSum {
230 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
231 UI Optional $(MODULE_NAME)
232 VERSION Optional BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
233 }
234
235[Rule.Common.PEIM]
236 FILE PEIM = $(NAMED_GUID) CheckSum {
237 PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).Depex
vanjeff7800ef42007-07-16 06:38:10 +0000238 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
lgao424491cf2007-07-03 03:10:14 +0000239 UI Optional $(MODULE_NAME)
240 VERSION Optional BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
vanjeff7800ef42007-07-16 06:38:10 +0000241 }
lgao424491cf2007-07-03 03:10:14 +0000242
243[Rule.Common.DXE_CORE]
244 FILE DXE_CORE = $(NAMED_GUID) CheckSum {
245 COMPRESS PI_STD {
vanjeff7800ef42007-07-16 06:38:10 +0000246 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
lgao424491cf2007-07-03 03:10:14 +0000247 UI Optional $(MODULE_NAME)
248 VERSION Optional BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
vanjeff7800ef42007-07-16 06:38:10 +0000249 }
lgao424491cf2007-07-03 03:10:14 +0000250 }
251
252[Rule.Common.UEFI_DRIVER]
253 FILE DRIVER = $(NAMED_GUID) CheckSum {
254 COMPRESS PI_STD {
255 GUIDED {
256 DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
vanjeff7800ef42007-07-16 06:38:10 +0000257 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
lgao424491cf2007-07-03 03:10:14 +0000258 UI Optional $(MODULE_NAME)
259 VERSION Optional BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
260 }
261 }
vanjeff7800ef42007-07-16 06:38:10 +0000262 }
lgao424491cf2007-07-03 03:10:14 +0000263
264[Rule.Common.DXE_DRIVER]
265 FILE DRIVER = $(NAMED_GUID) CheckSum {
266 COMPRESS PI_STD {
267 GUIDED {
268 DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
vanjeff7800ef42007-07-16 06:38:10 +0000269 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
lgao424491cf2007-07-03 03:10:14 +0000270 UI Optional $(MODULE_NAME)
271 VERSION Optional BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
272 }
273 }
vanjeff7800ef42007-07-16 06:38:10 +0000274 }
lgao424491cf2007-07-03 03:10:14 +0000275
276[Rule.Common.DXE_RUNTIME_DRIVER]
277 FILE DRIVER = $(NAMED_GUID) CheckSum {
278 COMPRESS PI_STD {
279 GUIDED {
280 DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
vanjeff7800ef42007-07-16 06:38:10 +0000281 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
lgao424491cf2007-07-03 03:10:14 +0000282 UI Optional $(MODULE_NAME)
283 VERSION Optional BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
284 }
285 }
vanjeff7800ef42007-07-16 06:38:10 +0000286 }
lgao424491cf2007-07-03 03:10:14 +0000287
288[Rule.Common.UEFI_APPLICATION]
289 FILE APPLICATION = $(NAMED_GUID) CheckSum {
290 COMPRESS PI_STD {
291 GUIDED {
vanjeff7800ef42007-07-16 06:38:10 +0000292 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
lgao424491cf2007-07-03 03:10:14 +0000293 UI Optional $(MODULE_NAME)
294 VERSION Optional BUILD_NUM=$(BUILD_NUMBER) $(INF_VERSION)
295 }
296 }
vanjeff7800ef42007-07-16 06:38:10 +0000297 }