ccn504.S 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * (C) Copyright 2015 Freescale Semiconductor
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. *
  6. * Extracted from gic_64.S
  7. */
  8. #include <config.h>
  9. #include <linux/linkage.h>
  10. #include <asm/macro.h>
  11. /*************************************************************************
  12. *
  13. * void ccn504_add_masters_to_dvm(CCI_MN_BASE, CCI_MN_RNF_NODEID_LIST,
  14. * CCI_MN_DVM_DOMAIN_CTL_SET);
  15. *
  16. * Add fully-coherent masters to DVM domain
  17. *
  18. *************************************************************************/
  19. ENTRY(ccn504_add_masters_to_dvm)
  20. /*
  21. * x0: CCI_MN_BASE
  22. * x1: CCI_MN_RNF_NODEID_LIST
  23. * x2: CCI_MN_DVM_DOMAIN_CTL_SET
  24. */
  25. /* Add fully-coherent masters to DVM domain */
  26. ldr x9, [x0, x1]
  27. str x9, [x0, x2]
  28. 1: ldr x10, [x0, x2]
  29. mvn x11, x10
  30. tst x11, x10 /* Wait for domain addition to complete */
  31. b.ne 1b
  32. ret
  33. ENDPROC(ccn504_add_masters_to_dvm)
  34. /*************************************************************************
  35. *
  36. * void ccn504_set_qos(CCI_Sx_QOS_CONTROL_BASE, QoS Value);
  37. *
  38. * Initialize QoS settings for AR/AW override.
  39. * Right now, this function sets the same QoS value for all RN-I ports
  40. *
  41. *************************************************************************/
  42. ENTRY(ccn504_set_qos)
  43. /*
  44. * x0: CCI_Sx_QOS_CONTROL_BASE
  45. * x1: QoS Value
  46. */
  47. /* Set all RN-I ports to QoS value denoted by x1 */
  48. ldr x9, [x0]
  49. mov x10, x1
  50. orr x9, x9, x10
  51. str x9, [x0]
  52. ret
  53. ENDPROC(ccn504_set_qos)
  54. /*************************************************************************
  55. *
  56. * void ccn504_set_aux(CCI_AUX_CONTROL_BASE, Value);
  57. *
  58. * Initialize AUX control settings
  59. *
  60. *************************************************************************/
  61. ENTRY(ccn504_set_aux)
  62. /*
  63. * x0: CCI_AUX_CONTROL_BASE
  64. * x1: Value
  65. */
  66. ldr x9, [x0]
  67. mov x10, x1
  68. orr x9, x9, x10
  69. str x9, [x0]
  70. ret
  71. ENDPROC(ccn504_set_aux)