EmulatorPkg.dsc 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. ## @file
  2. # UEFI/PI 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) 2006 - 2020, Intel Corporation. All rights reserved.<BR>
  8. # Portions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>
  9. # Copyright (c) Microsoft Corporation.
  10. #
  11. # SPDX-License-Identifier: BSD-2-Clause-Patent
  12. #
  13. ##
  14. [Defines]
  15. PLATFORM_NAME = EmulatorPkg
  16. PLATFORM_GUID = 05FD064D-1073-E844-936C-A0E16317107D
  17. PLATFORM_VERSION = 0.3
  18. DSC_SPECIFICATION = 0x00010005
  19. OUTPUT_DIRECTORY = Build/Emulator$(ARCH)
  20. SUPPORTED_ARCHITECTURES = X64|IA32
  21. BUILD_TARGETS = DEBUG|RELEASE|NOOPT
  22. SKUID_IDENTIFIER = DEFAULT
  23. FLASH_DEFINITION = EmulatorPkg/EmulatorPkg.fdf
  24. #
  25. # Network definition
  26. #
  27. DEFINE NETWORK_SNP_ENABLE = FALSE
  28. DEFINE NETWORK_IP6_ENABLE = FALSE
  29. DEFINE NETWORK_TLS_ENABLE = FALSE
  30. DEFINE NETWORK_HTTP_BOOT_ENABLE = FALSE
  31. DEFINE NETWORK_HTTP_ENABLE = FALSE
  32. DEFINE NETWORK_ISCSI_ENABLE = FALSE
  33. DEFINE SECURE_BOOT_ENABLE = FALSE
  34. #
  35. # Redfish definition
  36. #
  37. DEFINE REDFISH_ENABLE = FALSE
  38. [SkuIds]
  39. 0|DEFAULT
  40. [LibraryClasses]
  41. #
  42. # Entry point
  43. #
  44. PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
  45. PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
  46. DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
  47. UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
  48. UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
  49. #
  50. # Basic
  51. #
  52. BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
  53. SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
  54. PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
  55. CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
  56. PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
  57. PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
  58. BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
  59. FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
  60. #
  61. # UEFI & PI
  62. #
  63. UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
  64. UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
  65. UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
  66. UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
  67. UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
  68. HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
  69. DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
  70. UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
  71. PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
  72. DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
  73. DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
  74. SmbiosLib|EmulatorPkg/Library/SmbiosLib/SmbiosLib.inf
  75. #
  76. # Generic Modules
  77. #
  78. UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
  79. OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
  80. BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
  81. FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
  82. UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
  83. BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf
  84. SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
  85. CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
  86. SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
  87. TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
  88. SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
  89. CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
  90. #
  91. # Platform
  92. #
  93. PlatformBootManagerLib|EmulatorPkg/Library/PlatformBmLib/PlatformBmLib.inf
  94. KeyMapLib|EmulatorPkg/Library/KeyMapLibNull/KeyMapLibNull.inf
  95. !if $(REDFISH_ENABLE) == TRUE
  96. RedfishPlatformHostInterfaceLib|EmulatorPkg/Library/RedfishPlatformHostInterfaceLib/RedfishPlatformHostInterfaceLib.inf
  97. RedfishPlatformCredentialLib|EmulatorPkg/Library/RedfishPlatformCredentialLib/RedfishPlatformCredentialLib.inf
  98. !endif
  99. #
  100. # Misc
  101. #
  102. DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
  103. PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
  104. DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
  105. PeiServicesTablePointerLib|EmulatorPkg/Library/PeiServicesTablePointerLibMagicPage/PeiServicesTablePointerLibMagicPage.inf
  106. DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
  107. LockBoxLib|MdeModulePkg/Library/LockBoxNullLib/LockBoxNullLib.inf
  108. CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf
  109. TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
  110. VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
  111. VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf
  112. VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf
  113. SortLib|MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf
  114. ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
  115. FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
  116. !if $(SECURE_BOOT_ENABLE) == TRUE
  117. RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf
  118. IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
  119. OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
  120. PlatformSecureLib|SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.inf
  121. AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
  122. !else
  123. AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
  124. !endif
  125. [LibraryClasses.common.SEC]
  126. PeiServicesLib|EmulatorPkg/Library/SecPeiServicesLib/SecPeiServicesLib.inf
  127. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  128. PeCoffGetEntryPointLib|EmulatorPkg/Library/PeiEmuPeCoffGetEntryPointLib/PeiEmuPeCoffGetEntryPointLib.inf
  129. PeCoffExtraActionLib|EmulatorPkg/Library/PeiEmuPeCoffExtraActionLib/PeiEmuPeCoffExtraActionLib.inf
  130. SerialPortLib|EmulatorPkg/Library/PeiEmuSerialPortLib/PeiEmuSerialPortLib.inf
  131. PpiListLib|EmulatorPkg/Library/SecPpiListLib/SecPpiListLib.inf
  132. DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
  133. TimerLib|EmulatorPkg/Library/PeiTimerLib/PeiTimerLib.inf
  134. [LibraryClasses.common.USER_DEFINED, LibraryClasses.common.BASE]
  135. DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
  136. PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
  137. MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
  138. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  139. PpiListLib|EmulatorPkg/Library/SecPpiListLib/SecPpiListLib.inf
  140. ThunkPpiList|EmulatorPkg/Library/ThunkPpiList/ThunkPpiList.inf
  141. ThunkProtocolList|EmulatorPkg/Library/ThunkProtocolList/ThunkProtocolList.inf
  142. PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
  143. PpiListLib|EmulatorPkg/Library/SecPpiListLib/SecPpiListLib.inf
  144. PeiServicesLib|EmulatorPkg/Library/SecPeiServicesLib/SecPeiServicesLib.inf
  145. [LibraryClasses.common.PEIM, LibraryClasses.common.PEI_CORE]
  146. HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
  147. MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
  148. ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
  149. PeCoffGetEntryPointLib|EmulatorPkg/Library/PeiEmuPeCoffGetEntryPointLib/PeiEmuPeCoffGetEntryPointLib.inf
  150. PeCoffExtraActionLib|EmulatorPkg/Library/PeiEmuPeCoffExtraActionLib/PeiEmuPeCoffExtraActionLib.inf
  151. ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
  152. SerialPortLib|EmulatorPkg/Library/PeiEmuSerialPortLib/PeiEmuSerialPortLib.inf
  153. ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
  154. TimerLib|EmulatorPkg/Library/PeiTimerLib/PeiTimerLib.inf
  155. [LibraryClasses.common.PEI_CORE]
  156. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  157. [LibraryClasses.common.PEIM]
  158. PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
  159. [LibraryClasses.common.DXE_CORE]
  160. HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
  161. MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
  162. ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
  163. PeCoffExtraActionLib|EmulatorPkg/Library/DxeEmuPeCoffExtraActionLib/DxeEmuPeCoffExtraActionLib.inf
  164. ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
  165. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  166. TimerLib|EmulatorPkg/Library/DxeCoreTimerLib/DxeCoreTimerLib.inf
  167. EmuThunkLib|EmulatorPkg/Library/DxeEmuLib/DxeEmuLib.inf
  168. [LibraryClasses.common.DXE_DRIVER, LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION]
  169. !if $(SECURE_BOOT_ENABLE) == TRUE
  170. BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
  171. !endif
  172. [LibraryClasses.common.DXE_RUNTIME_DRIVER]
  173. !if $(SECURE_BOOT_ENABLE) == TRUE
  174. BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
  175. !endif
  176. [LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.DXE_DRIVER, LibraryClasses.common.UEFI_APPLICATION]
  177. HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
  178. PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
  179. MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
  180. ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
  181. EmuThunkLib|EmulatorPkg/Library/DxeEmuLib/DxeEmuLib.inf
  182. PeCoffExtraActionLib|EmulatorPkg/Library/DxeEmuPeCoffExtraActionLib/DxeEmuPeCoffExtraActionLib.inf
  183. ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
  184. TimerLib|EmulatorPkg/Library/DxeTimerLib/DxeTimerLib.inf
  185. [PcdsFeatureFlag]
  186. gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE
  187. gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst|FALSE
  188. gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables|FALSE
  189. [PcdsFixedAtBuild]
  190. gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x00000000
  191. gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
  192. gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000040
  193. gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x0f
  194. gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x1f
  195. gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0x0
  196. gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x0
  197. gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE
  198. gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareFdSize|0x002a0000
  199. gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareBlockSize|0x10000
  200. gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareVolume|L"../FV/FV_RECOVERY.fd"
  201. !if $(SECURE_BOOT_ENABLE) == TRUE
  202. gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
  203. gEfiSecurityPkgTokenSpaceGuid.PcdUserPhysicalPresence|TRUE
  204. !endif
  205. gEmulatorPkgTokenSpaceGuid.PcdEmuMemorySize|L"64!64"
  206. # Change PcdBootManagerMenuFile to UiApp
  207. gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
  208. #define BOOT_WITH_FULL_CONFIGURATION 0x00
  209. #define BOOT_WITH_MINIMAL_CONFIGURATION 0x01
  210. #define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES 0x02
  211. #define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03
  212. #define BOOT_WITH_DEFAULT_SETTINGS 0x04
  213. #define BOOT_ON_S4_RESUME 0x05
  214. #define BOOT_ON_S5_RESUME 0x06
  215. #define BOOT_ON_S2_RESUME 0x10
  216. #define BOOT_ON_S3_RESUME 0x11
  217. #define BOOT_ON_FLASH_UPDATE 0x12
  218. #define BOOT_IN_RECOVERY_MODE 0x20
  219. gEmulatorPkgTokenSpaceGuid.PcdEmuBootMode|0
  220. gEmulatorPkgTokenSpaceGuid.PcdEmuApCount|L"1"
  221. # For a CD-ROM/DVD use L"diag.dmg:RO:2048"
  222. gEmulatorPkgTokenSpaceGuid.PcdEmuVirtualDisk|L"disk.dmg:FW"
  223. gEmulatorPkgTokenSpaceGuid.PcdEmuGop|L"GOP Window"
  224. gEmulatorPkgTokenSpaceGuid.PcdEmuFileSystem|L"."
  225. gEmulatorPkgTokenSpaceGuid.PcdEmuSerialPort|L"/dev/ttyS0"
  226. gEmulatorPkgTokenSpaceGuid.PcdEmuNetworkInterface|L"en0"
  227. gEmulatorPkgTokenSpaceGuid.PcdEmuCpuModel|L"Intel(R) Processor Model"
  228. gEmulatorPkgTokenSpaceGuid.PcdEmuCpuSpeed|L"3000"
  229. # 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
  230. gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
  231. !if $(REDFISH_ENABLE) == TRUE
  232. gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceDevicePath.DevicePathMatchMode|DEVICE_PATH_MATCH_MAC_NODE
  233. gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceDevicePath.DevicePathNum|1
  234. #
  235. # Below is the MAC address of network adapter on EDK2 Emulator platform.
  236. # You can use ifconfig under EFI shell to get the MAC address of network adapter on EDK2 Emulator platform.
  237. #
  238. gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceDevicePath.DevicePath|{DEVICE_PATH("MAC(000000000000,0x1)")}
  239. gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceAccessModeInBand|False
  240. gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDiscoverAccessModeInBand|False
  241. !endif
  242. [PcdsDynamicDefault.common.DEFAULT]
  243. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0
  244. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0
  245. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
  246. [PcdsDynamicHii.common.DEFAULT]
  247. gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|L"Setup"|gEmuSystemConfigGuid|0x0|80
  248. gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|L"Setup"|gEmuSystemConfigGuid|0x4|25
  249. gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|10
  250. [Components]
  251. !if "IA32" in $(ARCH) || "X64" in $(ARCH)
  252. !if "MSFT" in $(FAMILY) || $(WIN_HOST_BUILD) == TRUE
  253. ##
  254. # Emulator, OS WIN application
  255. # CLANGPDB is cross OS tool chain. It depends on WIN_HOST_BUILD flag
  256. # to build WinHost application.
  257. ##
  258. EmulatorPkg/Win/Host/WinHost.inf
  259. !else
  260. ##
  261. # Emulator, OS POSIX application
  262. ##
  263. EmulatorPkg/Unix/Host/Host.inf
  264. !endif
  265. !endif
  266. !ifndef $(SKIP_MAIN_BUILD)
  267. #
  268. # Generic SEC
  269. #
  270. EmulatorPkg/Sec/Sec.inf
  271. ##
  272. # PEI Phase modules
  273. ##
  274. MdeModulePkg/Core/Pei/PeiMain.inf
  275. MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
  276. <LibraryClasses>
  277. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  278. }
  279. MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf
  280. MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
  281. EmulatorPkg/BootModePei/BootModePei.inf
  282. MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
  283. MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
  284. EmulatorPkg/AutoScanPei/AutoScanPei.inf
  285. EmulatorPkg/FirmwareVolumePei/FirmwareVolumePei.inf
  286. EmulatorPkg/FlashMapPei/FlashMapPei.inf
  287. EmulatorPkg/ThunkPpiToProtocolPei/ThunkPpiToProtocolPei.inf
  288. MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
  289. ##
  290. # DXE Phase modules
  291. ##
  292. MdeModulePkg/Core/Dxe/DxeMain.inf {
  293. <LibraryClasses>
  294. DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
  295. SerialPortLib|EmulatorPkg/Library/DxeEmuStdErrSerialPortLib/DxeEmuStdErrSerialPortLib.inf
  296. DxeEmuLib|EmulatorPkg/Library/DxeEmuLib/DxeEmuLib.inf
  297. NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
  298. NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
  299. }
  300. MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
  301. <LibraryClasses>
  302. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  303. }
  304. MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
  305. MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
  306. <LibraryClasses>
  307. DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
  308. SerialPortLib|EmulatorPkg/Library/DxeEmuStdErrSerialPortLib/DxeEmuStdErrSerialPortLib.inf
  309. }
  310. MdeModulePkg/Universal/Metronome/Metronome.inf
  311. EmulatorPkg/RealTimeClockRuntimeDxe/RealTimeClock.inf
  312. EmulatorPkg/ResetRuntimeDxe/Reset.inf
  313. MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
  314. EmulatorPkg/FvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
  315. MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
  316. <LibraryClasses>
  317. !if $(SECURE_BOOT_ENABLE) == TRUE
  318. NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
  319. !endif
  320. }
  321. MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
  322. MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
  323. EmulatorPkg/EmuThunkDxe/EmuThunk.inf
  324. EmulatorPkg/CpuRuntimeDxe/Cpu.inf
  325. MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
  326. EmulatorPkg/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
  327. EmulatorPkg/TimerDxe/Timer.inf
  328. !if $(SECURE_BOOT_ENABLE) == TRUE
  329. SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
  330. !endif
  331. MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
  332. <LibraryClasses>
  333. NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
  334. }
  335. MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
  336. MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
  337. MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
  338. MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
  339. MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
  340. MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
  341. MdeModulePkg/Universal/SerialDxe/SerialDxe.inf {
  342. <LibraryClasses>
  343. DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
  344. SerialPortLib|EmulatorPkg/Library/DxeEmuSerialPortLib/DxeEmuSerialPortLib.inf
  345. }
  346. MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
  347. MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
  348. !if "XCODE5" not in $(TOOL_CHAIN_TAG)
  349. MdeModulePkg/Logo/LogoDxe.inf
  350. !endif
  351. MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.inf
  352. MdeModulePkg/Application/UiApp/UiApp.inf {
  353. <LibraryClasses>
  354. NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
  355. NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
  356. NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
  357. }
  358. MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
  359. MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
  360. #{
  361. # <LibraryClasses>
  362. # NULL|EmulatorPkg/Library/DevicePathTextLib/DevicePathTextLib.inf
  363. #}
  364. MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
  365. MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
  366. MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
  367. MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
  368. MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
  369. MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
  370. EmulatorPkg/EmuBusDriverDxe/EmuBusDriverDxe.inf
  371. EmulatorPkg/EmuGopDxe/EmuGopDxe.inf
  372. EmulatorPkg/EmuSimpleFileSystemDxe/EmuSimpleFileSystemDxe.inf
  373. EmulatorPkg/EmuBlockIoDxe/EmuBlockIoDxe.inf
  374. EmulatorPkg/EmuSnpDxe/EmuSnpDxe.inf
  375. MdeModulePkg/Application/HelloWorld/HelloWorld.inf
  376. MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
  377. MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
  378. MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
  379. MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
  380. MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
  381. MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf {
  382. <LibraryClasses>
  383. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  384. }
  385. FatPkg/EnhancedFatDxe/Fat.inf
  386. !if "XCODE5" not in $(TOOL_CHAIN_TAG)
  387. ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {
  388. <PcdsFixedAtBuild>
  389. gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
  390. }
  391. !endif
  392. ShellPkg/Application/Shell/Shell.inf {
  393. <LibraryClasses>
  394. ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
  395. NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
  396. NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
  397. NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
  398. NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
  399. NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
  400. NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
  401. NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
  402. HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
  403. SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
  404. PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
  405. # SafeBlockIoLib|ShellPkg/Library/SafeBlockIoLib/SafeBlockIoLib.inf
  406. # SafeOpenProtocolLib|ShellPkg/Library/SafeOpenProtocolLib/SafeOpenProtocolLib.inf
  407. BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
  408. IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
  409. <PcdsFixedAtBuild>
  410. gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
  411. gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
  412. gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
  413. }
  414. !endif
  415. !include NetworkPkg/Network.dsc.inc
  416. !if $(REDFISH_ENABLE) == TRUE
  417. EmulatorPkg/Application/RedfishPlatformConfig/RedfishPlatformConfig.inf
  418. !endif
  419. !include RedfishPkg/Redfish.dsc.inc
  420. [BuildOptions]
  421. #
  422. # Disable deprecated APIs.
  423. #
  424. *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
  425. MSFT:DEBUG_*_*_CC_FLAGS = /Od /Oy-
  426. MSFT:NOOPT_*_*_CC_FLAGS = /Od /Oy-
  427. GCC:DEBUG_CLANGPDB_*_CC_FLAGS =-O0 -Wno-unused-command-line-argument -Wno-incompatible-pointer-types -Wno-enum-conversion -Wno-incompatible-pointer-types -Wno-sometimes-uninitialized -Wno-constant-conversion -Wno-main-return-type
  428. MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE
  429. MSFT:DEBUG_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
  430. MSFT:NOOPT_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
  431. !if $(WIN_HOST_BUILD) == TRUE
  432. #
  433. # CLANGPDB tool chain depends on WIN_HOST_BUILD flag to generate the windows application.
  434. #
  435. GCC:*_CLANGPDB_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE
  436. GCC:DEBUG_CLANGPDB_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
  437. GCC:NOOPT_CLANGPDB_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
  438. !endif