]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmPlatformLibNull / AArch64 / ArmPlatformHelper.S
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 <AsmMacroIoLibV8.h>
9 #include <Library/ArmLib.h>
10
11 ASM_FUNC(ArmPlatformPeiBootAction)
12 ret
13
14 //UINTN
15 //ArmPlatformGetCorePosition (
16 // IN UINTN MpId
17 // );
18 // With this function: CorePos = (ClusterId * 4) + CoreId
19 ASM_FUNC(ArmPlatformGetCorePosition)
20 and x1, x0, #ARM_CORE_MASK
21 and x0, x0, #ARM_CLUSTER_MASK
22 add x0, x1, x0, LSR #6
23 ret
24
25 //UINTN
26 //ArmPlatformGetPrimaryCoreMpId (
27 // VOID
28 // );
29 ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
30 MOV32 (w0, FixedPcdGet32 (PcdArmPrimaryCore))
31 ret
32
33 //UINTN
34 //ArmPlatformIsPrimaryCore (
35 // IN UINTN MpId
36 // );
37 ASM_FUNC(ArmPlatformIsPrimaryCore)
38 MOV32 (w1, FixedPcdGet32 (PcdArmPrimaryCoreMask))
39 and x0, x0, x1
40 MOV32 (w1, FixedPcdGet32 (PcdArmPrimaryCore))
41 cmp w0, w1
42 mov x0, #1
43 mov x1, #0
44 csel x0, x0, x1, eq
45 ret