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