EmulatorPkg.dsc 24 KB

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