SgiPlatform.dsc 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. #
  2. # Copyright (c) 2018, ARM Limited. All rights reserved.
  3. #
  4. # This program and the accompanying materials are licensed and made available
  5. # under the terms and conditions of the BSD License which accompanies this
  6. # distribution. The full text of the license may be found at
  7. # http://opensource.org/licenses/bsd-license.php
  8. #
  9. # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
  10. # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
  11. #
  12. ################################################################################
  13. #
  14. # Defines Section - statements that will be processed to create a Makefile.
  15. #
  16. ################################################################################
  17. [Defines]
  18. PLATFORM_NAME = ArmSgi
  19. PLATFORM_GUID = 3a6b2eae-0275-4b6e-a5d1-bd2ba1ce1fae
  20. PLATFORM_VERSION = 0.1
  21. DSC_SPECIFICATION = 0x0001001B
  22. OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME)
  23. SUPPORTED_ARCHITECTURES = AARCH64|ARM
  24. BUILD_TARGETS = NOOPT|DEBUG|RELEASE
  25. SKUID_IDENTIFIER = DEFAULT
  26. FLASH_DEFINITION = Platform/ARM/SgiPkg/SgiPlatform.fdf
  27. BUILD_NUMBER = 1
  28. !include Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc
  29. [LibraryClasses.common]
  30. ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
  31. ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
  32. ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
  33. ArmPlatformSysConfigLib|Platform/ARM/VExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
  34. ArmPlatformLib|Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf
  35. BasePathLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
  36. EfiResetSystemLib|ArmPkg/Library/ArmPsciResetSystemLib/ArmPsciResetSystemLib.inf
  37. NorFlashPlatformLib|Platform/ARM/SgiPkg/Library/NorFlashLib/NorFlashLib.inf
  38. HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
  39. TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
  40. # Virtio Support
  41. VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
  42. VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
  43. FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
  44. [LibraryClasses.common.SEC]
  45. HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
  46. MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
  47. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  48. PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
  49. PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
  50. [LibraryClasses.common.PEI_CORE, LibraryClasses.common.PEIM]
  51. BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
  52. HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
  53. MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
  54. PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
  55. PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
  56. PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
  57. ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
  58. [LibraryClasses.common.PEI_CORE]
  59. PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
  60. [LibraryClasses.common.PEIM]
  61. PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
  62. [LibraryClasses.common.DXE_CORE]
  63. DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
  64. HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
  65. MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
  66. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  67. [LibraryClasses.common.DXE_DRIVER]
  68. FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
  69. PciHostBridgeLib|Platform/ARM/SgiPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf
  70. PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
  71. PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf
  72. PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf
  73. [LibraryClasses.common.DXE_RUNTIME_DRIVER]
  74. BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
  75. HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
  76. !if $(TARGET) != RELEASE
  77. DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf
  78. !endif
  79. [LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]
  80. PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
  81. ################################################################################
  82. #
  83. # Pcd Section - list of all EDK II PCD Entries defined by this Platform
  84. #
  85. ################################################################################
  86. [PcdsFeatureFlag.common]
  87. gArmSgiTokenSpaceGuid.PcdVirtioSupported|TRUE
  88. [PcdsFixedAtBuild.common]
  89. gArmTokenSpaceGuid.PcdVFPEnabled|1
  90. # DRAM Block2 Base and Size
  91. gArmSgiTokenSpaceGuid.PcdDramBlock2Base|0x8080000000
  92. gArmSgiTokenSpaceGuid.PcdDramBlock2Size|0x180000000
  93. # NV Storage PCDs. Use base of 0x08000000 for NOR0, 0xC0000000 for NOR 1
  94. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0C000000
  95. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x01400000
  96. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0D400000
  97. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x01400000
  98. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0E800000
  99. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x01400000
  100. # Stacks for MPCores in Normal World
  101. gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x80000000
  102. gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x40000
  103. gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x0
  104. # System Memory (1GB - 16MB of Trusted DRAM at the top of the 32bit address space)
  105. gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
  106. gArmTokenSpaceGuid.PcdSystemMemorySize|0x7F000000
  107. # GIC Base Addresses
  108. gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000
  109. gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x300C0000
  110. #
  111. # PCIe
  112. #
  113. gArmTokenSpaceGuid.PcdPciBusMin|0
  114. gArmTokenSpaceGuid.PcdPciBusMax|255
  115. gArmTokenSpaceGuid.PcdPciIoBase|0x0
  116. gArmTokenSpaceGuid.PcdPciIoSize|0x00800000
  117. gArmTokenSpaceGuid.PcdPciIoTranslation|0x77800000
  118. gArmTokenSpaceGuid.PcdPciMmio32Base|0x70000000
  119. gArmTokenSpaceGuid.PcdPciMmio32Size|0x07800000
  120. gArmTokenSpaceGuid.PcdPciMmio32Translation|0x0
  121. gArmTokenSpaceGuid.PcdPciMmio64Base|0x500000000
  122. gArmTokenSpaceGuid.PcdPciMmio64Size|0x300000000
  123. gArmTokenSpaceGuid.PcdPciMmio64Translation|0x0
  124. gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x60000000
  125. gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|24
  126. gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|40
  127. ## PL011 - Serial Terminal
  128. gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x7FF80000
  129. gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
  130. gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
  131. gArmPlatformTokenSpaceGuid.PL011UartInteger|4
  132. gArmPlatformTokenSpaceGuid.PL011UartFractional|0
  133. ## PL011 - Serial Debug UART
  134. gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase|0x7FF80000
  135. gArmPlatformTokenSpaceGuid.PcdSerialDbgUartClkInHz|7372800
  136. gArmPlatformTokenSpaceGuid.PcdSerialDbgUartBaudRate|115200
  137. gArmPlatformTokenSpaceGuid.PL011UartInterrupt|147
  138. ## PL031 RealTimeClock
  139. gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
  140. # List of Device Paths that support BootMonFs
  141. gArmBootMonFsTokenSpaceGuid.PcdBootMonFsSupportedDevicePaths|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)"
  142. # ARM OS Loader
  143. gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
  144. # ARM Architectural Timer Frequency
  145. gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|100000000
  146. gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000
  147. gEmbeddedTokenSpaceGuid.PcdTimerPeriod|1000
  148. # ARM Cores and Clusters
  149. gArmPlatformTokenSpaceGuid.PcdCoreCount|4
  150. gArmPlatformTokenSpaceGuid.PcdClusterCount|2
  151. # Ethernet
  152. gEmbeddedTokenSpaceGuid.PcdLan91xDxeBaseAddress|0x18000000
  153. ################################################################################
  154. #
  155. # Components Section - list of all EDK II Modules needed by this Platform
  156. #
  157. ################################################################################
  158. [Components.common]
  159. #
  160. # PEI Phase modules
  161. #
  162. ArmPkg/Drivers/CpuPei/CpuPei.inf
  163. ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
  164. ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
  165. ArmPlatformPkg/PlatformPei/PlatformPeim.inf
  166. MdeModulePkg/Core/Pei/PeiMain.inf
  167. MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
  168. <LibraryClasses>
  169. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  170. }
  171. MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
  172. MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
  173. MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
  174. <LibraryClasses>
  175. NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
  176. }
  177. Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf
  178. #
  179. # DXE
  180. #
  181. MdeModulePkg/Core/Dxe/DxeMain.inf {
  182. <LibraryClasses>
  183. NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
  184. <PcdsFixedAtBuild>
  185. gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F
  186. }
  187. #
  188. # Architectural Protocols
  189. #
  190. ArmPkg/Drivers/CpuDxe/CpuDxe.inf
  191. ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
  192. ArmPkg/Drivers/TimerDxe/TimerDxe.inf
  193. ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf
  194. ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
  195. EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
  196. EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
  197. EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
  198. MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
  199. MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
  200. MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
  201. MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
  202. OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
  203. MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
  204. MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
  205. MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
  206. MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
  207. MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
  208. MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
  209. <LibraryClasses>
  210. NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
  211. NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
  212. BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
  213. }
  214. MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
  215. #
  216. # ACPI Support
  217. #
  218. MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
  219. Platform/ARM/SgiPkg/AcpiTables/Sgi575/AcpiTables.inf
  220. MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
  221. #
  222. # platform driver
  223. #
  224. Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf
  225. #
  226. # FAT filesystem + GPT/MBR partitioning
  227. #
  228. MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
  229. MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
  230. MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
  231. FatPkg/EnhancedFatDxe/Fat.inf
  232. #
  233. # Bds
  234. #
  235. MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
  236. MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
  237. MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
  238. MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
  239. MdeModulePkg/Application/UiApp/UiApp.inf {
  240. <LibraryClasses>
  241. NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
  242. NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
  243. NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
  244. PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
  245. }
  246. # SMSC LAN 91C111
  247. EmbeddedPkg/Drivers/Lan91xDxe/Lan91xDxe.inf
  248. #
  249. # Required by PCI
  250. #
  251. ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
  252. #
  253. # PCI Support
  254. #
  255. MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
  256. MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf {
  257. <PcdsFixedAtBuild>
  258. gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8010004F
  259. }
  260. #
  261. # AHCI Support
  262. #
  263. MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
  264. MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
  265. #
  266. # SATA Controller
  267. #
  268. MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf