]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.asm
ArmPlatformPkg/ArmPlatformLib: Added ArmPlatformGetPrimaryCoreMpId()
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmPlatformLibNull / Arm / ArmPlatformHelper.asm
CommitLineData
e7072e04 1//\r
2// Copyright (c) 2012, ARM Limited. All rights reserved.\r
3//\r
4// This program and the accompanying materials\r
5// are licensed and made available under the terms and conditions of the BSD License\r
6// which accompanies this distribution. The full text of the license may be found at\r
7// http://opensource.org/licenses/bsd-license.php\r
8//\r
9// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11//\r
12//\r
13\r
b9ee7061 14#include <AsmMacroIoLib.h>\r
e7072e04 15#include <Library/ArmLib.h>\r
16\r
17 INCLUDE AsmMacroIoLib.inc\r
18\r
19 EXPORT ArmPlatformGetCorePosition\r
d05ca26c 20 EXPORT ArmPlatformGetPrimaryCoreMpId\r
bebda7ce 21 EXPORT ArmPlatformIsPrimaryCore\r
e7072e04 22\r
bebda7ce 23 IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore\r
24 IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask\r
25 \r
e7072e04 26 PRESERVE8\r
27 AREA ArmPlatformNullHelper, CODE, READONLY\r
28\r
29//UINTN\r
30//ArmPlatformGetCorePosition (\r
31// IN UINTN MpId\r
32// );\r
33ArmPlatformGetCorePosition FUNCTION\r
34 and r1, r0, #ARM_CORE_MASK\r
35 and r0, r0, #ARM_CLUSTER_MASK\r
36 add r0, r1, r0, LSR #7\r
37 bx lr\r
38 ENDFUNC\r
39\r
d05ca26c 40//UINTN\r
41//ArmPlatformGetPrimaryCoreMpId (\r
42// VOID\r
43// );\r
44ArmPlatformGetPrimaryCoreMpId FUNCTION\r
45 LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r0)\r
46 ldr r0, [r0]\r
47 bx lr\r
48 ENDFUNC\r
49\r
bebda7ce 50//UINTN\r
51//ArmPlatformIsPrimaryCore (\r
52// IN UINTN MpId\r
53// );\r
54ArmPlatformIsPrimaryCore FUNCTION\r
55 LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)\r
56 ldr r1, [r1]\r
57 and r0, r0, r1\r
58 LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)\r
59 ldr r1, [r1]\r
60 cmp r0, r1\r
61 moveq r0, #1\r
62 movne r0, #0\r
63 bx lr\r
64 ENDFUNC\r
65\r
e7072e04 66 END\r
67\r