qti_kryo6_gold.S 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * Copyright (c) 2015-2018, Arm Limited and Contributors. All rights reserved.
  3. * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
  4. *
  5. * SPDX-License-Identifier: BSD-3-Clause
  6. */
  7. #include <arch.h>
  8. #include <asm_macros.S>
  9. #include <cpu_macros.S>
  10. #include <plat_macros.S>
  11. #include <qti_cpu.h>
  12. .p2align 3
  13. /* -------------------------------------------------
  14. * The CPU Ops reset function for Kryo-3 Gold
  15. * -------------------------------------------------
  16. */
  17. func qti_kryo6_gold_reset_func
  18. #if IMAGE_BL31 && WORKAROUND_CVE_2017_5715
  19. adr x0, wa_cve_2017_5715_bpiall_vbar
  20. msr vbar_el3, x0
  21. isb
  22. #endif
  23. mov x19, x30
  24. bl qtiseclib_kryo6_gold_reset_asm
  25. mov x30, x19
  26. b cortex_a78_reset_func
  27. endfunc qti_kryo6_gold_reset_func
  28. /* -------------------------------------------------------
  29. * The CPU Ops cluster power down function for Kryo-3 Gold
  30. * -------------------------------------------------------
  31. */
  32. func qti_kryo6_gold_cluster_pwr_dwn
  33. ret
  34. endfunc qti_kryo6_gold_cluster_pwr_dwn
  35. #if REPORT_ERRATA
  36. /*
  37. * Errata printing function for Kryo4 Gold. Must follow AAPCS.
  38. */
  39. func qti_kryo6_gold_errata_report
  40. /* TODO : Need to add support. Required only for debug bl31 image.*/
  41. ret
  42. endfunc qti_kryo6_gold_errata_report
  43. #endif
  44. /* ---------------------------------------------
  45. * This function provides kryo4_gold specific
  46. * register information for crash reporting.
  47. * It needs to return with x6 pointing to
  48. * a list of register names in ASCII and
  49. * x8 - x15 having values of registers to be
  50. * reported.
  51. * ---------------------------------------------
  52. */
  53. .section .rodata.qti_kryo4_gold_regs, "aS"
  54. qti_kryo6_gold_regs: /* The ASCII list of register names to be reported */
  55. .asciz ""
  56. func qti_kryo6_gold_cpu_reg_dump
  57. adr x6, qti_kryo6_gold_regs
  58. ret
  59. endfunc qti_kryo6_gold_cpu_reg_dump
  60. declare_cpu_ops qti_kryo6_gold, QTI_KRYO6_GOLD_MIDR, \
  61. qti_kryo6_gold_reset_func, \
  62. cortex_a78_core_pwr_dwn, \
  63. qti_kryo6_gold_cluster_pwr_dwn