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