]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.asm
1c305f8b507ebc392bf890808de842ecf9b691dd
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmPlatformLibNull / Arm / ArmPlatformHelper.asm
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
23 ArmPlatformPeiBootAction FUNCTION
24 bx lr
25 ENDFUNC
26
27 //UINTN
28 //ArmPlatformGetCorePosition (
29 // IN UINTN MpId
30 // );
31 ArmPlatformGetCorePosition 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 // );
42 ArmPlatformGetPrimaryCoreMpId FUNCTION
43 mov32 r0, FixedPcdGet32(PcdArmPrimaryCore)
44 bx lr
45 ENDFUNC
46
47 //UINTN
48 //ArmPlatformIsPrimaryCore (
49 // IN UINTN MpId
50 // );
51 ArmPlatformIsPrimaryCore 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