1//
2//  Copyright (c) 2012-2013, ARM Limited. All rights reserved.
3//
4//  SPDX-License-Identifier: BSD-2-Clause-Patent
5//
6//
7
8#include <Library/ArmLib.h>
9
10  INCLUDE AsmMacroIoLib.inc
11
12  EXPORT  ArmPlatformPeiBootAction
13  EXPORT  ArmPlatformGetCorePosition
14  EXPORT  ArmPlatformGetPrimaryCoreMpId
15  EXPORT  ArmPlatformIsPrimaryCore
16
17  IMPORT  _gPcd_FixedAtBuild_PcdArmPrimaryCore
18  IMPORT  _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
19
20  PRESERVE8
21  AREA    ArmPlatformNullHelper, CODE, READONLY
22
23ArmPlatformPeiBootAction FUNCTION
24  bx    lr
25  ENDFUNC
26
27//UINTN
28//ArmPlatformGetCorePosition (
29//  IN UINTN MpId
30//  );
31ArmPlatformGetCorePosition FUNCTION
32  and   r1, r0, #ARM_CORE_MASK
33  and   r0, r0, #ARM_CLUSTER_MASK
34  add   r0, r1, r0, LSR #7
35  bx    lr
36  ENDFUNC
37
38//UINTN
39//ArmPlatformGetPrimaryCoreMpId (
40//  VOID
41//  );
42ArmPlatformGetPrimaryCoreMpId FUNCTION
43  mov32 r0, FixedPcdGet32(PcdArmPrimaryCore)
44  bx    lr
45  ENDFUNC
46
47//UINTN
48//ArmPlatformIsPrimaryCore (
49//  IN UINTN MpId
50//  );
51ArmPlatformIsPrimaryCore FUNCTION
52  mov32 r1, FixedPcdGet32(PcdArmPrimaryCoreMask)
53  and   r0, r0, r1
54  mov32 r1, FixedPcdGet32(PcdArmPrimaryCore)
55  cmp   r0, r1
56  moveq r0, #1
57  movne r0, #0
58  bx    lr
59  ENDFUNC
60
61  END
62
63