EmulatorPkg.dsc 24 KB

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