]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4Helper.S
ArmPlatformPkg/ArmPlatformLib: Added ArmPlatformGetPrimaryCoreMpId()
[mirror_edk2.git] / ArmPlatformPkg / ArmVExpressPkg / Library / ArmVExpressLibCTA9x4 / CTA9x4Helper.S
1 #
2 # Copyright (c) 2011-2013, ARM Limited. All rights reserved.
3 #
4 # This program and the accompanying materials
5 # are licensed and made available under the terms and conditions of the BSD License
6 # which accompanies this distribution. The full text of the license may be found at
7 # http://opensource.org/licenses/bsd-license.php
8 #
9 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 #
12 #
13
14 #include <AsmMacroIoLib.h>
15
16 .text
17 .align 2
18
19 GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
20 GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)
21
22 GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)
23 GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask)
24
25 //UINTN
26 //ArmPlatformGetPrimaryCoreMpId (
27 // VOID
28 // );
29 ASM_PFX(ArmPlatformGetPrimaryCoreMpId):
30 LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r0)
31 ldr r0, [r0]
32 bx lr
33
34 //UINTN
35 //ArmPlatformIsPrimaryCore (
36 // IN UINTN MpId
37 // );
38 ASM_PFX(ArmPlatformIsPrimaryCore):
39 LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)
40 ldr r1, [r1]
41 and r0, r0, r1
42 LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)
43 ldr r1, [r1]
44 cmp r0, r1
45 moveq r0, #1
46 movne r0, #0
47 bx lr
48
49 ASM_FUNCTION_REMOVE_IF_UNREFERENCED