]> git.karo-electronics.de Git - karo-tx-uboot.git/blob - arch/arm/cpu/armv7/armada-xp/lowlevel_spl.S
arm: armada-xp: Add SPL support used to include the DDR training code
[karo-tx-uboot.git] / arch / arm / cpu / armv7 / armada-xp / lowlevel_spl.S
1 /*
2  * SPDX-License-Identifier:     GPL-2.0+
3  */
4
5 #include <config.h>
6 #include <version.h>
7 #include <linux/linkage.h>
8
9 ENTRY(save_boot_params)
10         bx      lr
11 ENDPROC(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