1## @file
2# EFI/Framework Emulation Platform with UEFI HII interface supported.
3#
4# The Emulation Platform can be used to debug individual modules, prior to creating
5#    a real platform. This also provides an example for how an DSC is created.
6#
7# Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>
8# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
9#
10#    This program and the accompanying materials
11#    are licensed and made available under the terms and conditions of the BSD License
12#    which accompanies this distribution. The full text of the license may be found at
13#    http://opensource.org/licenses/bsd-license.php
14#
15#    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16#    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17#
18##
19
20################################################################################
21#
22# Defines Section - statements that will be processed to create a Makefile.
23#
24################################################################################
25[Defines]
26  PLATFORM_NAME                  = NT32
27  PLATFORM_GUID                  = EB216561-961F-47EE-9EF9-CA426EF547C2
28  PLATFORM_VERSION               = 0.4
29  DSC_SPECIFICATION              = 0x00010005
30  OUTPUT_DIRECTORY               = Build/NT32$(ARCH)
31  SUPPORTED_ARCHITECTURES        = IA32|X64
32  BUILD_TARGETS                  = DEBUG|RELEASE
33  SKUID_IDENTIFIER               = DEFAULT
34  FLASH_DEFINITION               = Nt32Pkg/Nt32Pkg.fdf
35  #
36  # This flag is to control tool to generate PCD info for dynamic(ex) PCD,
37  # then enable or disable PCD info feature. TRUE is enable, and FLASE is disable.
38  # If the flag is absent, it will be same as FALSE.
39  #
40  PCD_INFO_GENERATION            = TRUE
41
42  #
43  # Defines for default states.  These can be changed on the command line.
44  # -D FLAG=VALUE
45  #
46  DEFINE SECURE_BOOT_ENABLE      = FALSE
47
48################################################################################
49#
50# SKU Identification section - list of all SKU IDs supported by this
51#                              Platform.
52#
53################################################################################
54[SkuIds]
55  0|DEFAULT              # The entry: 0|DEFAULT is reserved and always required.
56
57################################################################################
58#
59# Library Class section - list of all Library Classes needed by this Platform.
60#
61################################################################################
62[LibraryClasses]
63  #
64  # Entry point
65  #
66  PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
67  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
68  DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
69  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
70  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
71  #
72  # Basic
73  #
74  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
75  SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
76  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
77  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
78  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
79  PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
80  PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
81  PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf
82  CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
83  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
84  PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
85  SortLib|MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf
86  #
87  # UEFI & PI
88  #
89  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
90  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
91  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
92  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
93  UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
94  HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
95  DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
96  UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
97  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
98  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
99  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
100  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
101  UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
102  FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
103  
104  #
105  # Generic Modules
106  #
107  UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
108  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
109  NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
110  IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
111  UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
112  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
113  DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
114  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
115  GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
116  CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
117  SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
118  TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
119  SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
120  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
121  ImageDecoderLib|MdeModulePkg/Library/ImageDecoderLib/ImageDecoderLib.inf
122  BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
123  #
124  # Platform
125  #
126  PlatformBootManagerLib|Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
127  #
128  # Misc
129  #
130  DebugLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
131  DebugPrintErrorLevelLib|MdeModulePkg/Library/DxeDebugPrintErrorLevelLib/DxeDebugPrintErrorLevelLib.inf
132  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
133  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
134  CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf
135  LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf
136  
137!if $(SECURE_BOOT_ENABLE) == TRUE
138  PlatformSecureLib|Nt32Pkg/Library/PlatformSecureLib/PlatformSecureLib.inf
139  IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
140  OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
141  TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
142  AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
143!else
144  TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
145  AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
146!endif
147  VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
148
149[LibraryClasses.common.USER_DEFINED]
150  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
151  PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
152  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
153  OemHookStatusCodeLib|Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf
154  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
155  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
156
157[LibraryClasses.common.PEIM,LibraryClasses.common.PEI_CORE]
158  #
159  # PEI phase common
160  #
161  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
162  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
163  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
164  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
165  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptPei/BaseMemoryLibOptPei.inf
166  IoLib|MdePkg/Library/PeiIoLibCpuIo/PeiIoLibCpuIo.inf
167  PeCoffGetEntryPointLib|Nt32Pkg/Library/Nt32PeiPeCoffGetEntryPointLib/Nt32PeiPeCoffGetEntryPointLib.inf
168  PeCoffExtraActionLib|Nt32Pkg/Library/PeiNt32PeCoffExtraActionLib/PeiNt32PeCoffExtraActionLib.inf
169  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
170
171[LibraryClasses.common.PEI_CORE]
172  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
173  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
174
175[LibraryClasses.common.PEIM]
176  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
177  OemHookStatusCodeLib|Nt32Pkg/Library/PeiNt32OemHookStatusCodeLib/PeiNt32OemHookStatusCodeLib.inf
178!if $(SECURE_BOOT_ENABLE) == TRUE  
179  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
180!endif
181
182[LibraryClasses.common]
183  #
184  # DXE phase common
185  #
186  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf
187  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
188  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
189  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
190  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
191  OemHookStatusCodeLib|Nt32Pkg/Library/DxeNt32OemHookStatusCodeLib/DxeNt32OemHookStatusCodeLib.inf
192  PeCoffExtraActionLib|Nt32Pkg/Library/DxeNt32PeCoffExtraActionLib/DxeNt32PeCoffExtraActionLib.inf
193  ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
194  WinNtLib|Nt32Pkg/Library/DxeWinNtLib/DxeWinNtLib.inf
195!if $(SECURE_BOOT_ENABLE) == TRUE
196  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
197!endif
198
199[LibraryClasses.common.DXE_CORE]
200  HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
201  MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
202  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
203
204[LibraryClasses.common.DXE_SMM_DRIVER]
205  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
206
207[LibraryClasses.common.UEFI_DRIVER]
208  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
209
210[LibraryClasses.common.UEFI_APPLICATION]
211  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
212  PrintLib|MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf
213  
214[LibraryClasses.common.DXE_RUNTIME_DRIVER]
215  #
216  # Runtime
217  #
218!if $(SECURE_BOOT_ENABLE) == TRUE
219  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
220!endif
221
222################################################################################
223#
224# Pcd Section - list of all EDK II PCD Entries defined by this Platform
225#
226################################################################################
227[PcdsFeatureFlag]
228  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE
229  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE
230  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables|FALSE
231  gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst|FALSE
232  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics|TRUE
233
234[PcdsFixedAtBuild]
235  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0x0
236  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x0
237  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000040
238  gEfiNt32PkgTokenSpaceGuid.PcdWinNtFirmwareFdSize|0x2a0000
239  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x1f
240  gEfiNt32PkgTokenSpaceGuid.PcdWinNtFirmwareVolume|L"..\\Fv\\Nt32.fd"
241  gEfiNt32PkgTokenSpaceGuid.PcdWinNtFirmwareBlockSize|0x10000
242  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x0f
243  gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
244!if $(SECURE_BOOT_ENABLE) == TRUE
245  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
246!endif
247
248!ifndef $(USE_OLD_SHELL)
249  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
250!endif
251
252!if $(SECURE_BOOT_ENABLE) == TRUE
253  # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
254  gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
255  gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
256  gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
257!endif
258                        
259  gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
260
261
262################################################################################
263#
264# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
265#
266################################################################################
267[PcdsDynamicDefault.common.DEFAULT]
268  gEfiNt32PkgTokenSpaceGuid.PcdWinNtSerialPort|L"COM1!COM2"|VOID*|20
269  gEfiNt32PkgTokenSpaceGuid.PcdWinNtGop|L"UGA Window 1!UGA Window 2"|VOID*|52
270  gEfiNt32PkgTokenSpaceGuid.PcdWinNtConsole|L"Bus Driver Console Window"|VOID*|52
271  gEfiNt32PkgTokenSpaceGuid.PcdWinNtVirtualDisk|L"FW;40960;512"|VOID*|26
272  gEfiNt32PkgTokenSpaceGuid.PcdWinNtMemorySize|L"64!64"|VOID*|12
273  gEfiNt32PkgTokenSpaceGuid.PcdWinNtPhysicalDisk|L"a:RW;2880;512!d:RO;307200;2048!j:RW;262144;512"|VOID*|100
274  gEfiNt32PkgTokenSpaceGuid.PcdWinNtUga|L"UGA Window 1!UGA Window 2"|VOID*|52
275
276  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
277  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
278  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0
279
280[PcdsDynamicDefault.Ia32]
281  gEfiNt32PkgTokenSpaceGuid.PcdWinNtFileSystem|L".!..\..\..\..\EdkShellBinPkg\Bin\Ia32\Apps"|VOID*|106
282
283[PcdsDynamicDefault.x64]
284  gEfiNt32PkgTokenSpaceGuid.PcdWinNtFileSystem|L".!..\..\..\..\EdkShellBinPkg\Bin\X64\Apps"|VOID*|106
285
286[PcdsDynamicHii.common.DEFAULT]
287  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutColumn|L"SetupConsoleConfig"|gEfiNt32PkgTokenSpaceGuid|0x0|80
288  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutRow|L"SetupConsoleConfig"|gEfiNt32PkgTokenSpaceGuid|0x4|25
289  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|10
290  gEfiMdePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel|L"HwErrRecSupport"|gEfiGlobalVariableGuid|0x0|1
291
292###################################################################################################
293#
294# Components Section - list of the modules and components that will be processed by compilation
295#                      tools and the EDK II tools to generate PE32/PE32+/Coff image files.
296#
297# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
298#       into firmware volume images. This section is just a list of modules to compile from
299#       source into UEFI-compliant binaries.
300#       It is the FDF file that contains information on combining binary files into firmware
301#       volume images, whose concept is beyond UEFI and is described in PI specification.
302#       Binary modules do not need to be listed in this section, as they should be
303#       specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi),
304#       Logo (Logo.bmp), and etc.
305#       There may also be modules listed in this section that are not required in the FDF file,
306#       When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
307#       generated for it, but the binary will not be put into any firmware volume.
308#
309###################################################################################################
310[Components]
311  ##
312  #  SEC Phase modules
313  ##
314  Nt32Pkg/Sec/SecMain.inf {
315  <BuildOptions>
316    # Add override here, because default X64_CC_FLAGS is already overriden in DSC
317    MSFT:*_*_X64_CC_FLAGS == /nologo /W4 /WX /Gy /c /D UNICODE /Od /FIAutoGen.h /EHs-c- /GF /Gs8192 /Zi /Gm /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE
318  }
319
320  ##
321  #  PEI Phase modules
322  ##
323  MdeModulePkg/Core/Pei/PeiMain.inf
324  MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
325    <LibraryClasses>
326      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
327  }
328  MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf
329  MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
330  Nt32Pkg/WinNtOemHookStatusCodeHandlerPei/WinNtOemHookStatusCodeHandlerPei.inf
331  Nt32Pkg/BootModePei/BootModePei.inf
332  Nt32Pkg/StallPei/StallPei.inf
333  Nt32Pkg/WinNtFlashMapPei/WinNtFlashMapPei.inf
334  
335  MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
336  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
337
338  Nt32Pkg/WinNtAutoScanPei/WinNtAutoScanPei.inf
339  Nt32Pkg/WinNtFirmwareVolumePei/WinNtFirmwareVolumePei.inf
340  Nt32Pkg/WinNtThunkPPIToProtocolPei/WinNtThunkPPIToProtocolPei.inf
341  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
342  ##
343  #  DXE Phase modules
344  ##
345  MdeModulePkg/Core/Dxe/DxeMain.inf {
346    <LibraryClasses>
347      NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
348      DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
349    <BuildOptions>
350      *_*_*_CC_FLAGS =
351  }
352
353  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
354    <LibraryClasses>
355      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
356  }
357  Nt32Pkg/MetronomeDxe/MetronomeDxe.inf
358  Nt32Pkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
359  Nt32Pkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
360  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
361  Nt32Pkg/FvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
362  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf  {
363    <LibraryClasses>
364!if $(SECURE_BOOT_ENABLE) == TRUE
365      NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
366!endif 
367  }
368  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
369  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
370  MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
371  Nt32Pkg/WinNtThunkDxe/WinNtThunkDxe.inf
372  Nt32Pkg/CpuRuntimeDxe/CpuRuntimeDxe.inf
373  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
374  Nt32Pkg/MiscSubClassPlatformDxe/MiscSubClassPlatformDxe.inf
375  Nt32Pkg/TimerDxe/TimerDxe.inf
376  MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
377  MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
378  Nt32Pkg/WinNtOemHookStatusCodeHandlerDxe/WinNtOemHookStatusCodeHandlerDxe.inf
379  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
380    <LibraryClasses>
381      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
382  }
383!if $(SECURE_BOOT_ENABLE) == TRUE
384  SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
385!endif
386  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
387  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
388  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
389  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
390  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf {
391    <LibraryClasses>
392      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
393  }
394  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf {
395    <LibraryClasses>
396      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
397  }
398  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf {
399    <LibraryClasses>
400      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
401  }
402  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {
403    <LibraryClasses>
404      DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
405  }
406  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
407  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
408  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
409  MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
410  MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf     ##This driver follows UEFI specification definition
411  MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf    ##This driver follows UEFI specification definition
412  IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
413  Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriverDxe.inf {
414    <LibraryClasses>
415      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
416  }
417  Nt32Pkg/WinNtBlockIoDxe/WinNtBlockIoDxe.inf
418  Nt32Pkg/WinNtSerialIoDxe/WinNtSerialIoDxe.inf
419  Nt32Pkg/WinNtGopDxe/WinNtGopDxe.inf
420  Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystemDxe.inf
421  MdeModulePkg/Application/HelloWorld/HelloWorld.inf
422
423  #
424  # Network stack drivers
425  # To test network drivers, need network Io driver(SnpNt32Io.dll), please refer to NETWORK-IO Subproject.
426  #
427  MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
428  MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
429  MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
430  MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
431  MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
432  MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
433  MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
434  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
435  MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
436  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
437  Nt32Pkg/SnpNt32Dxe/SnpNt32Dxe.inf
438
439  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
440
441  NetworkPkg/HttpBootDxe/HttpBootDxe.inf
442  NetworkPkg/DnsDxe/DnsDxe.inf
443  NetworkPkg/HttpDxe/HttpDxe.inf
444  NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
445
446  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf {
447    <LibraryClasses>
448      NULL|MdeModulePkg/Library/BmpImageDecoderLib/BmpImageDecoderLib.inf
449  }
450  MdeModulePkg/Application/UiApp/UiApp.inf{
451    <LibraryClasses>
452      NULL|MdeModulePkg/Library/DeviceManagerLib/DeviceManagerLib.inf
453      NULL|MdeModulePkg/Library/BootManagerLib/BootManagerLib.inf
454      NULL|MdeModulePkg/Library/BootMaintenanceManagerLib/BootMaintenanceManagerLib.inf
455  }
456  MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
457  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
458  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
459  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
460  MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
461  MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf {
462    <LibraryClasses>
463      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
464  }
465  MdeModulePkg/Application/VariableInfo/VariableInfo.inf
466
467  MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDxe.inf
468
469###################################################################################################
470#
471# BuildOptions Section - Define the module specific tool chain flags that should be used as
472#                        the default flags for a module. These flags are appended to any 
473#                        standard flags that are defined by the build process. They can be 
474#                        applied for any modules or only those modules with the specific 
475#                        module style (EDK or EDKII) specified in [Components] section.
476#
477###################################################################################################
478[BuildOptions]
479  DEBUG_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000 /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE
480  RELEASE_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096
481
482#############################################################################################################
483# NOTE:
484# The following [Libraries] section is for building EDK module under the EDKII tool chain.
485# If you want build EDK module for Nt32 platform, please uncomment [Libraries] section and
486# libraries used by that EDK module.
487# Currently, Nt32 platform do not has any EDK style module
488#
489#
490#[Libraries]
491  #
492  # Libraries common to PEI and DXE
493  #
494  #  EdkCompatibilityPkg/Foundation/Efi/Guid/EfiGuidLib.inf
495  #  EdkCompatibilityPkg/Foundation/Framework/Guid/EdkFrameworkGuidLib.inf
496  #  EdkCompatibilityPkg/Foundation/Guid/EdkGuidLib.inf
497  #  EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/EfiCommonLib.inf
498  #  EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib.inf
499  #  EdkCompatibilityPkg/Foundation/Cpu/Itanium/CpuIa64Lib/CpuIA64Lib.inf
500  #  EdkCompatibilityPkg/Foundation/Library/CustomizedDecompress/CustomizedDecompress.inf
501  #  EdkCompatibilityPkg/Foundation/Library/CompilerStub/CompilerStubLib.inf
502  #  EdkCompatibilityPkg/Foundation/Library/Dxe/Hob/HobLib.inf
503
504  #
505  # PEI libraries
506  #
507  #  EdkCompatibilityPkg/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf
508  #  EdkCompatibilityPkg/Foundation/Ppi/EdkPpiLib.inf
509  #  EdkCompatibilityPkg/Foundation/Library/Pei/PeiLib/PeiLib.inf
510  #  EdkCompatibilityPkg/Foundation/Library/Pei/Hob/PeiHobLib.inf
511
512  #
513  # DXE libraries
514  #
515  #  EdkCompatibilityPkg/Foundation/Core/Dxe/ArchProtocol/ArchProtocolLib.inf
516  #  EdkCompatibilityPkg/Foundation/Efi/Protocol/EfiProtocolLib.inf
517  #  EdkCompatibilityPkg/Foundation/Framework/Protocol/EdkFrameworkProtocolLib.inf
518  #  EdkCompatibilityPkg/Foundation/Protocol/EdkProtocolLib.inf
519  #  EdkCompatibilityPkg/Foundation/Library/Dxe/EfiDriverLib/EfiDriverLib.inf
520  #  EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib.inf
521  #  EdkCompatibilityPkg/Foundation/Library/Dxe/Graphics/Graphics.inf
522  #  EdkCompatibilityPkg/Foundation/Library/Dxe/EfiIfrSupportLib/EfiIfrSupportLib.inf
523  #  EdkCompatibilityPkg/Foundation/Library/Dxe/Print/PrintLib.inf
524  #  EdkCompatibilityPkg/Foundation/Library/Dxe/EfiScriptLib/EfiScriptLib.inf
525  #  EdkCompatibilityPkg/Foundation/Library/Dxe/EfiUiLib/EfiUiLib.inf
526
527  #
528  # Print/Graphics Library consume SetupBrowser Print Protocol
529  #
530  #  EdkCompatibilityPkg/Foundation/Library/Dxe/PrintLite/PrintLib.inf
531  #  EdkCompatibilityPkg/Foundation/Library/Dxe/GraphicsLite/Graphics.inf
532
533