blob: 449a6db8fd6caec5b8196c62f874fd2c3725b731 [file] [log] [blame]
Chris Zankel1387dab2016-08-10 18:36:44 +03001/*
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
12
13#include <linux/linkage.h>
14#include <asm/asmmacro.h>
15#include <asm/cacheasm.h>
16
17/*
18 * void __invalidate_icache_page(ulong start)
19 */
20
21ENTRY(__invalidate_icache_page)
22
23 abi_entry
24
25 ___invalidate_icache_page a2 a3
26 isync
27
28 abi_ret
29
30ENDPROC(__invalidate_icache_page)
31
32/*
33 * void __invalidate_dcache_page(ulong start)
34 */
35
36ENTRY(__invalidate_dcache_page)
37
38 abi_entry
39
40 ___invalidate_dcache_page a2 a3
41 dsync
42
43 abi_ret
44
45ENDPROC(__invalidate_dcache_page)
46
47/*
48 * void __flush_invalidate_dcache_page(ulong start)
49 */
50
51ENTRY(__flush_invalidate_dcache_page)
52
53 abi_entry
54
55 ___flush_invalidate_dcache_page a2 a3
56
57 dsync
58 abi_ret
59
60ENDPROC(__flush_invalidate_dcache_page)
61
62/*
63 * void __flush_dcache_page(ulong start)
64 */
65
66ENTRY(__flush_dcache_page)
67
68 abi_entry
69
70 ___flush_dcache_page a2 a3
71
72 dsync
73 abi_ret
74
75ENDPROC(__flush_dcache_page)
76
77/*
78 * void __invalidate_icache_range(ulong start, ulong size)
79 */
80
81ENTRY(__invalidate_icache_range)
82
83 abi_entry
84
85 ___invalidate_icache_range a2 a3 a4
86 isync
87
88 abi_ret
89
90ENDPROC(__invalidate_icache_range)
91
92/*
93 * void __flush_invalidate_dcache_range(ulong start, ulong size)
94 */
95
96ENTRY(__flush_invalidate_dcache_range)
97
98 abi_entry
99
100 ___flush_invalidate_dcache_range a2 a3 a4
101 dsync
102
103 abi_ret
104
105ENDPROC(__flush_invalidate_dcache_range)
106
107/*
108 * void _flush_dcache_range(ulong start, ulong size)
109 */
110
111ENTRY(__flush_dcache_range)
112
113 abi_entry
114
115 ___flush_dcache_range a2 a3 a4
116 dsync
117
118 abi_ret
119
120ENDPROC(__flush_dcache_range)
121
122/*
123 * void _invalidate_dcache_range(ulong start, ulong size)
124 */
125
126ENTRY(__invalidate_dcache_range)
127
128 abi_entry
129
130 ___invalidate_dcache_range a2 a3 a4
131
132 abi_ret
133
134ENDPROC(__invalidate_dcache_range)
135
136/*
137 * void _invalidate_icache_all(void)
138 */
139
140ENTRY(__invalidate_icache_all)
141
142 abi_entry
143
144 ___invalidate_icache_all a2 a3
145 isync
146
147 abi_ret
148
149ENDPROC(__invalidate_icache_all)
150
151/*
152 * void _flush_invalidate_dcache_all(void)
153 */
154
155ENTRY(__flush_invalidate_dcache_all)
156
157 abi_entry
158
159 ___flush_invalidate_dcache_all a2 a3
160 dsync
161
162 abi_ret
163
164ENDPROC(__flush_invalidate_dcache_all)
165
166/*
167 * void _invalidate_dcache_all(void)
168 */
169
170ENTRY(__invalidate_dcache_all)
171
172 abi_entry
173
174 ___invalidate_dcache_all a2 a3
175 dsync
176
177 abi_ret
178
179ENDPROC(__invalidate_dcache_all)