ArmVExpress-CTA15-A7.dsc 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. #
  2. # Copyright (c) 2012-2018, ARM Limited. All rights reserved.
  3. # Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
  4. #
  5. # SPDX-License-Identifier: BSD-2-Clause-Patent
  6. #
  7. #
  8. ################################################################################
  9. #
  10. # Defines Section - statements that will be processed to create a Makefile.
  11. #
  12. ################################################################################
  13. [Defines]
  14. PLATFORM_NAME = ArmVExpressPkg-CTA15-A7
  15. PLATFORM_GUID = 0b511920-978d-4b34-acc0-3d9f8e6f9d81
  16. PLATFORM_VERSION = 0.1
  17. DSC_SPECIFICATION = 0x00010005
  18. !ifdef $(EDK2_OUT_DIR)
  19. OUTPUT_DIRECTORY = $(EDK2_OUT_DIR)
  20. !else
  21. OUTPUT_DIRECTORY = Build/ArmVExpress-CTA15-A7
  22. !endif
  23. SUPPORTED_ARCHITECTURES = ARM
  24. BUILD_TARGETS = DEBUG|RELEASE
  25. SKUID_IDENTIFIER = DEFAULT
  26. FLASH_DEFINITION = Platform/ARM/VExpressPkg/ArmVExpress-CTA15-A7.fdf
  27. DEFINE EDK2_SKIP_PEICORE = 1
  28. DEFINE ARM_BIGLITTLE_TC2 = 1 # We build for the TC2 hardware by default
  29. !include Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc
  30. !include MdePkg/MdeLibs.dsc.inc
  31. [LibraryClasses.common]
  32. ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
  33. ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
  34. ArmPlatformLib|Platform/ARM/VExpressPkg/Library/ArmVExpressLibCTA15-A7/ArmVExpressLib.inf
  35. ArmPlatformSysConfigLib|Platform/ARM/VExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
  36. #DebugAgentTimerLib|Platform/ARM/VExpressPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
  37. # ARM General Interrupt Driver in Secure and Non-secure
  38. ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
  39. LcdHwLib|ArmPlatformPkg/Library/HdLcd/HdLcd.inf
  40. LcdPlatformLib|Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf
  41. ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
  42. [LibraryClasses.common.DXE_RUNTIME_DRIVER]
  43. ArmPlatformSysConfigLib|Platform/ARM/VExpressPkg/Library/ArmVExpressSysConfigRuntimeLib/ArmVExpressSysConfigRuntimeLib.inf
  44. [LibraryClasses.ARM]
  45. ArmSoftFloatLib|ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
  46. #
  47. # PSCI support in EL3 may not be available if we are not running under a PSCI
  48. # compliant secure firmware. Assume PSCI on AARCH64, and fall back to the
  49. # syscfg MMIO register implementation on ARM.
  50. # This will not work at actual runtime.
  51. #
  52. ResetSystemLib|Platform/ARM/VExpressPkg/Library/ResetSystemLib/ResetSystemLib.inf
  53. [BuildOptions]
  54. !ifdef ARM_BIGLITTLE_TC2
  55. *_*_ARM_PP_FLAGS = -DARM_BIGLITTLE_TC2=1
  56. !endif
  57. GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/Platform/ARM/VExpressPkg/Include/Platform/CTA15-A7
  58. XCODE:*_*_ARM_PLATFORM_FLAGS = -I$(WORKSPACE)/Platform/ARM/VExpressPkg/Include/Platform/CTA15-A7
  59. ################################################################################
  60. #
  61. # Pcd Section - list of all EDK II PCD Entries defined by this Platform
  62. #
  63. ################################################################################
  64. [PcdsFeatureFlag.common]
  65. gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride|TRUE
  66. gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
  67. ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
  68. # It could be set FALSE to save size.
  69. gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
  70. [PcdsFixedAtBuild.common]
  71. gArmVExpressTokenSpaceGuid.PcdAndroidFastbootProductName|"ARM Versatile Express"
  72. gArmPlatformTokenSpaceGuid.PcdCoreCount|5
  73. #
  74. # NV Storage PCDs. Use base of 0x0C000000 for NOR1
  75. #
  76. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0FFC0000
  77. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
  78. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0FFD0000
  79. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
  80. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0FFE0000
  81. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
  82. gArmTokenSpaceGuid.PcdVFPEnabled|1
  83. # System Memory (1GB) - An additional 1GB will be added if UEFI is running on a 2GB Test Chip
  84. gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
  85. gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000
  86. !ifdef ARM_BIGLITTLE_TC2
  87. # TC2 Dual-Cluster profile
  88. gArmPlatformTokenSpaceGuid.PcdClusterCount|2
  89. # Core Ids and Gic values
  90. # A15_0 = 0x000, GicCoreId = 0
  91. # A15_1 = 0x001, GicCoreId = 1
  92. # A7_0 = 0x100, GicCoreId = 2
  93. # A7_1 = 0x101, GicCoreId = 3
  94. # A7_2 = 0x102, GicCoreId = 4
  95. gArmTokenSpaceGuid.PcdArmPrimaryCore|0x100
  96. !endif
  97. #
  98. # ARM PrimeCell
  99. #
  100. ## SP805 Watchdog - Motherboard Watchdog
  101. gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1C0F0000
  102. ## PL011 - Serial Terminal
  103. gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1C090000
  104. gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
  105. gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
  106. ## PL031 RealTimeClock
  107. gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
  108. !ifdef ARM_BIGLITTLE_TC2
  109. ## PL111 Lcd & HdLcd
  110. gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
  111. gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase|0x2B000000
  112. gArmVExpressTokenSpaceGuid.PcdHdLcdVideoModeOscId|5
  113. !endif
  114. #
  115. # PL180 MMC/SD card controller
  116. #
  117. gArmVExpressTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048
  118. gArmVExpressTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000
  119. #
  120. # ARM Generic Interrupt Controller
  121. #
  122. gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
  123. gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000
  124. # ISP1761 USB OTG Controller
  125. gArmVExpressTokenSpaceGuid.PcdIsp1761BaseAddress|0x1B000000
  126. # Ethernet (SMSC LAN9118)
  127. gArmVExpressTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x1A000000
  128. gArmVExpressTokenSpaceGuid.PcdLan9118DefaultNegotiationTimeout|400000
  129. #
  130. # Define the device path to the FDT for the platform
  131. #
  132. gFdtPlatformDxeTokenSpaceGuid.PcdFdtDevicePaths|L"VenHw(DE6AE758-D662-4E17-A97C-4C5964DA4C41,00)/ca15a7"
  133. #
  134. # ARM Architectural Timer Frequency
  135. #
  136. !ifdef ARM_BIGLITTLE_TC2
  137. gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|24000000
  138. !else
  139. gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|10000000
  140. !endif
  141. ################################################################################
  142. #
  143. # Components Section - list of all EDK II Modules needed by this Platform
  144. #
  145. ################################################################################
  146. [Components.common]
  147. #
  148. # PEI Phase modules
  149. #
  150. ArmPlatformPkg/PrePi/PeiMPCore.inf {
  151. <LibraryClasses>
  152. ArmPlatformLib|Platform/ARM/VExpressPkg/Library/ArmVExpressLibCTA15-A7/ArmVExpressLib.inf
  153. }
  154. #
  155. # DXE
  156. #
  157. MdeModulePkg/Core/Dxe/DxeMain.inf {
  158. <LibraryClasses>
  159. PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
  160. NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
  161. }
  162. #
  163. # Architectural Protocols
  164. #
  165. ArmPkg/Drivers/CpuDxe/CpuDxe.inf
  166. MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
  167. MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
  168. MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
  169. MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
  170. <LibraryClasses>
  171. NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
  172. NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
  173. BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
  174. }
  175. MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
  176. MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
  177. MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
  178. EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
  179. EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
  180. MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
  181. MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
  182. MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
  183. MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
  184. MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
  185. MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
  186. ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
  187. Platform/ARM/Drivers/NorFlashDxe/NorFlashDxe.inf
  188. ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.inf
  189. ArmPkg/Drivers/TimerDxe/TimerDxe.inf
  190. ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
  191. #
  192. # Platform
  193. #
  194. Platform/ARM/VExpressPkg/Drivers/ArmVExpressDxe/ArmHwDxe.inf
  195. #
  196. # Filesystems
  197. #
  198. !ifndef ARM_BIGLITTLE_TC2
  199. ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
  200. !endif
  201. #
  202. # Multimedia Card Interface
  203. #
  204. EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
  205. Platform/ARM/VExpressPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
  206. # SMSC LAN 9118
  207. Platform/ARM/VExpressPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
  208. #
  209. # FAT filesystem + GPT/MBR partitioning
  210. #
  211. MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
  212. MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
  213. MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
  214. FatPkg/EnhancedFatDxe/Fat.inf
  215. MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
  216. #
  217. # Bds
  218. #
  219. MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf
  220. MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
  221. MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
  222. MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
  223. MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
  224. MdeModulePkg/Application/UiApp/UiApp.inf {
  225. <LibraryClasses>
  226. NULL|MdeModulePkg/Library/BootDiscoveryPolicyUiLib/BootDiscoveryPolicyUiLib.inf
  227. NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
  228. NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
  229. NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
  230. }
  231. #
  232. # FDT installation
  233. #
  234. Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe.inf {
  235. <LibraryClasses>
  236. BdsLib|Platform/ARM/Library/BdsLib/BdsLib.inf
  237. }