1# 2# Copyright (c) 2013-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# Defines Section - statements that will be processed to create a Makefile. 17# 18################################################################################ 19[Defines] 20 PLATFORM_NAME = ArmJuno 21 PLATFORM_GUID = ca0722fd-7d3d-45ea-948c-d62b2199807d 22 PLATFORM_VERSION = 0.1 23 DSC_SPECIFICATION = 0x00010005 24 OUTPUT_DIRECTORY = Build/ArmJuno 25 SUPPORTED_ARCHITECTURES = AARCH64|ARM 26 BUILD_TARGETS = DEBUG|RELEASE 27 SKUID_IDENTIFIER = DEFAULT 28 FLASH_DEFINITION = ArmPlatformPkg/ArmJunoPkg/ArmJuno.fdf 29 30# On RTSM, most peripherals are VExpress Motherboard peripherals 31!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc 32 33[LibraryClasses.common] 34 ArmPlatformLib|ArmPlatformPkg/ArmJunoPkg/Library/ArmJunoLib/ArmJunoLib.inf 35 ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf 36 37 ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf 38 NorFlashPlatformLib|ArmPlatformPkg/ArmJunoPkg/Library/NorFlashJunoLib/NorFlashJunoLib.inf 39 EfiResetSystemLib|ArmPkg/Library/ArmPsciResetSystemLib/ArmPsciResetSystemLib.inf 40 41 TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf 42 43 # USB Requirements 44 UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf 45 46[LibraryClasses.ARM] 47 ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf 48 49[LibraryClasses.AARCH64] 50 ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf 51 52[LibraryClasses.common.SEC] 53 PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf 54 ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf 55 LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf 56 MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf 57 HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf 58 PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf 59 PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf 60 PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf 61 62[LibraryClasses.common.SEC, LibraryClasses.common.PEIM] 63 MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf 64 65[LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER] 66 PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf 67 68[BuildOptions] 69 *_*_*_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmJunoPkg/Include 70 71################################################################################ 72# 73# Pcd Section - list of all EDK II PCD Entries defined by this Platform 74# 75################################################################################ 76 77[PcdsFeatureFlag.common] 78 gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE 79 80 ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe. 81 # It could be set FALSE to save size. 82 gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE 83 84 gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE 85 86[PcdsFixedAtBuild.common] 87 gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Juno" 88 gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmJuno" 89 90 # 91 # NV Storage PCDs. Use base of 0x08000000 for NOR0 92 # 93 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0BFC0000 94 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000 95 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0BFD0000 96 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000 97 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0BFE0000 98 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000 99 100 # System Memory (2GB - 16MB of Trusted DRAM at the top of the 32bit address space) 101 gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000 102 gArmTokenSpaceGuid.PcdSystemMemorySize|0x7F000000 103 104 # Juno Dual-Cluster profile 105 gArmPlatformTokenSpaceGuid.PcdCoreCount|6 106 gArmPlatformTokenSpaceGuid.PcdClusterCount|2 107 108 gArmTokenSpaceGuid.PcdVFPEnabled|1 109 110 # 111 # ARM PrimeCell 112 # 113 114 ## PL011 - Serial Terminal 115 gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x7FF80000 116 gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200 117 gArmPlatformTokenSpaceGuid.PL011UartInteger|4 118 gArmPlatformTokenSpaceGuid.PL011UartFractional|0 119 120 ## PL031 RealTimeClock 121 gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000 122 123 # LAN9118 Ethernet Driver 124 gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x18000000 125 gEmbeddedTokenSpaceGuid.PcdLan9118DefaultMacAddress|0x1215161822242628 126 127 # 128 # ARM General Interrupt Controller 129 # 130 gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C010000 131 gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C02F000 132 133 # 134 # PLDA PCI Root Complex 135 # 136 gArmPlatformTokenSpaceGuid.PcdPciBusMax|255 137 gArmPlatformTokenSpaceGuid.PcdPciIoBase|0x5f800000 138 gArmPlatformTokenSpaceGuid.PcdPciIoSize|0x00800000 139 gArmPlatformTokenSpaceGuid.PcdPciMmio32Base|0x50000000 140 gArmPlatformTokenSpaceGuid.PcdPciMmio32Size|0x08000000 141 gArmPlatformTokenSpaceGuid.PcdPciMmio64Base|0x4000000000 142 gArmPlatformTokenSpaceGuid.PcdPciMmio64Size|0x100000000 143 144 # List of Device Paths that support BootMonFs 145 gArmPlatformTokenSpaceGuid.PcdBootMonFsSupportedDevicePaths|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)" 146 147 # 148 # ARM OS Loader 149 # 150 # Support the Linux EFI stub by default 151 gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"EFI Linux from NOR Flash" 152 gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/Image" 153 gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"console=ttyAMA0,115200 earlycon=pl011,0x7ff80000 root=/dev/sda1 rootwait verbose debug" 154 155 # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut) 156 gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)" 157 gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()" 158 159 # 160 # ARM Architectural Timer Frequency 161 # 162 gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|50000000 163 gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000 164 165[PcdsPatchableInModule] 166 # Console Resolution (Full HD) 167 gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|1920 168 gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|1080 169 170[PcdsDynamicDefault.common] 171 # 172 # The size of a dynamic PCD of the (VOID*) type can not be increased at run 173 # time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 128 174 # character "empty" string, to allow to be able to set FDT text device paths 175 # up to 128 characters long. 176 # 177 gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L" " 178 179 # Not all Juno platforms support PCI. This dynamic PCD disables or enable 180 # PCI support. 181 gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE 182 183################################################################################ 184# 185# Components Section - list of all EDK II Modules needed by this Platform 186# 187################################################################################ 188[Components.common] 189 # 190 # PEI Phase modules 191 # 192 ArmPlatformPkg/PrePi/PeiMPCore.inf 193 194 # 195 # DXE 196 # 197 MdeModulePkg/Core/Dxe/DxeMain.inf { 198 <LibraryClasses> 199 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf 200 NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf 201 } 202 203 # 204 # Architectural Protocols 205 # 206 ArmPkg/Drivers/CpuDxe/CpuDxe.inf 207 MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf 208 MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf 209 MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf 210 MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf 211 EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf 212 EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf 213 EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf 214 215 MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf 216 MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf 217 MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf 218 MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf 219 MdeModulePkg/Universal/SerialDxe/SerialDxe.inf 220 221 MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { 222 <LibraryClasses> 223 NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf 224 } 225 MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf 226 227 # 228 # ACPI Support 229 # 230 MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf 231 ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiTables.inf 232 233 MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf 234 235 ArmPkg/Drivers/ArmGic/ArmGicDxe.inf 236 ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf 237 ArmPkg/Drivers/TimerDxe/TimerDxe.inf 238 ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf 239 240 # 241 # Semi-hosting filesystem 242 # 243 ArmPkg/Filesystem/SemihostFs/SemihostFs.inf 244 245 # 246 # FAT filesystem + GPT/MBR partitioning 247 # 248 MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf 249 MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf 250 MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf 251 252 # Required by PCI 253 UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf 254 255 # 256 # PCI Support 257 # 258 MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf 259 ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf 260 261 # 262 # SATA Controller 263 # 264 MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf 265 EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132Dxe.inf 266 267 # 268 # Networking stack 269 # 270 EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf 271 272 # 273 # Usb Support 274 # 275 MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf 276 MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf 277 MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf 278 MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf 279 MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf 280 281 # 282 # Juno platform driver 283 # 284 ArmPlatformPkg/ArmJunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.inf 285 286 # 287 # Bds 288 # 289 MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf 290 ArmPlatformPkg/Bds/Bds.inf 291 292