aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/cacheops.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-01-24 15:50:56 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-24 15:50:56 -0500
commite2464688b59c6ae9928f385dabf5355e30cff298 (patch)
tree1039fa8c818e6ac16d6f1504c28e80bfe902b0f3 /arch/mips/include/asm/cacheops.h
parente1c10879ed59436cde537b723545430b04d4dec0 (diff)
parent07d17f09691e549fac0101333eebe0161a472b50 (diff)
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS updates from Ralf Baechle: "This is the main pull request for MIPS for 4.5 plus some 4.4 fixes. The executive summary: - ATH79 platform improvments, use DT bindings for the ATH79 USB PHY. - Avoid useless rebuilds for zboot. - jz4780: Add NEMC, BCH and NAND device tree nodes - Initial support for the MicroChip's DT platform. As all the device drivers are missing this is still of limited use. - Some Loongson3 cleanups. - The unavoidable whitespace polishing. - Reduce clock skew when synchronizing the CPU cycle counters on CPU startup. - Add MIPS R6 fixes. - Lots of cleanups across arch/mips as fallout from KVM. - Lots of minor fixes and changes for IEEE 754-2008 support to the FPU emulator / fp-assist software. - Minor Ralink, BCM47xx and bcm963xx platform support improvments. - Support SMP on BCM63168" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (84 commits) MIPS: zboot: Add support for serial debug using the PROM MIPS: zboot: Avoid useless rebuilds MIPS: BMIPS: Enable ARCH_WANT_OPTIONAL_GPIOLIB MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function MIPS: bcm963xx: Update bcm_tag field image_sequence MIPS: bcm963xx: Move extended flash address to bcm_tag header file MIPS: bcm963xx: Move Broadcom BCM963xx image tag data structure MIPS: bcm63xx: nvram: Use nvram structure definition from header file MIPS: bcm963xx: Add Broadcom BCM963xx board nvram data structure MAINTAINERS: Add KVM for MIPS entry MIPS: KVM: Add missing newline to kvm_err() MIPS: Move KVM specific opcodes into asm/inst.h MIPS: KVM: Use cacheops.h definitions MIPS: Break down cacheops.h definitions MIPS: Use EXCCODE_ constants with set_except_vector() MIPS: Update trap codes MIPS: Move Cause.ExcCode trap codes to mipsregs.h MIPS: KVM: Make kvm_mips_{init,exit}() static MIPS: KVM: Refactor added offsetof()s MIPS: KVM: Convert EXPORT_SYMBOL to _GPL ...
Diffstat (limited to 'arch/mips/include/asm/cacheops.h')
-rw-r--r--arch/mips/include/asm/cacheops.h106
1 files changed, 64 insertions, 42 deletions
diff --git a/arch/mips/include/asm/cacheops.h b/arch/mips/include/asm/cacheops.h
index 06b9bc7ea14b..c3212ff26723 100644
--- a/arch/mips/include/asm/cacheops.h
+++ b/arch/mips/include/asm/cacheops.h
@@ -12,54 +12,76 @@
12#define __ASM_CACHEOPS_H 12#define __ASM_CACHEOPS_H
13 13
14/* 14/*
15 * Most cache ops are split into a 2 bit field identifying the cache, and a 3
16 * bit field identifying the cache operation.
17 */
18#define CacheOp_Cache 0x03
19#define CacheOp_Op 0x1c
20
21#define Cache_I 0x00
22#define Cache_D 0x01
23#define Cache_T 0x02
24#define Cache_S 0x03
25
26#define Index_Writeback_Inv 0x00
27#define Index_Load_Tag 0x04
28#define Index_Store_Tag 0x08
29#define Hit_Invalidate 0x10
30#define Hit_Writeback_Inv 0x14 /* not with Cache_I though */
31#define Hit_Writeback 0x18
32
33/*
15 * Cache Operations available on all MIPS processors with R4000-style caches 34 * Cache Operations available on all MIPS processors with R4000-style caches
16 */ 35 */
17#define Index_Invalidate_I 0x00 36#define Index_Invalidate_I (Cache_I | Index_Writeback_Inv)
18#define Index_Writeback_Inv_D 0x01 37#define Index_Writeback_Inv_D (Cache_D | Index_Writeback_Inv)
19#define Index_Load_Tag_I 0x04 38#define Index_Load_Tag_I (Cache_I | Index_Load_Tag)
20#define Index_Load_Tag_D 0x05 39#define Index_Load_Tag_D (Cache_D | Index_Load_Tag)
21#define Index_Store_Tag_I 0x08 40#define Index_Store_Tag_I (Cache_I | Index_Store_Tag)
22#define Index_Store_Tag_D 0x09 41#define Index_Store_Tag_D (Cache_D | Index_Store_Tag)
23#define Hit_Invalidate_I 0x10 42#define Hit_Invalidate_I (Cache_I | Hit_Invalidate)
24#define Hit_Invalidate_D 0x11 43#define Hit_Invalidate_D (Cache_D | Hit_Invalidate)
25#define Hit_Writeback_Inv_D 0x15 44#define Hit_Writeback_Inv_D (Cache_D | Hit_Writeback_Inv)
26 45
27/* 46/*
28 * R4000-specific cacheops 47 * R4000-specific cacheops
29 */ 48 */
30#define Create_Dirty_Excl_D 0x0d 49#define Create_Dirty_Excl_D (Cache_D | 0x0c)
31#define Fill 0x14 50#define Fill (Cache_I | 0x14)
32#define Hit_Writeback_I 0x18 51#define Hit_Writeback_I (Cache_I | Hit_Writeback)
33#define Hit_Writeback_D 0x19 52#define Hit_Writeback_D (Cache_D | Hit_Writeback)
34 53
35/* 54/*
36 * R4000SC and R4400SC-specific cacheops 55 * R4000SC and R4400SC-specific cacheops
37 */ 56 */
38#define Index_Invalidate_SI 0x02 57#define Cache_SI 0x02
39#define Index_Writeback_Inv_SD 0x03 58#define Cache_SD 0x03
40#define Index_Load_Tag_SI 0x06 59
41#define Index_Load_Tag_SD 0x07 60#define Index_Invalidate_SI (Cache_SI | Index_Writeback_Inv)
42#define Index_Store_Tag_SI 0x0A 61#define Index_Writeback_Inv_SD (Cache_SD | Index_Writeback_Inv)
43#define Index_Store_Tag_SD 0x0B 62#define Index_Load_Tag_SI (Cache_SI | Index_Load_Tag)
44#define Create_Dirty_Excl_SD 0x0f 63#define Index_Load_Tag_SD (Cache_SD | Index_Load_Tag)
45#define Hit_Invalidate_SI 0x12 64#define Index_Store_Tag_SI (Cache_SI | Index_Store_Tag)
46#define Hit_Invalidate_SD 0x13 65#define Index_Store_Tag_SD (Cache_SD | Index_Store_Tag)
47#define Hit_Writeback_Inv_SD 0x17 66#define Create_Dirty_Excl_SD (Cache_SD | 0x0c)
48#define Hit_Writeback_SD 0x1b 67#define Hit_Invalidate_SI (Cache_SI | Hit_Invalidate)
49#define Hit_Set_Virtual_SI 0x1e 68#define Hit_Invalidate_SD (Cache_SD | Hit_Invalidate)
50#define Hit_Set_Virtual_SD 0x1f 69#define Hit_Writeback_Inv_SD (Cache_SD | Hit_Writeback_Inv)
70#define Hit_Writeback_SD (Cache_SD | Hit_Writeback)
71#define Hit_Set_Virtual_SI (Cache_SI | 0x1c)
72#define Hit_Set_Virtual_SD (Cache_SD | 0x1c)
51 73
52/* 74/*
53 * R5000-specific cacheops 75 * R5000-specific cacheops
54 */ 76 */
55#define R5K_Page_Invalidate_S 0x17 77#define R5K_Page_Invalidate_S (Cache_S | 0x14)
56 78
57/* 79/*
58 * RM7000-specific cacheops 80 * RM7000-specific cacheops
59 */ 81 */
60#define Page_Invalidate_T 0x16 82#define Page_Invalidate_T (Cache_T | 0x14)
61#define Index_Store_Tag_T 0x0a 83#define Index_Store_Tag_T (Cache_T | Index_Store_Tag)
62#define Index_Load_Tag_T 0x06 84#define Index_Load_Tag_T (Cache_T | Index_Load_Tag)
63 85
64/* 86/*
65 * R10000-specific cacheops 87 * R10000-specific cacheops
@@ -67,22 +89,22 @@
67 * Cacheops 0x02, 0x06, 0x0a, 0x0c-0x0e, 0x16, 0x1a and 0x1e are unused. 89 * Cacheops 0x02, 0x06, 0x0a, 0x0c-0x0e, 0x16, 0x1a and 0x1e are unused.
68 * Most of the _S cacheops are identical to the R4000SC _SD cacheops. 90 * Most of the _S cacheops are identical to the R4000SC _SD cacheops.
69 */ 91 */
70#define Index_Writeback_Inv_S 0x03 92#define Index_Writeback_Inv_S (Cache_S | Index_Writeback_Inv)
71#define Index_Load_Tag_S 0x07 93#define Index_Load_Tag_S (Cache_S | Index_Load_Tag)
72#define Index_Store_Tag_S 0x0B 94#define Index_Store_Tag_S (Cache_S | Index_Store_Tag)
73#define Hit_Invalidate_S 0x13 95#define Hit_Invalidate_S (Cache_S | Hit_Invalidate)
74#define Cache_Barrier 0x14 96#define Cache_Barrier 0x14
75#define Hit_Writeback_Inv_S 0x17 97#define Hit_Writeback_Inv_S (Cache_S | Hit_Writeback_Inv)
76#define Index_Load_Data_I 0x18 98#define Index_Load_Data_I (Cache_I | 0x18)
77#define Index_Load_Data_D 0x19 99#define Index_Load_Data_D (Cache_D | 0x18)
78#define Index_Load_Data_S 0x1b 100#define Index_Load_Data_S (Cache_S | 0x18)
79#define Index_Store_Data_I 0x1c 101#define Index_Store_Data_I (Cache_I | 0x1c)
80#define Index_Store_Data_D 0x1d 102#define Index_Store_Data_D (Cache_D | 0x1c)
81#define Index_Store_Data_S 0x1f 103#define Index_Store_Data_S (Cache_S | 0x1c)
82 104
83/* 105/*
84 * Loongson2-specific cacheops 106 * Loongson2-specific cacheops
85 */ 107 */
86#define Hit_Invalidate_I_Loongson2 0x00 108#define Hit_Invalidate_I_Loongson2 (Cache_I | 0x00)
87 109
88#endif /* __ASM_CACHEOPS_H */ 110#endif /* __ASM_CACHEOPS_H */