1/*
2 * SPDX-License-Identifier:	GPL-2.0+
3 */
4
5#include <config.h>
6#include <linux/linkage.h>
7
8ENTRY(save_boot_params)
9	b	save_boot_params_ret
10ENDPROC(save_boot_params)
11
12/*
13 * cache_inv - invalidate Cache line
14 * r0 - dest
15 */
16	.global cache_inv
17	.type  cache_inv, %function
18	cache_inv:
19
20	stmfd   sp!, {r1-r12}
21
22	mcr     p15, 0, r0, c7, c6, 1
23
24	ldmfd   sp!, {r1-r12}
25	bx      lr
26
27
28/*
29 * flush_l1_v6 - l1 cache clean invalidate
30 * r0 - dest
31 */
32	.global flush_l1_v6
33	.type	flush_l1_v6, %function
34	flush_l1_v6:
35
36	stmfd   sp!, {r1-r12}
37
38	mcr     p15, 0, r0, c7, c10, 5	/* @ data memory barrier */
39	mcr     p15, 0, r0, c7, c14, 1	/* @ clean & invalidate D line */
40	mcr     p15, 0, r0, c7, c10, 4	/* @ data sync barrier */
41
42	ldmfd   sp!, {r1-r12}
43	bx      lr
44
45
46/*
47 * flush_l1_v7 - l1 cache clean invalidate
48 * r0 - dest
49 */
50	.global flush_l1_v7
51	.type	flush_l1_v7, %function
52	flush_l1_v7:
53
54	stmfd   sp!, {r1-r12}
55
56	dmb				/* @data memory barrier */
57	mcr     p15, 0, r0, c7, c14, 1	/* @ clean & invalidate D line */
58	dsb				/* @data sync barrier */
59
60	ldmfd   sp!, {r1-r12}
61	bx      lr
62