Advertisement
Guest User

Untitled

a guest
Mar 12th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. diff --git a/arch/arm/mach-imx/mx7/psci.S b/arch/arm/mach-imx/mx7/psci.S
  2. index bc2cd8a..729556c 100644
  3. --- a/arch/arm/mach-imx/mx7/psci.S
  4. +++ b/arch/arm/mach-imx/mx7/psci.S
  5. @@ -12,6 +12,15 @@
  6. #include <asm/arch-armv7/generictimer.h>
  7. #include <asm/psci.h>
  8.  
  9. +#define PSCI_FN_PSCI_VERSION_FEATURE_MASK 0x0
  10. +#define PSCI_FN_CPU_SUSPEND_FEATURE_MASK 0x0
  11. +#define PSCI_FN_CPU_OFF_FEATURE_MASK 0x0
  12. +#define PSCI_FN_CPU_ON_FEATURE_MASK 0x0
  13. +#define PSCI_FN_AFFINITY_INFO_FEATURE_MASK 0x0
  14. +#define PSCI_FN_SYSTEM_OFF_FEATURE_MASK 0x0
  15. +#define PSCI_FN_SYSTEM_RESET_FEATURE_MASK 0x0
  16. +#define PSCI_FN_SYSTEM_SUSPEND_FEATURE_MASK 0x0
  17. +
  18. .pushsection ._secure.text, "ax"
  19.  
  20. .arch_extension sec
  21. @@ -58,3 +67,74 @@ psci_system_off:
  22. b 3b
  23.  
  24. .popsection
  25. +
  26. +.globl psci_version
  27. +psci_version:
  28. + movw r0, #0
  29. + movt r0, #1
  30. +
  31. + bx lr
  32. +
  33. +_mx7_psci_supported_table:
  34. + .word ARM_PSCI_0_2_FN_PSCI_VERSION
  35. + .word PSCI_FN_PSCI_VERSION_FEATURE_MASK
  36. + .word ARM_PSCI_0_2_FN_CPU_SUSPEND
  37. + .word PSCI_FN_CPU_SUSPEND_FEATURE_MASK
  38. + .word ARM_PSCI_0_2_FN_CPU_OFF
  39. + .word PSCI_FN_CPU_OFF_FEATURE_MASK
  40. + .word ARM_PSCI_0_2_FN_CPU_ON
  41. + .word PSCI_FN_CPU_ON_FEATURE_MASK
  42. + .word ARM_PSCI_0_2_FN_AFFINITY_INFO
  43. + .word PSCI_FN_AFFINITY_INFO_FEATURE_MASK
  44. + .word ARM_PSCI_0_2_FN_SYSTEM_OFF
  45. + .word PSCI_FN_SYSTEM_OFF_FEATURE_MASK
  46. + .word ARM_PSCI_0_2_FN_SYSTEM_RESET
  47. + .word PSCI_FN_SYSTEM_RESET_FEATURE_MASK
  48. + .word ARM_PSCI_1_0_FN_SYSTEM_SUSPEND
  49. + .word PSCI_FN_SYSTEM_SUSPEND_FEATURE_MASK
  50. + .word 0
  51. + .word ARM_PSCI_RET_NI
  52. +
  53. +.globl psci_features
  54. +psci_features:
  55. + adr r2, _mx7_psci_supported_table
  56. +1: ldr r3, [r2]
  57. + cmp r3, #0
  58. + beq out_psci_features
  59. + cmp r1, r3
  60. + addne r2, r2, #8
  61. + bne 1b
  62. +
  63. +out_psci_features:
  64. + ldr r0, [r2, #4]
  65. + bx lr
  66. +
  67. +@ r0: return value ARM_PSCI_RET_SUCCESS or ARM_PSCI_RET_INVAL
  68. +@ r1: input target CPU ID in MPIDR format, original value in r1 may be dropped
  69. +@ r4: output validated CPU ID if ARM_PSCI_RET_SUCCESS returns, meaningless for
  70. +@ ARM_PSCI_RET_INVAL,suppose caller saves r4 before calling
  71. +LENTRY(psci_check_target_cpu_id)
  72. + @ Get the real CPU number
  73. + and r4, r1, #0xff
  74. + mov r0, #ARM_PSCI_RET_INVAL
  75. +
  76. + @ Bit[31:24], bits must be zero.
  77. + tst r1, #0xff000000
  78. + bxne lr
  79. +
  80. + @ Affinity level 2 - Cluster: only one cluster in MX7.
  81. + tst r1, #0xff0000
  82. + bxne lr
  83. +
  84. + @ Affinity level 1 - Processors: should be in 0xf00 format.
  85. + lsr r1, r1, #8
  86. + teq r1, #0xf
  87. + bxne lr
  88. +
  89. + @ Affinity level 0 - CPU: only 0, 1 are valid in MX7.
  90. + cmp r4, #2
  91. + bxge lr
  92. +
  93. + mov r0, #ARM_PSCI_RET_SUCCESS
  94. + bx lr
  95. +ENDPROC(psci_check_target_cpu_id)
  96. --
  97. 2.7.4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement