ccn504.S 1.8 KB

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