#\r
-# Copyright (c) 2011, ARM Limited. All rights reserved.\r
-# \r
-# This program and the accompanying materials \r
-# are licensed and made available under the terms and conditions of the BSD License \r
-# which accompanies this distribution. The full text of the license may be found at \r
-# http://opensource.org/licenses/bsd-license.php \r
+# Copyright (c) 2011-2015, ARM Limited. All rights reserved.\r
#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+# This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution. The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
#\r
################################################################################\r
################################################################################\r
[Defines]\r
PLATFORM_NAME = ArmPlatform\r
- PLATFORM_GUID = 4fe82b83-9315-4ff3-8cc0-ab77ca93cb7f \r
+ PLATFORM_GUID = 4fe82b83-9315-4ff3-8cc0-ab77ca93cb7f\r
PLATFORM_VERSION = 0.1\r
DSC_SPECIFICATION = 0x00010005\r
OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME)\r
- SUPPORTED_ARCHITECTURES = ARM\r
+ SUPPORTED_ARCHITECTURES = ARM|AARCH64\r
BUILD_TARGETS = DEBUG|RELEASE\r
SKUID_IDENTIFIER = DEFAULT\r
FLASH_DEFINITION = ArmPlatformPkg/ArmPlatformPkg.fdf\r
\r
[LibraryClasses.common]\r
- ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf\r
- ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf\r
ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.inf\r
\r
!if $(TARGET) == RELEASE\r
# UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf\r
!endif\r
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf\r
- \r
+\r
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf\r
SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf\r
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf\r
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf\r
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf\r
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf\r
- UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf \r
+ UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf\r
\r
UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf\r
\r
# Assume everything is fixed at build\r
#\r
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
- \r
+\r
# 1/123 faster than Stm or Vstm version\r
#BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf\r
# ARM Architectural Libraries\r
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf\r
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf\r
+ CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf\r
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf\r
DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf\r
-\r
- # ARM PL390 General Interrupt Driver in Secure and Non-secure\r
- ArmGicSecLib|ArmPkg/Drivers/PL390Gic/PL390GicSecLib.inf\r
- ArmGicLib|ArmPkg/Drivers/PL390Gic/PL390GicLib.inf\r
+ ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf\r
+ ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf\r
+ ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf\r
\r
SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf\r
TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf\r
EfiResetSystemLib|EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf\r
RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf\r
\r
- # EBL Related Libraries \r
+ # Networking Requirements for ArmPlatformPkg/Bds\r
+ NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf\r
+\r
+ # These libraries are used by the dynamic EFI Shell commands\r
+ ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf\r
+ FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf\r
+ SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf\r
+\r
+ # EBL Related Libraries\r
EblCmdLib|ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.inf\r
EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf\r
EblAddExternalCommandLib|EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf\r
EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf\r
- \r
+\r
#\r
- # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window \r
+ # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window\r
# in the debugger will show load and unload commands for symbols. You can cut and paste this\r
# into the command window to load symbols. We should be able to use a script to do this, but\r
# the version of RVD I have does not support scripts accessing system memory.\r
#PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf\r
PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf\r
#PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf\r
- \r
+\r
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf\r
DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf\r
\r
- SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf \r
+ SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf\r
\r
# BDS Libraries\r
BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf\r
+ FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf\r
+\r
+[LibraryClasses.ARM]\r
+ ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf\r
+ ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf\r
+\r
+[LibraryClasses.AARCH64]\r
+ ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf\r
+ ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf\r
+ ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf\r
\r
[LibraryClasses.common.SEC]\r
- ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf\r
+ ArmPlatformSecLib|ArmPlatformPkg/Library/ArmPlatformSecLibNull/ArmPlatformLibNullSec.inf\r
ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNullSec.inf\r
+ ArmTrustedMonitorLib|ArmPlatformPkg/Library/ArmTrustedMonitorLibNull/ArmTrustedMonitorLibNull.inf\r
\r
- DebugSecExtraActionLib|ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.inf\r
+ ArmPlatformSecExtraActionLib|ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.inf\r
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Sec/SecArmPlatformGlobalVariableLib.inf\r
- \r
- DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsOnlyLib/DebugAgentSymbolsOnlyLib.inf\r
+\r
+ DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf\r
+ DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf\r
+\r
+ ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf\r
+\r
+[LibraryClasses.common.SEC, LibraryClasses.common.PEIM]\r
+ MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf\r
+\r
+[LibraryClasses.ARM.SEC]\r
+ ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf\r
+\r
+[LibraryClasses.AARCH64.SEC]\r
+ ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf\r
\r
[LibraryClasses.common.PEI_CORE]\r
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf\r
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf\r
ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf\r
- \r
+\r
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf\r
PeiServicesTablePointerLib|ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf\r
- \r
+\r
[LibraryClasses.common.PEIM]\r
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
\r
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf\r
PeiServicesTablePointerLib|ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf\r
+ PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf\r
\r
[LibraryClasses.common.DXE_CORE]\r
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf\r
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf\r
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf\r
\r
-[LibraryClasses.ARM]\r
+[LibraryClasses.ARM, LibraryClasses.AARCH64]\r
#\r
# It is not possible to prevent the ARM compiler for generic intrinsic functions.\r
# This library provides the instrinsic functions generate by a given compiler.\r
#\r
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf\r
\r
+ # Add support for GCC stack protector\r
+ NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf\r
+\r
[BuildOptions]\r
XCODE:*_*_ARM_PLATFORM_FLAGS == -arch armv7\r
\r
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE\r
gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE\r
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE\r
- \r
+\r
#\r
# Control what commands are supported from the UI\r
# Turn these on and off to add features or save size\r
- # \r
+ #\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE\r
- gEmbeddedTokenSpaceGuid.PcdEmbeddedUsbDebugCmd|TRUE\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE\r
\r
gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE\r
- \r
+\r
# Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress\r
gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE\r
- \r
+\r
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE\r
- \r
+\r
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE\r
\r
[PcdsFixedAtBuild.common]\r
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Platform"\r
- \r
+\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmPlatform"\r
- gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32\r
- gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0\r
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000\r
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000\r
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07\r
gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000\r
- \r
+\r
#\r
# Optional feature to help prevent EFI memory map fragments\r
# Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob\r
- # Values are in EFI Pages (4K). DXE Core will make sure that \r
- # at least this much of each type of memory can be allocated \r
+ # Values are in EFI Pages (4K). DXE Core will make sure that\r
+ # at least this much of each type of memory can be allocated\r
# from a single memory range. This way you only end up with\r
# maximum of two fragements for each type in the memory map\r
# (the memory used, and the free memory that was prereserved\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20\r
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0\r
- \r
+\r
+ # We want to use the Shell Libraries but don't want it to initialise\r
+ # automatically. We initialise the libraries when the command is called by the\r
+ # Shell.\r
+ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
+\r
#\r
# ARM Pcds\r
#\r
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000000000000\r
- \r
+\r
# Stacks for MPCores in Secure World\r
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0\r
# Stacks for MPCores in Monitor Mode\r
#\r
################################################################################\r
[Components.common]\r
- \r
+\r
#\r
# SEC\r
#\r
- ArmPlatformPkg/Sec/Sec.inf\r
- \r
+ ArmPlatformPkg/Sec/Sec.inf {\r
+ <LibraryClasses>\r
+ # Use the implementation which set the Secure bits\r
+ ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf\r
+ }\r
+\r
#\r
# PEI Phase modules\r
#\r
ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf {\r
<LibraryClasses>\r
- ArmGicSecLib|ArmPkg/Drivers/PL390Gic/PL390GicLib.inf\r
-\r
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf\r
}\r
MdeModulePkg/Core/Pei/PeiMain.inf\r
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {\r
<LibraryClasses>\r
- NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
+ NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
}\r
\r
#\r
#\r
# Architectural Protocols\r
#\r
- ArmPkg/Drivers/CpuDxe/CpuDxe.inf \r
+ ArmPkg/Drivers/CpuDxe/CpuDxe.inf\r
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf\r
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf\r
- EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf \r
- \r
+ EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf\r
+\r
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf\r
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf\r
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf\r
- \r
+\r
# Simple TextIn/TextOut for UEFI Terminal\r
EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf\r
- \r
+\r
#\r
# Semi-hosting filesystem\r
#\r
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf\r
- \r
+\r
#\r
# FAT filesystem + GPT/MBR partitioning\r
#\r
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
- FatPkg/EnhancedFatDxe/Fat.inf\r
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
- \r
+\r
#\r
# Application\r
- # \r
+ #\r
EmbeddedPkg/Ebl/Ebl.inf\r
\r
#\r
#\r
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
ArmPlatformPkg/Bds/Bds.inf\r
-
\ No newline at end of file
+\r
+ # Legacy Linux Loader\r
+ ArmPkg/Application/LinuxLoader/LinuxLoader.inf\r