• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2#  Copyright (c) 2012-2015, ARM Limited. All rights reserved.
3#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
4#
5#  This program and the accompanying materials
6#  are licensed and made available under the terms and conditions of the BSD License
7#  which accompanies this distribution.  The full text of the license may be found at
8#  http://opensource.org/licenses/bsd-license.php
9#
10#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12#
13#
14
15################################################################################
16#
17# Defines Section - statements that will be processed to create a Makefile.
18#
19################################################################################
20[Defines]
21  PLATFORM_NAME                  = ArmVExpressPkg-CTA15-A7
22  PLATFORM_GUID                  = 0b511920-978d-4b34-acc0-3d9f8e6f9d81
23  PLATFORM_VERSION               = 0.1
24  DSC_SPECIFICATION              = 0x00010005
25  OUTPUT_DIRECTORY               = Build/ArmVExpress-CTA15-A7
26  SUPPORTED_ARCHITECTURES        = ARM
27  BUILD_TARGETS                  = DEBUG|RELEASE
28  SKUID_IDENTIFIER               = DEFAULT
29  FLASH_DEFINITION               = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
30
31  DEFINE EDK2_SKIP_PEICORE = 1
32  DEFINE ARM_BIGLITTLE_TC2 = 1 # We build for the TC2 hardware by default
33
34!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
35
36[LibraryClasses.common]
37  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
38  ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/ArmVExpressLib.inf
39
40  ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
41  NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf
42
43  #DebugAgentTimerLib|ArmPlatformPkg/ArmVExpressPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
44
45  # ARM General Interrupt Driver in Secure and Non-secure
46  ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
47
48  LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf
49
50  TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
51  ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
52
53[BuildOptions]
54!ifdef ARM_BIGLITTLE_TC2
55  *_*_ARM_ARCHCC_FLAGS  = -DARM_BIGLITTLE_TC2=1
56  *_*_ARM_PP_FLAGS  = -DARM_BIGLITTLE_TC2=1
57!endif
58
59  RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
60
61  GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
62
63  XCODE:*_*_ARM_PLATFORM_FLAGS = -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
64
65################################################################################
66#
67# Pcd Section - list of all EDK II PCD Entries defined by this Platform
68#
69################################################################################
70
71[PcdsFeatureFlag.common]
72  gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
73  gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
74
75  ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
76  #  It could be set FALSE to save size.
77  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
78
79[PcdsFixedAtBuild.common]
80  gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Versatile Express"
81  gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmVExpress-CTA15-A7"
82
83  gArmPlatformTokenSpaceGuid.PcdCoreCount|5
84
85  #
86  # NV Storage PCDs. Use base of 0x0C000000 for NOR1
87  #
88  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0FFC0000
89  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
90  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0FFD0000
91  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
92  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0FFE0000
93  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
94
95  gArmTokenSpaceGuid.PcdVFPEnabled|1
96
97  # Stacks for MPCores in Secure World
98  # SRAM (CS1) is only available between 0x14000000 and 0x14001000 on the model
99  # ZBT SRAM is available between 0x2E000000 and 0x2E010000 on the model
100!ifdef ARM_BIGLITTLE_TC2
101  gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x17000000
102!else
103  gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x2E000000
104!endif
105  gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x8000
106  gArmPlatformTokenSpaceGuid.PcdCPUCoreSecSecondaryStackSize|0x1000
107  # Share Monitor stacks with Secure World
108  gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0
109
110  # System Memory (1GB) - An additional 1GB will be added if UEFI is running on a 2GB Test Chip
111  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
112  gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000
113
114!ifdef ARM_BIGLITTLE_TC2
115  # TC2 Dual-Cluster profile
116  gArmPlatformTokenSpaceGuid.PcdClusterCount|2
117
118  # Core Ids and Gic values
119  # A15_0 = 0x000, GicCoreId = 0
120  # A15_1 = 0x001, GicCoreId = 1
121  #  A7_0 = 0x100, GicCoreId = 2
122  #  A7_1 = 0x101, GicCoreId = 3
123  #  A7_2 = 0x102, GicCoreId = 4
124  gArmTokenSpaceGuid.PcdArmPrimaryCore|0x100
125!endif
126
127  #
128  # ARM PrimeCell
129  #
130
131  ## SP805 Watchdog - Motherboard Watchdog
132  gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1C0F0000
133
134  ## PL011 - Serial Terminal
135  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1C090000
136  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
137
138  ## PL031 RealTimeClock
139  gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
140
141!ifdef ARM_BIGLITTLE_TC2
142  ## PL111 Lcd & HdLcd
143  gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
144  gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase|0x2B000000
145  gArmVExpressTokenSpaceGuid.PcdHdLcdVideoModeOscId|5
146!endif
147
148  #
149  # PL180 MMC/SD card controller
150  #
151  gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048
152  gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000
153
154
155  #
156  # ARM General Interrupt Controller
157  #
158  gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
159  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000
160
161  # ISP1761 USB OTG Controller
162  gEmbeddedTokenSpaceGuid.PcdIsp1761BaseAddress|0x1B000000
163
164  # Ethernet (SMSC LAN9118)
165  gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x1A000000
166
167  #
168  # Define the device path to the FDT for the platform
169  #
170  gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/ca15a7"
171
172  #
173  # ARM OS Loader
174  #
175  gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from NorFlash"
176  gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"Fv(73DCB643-3862-4904-9076-A94AF1890243)/LinuxLoader.efi"
177  gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/kernel -c \"console=ttyAMA0,38400 earlyprintk debug verbose\""
178
179  # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
180  # PL111 - CLCD
181  #gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)"
182  # HDLCD
183  gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)"
184  gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
185
186  #
187  # ARM Architectural Timer Frequency
188  #
189!ifdef ARM_BIGLITTLE_TC2
190  gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|24000000
191!else
192  gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|10000000
193!endif
194
195################################################################################
196#
197# Components Section - list of all EDK II Modules needed by this Platform
198#
199################################################################################
200[Components.common]
201  #
202  # PEI Phase modules
203  #
204  ArmPlatformPkg/PrePi/PeiMPCore.inf {
205    <LibraryClasses>
206      ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
207      ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/ArmVExpressLib.inf
208  }
209
210  #
211  # DXE
212  #
213  MdeModulePkg/Core/Dxe/DxeMain.inf {
214    <LibraryClasses>
215      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
216      NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
217  }
218
219  #
220  # Architectural Protocols
221  #
222  ArmPkg/Drivers/CpuDxe/CpuDxe.inf
223  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
224  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
225  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
226  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
227    <LibraryClasses>
228      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
229  }
230  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
231  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
232  EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
233  EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
234  EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
235
236  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
237  MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
238  MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
239  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
240  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
241
242  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
243
244  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
245  ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
246  #ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
247  ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf
248  ArmPkg/Drivers/TimerDxe/TimerDxe.inf
249  ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
250
251  #
252  # Platform
253  #
254  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf
255
256  #
257  # Filesystems
258  #
259!ifndef ARM_BIGLITTLE_TC2
260  ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
261!endif
262
263  #
264  # Multimedia Card Interface
265  #
266  EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
267  ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
268
269  # SMSC LAN 9118
270  EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
271
272  #
273  # FAT filesystem + GPT/MBR partitioning
274  #
275  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
276  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
277  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
278
279  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
280
281  #
282  # Bds
283  #
284  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
285  ArmPlatformPkg/Bds/Bds.inf
286