ArmPlatformHelper.S 974 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // Copyright (c) 2012-2013, ARM Limited. All rights reserved.
  3. //
  4. // SPDX-License-Identifier: BSD-2-Clause-Patent
  5. //
  6. //
  7. #include <AsmMacroIoLibV8.h>
  8. #include <Library/ArmLib.h>
  9. ASM_FUNC(ArmPlatformPeiBootAction)
  10. ret
  11. //UINTN
  12. //ArmPlatformGetCorePosition (
  13. // IN UINTN MpId
  14. // );
  15. // With this function: CorePos = (ClusterId * 4) + CoreId
  16. ASM_FUNC(ArmPlatformGetCorePosition)
  17. and x1, x0, #ARM_CORE_MASK
  18. and x0, x0, #ARM_CLUSTER_MASK
  19. add x0, x1, x0, LSR #6
  20. ret
  21. //UINTN
  22. //ArmPlatformGetPrimaryCoreMpId (
  23. // VOID
  24. // );
  25. ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
  26. MOV32 (w0, FixedPcdGet32 (PcdArmPrimaryCore))
  27. ret
  28. //UINTN
  29. //ArmPlatformIsPrimaryCore (
  30. // IN UINTN MpId
  31. // );
  32. ASM_FUNC(ArmPlatformIsPrimaryCore)
  33. MOV32 (w1, FixedPcdGet32 (PcdArmPrimaryCoreMask))
  34. and x0, x0, x1
  35. MOV32 (w1, FixedPcdGet32 (PcdArmPrimaryCore))
  36. cmp w0, w1
  37. mov x0, #1
  38. mov x1, #0
  39. csel x0, x0, x1, eq
  40. ret