xref: /rk3399_rockchip-uboot/arch/mips/include/asm/cacheops.h (revision cb0a6a1ecc8dfe4dbdad6f9376ef78879337b118)
1819833afSPeter Tyser /*
2819833afSPeter Tyser  * Cache operations for the cache instruction.
3819833afSPeter Tyser  *
4819833afSPeter Tyser  * This file is subject to the terms and conditions of the GNU General Public
5819833afSPeter Tyser  * License.  See the file "COPYING" in the main directory of this archive
6819833afSPeter Tyser  * for more details.
7819833afSPeter Tyser  *
8819833afSPeter Tyser  * (C) Copyright 1996, 97, 99, 2002, 03 Ralf Baechle
9819833afSPeter Tyser  * (C) Copyright 1999 Silicon Graphics, Inc.
10819833afSPeter Tyser  */
11819833afSPeter Tyser #ifndef	__ASM_CACHEOPS_H
12819833afSPeter Tyser #define	__ASM_CACHEOPS_H
13819833afSPeter Tyser 
14819833afSPeter Tyser /*
15819833afSPeter Tyser  * Cache Operations available on all MIPS processors with R4000-style caches
16819833afSPeter Tyser  */
17*cb0a6a1eSZhi-zhou Zhang #define INDEX_INVALIDATE_I      0x00
18*cb0a6a1eSZhi-zhou Zhang #define INDEX_WRITEBACK_INV_D   0x01
19*cb0a6a1eSZhi-zhou Zhang #define INDEX_LOAD_TAG_I	0x04
20*cb0a6a1eSZhi-zhou Zhang #define INDEX_LOAD_TAG_D	0x05
21*cb0a6a1eSZhi-zhou Zhang #define INDEX_STORE_TAG_I	0x08
22*cb0a6a1eSZhi-zhou Zhang #define INDEX_STORE_TAG_D	0x09
23819833afSPeter Tyser #if defined(CONFIG_CPU_LOONGSON2)
24*cb0a6a1eSZhi-zhou Zhang #define HIT_INVALIDATE_I	0x00
25819833afSPeter Tyser #else
26*cb0a6a1eSZhi-zhou Zhang #define HIT_INVALIDATE_I	0x10
27819833afSPeter Tyser #endif
28*cb0a6a1eSZhi-zhou Zhang #define HIT_INVALIDATE_D	0x11
29*cb0a6a1eSZhi-zhou Zhang #define HIT_WRITEBACK_INV_D	0x15
30819833afSPeter Tyser 
31819833afSPeter Tyser /*
32819833afSPeter Tyser  * R4000-specific cacheops
33819833afSPeter Tyser  */
34*cb0a6a1eSZhi-zhou Zhang #define CREATE_DIRTY_EXCL_D	0x0d
35*cb0a6a1eSZhi-zhou Zhang #define FILL			0x14
36*cb0a6a1eSZhi-zhou Zhang #define HIT_WRITEBACK_I		0x18
37*cb0a6a1eSZhi-zhou Zhang #define HIT_WRITEBACK_D		0x19
38819833afSPeter Tyser 
39819833afSPeter Tyser /*
40819833afSPeter Tyser  * R4000SC and R4400SC-specific cacheops
41819833afSPeter Tyser  */
42*cb0a6a1eSZhi-zhou Zhang #define INDEX_INVALIDATE_SI     0x02
43*cb0a6a1eSZhi-zhou Zhang #define INDEX_WRITEBACK_INV_SD  0x03
44*cb0a6a1eSZhi-zhou Zhang #define INDEX_LOAD_TAG_SI	0x06
45*cb0a6a1eSZhi-zhou Zhang #define INDEX_LOAD_TAG_SD	0x07
46*cb0a6a1eSZhi-zhou Zhang #define INDEX_STORE_TAG_SI	0x0A
47*cb0a6a1eSZhi-zhou Zhang #define INDEX_STORE_TAG_SD	0x0B
48*cb0a6a1eSZhi-zhou Zhang #define CREATE_DIRTY_EXCL_SD	0x0f
49*cb0a6a1eSZhi-zhou Zhang #define HIT_INVALIDATE_SI	0x12
50*cb0a6a1eSZhi-zhou Zhang #define HIT_INVALIDATE_SD	0x13
51*cb0a6a1eSZhi-zhou Zhang #define HIT_WRITEBACK_INV_SD	0x17
52*cb0a6a1eSZhi-zhou Zhang #define HIT_WRITEBACK_SD	0x1b
53*cb0a6a1eSZhi-zhou Zhang #define HIT_SET_VIRTUAL_SI	0x1e
54*cb0a6a1eSZhi-zhou Zhang #define HIT_SET_VIRTUAL_SD	0x1f
55819833afSPeter Tyser 
56819833afSPeter Tyser /*
57819833afSPeter Tyser  * R5000-specific cacheops
58819833afSPeter Tyser  */
59*cb0a6a1eSZhi-zhou Zhang #define R5K_PAGE_INVALIDATE_S	0x17
60819833afSPeter Tyser 
61819833afSPeter Tyser /*
62819833afSPeter Tyser  * RM7000-specific cacheops
63819833afSPeter Tyser  */
64*cb0a6a1eSZhi-zhou Zhang #define PAGE_INVALIDATE_T	0x16
65819833afSPeter Tyser 
66819833afSPeter Tyser /*
67819833afSPeter Tyser  * R10000-specific cacheops
68819833afSPeter Tyser  *
69819833afSPeter Tyser  * Cacheops 0x02, 0x06, 0x0a, 0x0c-0x0e, 0x16, 0x1a and 0x1e are unused.
70819833afSPeter Tyser  * Most of the _S cacheops are identical to the R4000SC _SD cacheops.
71819833afSPeter Tyser  */
72*cb0a6a1eSZhi-zhou Zhang #define INDEX_WRITEBACK_INV_S	0x03
73*cb0a6a1eSZhi-zhou Zhang #define INDEX_LOAD_TAG_S	0x07
74*cb0a6a1eSZhi-zhou Zhang #define INDEX_STORE_TAG_S	0x0B
75*cb0a6a1eSZhi-zhou Zhang #define HIT_INVALIDATE_S	0x13
76*cb0a6a1eSZhi-zhou Zhang #define CACHE_BARRIER		0x14
77*cb0a6a1eSZhi-zhou Zhang #define HIT_WRITEBACK_INV_S	0x17
78*cb0a6a1eSZhi-zhou Zhang #define INDEX_LOAD_DATA_I	0x18
79*cb0a6a1eSZhi-zhou Zhang #define INDEX_LOAD_DATA_D	0x19
80*cb0a6a1eSZhi-zhou Zhang #define INDEX_LOAD_DATA_S	0x1b
81*cb0a6a1eSZhi-zhou Zhang #define INDEX_STORE_DATA_I	0x1c
82*cb0a6a1eSZhi-zhou Zhang #define INDEX_STORE_DATA_D	0x1d
83*cb0a6a1eSZhi-zhou Zhang #define INDEX_STORE_DATA_S	0x1f
84819833afSPeter Tyser 
85819833afSPeter Tyser #endif	/* __ASM_CACHEOPS_H */
86