misc.S 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. /*
  2. * Miscellaneous assembly functions.
  3. *
  4. * Copyright (C) 2001 - 2007 Tensilica Inc.
  5. * Copyright (C) 2014 - 2016 Cadence Design Systems Inc.
  6. *
  7. * Chris Zankel <chris@zankel.net>
  8. *
  9. * SPDX-License-Identifier: GPL-2.0+
  10. */
  11. #include <linux/linkage.h>
  12. #include <asm/asmmacro.h>
  13. #include <asm/cacheasm.h>
  14. /*
  15. * void __invalidate_icache_page(ulong start)
  16. */
  17. ENTRY(__invalidate_icache_page)
  18. abi_entry
  19. ___invalidate_icache_page a2 a3
  20. isync
  21. abi_ret
  22. ENDPROC(__invalidate_icache_page)
  23. /*
  24. * void __invalidate_dcache_page(ulong start)
  25. */
  26. ENTRY(__invalidate_dcache_page)
  27. abi_entry
  28. ___invalidate_dcache_page a2 a3
  29. dsync
  30. abi_ret
  31. ENDPROC(__invalidate_dcache_page)
  32. /*
  33. * void __flush_invalidate_dcache_page(ulong start)
  34. */
  35. ENTRY(__flush_invalidate_dcache_page)
  36. abi_entry
  37. ___flush_invalidate_dcache_page a2 a3
  38. dsync
  39. abi_ret
  40. ENDPROC(__flush_invalidate_dcache_page)
  41. /*
  42. * void __flush_dcache_page(ulong start)
  43. */
  44. ENTRY(__flush_dcache_page)
  45. abi_entry
  46. ___flush_dcache_page a2 a3
  47. dsync
  48. abi_ret
  49. ENDPROC(__flush_dcache_page)
  50. /*
  51. * void __invalidate_icache_range(ulong start, ulong size)
  52. */
  53. ENTRY(__invalidate_icache_range)
  54. abi_entry
  55. ___invalidate_icache_range a2 a3 a4
  56. isync
  57. abi_ret
  58. ENDPROC(__invalidate_icache_range)
  59. /*
  60. * void __flush_invalidate_dcache_range(ulong start, ulong size)
  61. */
  62. ENTRY(__flush_invalidate_dcache_range)
  63. abi_entry
  64. ___flush_invalidate_dcache_range a2 a3 a4
  65. dsync
  66. abi_ret
  67. ENDPROC(__flush_invalidate_dcache_range)
  68. /*
  69. * void _flush_dcache_range(ulong start, ulong size)
  70. */
  71. ENTRY(__flush_dcache_range)
  72. abi_entry
  73. ___flush_dcache_range a2 a3 a4
  74. dsync
  75. abi_ret
  76. ENDPROC(__flush_dcache_range)
  77. /*
  78. * void _invalidate_dcache_range(ulong start, ulong size)
  79. */
  80. ENTRY(__invalidate_dcache_range)
  81. abi_entry
  82. ___invalidate_dcache_range a2 a3 a4
  83. abi_ret
  84. ENDPROC(__invalidate_dcache_range)
  85. /*
  86. * void _invalidate_icache_all(void)
  87. */
  88. ENTRY(__invalidate_icache_all)
  89. abi_entry
  90. ___invalidate_icache_all a2 a3
  91. isync
  92. abi_ret
  93. ENDPROC(__invalidate_icache_all)
  94. /*
  95. * void _flush_invalidate_dcache_all(void)
  96. */
  97. ENTRY(__flush_invalidate_dcache_all)
  98. abi_entry
  99. ___flush_invalidate_dcache_all a2 a3
  100. dsync
  101. abi_ret
  102. ENDPROC(__flush_invalidate_dcache_all)
  103. /*
  104. * void _invalidate_dcache_all(void)
  105. */
  106. ENTRY(__invalidate_dcache_all)
  107. abi_entry
  108. ___invalidate_dcache_all a2 a3
  109. dsync
  110. abi_ret
  111. ENDPROC(__invalidate_dcache_all)