2 # Copyright (c) 2011-2014, ARM Limited. All rights reserved.
3 # Copyright (c) 2014, Linaro Limited. All rights reserved.
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
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.
15 #include <AsmMacroIoLib.h>
17 #include <Library/ArmLib.h>
18 #include <Library/PcdLib.h>
21 INCLUDE AsmMacroIoLib.inc
23 EXPORT ArmPlatformPeiBootAction
24 EXPORT ArmPlatformIsPrimaryCore
25 EXPORT ArmPlatformGetPrimaryCoreMpId
26 EXPORT ArmPlatformGetCorePosition
27 EXPORT ArmGetPhysAddrTop
29 IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
30 IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
31 IMPORT _gPcd_FixedAtBuild_PcdCoreCount
33 ArmPlatformPeiBootAction FUNCTION
38 //ArmPlatformGetPrimaryCoreMpId (
41 ArmPlatformGetPrimaryCoreMpId FUNCTION
42 LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
48 //ArmPlatformIsPrimaryCore (
51 ArmPlatformIsPrimaryCore FUNCTION
57 //ArmPlatformGetCorePosition (
60 // With this function: CorePos = (ClusterId * 4) + CoreId
61 ArmPlatformGetCorePosition FUNCTION
62 and r1, r0, #ARM_CORE_MASK
63 and r0, r0, #ARM_CLUSTER_MASK
64 add r0, r1, r0, LSR #6
68 //EFI_PHYSICAL_ADDRESS
72 ArmGetPhysAddrTop FUNCTION