ArmPlatformHelper.asm 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // Copyright (c) 2012-2013, ARM Limited. All rights reserved.
  3. //
  4. // SPDX-License-Identifier: BSD-2-Clause-Patent
  5. //
  6. //
  7. #include <Library/ArmLib.h>
  8. INCLUDE AsmMacroIoLib.inc
  9. EXPORT ArmPlatformPeiBootAction
  10. EXPORT ArmPlatformGetCorePosition
  11. EXPORT ArmPlatformGetPrimaryCoreMpId
  12. EXPORT ArmPlatformIsPrimaryCore
  13. IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
  14. IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
  15. PRESERVE8
  16. AREA ArmPlatformNullHelper, CODE, READONLY
  17. ArmPlatformPeiBootAction FUNCTION
  18. bx lr
  19. ENDFUNC
  20. //UINTN
  21. //ArmPlatformGetCorePosition (
  22. // IN UINTN MpId
  23. // );
  24. ArmPlatformGetCorePosition FUNCTION
  25. and r1, r0, #ARM_CORE_MASK
  26. and r0, r0, #ARM_CLUSTER_MASK
  27. add r0, r1, r0, LSR #7
  28. bx lr
  29. ENDFUNC
  30. //UINTN
  31. //ArmPlatformGetPrimaryCoreMpId (
  32. // VOID
  33. // );
  34. ArmPlatformGetPrimaryCoreMpId FUNCTION
  35. mov32 r0, FixedPcdGet32(PcdArmPrimaryCore)
  36. bx lr
  37. ENDFUNC
  38. //UINTN
  39. //ArmPlatformIsPrimaryCore (
  40. // IN UINTN MpId
  41. // );
  42. ArmPlatformIsPrimaryCore FUNCTION
  43. mov32 r1, FixedPcdGet32(PcdArmPrimaryCoreMask)
  44. and r0, r0, r1
  45. mov32 r1, FixedPcdGet32(PcdArmPrimaryCore)
  46. cmp r0, r1
  47. moveq r0, #1
  48. movne r0, #0
  49. bx lr
  50. ENDFUNC
  51. END