cortex_a53.h 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Copyright (c) 2014-2019, Arm Limited and Contributors. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #ifndef CORTEX_A53_H
  7. #define CORTEX_A53_H
  8. #include <lib/utils_def.h>
  9. /* Cortex-A53 midr for revision 0 */
  10. #define CORTEX_A53_MIDR U(0x410FD030)
  11. /* Retention timer tick definitions */
  12. #define RETENTION_ENTRY_TICKS_2 U(0x1)
  13. #define RETENTION_ENTRY_TICKS_8 U(0x2)
  14. #define RETENTION_ENTRY_TICKS_32 U(0x3)
  15. #define RETENTION_ENTRY_TICKS_64 U(0x4)
  16. #define RETENTION_ENTRY_TICKS_128 U(0x5)
  17. #define RETENTION_ENTRY_TICKS_256 U(0x6)
  18. #define RETENTION_ENTRY_TICKS_512 U(0x7)
  19. /*******************************************************************************
  20. * CPU Extended Control register specific definitions.
  21. ******************************************************************************/
  22. #define CORTEX_A53_ECTLR_EL1 S3_1_C15_C2_1
  23. #define CORTEX_A53_ECTLR_SMP_BIT (ULL(1) << 6)
  24. #define CORTEX_A53_ECTLR_CPU_RET_CTRL_SHIFT U(0)
  25. #define CORTEX_A53_ECTLR_CPU_RET_CTRL_MASK (ULL(0x7) << CORTEX_A53_ECTLR_CPU_RET_CTRL_SHIFT)
  26. #define CORTEX_A53_ECTLR_FPU_RET_CTRL_SHIFT U(3)
  27. #define CORTEX_A53_ECTLR_FPU_RET_CTRL_MASK (ULL(0x7) << CORTEX_A53_ECTLR_FPU_RET_CTRL_SHIFT)
  28. /*******************************************************************************
  29. * CPU Memory Error Syndrome register specific definitions.
  30. ******************************************************************************/
  31. #define CORTEX_A53_MERRSR_EL1 S3_1_C15_C2_2
  32. /*******************************************************************************
  33. * CPU Auxiliary Control register specific definitions.
  34. ******************************************************************************/
  35. #define CORTEX_A53_CPUACTLR_EL1 S3_1_C15_C2_0
  36. #define CORTEX_A53_CPUACTLR_EL1_ENDCCASCI_SHIFT U(44)
  37. #define CORTEX_A53_CPUACTLR_EL1_ENDCCASCI (ULL(1) << CORTEX_A53_CPUACTLR_EL1_ENDCCASCI_SHIFT)
  38. #define CORTEX_A53_CPUACTLR_EL1_RADIS_SHIFT U(27)
  39. #define CORTEX_A53_CPUACTLR_EL1_RADIS (ULL(3) << CORTEX_A53_CPUACTLR_EL1_RADIS_SHIFT)
  40. #define CORTEX_A53_CPUACTLR_EL1_L1RADIS_SHIFT U(25)
  41. #define CORTEX_A53_CPUACTLR_EL1_L1RADIS (ULL(3) << CORTEX_A53_CPUACTLR_EL1_L1RADIS_SHIFT)
  42. #define CORTEX_A53_CPUACTLR_EL1_DTAH_SHIFT U(24)
  43. #define CORTEX_A53_CPUACTLR_EL1_DTAH (ULL(1) << CORTEX_A53_CPUACTLR_EL1_DTAH_SHIFT)
  44. #define CORTEX_A53_CPUACTLR_EL1_L1PCTL_SHIFT U(13)
  45. #define CORTEX_A53_CPUACTLR_EL1_L1PCTL (ULL(7) << CORTEX_A53_CPUACTLR_EL1_L1PCTL_SHIFT)
  46. /*******************************************************************************
  47. * L2 Auxiliary Control register specific definitions.
  48. ******************************************************************************/
  49. #define CORTEX_A53_L2ACTLR_EL1 S3_1_C15_C0_0
  50. #define CORTEX_A53_L2ACTLR_ENABLE_UNIQUECLEAN (U(1) << 14)
  51. #define CORTEX_A53_L2ACTLR_DISABLE_CLEAN_PUSH (U(1) << 3)
  52. /*******************************************************************************
  53. * L2 Extended Control register specific definitions.
  54. ******************************************************************************/
  55. #define CORTEX_A53_L2ECTLR_EL1 S3_1_C11_C0_3
  56. #define CORTEX_A53_L2ECTLR_RET_CTRL_SHIFT U(0)
  57. #define CORTEX_A53_L2ECTLR_RET_CTRL_MASK (U(0x7) << L2ECTLR_RET_CTRL_SHIFT)
  58. /*******************************************************************************
  59. * L2 Memory Error Syndrome register specific definitions.
  60. ******************************************************************************/
  61. #define CORTEX_A53_L2MERRSR_EL1 S3_1_C15_C2_3
  62. /*******************************************************************************
  63. * Helper function to access a53_cpuectlr_el1 register on Cortex-A53 CPUs
  64. ******************************************************************************/
  65. #ifndef __ASSEMBLER__
  66. DEFINE_RENAME_SYSREG_RW_FUNCS(a53_cpuectlr_el1, CORTEX_A53_ECTLR_EL1)
  67. #endif /* __ASSEMBLER__ */
  68. #endif /* CORTEX_A53_H */