1#/** @file
2# FDF file of Platform.
3#
4# Copyright (c) 2008 - 2016, Intel Corporation. All rights reserved.<BR>
5#
6# This program and the accompanying materials are licensed and made available under
7# the terms and conditions of the BSD License that accompanies this distribution.
8# The full text of the license may be found at
9# http://opensource.org/licenses/bsd-license.php.
10#
11# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13#
14#
15#**/
16
17[Defines]
18DEFINE FLASH_BASE       = 0xFFC00000     #The base address of the 4Mb FLASH Device.
19DEFINE FLASH_SIZE       = 0x00400000     #The flash size in bytes of the 4Mb FLASH Device.
20DEFINE FLASH_BLOCK_SIZE = 0x1000        #The block size in bytes of the 4Mb FLASH Device.
21DEFINE FLASH_NUM_BLOCKS = 0x400           #The number of blocks in 4Mb FLASH Device.
22DEFINE FLASH_AREA_BASE_ADDRESS                                = 0xFF800000
23DEFINE FLASH_AREA_SIZE                                        = 0x00800000
24
25DEFINE FLASH_REGION_VLVMICROCODE_OFFSET                       = 0x00000000
26DEFINE FLASH_REGION_VLVMICROCODE_SIZE                         = 0x00040000
27DEFINE FLASH_REGION_VLVMICROCODE_BASE                         = 0xFFC00000
28
29DEFINE FLASH_REGION_VPD_OFFSET                                = 0x00040000
30DEFINE FLASH_REGION_VPD_SIZE                                  = 0x0003E000
31
32DEFINE FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_WORKING_OFFSET = 0x0007E000
33DEFINE FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_WORKING_SIZE   = 0x00002000
34
35
36DEFINE FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_SPARE_OFFSET   = 0x00080000
37DEFINE FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_SPARE_SIZE     = 0x00040000
38
39!if $(MINNOW2_FSP_BUILD) == TRUE
40DEFINE FLASH_REGION_FSPBIN_OFFSET                             = 0x000C0000
41DEFINE FLASH_REGION_FSPBIN_SIZE                               = 0x00048000
42DEFINE FLASH_REGION_FSPBIN_BASE                               = 0xFFCC0000
43
44DEFINE FLASH_REGION_AZALIABIN_OFFSET                          = 0x00108000
45DEFINE FLASH_REGION_AZALIABIN_SIZE                            = 0x00008000
46DEFINE FLASH_REGION_AZALIABIN_BASE                            = 0xFFD08000
47
48!endif
49
50DEFINE FLASH_REGION_FVMAIN_OFFSET                             = 0x00110000
51DEFINE FLASH_REGION_FVMAIN_SIZE                               = 0x00210000
52
53DEFINE FLASH_REGION_FV_RECOVERY2_OFFSET                       = 0x00320000
54DEFINE FLASH_REGION_FV_RECOVERY2_SIZE                         = 0x00070000
55
56DEFINE FLASH_REGION_FV_RECOVERY_OFFSET                        = 0x00390000
57DEFINE FLASH_REGION_FV_RECOVERY_SIZE                          = 0x00070000
58
59################################################################################
60#
61# FD Section
62# The [FD] Section is made up of the definition statements and a
63# description of what goes into  the Flash Device Image.  Each FD section
64# defines one flash "device" image.  A flash device image may be one of
65# the following: Removable media bootable image (like a boot floppy
66# image,) an Option ROM image (that would be "flashed" into an add-in
67# card,) a System "Flash"  image (that would be burned into a system's
68# flash) or an Update ("Capsule") image that will be used to update and
69# existing system flash.
70#
71################################################################################
72[FD.Vlv]
73BaseAddress   = $(FLASH_BASE)|gPlatformModuleTokenSpaceGuid.PcdFlashAreaBaseAddress #The base address of the 3Mb FLASH Device.
74Size          = $(FLASH_SIZE)|gPlatformModuleTokenSpaceGuid.PcdFlashAreaSize        #The flash size in bytes of the 3Mb FLASH Device.
75ErasePolarity = 1
76BlockSize     = $(FLASH_BLOCK_SIZE)          #The block size in bytes of the 3Mb FLASH Device.
77NumBlocks     = $(FLASH_NUM_BLOCKS)          #The number of blocks in 3Mb FLASH Device.
78
79#
80#Flash location override based on actual flash map
81#
82SET gPlatformModuleTokenSpaceGuid.PcdFlashAreaBaseAddress            = $(FLASH_AREA_BASE_ADDRESS)
83SET gPlatformModuleTokenSpaceGuid.PcdFlashAreaSize                   = $(FLASH_AREA_SIZE)
84
85SET gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchAddress = $(FLASH_REGION_VLVMICROCODE_BASE) + 0x60
86SET gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize = $(FLASH_REGION_VLVMICROCODE_SIZE) - 0x60
87
88!if $(MINNOW2_FSP_BUILD) == TRUE
89# put below PCD value setting into dsc file
90#SET gFspWrapperTokenSpaceGuid.PcdCpuMicrocodePatchAddress                = $(FLASH_REGION_VLVMICROCODE_BASE)
91#SET gFspWrapperTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize             = $(FLASH_REGION_VLVMICROCODE_SIZE)
92#SET gFspWrapperTokenSpaceGuid.PcdFlashMicroCodeOffset                    = 0x60
93#SET gFspWrapperTokenSpaceGuid.PcdFlashCodeCacheAddress                   = $(FLASH_AREA_BASE_ADDRESS)
94#SET gFspWrapperTokenSpaceGuid.PcdFlashCodeCacheSize                      = $(FLASH_AREA_SIZE)
95#SET gFspWrapperTokenSpaceGuid.PcdFlashFvFspBase                          = $(FLASH_REGION_FSPBIN_BASE)
96#SET gFspWrapperTokenSpaceGuid.PcdFlashFvFspSize                          = $(FLASH_REGION_FSPBIN_SIZE)
97
98!endif
99################################################################################
100#
101# Following are lists of FD Region layout which correspond to the locations of different
102# images within the flash device.
103#
104# Regions must be defined in ascending order and may not overlap.
105#
106# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
107# the pipe "|" character, followed by the size of the region, also in hex with the leading
108# "0x" characters. Like:
109# Offset|Size
110# PcdOffsetCName|PcdSizeCName
111# RegionType <FV, DATA, or FILE>
112# Fv Size can be adjusted; FVMAIN_COMPACT can be reduced to 0x120000, and FV_RECOVERY can be enlarged to 0x80000
113#
114################################################################################
115  #
116  # CPU Microcodes
117  #
118
119$(FLASH_REGION_VLVMICROCODE_OFFSET)|$(FLASH_REGION_VLVMICROCODE_SIZE)
120gPlatformModuleTokenSpaceGuid.PcdFlashMicroCodeAddress|gPlatformModuleTokenSpaceGuid.PcdFlashMicroCodeSize
121FV = MICROCODE_FV
122$(FLASH_REGION_VPD_OFFSET)|$(FLASH_REGION_VPD_SIZE)
123gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
124#NV_VARIABLE_STORE
125DATA = {
126  ## This is the EFI_FIRMWARE_VOLUME_HEADER
127  # ZeroVector []
128  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
129  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
130  # FileSystemGuid: gEfiSystemNvDataFvGuid         =
131  #  { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
132  0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C,
133  0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50,
134  # FvLength: 0x80000
135  0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
136  #Signature "_FVH"       #Attributes
137  0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00,
138  #HeaderLength #CheckSum #ExtHeaderOffset #Reserved #Revision
139  0x48, 0x00, 0x2A, 0x09, 0x00, 0x00, 0x00, 0x02,
140  #Blockmap[0]: 7 Blocks * 0x10000 Bytes / Block
141  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
142  #Blockmap[1]: End
143  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
144  ## This is the VARIABLE_STORE_HEADER
145!if $(SECURE_BOOT_ENABLE) == TRUE
146  #Signature: gEfiAuthenticatedVariableGuid =
147  #  { 0xaaf32c78, 0x947b, 0x439a, { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }}
148  0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43,
149  0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92,
150!else
151  #Signature: gEfiVariableGuid =
152  #  { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}
153  0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41,
154  0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d,
155!endif
156  #Size: 0x3E000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0x03DFB8
157  # This can speed up the Variable Dispatch a bit.
158  0xB8, 0xDF, 0x03, 0x00,
159  #FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32
160  0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
161}
162
163
164$(FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_WORKING_OFFSET)|$(FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_WORKING_SIZE)
165gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
166#NV_FTW_WORKING
167DATA = {
168  # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid         =
169  #  { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65,  0x0, 0xfd, 0x9f, 0x1b, 0x95 }}
170  0x2B, 0x29, 0x58, 0x9E, 0x68, 0x7C, 0x7D, 0x49,
171  0xA0, 0xCE, 0x65, 0x0,  0xFD, 0x9F, 0x1B, 0x95,
172
173  # Crc:UINT32            #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved
174  0xE2, 0x33, 0xF2, 0x3,  0xFE, 0xFF, 0xFF, 0xFF,
175  # WriteQueueSize: UINT64 #Size: 0x2000 - 0x20 (FTW_WORKING_HEADER) = 0x1FE0
176  0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
177}
178
179$(FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_SPARE_OFFSET)|$(FLASH_REGION_NVSTORAGE_SUBREGION_NV_FTW_SPARE_SIZE)
180gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
181
182!if $(MINNOW2_FSP_BUILD) == TRUE
183
184  $(FLASH_REGION_FSPBIN_OFFSET)|$(FLASH_REGION_FSPBIN_SIZE)
185  gFspWrapperTokenSpaceGuid.PcdFlashFvFspBase|gFspWrapperTokenSpaceGuid.PcdFlashFvFspSize
186  FILE = Vlv2MiscBinariesPkg/FspBinary/FvFsp.bin
187
188
189  $(FLASH_REGION_AZALIABIN_OFFSET)|$(FLASH_REGION_AZALIABIN_SIZE)
190  FILE = Vlv2TbltDevicePkg/FspAzaliaConfigData/AzaliaConfig.bin
191
192!endif
193
194  #
195  # Main Block
196  #
197$(FLASH_REGION_FVMAIN_OFFSET)|$(FLASH_REGION_FVMAIN_SIZE)
198gPlatformModuleTokenSpaceGuid.PcdFlashFvMainBase|gPlatformModuleTokenSpaceGuid.PcdFlashFvMainSize
199FV = FVMAIN_COMPACT
200
201  #
202  # FV Recovery#2
203  #
204$(FLASH_REGION_FV_RECOVERY2_OFFSET)|$(FLASH_REGION_FV_RECOVERY2_SIZE)
205gPlatformModuleTokenSpaceGuid.PcdFlashFvRecovery2Base|gPlatformModuleTokenSpaceGuid.PcdFlashFvRecovery2Size
206FV = FVRECOVERY2
207
208  #
209  # FV Recovery
210  #
211$(FLASH_REGION_FV_RECOVERY_OFFSET)|$(FLASH_REGION_FV_RECOVERY_SIZE)
212gPlatformModuleTokenSpaceGuid.PcdFlashFvRecoveryBase|gPlatformModuleTokenSpaceGuid.PcdFlashFvRecoverySize
213FV = FVRECOVERY
214
215################################################################################
216#
217# FV Section
218#
219# [FV] section is used to define what components or modules are placed within a flash
220# device file.  This section also defines order the components and modules are positioned
221# within the image.  The [FV] section consists of define statements, set statements and
222# module statements.
223#
224################################################################################
225[FV.MICROCODE_FV]
226BlockSize          = $(FLASH_BLOCK_SIZE)
227FvAlignment        = 16
228ERASE_POLARITY     = 1
229MEMORY_MAPPED      = TRUE
230STICKY_WRITE       = TRUE
231LOCK_CAP           = TRUE
232LOCK_STATUS        = FALSE
233WRITE_DISABLED_CAP = TRUE
234WRITE_ENABLED_CAP  = TRUE
235WRITE_STATUS       = TRUE
236WRITE_LOCK_CAP     = TRUE
237WRITE_LOCK_STATUS  = TRUE
238READ_DISABLED_CAP  = TRUE
239READ_ENABLED_CAP   = TRUE
240READ_STATUS        = TRUE
241READ_LOCK_CAP      = TRUE
242READ_LOCK_STATUS   = TRUE
243
244FILE RAW = 197DB236-F856-4924-90F8-CDF12FB875F3 {
245  $(OUTPUT_DIRECTORY)\$(TARGET)_$(TOOL_CHAIN_TAG)\$(DXE_ARCHITECTURE)\MicrocodeUpdates.bin
246}
247
248!if $(RECOVERY_ENABLE)
249[FV.FVRECOVERY_COMPONENTS]
250FvAlignment        = 16         #FV alignment and FV attributes setting.
251ERASE_POLARITY     = 1
252MEMORY_MAPPED      = TRUE
253STICKY_WRITE       = TRUE
254LOCK_CAP           = TRUE
255LOCK_STATUS        = TRUE
256WRITE_DISABLED_CAP = TRUE
257WRITE_ENABLED_CAP  = TRUE
258WRITE_STATUS       = TRUE
259WRITE_LOCK_CAP     = TRUE
260WRITE_LOCK_STATUS  = TRUE
261READ_DISABLED_CAP  = TRUE
262READ_ENABLED_CAP   = TRUE
263READ_STATUS        = TRUE
264READ_LOCK_CAP      = TRUE
265READ_LOCK_STATUS   = TRUE
266
267INF  RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/PchUsb.inf
268INF  MdeModulePkg/Bus/Pci/EhciPei/EhciPei.inf
269INF  MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf
270INF  MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPei.inf
271INF  FatPkg/FatPei/FatPei.inf
272INF  MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf
273INF  SignedCapsulePkg/Universal/RecoveryModuleLoadPei/RecoveryModuleLoadPei.inf
274!endif
275
276################################################################################
277#
278# FV Section
279#
280# [FV] section is used to define what components or modules are placed within a flash
281# device file.  This section also defines order the components and modules are positioned
282# within the image.  The [FV] section consists of define statements, set statements and
283# module statements.
284#
285################################################################################
286[FV.FVRECOVERY2]
287BlockSize          = $(FLASH_BLOCK_SIZE)
288FvAlignment        = 16         #FV alignment and FV attributes setting.
289ERASE_POLARITY     = 1
290MEMORY_MAPPED      = TRUE
291STICKY_WRITE       = TRUE
292LOCK_CAP           = TRUE
293LOCK_STATUS        = TRUE
294WRITE_DISABLED_CAP = TRUE
295WRITE_ENABLED_CAP  = TRUE
296WRITE_STATUS       = TRUE
297WRITE_LOCK_CAP     = TRUE
298WRITE_LOCK_STATUS  = TRUE
299READ_DISABLED_CAP  = TRUE
300READ_ENABLED_CAP   = TRUE
301READ_STATUS        = TRUE
302READ_LOCK_CAP      = TRUE
303READ_LOCK_STATUS   = TRUE
304FvNameGuid         = B73FE497-B92E-416e-8326-45AD0D270092
305
306
307
308INF $(PLATFORM_PACKAGE)/PlatformInitPei/PlatformInitPei.inf
309
310!if $(MINNOW2_FSP_BUILD) == FALSE
311INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/PchSmbusArpDisabled.inf
312INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/VlvInitPeim.inf
313INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/PchInitPeim.inf
314INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/PchSpiPeim.inf
315INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/PeiSmmAccess.inf
316INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/PeiSmmControl.inf
317INF UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf
318INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/MpS3.inf
319INF EdkCompatibilityPkg/Compatibility/AcpiVariableHobOnSmramReserveHobThunk/AcpiVariableHobOnSmramReserveHobThunk.inf
320!endif
321
322INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/PiSmmCommunicationPei.inf
323!if $(TPM_ENABLED) == TRUE
324INF SecurityPkg/Tcg/TrEEConfig/TrEEConfigPei.inf
325INF SecurityPkg/Tcg/TcgPei/TcgPei.inf
326INF SecurityPkg/Tcg/PhysicalPresencePei/PhysicalPresencePei.inf
327!endif
328!if $(FTPM_ENABLE) == TRUE
329INF  SecurityPkg/Tcg/TrEEPei/TrEEPei.inf #use PCD config
330!endif
331INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
332
333!if $(ACPI50_ENABLE) == TRUE
334 INF MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.inf
335!endif
336!if $(PERFORMANCE_ENABLE) == TRUE
337INF MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf
338!endif
339
340!if $(RECOVERY_ENABLE)
341FILE FV_IMAGE = 1E9D7604-EF45-46a0-BD8A-71AC78C17AC1 {
342  SECTION PEI_DEPEX_EXP = {gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiBootInRecoveryModePpiGuid}
343  SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF {    # LZMA COMPRESS GUID
344    SECTION FV_IMAGE = FVRECOVERY_COMPONENTS
345  }
346}
347!endif
348
349[FV.FVRECOVERY]
350BlockSize          = $(FLASH_BLOCK_SIZE)
351FvAlignment        = 16         #FV alignment and FV attributes setting.
352ERASE_POLARITY     = 1
353MEMORY_MAPPED      = TRUE
354STICKY_WRITE       = TRUE
355LOCK_CAP           = TRUE
356LOCK_STATUS        = TRUE
357WRITE_DISABLED_CAP = TRUE
358WRITE_ENABLED_CAP  = TRUE
359WRITE_STATUS       = TRUE
360WRITE_LOCK_CAP     = TRUE
361WRITE_LOCK_STATUS  = TRUE
362READ_DISABLED_CAP  = TRUE
363READ_ENABLED_CAP   = TRUE
364READ_STATUS        = TRUE
365READ_LOCK_CAP      = TRUE
366READ_LOCK_STATUS   = TRUE
367FvNameGuid         = B73FE497-B92E-416e-8326-45AD0D270091
368
369
370!if $(MINNOW2_FSP_BUILD) == TRUE
371INF IntelFspWrapperPkg/FspWrapperSecCore/FspWrapperSecCore.inf
372!else
373INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/SecCore.inf
374!endif
375
376INF MdeModulePkg/Core/Pei/PeiMain.inf
377!if $(MINNOW2_FSP_BUILD) == TRUE
378INF Vlv2TbltDevicePkg/FspSupport/BootModePei/BootModePei.inf
379INF IntelFspWrapperPkg/FspInitPei/FspInitPei.inf
380!endif
381INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/CpuPeim.inf
382INF MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
383INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
384
385INF $(PLATFORM_PACKAGE)/PlatformPei/PlatformPei.inf
386
387!if $(MINNOW2_FSP_BUILD) == FALSE
388INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/SeCUma.inf
389!endif
390
391!if $(FTPM_ENABLE) == TRUE
392INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/fTPMInitPeim.inf
393!endif
394
395!if $(SOURCE_DEBUG_ENABLE) == TRUE
396  INF  SourceLevelDebugPkg/DebugAgentPei/DebugAgentPei.inf
397!endif
398
399
400!if $(CAPSULE_ENABLE) == TRUE
401INF  MdeModulePkg/Universal/CapsulePei/CapsulePei.inf
402!if $(DXE_ARCHITECTURE) == "X64"
403INF  MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf
404!endif
405!endif
406
407!if $(MINNOW2_FSP_BUILD) == FALSE
408!if $(PCIESC_ENABLE) == TRUE
409INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/PchEarlyInitPeim.inf
410!endif
411INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/MemoryInit.inf
412!endif
413
414INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
415
416!if $(CAPSULE_ENABLE) || $(RECOVERY_ENABLE)
417  # FMP image decriptor
418INF RuleOverride = FMP_IMAGE_DESC Vlv2TbltDevicePkg/Feature/Capsule/SystemFirmwareDescriptor/SystemFirmwareDescriptor.inf
419!endif
420
421[FV.FVMAIN]
422BlockSize          = $(FLASH_BLOCK_SIZE)
423FvAlignment        = 16
424ERASE_POLARITY     = 1
425MEMORY_MAPPED      = TRUE
426STICKY_WRITE       = TRUE
427LOCK_CAP           = TRUE
428LOCK_STATUS        = TRUE
429WRITE_DISABLED_CAP = TRUE
430WRITE_ENABLED_CAP  = TRUE
431WRITE_STATUS       = TRUE
432WRITE_LOCK_CAP     = TRUE
433WRITE_LOCK_STATUS  = TRUE
434READ_DISABLED_CAP  = TRUE
435READ_ENABLED_CAP   = TRUE
436READ_STATUS        = TRUE
437READ_LOCK_CAP      = TRUE
438READ_LOCK_STATUS   = TRUE
439FvNameGuid         = A881D567-6CB0-4eee-8435-2E72D33E45B5
440
441APRIORI DXE {
442  INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
443  INF  MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
444  INF  MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
445  }
446
447FILE FREEFORM = C3E36D09-8294-4b97-A857-D5288FE33E28 {
448    SECTION RAW = $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/$(DXE_ARCHITECTURE)/BiosId.bin
449  }
450
451  #
452  # EDK II Related Platform codes
453  #
454
455  !if $(MINNOW2_FSP_BUILD) == TRUE
456  INF IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.inf
457  !endif
458
459INF MdeModulePkg/Core/Dxe/DxeMain.inf
460INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
461!if $(ACPI50_ENABLE) == TRUE
462INF  MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.inf
463INF  MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.inf
464!endif
465
466
467INF IntelFrameworkModulePkg/Universal/CpuIoDxe/CpuIoDxe.inf
468INF UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
469INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
470INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
471INF MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterSmm.inf
472INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
473INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/MpCpu.inf
474INF $(PLATFORM_PACKAGE)/Metronome/Metronome.inf
475INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
476INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
477INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
478INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
479INF IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
480
481INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
482INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
483INF $(PLATFORM_PACKAGE)/FvbRuntimeDxe/FvbSmm.inf
484INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
485INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSpiSmm.inf
486!if $(SECURE_BOOT_ENABLE)
487INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
488!endif
489
490INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
491
492INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
493INF PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
494INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
495INF $(PLATFORM_PACKAGE)/FvbRuntimeDxe/FvbRuntimeDxe.inf
496
497
498INF $(PLATFORM_PACKAGE)/PlatformSetupDxe/PlatformSetupDxe.inf
499
500!if $(DATAHUB_ENABLE) == TRUE
501INF IntelFrameworkModulePkg/Universal/DataHubDxe/DataHubDxe.inf
502!endif
503INF IntelFrameworkModulePkg/Universal/StatusCode/DatahubStatusCodeHandlerDxe/DatahubStatusCodeHandlerDxe.inf
504INF MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
505
506INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/Dptf.inf
507
508  #
509  # EDK II Related Silicon codes
510  #
511INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchS3SupportDxe.inf
512
513!if $(USE_HPET_TIMER) == TRUE
514INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
515!else
516INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SmartTimer.inf
517!endif
518INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SmmControl.inf
519
520INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSmbusDxe.inf
521
522INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/IntelPchLegacyInterrupt.inf
523INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchReset.inf
524
525!if $(MINNOW2_FSP_BUILD) == FALSE
526INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchInitDxe.inf
527!endif
528INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSmiDispatcher.inf
529!if $(PCIESC_ENABLE) == TRUE
530INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchPcieSmm.inf
531!endif
532
533INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchSpiRuntime.inf
534INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchPolicyInitDxe.inf
535INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PchBiosWriteProtect.inf
536INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SmmAccess.inf
537INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PciHostBridge.inf
538!if $(MINNOW2_FSP_BUILD) == FALSE
539INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/VlvInitDxe.inf
540!else
541INF IntelFrameworkModulePkg/Universal/LegacyRegionDxe/LegacyRegionDxe.inf
542INF Vlv2TbltDevicePkg/VlvPlatformInitDxe/VlvPlatformInitDxe.inf
543!endif
544!if $(MINNOW2_FSP_BUILD) == FALSE
545  !if $(SEC_ENABLE) == TRUE
546  INF  RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/HeciDrv.inf
547  INF  RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SeCPolicyInitDxe.inf
548  !endif
549!endif
550!if $(TPM_ENABLED) == TRUE
551INF SecurityPkg/Tcg/TcgConfigDxe/TcgConfigDxe.inf
552INF SecurityPkg/Tcg/TcgDxe/TcgDxe.inf
553INF RuleOverride = DRIVER_ACPITABLE SecurityPkg/Tcg/TcgSmm/TcgSmm.inf
554!endif
555!if $(FTPM_ENABLE) == TRUE
556INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/IA32/Tpm2DeviceSeCPei.inf
557INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/Tpm2DeviceSeCDxe.inf
558INF SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.inf
559INF SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf
560INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/FtpmSmm.inf
561!endif
562
563#
564# EDK II Related Platform codes
565#
566INF $(PLATFORM_PACKAGE)/PlatformSmm/PlatformSmm.inf
567INF $(PLATFORM_PACKAGE)/PlatformInfoDxe/PlatformInfoDxe.inf
568INF $(PLATFORM_PACKAGE)/PlatformCpuInfoDxe/PlatformCpuInfoDxe.inf
569INF $(PLATFORM_PACKAGE)/PlatformDxe/PlatformDxe.inf
570INF $(PLATFORM_PACKAGE)/PciPlatform/PciPlatform.inf
571INF $(PLATFORM_PACKAGE)/SaveMemoryConfig/SaveMemoryConfig.inf
572INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PlatformCpuPolicy.inf
573INF $(PLATFORM_PACKAGE)/PpmPolicy/PpmPolicy.inf
574INF $(PLATFORM_PACKAGE)/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.inf
575!if $(GOP_DRIVER_ENABLE) == TRUE
576 INF $(PLATFORM_PACKAGE)/PlatformGopPolicy/PlatformGopPolicy.inf
577 FILE DRIVER = FF0C8745-3270-4439-B74F-3E45F8C77064 {
578  SECTION DXE_DEPEX_EXP = {gPlatformGOPPolicyGuid}
579  SECTION PE32 = Vlv2MiscBinariesPkg/GOP/7.2.1011/RELEASE_VS2008x86/$(DXE_ARCHITECTURE)/IntelGopDriver.efi
580  SECTION UI = "IntelGopDriver"
581}
582!endif
583
584INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PnpDxe.inf
585  #
586  # SMM
587  #
588INF MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
589INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
590INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
591
592INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
593INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
594INF UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.inf
595INF $(PLATFORM_PACKAGE)/SmmSwDispatch2OnSmmSwDispatchThunk/SmmSwDispatch2OnSmmSwDispatchThunk.inf
596
597#
598# Remove the following two SMM binary modules that prevent platform from booting to UEFI Shell
599#
600#INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/PowerManagement2.inf
601#INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/DigitalThermalSensor.inf
602
603  #
604  # ACPI
605  #
606INF MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
607INF $(PLATFORM_PACKAGE)/BootScriptSaveDxe/BootScriptSaveDxe.inf
608INF IntelFrameworkModulePkg/Universal/Acpi/AcpiSupportDxe/AcpiSupportDxe.inf
609INF RuleOverride = ACPITABLE2 Vlv2DeviceRefCodePkg/ValleyView2Soc/CPU/PowerManagement/AcpiTables/PowerManagementAcpiTables.inf
610
611INF RuleOverride = ACPITABLE $(PLATFORM_RC_PACKAGE)/AcpiTablesPCAT/AcpiTables.inf
612
613INF $(PLATFORM_PACKAGE)/AcpiPlatform/AcpiPlatform.inf
614
615  #
616  # PCI
617  #
618INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
619
620INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/ISPDxe.inf
621
622
623#
624# ISA
625#
626INF $(PLATFORM_PACKAGE)/Wpce791/Wpce791.inf
627INF IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
628INF IntelFrameworkModulePkg/Bus/Isa/IsaIoDxe/IsaIoDxe.inf
629!if $(SOURCE_DEBUG_ENABLE) != TRUE
630INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf
631!endif
632#INF IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf
633#INF IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf
634
635#
636# SDIO
637#
638INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/MmcHost.inf
639INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/MmcMediaDevice.inf
640#
641# IDE/SCSI/AHCI
642#
643INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
644
645INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
646
647INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
648!if $(SATA_ENABLE) == TRUE
649INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SataController.inf
650#
651
652#
653INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
654INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
655!if $(SCSI_ENABLE) == TRUE
656INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
657INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
658!endif
659#
660!endif
661# Console
662#
663INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
664INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
665INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
666INF IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf
667INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
668INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
669INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
670INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
671  #
672  # USB
673  #
674!if $(USB_ENABLE) == TRUE
675INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
676INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
677INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
678INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
679INF MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf
680INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
681INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
682!endif
683
684  #
685  #  ECP
686  #
687INF EdkCompatibilityPkg/Compatibility/LegacyRegion2OnLegacyRegionThunk/LegacyRegion2OnLegacyRegionThunk.inf
688INF EdkCompatibilityPkg/Compatibility/SmmBaseOnSmmBase2Thunk/SmmBaseOnSmmBase2Thunk.inf
689INF EdkCompatibilityPkg/Compatibility/SmmBaseHelper/SmmBaseHelper.inf
690INF EdkCompatibilityPkg/Compatibility/SmmAccess2OnSmmAccessThunk/SmmAccess2OnSmmAccessThunk.inf
691INF EdkCompatibilityPkg/Compatibility/SmmControl2OnSmmControlThunk/SmmControl2OnSmmControlThunk.inf
692INF EdkCompatibilityPkg/Compatibility/FvOnFv2Thunk/FvOnFv2Thunk.inf
693  #
694  # SMBIOS
695  #
696INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
697INF $(PLATFORM_PACKAGE)/SmBiosMiscDxe/SmBiosMiscDxe.inf
698
699INF RuleOverride = BINARY $(PLATFORM_BINARY_PACKAGE)/$(DXE_ARCHITECTURE)$(TARGET)/$(DXE_ARCHITECTURE)/SmbiosMemory.inf
700
701  #
702  # Legacy Modules
703  #
704INF PcAtChipsetPkg/8259InterruptControllerDxe/8259.inf
705
706#
707# FAT file system
708#
709INF FatPkg/EnhancedFatDxe/Fat.inf
710
711#
712# UEFI Shell
713#
714FILE APPLICATION = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile) {
715#    SECTION PE32 = EdkShellBinPkg/FullShell/$(EDK_DXE_ARCHITECTURE)/Shell_Full.efi
716    SECTION PE32 = ShellBinPkg/UefiShell/$(EDK_DXE_ARCHITECTURE)/Shell.efi
717  }
718
719
720
721!if $(GOP_DRIVER_ENABLE) == TRUE
722FILE FREEFORM = 878AC2CC-5343-46F2-B563-51F89DAF56BA {
723  SECTION RAW = Vlv2MiscBinariesPkg/GOP/7.2.1011/VBT/MNW2/Vbt.bin
724  SECTION UI = "IntelGopVbt"
725}
726!endif
727
728#
729# Network Modules
730#
731!if $(NETWORK_ENABLE) == TRUE
732  FILE DRIVER = 22DE1691-D65D-456a-993E-A253DD1F308C {
733    SECTION PE32 = Vlv2MiscBinariesPkg/UNDI/RtkUndiDxe/$(DXE_ARCHITECTURE)/RtkUndiDxe.efi
734    SECTION UI = "UNDI"
735  }
736  INF  MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
737  INF  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
738  INF  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
739  INF  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
740  INF  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
741  INF  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
742  INF  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
743  INF  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
744  !if $(NETWORK_IP6_ENABLE) == TRUE
745  INF  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
746  INF  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
747  INF  NetworkPkg/IpSecDxe/IpSecDxe.inf
748  INF  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
749  INF  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
750  !endif
751  !if $(NETWORK_IP6_ENABLE) == TRUE
752  INF  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
753  INF  NetworkPkg/TcpDxe/TcpDxe.inf
754  !else
755  INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
756  INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
757  !endif
758  !if $(NETWORK_VLAN_ENABLE) == TRUE
759  INF  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
760  !endif
761  !if $(NETWORK_ISCSI_ENABLE) == TRUE
762  !if $(NETWORK_IP6_ENABLE) == TRUE
763    INF  NetworkPkg/IScsiDxe/IScsiDxe.inf
764  !else
765    INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
766  !endif
767  !endif
768!endif
769
770!if $(CAPSULE_ENABLE) || $(MICOCODE_CAPSULE_ENABLE)
771INF  MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf
772!endif
773!if $(CAPSULE_ENABLE)
774INF  SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDxe.inf
775!endif
776!if $(MICOCODE_CAPSULE_ENABLE)
777INF  UefiCpuPkg/Feature/Capsule/MicrocodeUpdateDxe/MicrocodeUpdateDxe.inf
778!endif
779
780!if $(RECOVERY_ENABLE)
781FILE FREEFORM = PCD(gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiRsa2048Sha256TestPublicKeyFileGuid) {
782     SECTION RAW = BaseTools/Source/Python/Rsa2048Sha256Sign/TestSigningPublicKey.bin
783     SECTION UI = "Rsa2048Sha256TestSigningPublicKey"
784     }
785!endif
786
787!if $(CAPSULE_ENABLE)
788FILE FREEFORM = PCD(gEfiSignedCapsulePkgTokenSpaceGuid.PcdEdkiiPkcs7TestPublicKeyFileGuid) {
789     SECTION RAW = BaseTools/Source/Python/Pkcs7Sign/TestRoot.cer
790     SECTION UI = "Pkcs7TestRoot"
791     }
792!endif
793
794[FV.FVMAIN_COMPACT]
795BlockSize          = $(FLASH_BLOCK_SIZE)
796FvAlignment        = 16
797ERASE_POLARITY     = 1
798MEMORY_MAPPED      = TRUE
799STICKY_WRITE       = TRUE
800LOCK_CAP           = TRUE
801LOCK_STATUS        = TRUE
802WRITE_DISABLED_CAP = TRUE
803WRITE_ENABLED_CAP  = TRUE
804WRITE_STATUS       = TRUE
805WRITE_LOCK_CAP     = TRUE
806WRITE_LOCK_STATUS  = TRUE
807READ_DISABLED_CAP  = TRUE
808READ_ENABLED_CAP   = TRUE
809READ_STATUS        = TRUE
810READ_LOCK_CAP      = TRUE
811READ_LOCK_STATUS   = TRUE
812
813
814
815FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
816!if $(LZMA_ENABLE) == TRUE
817# LZMA Compress
818       SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
819          SECTION FV_IMAGE = FVMAIN
820       }
821!else
822!if $(DXE_COMPRESS_ENABLE) == TRUE
823# Tiano Compress
824       SECTION GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
825          SECTION FV_IMAGE = FVMAIN
826       }
827!else
828# No Compress
829       SECTION COMPRESS PI_NONE {
830          SECTION FV_IMAGE = FVMAIN
831       }
832!endif
833!endif
834     }
835
836[FV.SETUP_DATA]
837BlockSize          = $(FLASH_BLOCK_SIZE)
838#NumBlocks         = 0x10
839FvAlignment        = 16
840ERASE_POLARITY     = 1
841MEMORY_MAPPED      = TRUE
842STICKY_WRITE       = TRUE
843LOCK_CAP           = TRUE
844LOCK_STATUS        = TRUE
845WRITE_DISABLED_CAP = TRUE
846WRITE_ENABLED_CAP  = TRUE
847WRITE_STATUS       = TRUE
848WRITE_LOCK_CAP     = TRUE
849WRITE_LOCK_STATUS  = TRUE
850READ_DISABLED_CAP  = TRUE
851READ_ENABLED_CAP   = TRUE
852READ_STATUS        = TRUE
853READ_LOCK_CAP      = TRUE
854READ_LOCK_STATUS   = TRUE
855
856
857!if $(CAPSULE_ENABLE) || $(RECOVERY_ENABLE)
858[FV.CapsuleDispatchFv]
859FvAlignment        = 16
860ERASE_POLARITY     = 1
861MEMORY_MAPPED      = TRUE
862STICKY_WRITE       = TRUE
863LOCK_CAP           = TRUE
864LOCK_STATUS        = TRUE
865WRITE_DISABLED_CAP = TRUE
866WRITE_ENABLED_CAP  = TRUE
867WRITE_STATUS       = TRUE
868WRITE_LOCK_CAP     = TRUE
869WRITE_LOCK_STATUS  = TRUE
870READ_DISABLED_CAP  = TRUE
871READ_ENABLED_CAP   = TRUE
872READ_STATUS        = TRUE
873READ_LOCK_CAP      = TRUE
874READ_LOCK_STATUS   = TRUE
875
876!if $(CAPSULE_ENABLE)
877INF  SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareUpdateDxe.inf
878!endif
879
880!endif
881
882################################################################################
883#
884# Rules are use with the [FV] section's module INF type to define
885# how an FFS file is created for a given INF file. The following Rule are the default
886# rules for the different module type. User can add the customized rules to define the
887# content of the FFS file.
888#
889################################################################################
890[Rule.Common.SEC]
891  FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
892    PE32  PE32    Align = 8       $(INF_OUTPUT)/$(MODULE_NAME).efi
893    RAW BIN       Align = 16      |.com
894  }
895
896[Rule.Common.SEC.BINARY]
897  FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
898    PE32  PE32    Align = 8       |.efi
899    RAW BIN       Align = 16      |.com
900  }
901
902[Rule.Common.PEI_CORE]
903  FILE PEI_CORE = $(NAMED_GUID)            {
904    PE32       PE32    Align = Auto      $(INF_OUTPUT)/$(MODULE_NAME).efi
905    UI       STRING="$(MODULE_NAME)" Optional
906    VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
907  }
908
909[Rule.Common.PEIM]
910  FILE PEIM = $(NAMED_GUID) {
911     PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
912     PE32        PE32   Align = Auto     $(INF_OUTPUT)/$(MODULE_NAME).efi
913     UI        STRING="$(MODULE_NAME)" Optional
914     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
915  }
916
917[Rule.Common.PEIM.BINARY]
918  FILE PEIM = $(NAMED_GUID) {
919     PEI_DEPEX PEI_DEPEX Optional        |.depex
920     PE32        PE32   Align = Auto     |.efi
921     UI        STRING="$(MODULE_NAME)" Optional
922     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
923  }
924
925[Rule.Common.PEIM.BIOSID]
926  FILE PEIM = $(NAMED_GUID) {
927     RAW       BIN                       BiosId.bin
928     PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
929     PE32        PE32   Align = Auto     $(INF_OUTPUT)/$(MODULE_NAME).efi
930     UI        STRING="$(MODULE_NAME)" Optional
931     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
932  }
933
934[Rule.Common.USER_DEFINED.APINIT]
935  FILE RAW = $(NAMED_GUID) Fixed Align=4K {
936     RAW SEC_BIN |.com
937     }
938#cjia 2011-07-21
939[Rule.Common.USER_DEFINED.LEGACY16]
940  FILE FREEFORM = $(NAMED_GUID) {
941     UI  STRING="$(MODULE_NAME)" Optional
942     RAW BIN |.bin
943     }
944#cjia
945
946[Rule.Common.USER_DEFINED.ASM16]
947  FILE FREEFORM = $(NAMED_GUID) {
948     UI  STRING="$(MODULE_NAME)" Optional
949     RAW BIN |.com
950   }
951
952[Rule.Common.DXE_CORE]
953  FILE DXE_CORE = $(NAMED_GUID) {
954    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
955    UI        STRING="$(MODULE_NAME)" Optional
956    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
957  }
958
959[Rule.Common.UEFI_DRIVER]
960  FILE DRIVER = $(NAMED_GUID) {
961    DXE_DEPEX DXE_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
962    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
963    UI        STRING="$(MODULE_NAME)" Optional
964    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
965  }
966
967[Rule.Common.UEFI_DRIVER.BINARY]
968  FILE DRIVER = $(NAMED_GUID) {
969    DXE_DEPEX DXE_DEPEX Optional       |.depex
970    PE32      PE32                     |.efi
971    UI        STRING="$(MODULE_NAME)" Optional
972    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
973  }
974
975[Rule.Common.UEFI_DRIVER.NATIVE_BINARY]
976  FILE DRIVER = $(NAMED_GUID) {
977    DXE_DEPEX DXE_DEPEX Optional      $(WORKSPACE)/$(PLATFORM_PACKAGE)/IntelGopDepex/IntelGopDriver.depex
978    PE32      PE32                    |.efi
979    UI        STRING="$(MODULE_NAME)" Optional
980    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
981  }
982
983[Rule.Common.DXE_DRIVER]
984  FILE DRIVER = $(NAMED_GUID) {
985    DXE_DEPEX DXE_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
986    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
987    UI        STRING="$(MODULE_NAME)" Optional
988    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
989  }
990
991[Rule.Common.DXE_DRIVER.BINARY]
992  FILE DRIVER = $(NAMED_GUID) {
993    DXE_DEPEX DXE_DEPEX Optional       |.depex
994    PE32      PE32                     |.efi
995    UI        STRING="$(MODULE_NAME)" Optional
996    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
997  }
998
999[Rule.Common.DXE_DRIVER.DRIVER_ACPITABLE]
1000  FILE DRIVER = $(NAMED_GUID) {
1001    DXE_DEPEX DXE_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
1002    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
1003    UI        STRING="$(MODULE_NAME)" Optional
1004    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1005    RAW ACPI  Optional                |.acpi
1006    RAW ASL   Optional                |.aml
1007  }
1008
1009[Rule.Common.DXE_RUNTIME_DRIVER]
1010  FILE DRIVER = $(NAMED_GUID) {
1011    DXE_DEPEX DXE_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
1012    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
1013    UI        STRING="$(MODULE_NAME)" Optional
1014    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1015  }
1016
1017[Rule.Common.DXE_RUNTIME_DRIVER.BINARY]
1018  FILE DRIVER = $(NAMED_GUID) {
1019    DXE_DEPEX DXE_DEPEX Optional       |.depex
1020    PE32      PE32                     |.efi
1021    UI        STRING="$(MODULE_NAME)" Optional
1022    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1023  }
1024
1025[Rule.Common.DXE_SMM_DRIVER]
1026  FILE SMM = $(NAMED_GUID) {
1027    DXE_DEPEX DXE_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
1028    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
1029    UI        STRING="$(MODULE_NAME)" Optional
1030    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1031  }
1032
1033[Rule.Common.DXE_SMM_DRIVER.BINARY]
1034  FILE SMM = $(NAMED_GUID) {
1035    SMM_DEPEX SMM_DEPEX                |.depex
1036    PE32      PE32                     |.efi
1037    RAW       BIN  Optional            |.aml
1038    UI        STRING="$(MODULE_NAME)" Optional
1039    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1040  }
1041
1042[Rule.Common.DXE_SMM_DRIVER.DRIVER_ACPITABLE]
1043  FILE SMM = $(NAMED_GUID) {
1044    DXE_DEPEX DXE_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
1045    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
1046    UI        STRING="$(MODULE_NAME)" Optional
1047    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1048    RAW ACPI  Optional                |.acpi
1049    RAW ASL   Optional                |.aml
1050  }
1051
1052[Rule.Common.SMM_CORE]
1053  FILE SMM_CORE = $(NAMED_GUID) {
1054    DXE_DEPEX DXE_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
1055    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
1056    UI        STRING="$(MODULE_NAME)" Optional
1057    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1058  }
1059
1060[Rule.Common.SMM_CORE.BINARY]
1061  FILE SMM_CORE = $(NAMED_GUID) {
1062    DXE_DEPEX DXE_DEPEX Optional       |.depex
1063    PE32      PE32                     |.efi
1064    UI        STRING="$(MODULE_NAME)" Optional
1065    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1066  }
1067
1068[Rule.Common.UEFI_APPLICATION]
1069  FILE APPLICATION = $(NAMED_GUID) {
1070    DXE_DEPEX DXE_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
1071    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
1072    UI        STRING="$(MODULE_NAME)" Optional
1073    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1074  }
1075
1076[Rule.Common.UEFI_APPLICATION.UI]
1077  FILE APPLICATION = $(NAMED_GUID) {
1078    PE32      PE32                     $(INF_OUTPUT)/$(MODULE_NAME).efi
1079    UI        STRING="Enter Setup"
1080    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1081  }
1082
1083[Rule.Common.USER_DEFINED]
1084  FILE FREEFORM = $(NAMED_GUID) {
1085    UI  STRING="$(MODULE_NAME)" Optional
1086    RAW BIN                |.bin
1087  }
1088
1089[Rule.Common.USER_DEFINED.ACPITABLE]
1090  FILE FREEFORM = $(NAMED_GUID) {
1091    RAW ACPI  Optional            |.acpi
1092    RAW ASL   Optional            |.aml
1093  }
1094
1095[Rule.Common.USER_DEFINED.ACPITABLE2]
1096  FILE FREEFORM = $(NAMED_GUID) {
1097    RAW ASL   Optional            |.aml
1098  }
1099
1100[Rule.Common.ACPITABLE]
1101  FILE FREEFORM = $(NAMED_GUID) {
1102    RAW ACPI  Optional            |.acpi
1103    RAW ASL   Optional            |.aml
1104  }
1105
1106[Rule.Common.PEIM.FMP_IMAGE_DESC]
1107  FILE PEIM = $(NAMED_GUID) {
1108     RAW BIN                  |.acpi
1109     PEI_DEPEX PEI_DEPEX Optional        $(INF_OUTPUT)/$(MODULE_NAME).depex
1110     PE32      PE32    Align=4K          $(INF_OUTPUT)/$(MODULE_NAME).efi
1111     UI       STRING="$(MODULE_NAME)" Optional
1112     VERSION  STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
1113  }
1114