diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-24 15:50:56 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-24 15:50:56 -0500 |
commit | e2464688b59c6ae9928f385dabf5355e30cff298 (patch) | |
tree | 1039fa8c818e6ac16d6f1504c28e80bfe902b0f3 /arch/mips/include/asm/cacheops.h | |
parent | e1c10879ed59436cde537b723545430b04d4dec0 (diff) | |
parent | 07d17f09691e549fac0101333eebe0161a472b50 (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.h | 106 |
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 */ |