HiKey960Helper.S 939 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #
  2. # Copyright (c) 2018, Linaro 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. .text
  10. .align 3
  11. ASM_FUNC(ArmPlatformPeiBootAction)
  12. ret
  13. //UINTN
  14. //ArmPlatformIsPrimaryCore (
  15. // IN UINTN MpId
  16. // );
  17. ASM_FUNC(ArmPlatformIsPrimaryCore)
  18. MOV32 (w1, FixedPcdGet32(PcdArmPrimaryCoreMask))
  19. and x0, x0, x1
  20. MOV32 (w1, FixedPcdGet32(PcdArmPrimaryCore))
  21. cmp w0, w1
  22. cset x0, eq
  23. ret
  24. //UINTN
  25. //ArmPlatformGetPrimaryCoreMpId (
  26. // VOID
  27. // );
  28. ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
  29. MOV32 (w0, FixedPcdGet32(PcdArmPrimaryCore))
  30. ret
  31. //UINTN
  32. //ArmPlatformGetCorePosition (
  33. // IN UINTN MpId
  34. // );
  35. // With this function: CorePos = (ClusterId * 4) + CoreId
  36. ASM_FUNC(ArmPlatformGetCorePosition)
  37. and x1, x0, #ARM_CORE_MASK
  38. and x0, x0, #ARM_CLUSTER_MASK
  39. add x0, x1, x0, LSR #6
  40. ret