The current implementation of ArmGicGetSupportedArchRevision () that is used by all ARM platforms is entirely stateless (in order to support being executed from flash) so it needs to interrogate the hardware for the supported GIC revision upon each invocation. However, this statelessness is only needed for SEC type modules; in all other cases, we could easily determine the GIC revision once, and store the result in a global variable. In preparation of having separate early and normal versions, this patch introduces the ArmGicArchLib library class and default implementation, and moves the existing ArmGicGetSupportedArchRevision () into it. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Acked-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> Tested-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18098 6f19259b-4bc3-4df7-8a09-765794883524
168 lines
7.8 KiB
Plaintext
168 lines
7.8 KiB
Plaintext
#/** @file
|
|
# ARM processor package.
|
|
#
|
|
# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
|
|
# Copyright (c) 2011 - 2015, ARM Ltd. All rights reserved.<BR>
|
|
#
|
|
# This program and the accompanying materials
|
|
# are licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
#**/
|
|
|
|
################################################################################
|
|
#
|
|
# Defines Section - statements that will be processed to create a Makefile.
|
|
#
|
|
################################################################################
|
|
[Defines]
|
|
PLATFORM_NAME = ArmPkg
|
|
PLATFORM_GUID = 5CFBD99E-3C43-4E7F-8054-9CDEAFF7710F
|
|
PLATFORM_VERSION = 0.1
|
|
DSC_SPECIFICATION = 0x00010005
|
|
OUTPUT_DIRECTORY = Build/Arm
|
|
SUPPORTED_ARCHITECTURES = ARM|AARCH64
|
|
BUILD_TARGETS = DEBUG|RELEASE
|
|
SKUID_IDENTIFIER = DEFAULT
|
|
|
|
[BuildOptions]
|
|
XCODE:*_*_ARM_PLATFORM_FLAGS == -arch armv7
|
|
GCC:*_*_ARM_PLATFORM_FLAGS == -march=armv7-a -mfpu=neon
|
|
# We use A15 to get the Secure and Virtualization extensions
|
|
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15
|
|
|
|
RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
|
|
|
[LibraryClasses.common]
|
|
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
|
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
|
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
|
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
|
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
|
TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
|
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
|
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
|
UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
|
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
|
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
|
PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
|
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
|
|
|
NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
|
|
UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
|
|
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
|
|
|
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
|
|
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
|
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
|
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
|
|
|
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
|
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
|
|
ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
|
|
ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
|
|
ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
|
|
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
|
DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
|
|
|
|
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
|
|
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
|
|
SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
|
|
|
|
BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
|
|
FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
|
|
|
|
ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
|
|
FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
|
|
SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
|
|
|
|
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
|
|
|
[LibraryClasses.ARM]
|
|
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
|
|
[LibraryClasses.AARCH64]
|
|
ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
|
|
|
|
[LibraryClasses.common.PEIM]
|
|
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
|
PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
|
|
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
|
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
|
PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
|
|
|
[LibraryClasses.common.DXE_DRIVER]
|
|
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Dxe/DxeArmPlatformGlobalVariableLib.inf
|
|
|
|
[LibraryClasses.ARM, LibraryClasses.AARCH64]
|
|
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
|
|
|
|
# Add support for GCC stack protector
|
|
NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
|
|
|
|
[Components.common]
|
|
ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
|
ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
|
ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
|
|
ArmPkg/Library/ArmLib/Null/NullArmLib.inf
|
|
ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
|
|
ArmPkg/Library/BdsLib/BdsLib.inf
|
|
ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
|
|
ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
|
|
ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
|
|
ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf
|
|
ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
|
ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
|
|
ArmPkg/Library/SemiHostingDebugLib/SemiHostingDebugLib.inf
|
|
ArmPkg/Library/SemiHostingSerialPortLib/SemiHostingSerialPortLib.inf
|
|
ArmPkg/Library/SemihostLib/SemihostLib.inf
|
|
ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
|
ArmPkg/Library/ArmPsciResetSystemLib/ArmPsciResetSystemLib.inf
|
|
|
|
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
|
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
ArmPkg/Drivers/ArmGic/ArmGicLib.inf
|
|
ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
|
|
ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf
|
|
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
|
|
|
ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
|
|
ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf
|
|
|
|
ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
|
|
ArmPkg/Library/ArmSmcLibNull/ArmSmcLibNull.inf
|
|
ArmPkg/Library/ArmHvcLib/ArmHvcLib.inf
|
|
|
|
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
|
|
ArmPkg/Application/LinuxLoader/LinuxLoader.inf
|
|
|
|
[Components.ARM]
|
|
ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
|
|
|
|
ArmPkg/Drivers/ArmCpuLib/ArmCortexA8Lib/ArmCortexA8Lib.inf
|
|
ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf
|
|
ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
|
|
|
|
# ArmPkg/Library/ArmLib/Arm11/Arm11ArmLib.inf
|
|
# ArmPkg/Library/ArmLib/Arm11/Arm11ArmLibPrePi.inf
|
|
# ArmPkg/Library/ArmLib/Arm9/Arm9ArmLib.inf
|
|
# ArmPkg/Library/ArmLib/Arm9/Arm9ArmLibPrePi.inf
|
|
ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
|
|
ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
|
|
|
|
[Components.AARCH64]
|
|
ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
|
|
ArmPkg/Drivers/ArmCpuLib/ArmCortexA5xLib/ArmCortexA5xLib.inf
|
|
|
|
ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
|
|
ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
|