hc
2024-05-16 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb
kernel/arch/mips/include/asm/pgtable-bits.h
....@@ -52,6 +52,12 @@
5252 _PAGE_WRITE_SHIFT,
5353 _PAGE_ACCESSED_SHIFT,
5454 _PAGE_MODIFIED_SHIFT,
55
+#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
56
+ _PAGE_SPECIAL_SHIFT,
57
+#endif
58
+#if defined(CONFIG_HAVE_ARCH_SOFT_DIRTY)
59
+ _PAGE_SOFT_DIRTY_SHIFT,
60
+#endif
5561 };
5662
5763 /*
....@@ -78,9 +84,15 @@
7884 _PAGE_WRITE_SHIFT,
7985 _PAGE_ACCESSED_SHIFT,
8086 _PAGE_MODIFIED_SHIFT,
87
+#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
88
+ _PAGE_SPECIAL_SHIFT,
89
+#endif
90
+#if defined(CONFIG_HAVE_ARCH_SOFT_DIRTY)
91
+ _PAGE_SOFT_DIRTY_SHIFT,
92
+#endif
8193 };
8294
83
-#elif defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
95
+#elif defined(CONFIG_CPU_R3K_TLB)
8496
8597 /* Page table bits used for r3k systems */
8698 enum pgtable_bits {
....@@ -90,6 +102,12 @@
90102 _PAGE_WRITE_SHIFT,
91103 _PAGE_ACCESSED_SHIFT,
92104 _PAGE_MODIFIED_SHIFT,
105
+#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
106
+ _PAGE_SPECIAL_SHIFT,
107
+#endif
108
+#if defined(CONFIG_HAVE_ARCH_SOFT_DIRTY)
109
+ _PAGE_SOFT_DIRTY_SHIFT,
110
+#endif
93111
94112 /* Used by TLB hardware (placed in EntryLo) */
95113 _PAGE_GLOBAL_SHIFT = 8,
....@@ -110,10 +128,15 @@
110128 _PAGE_WRITE_SHIFT,
111129 _PAGE_ACCESSED_SHIFT,
112130 _PAGE_MODIFIED_SHIFT,
113
-#if defined(CONFIG_64BIT) && defined(CONFIG_MIPS_HUGE_TLB_SUPPORT)
131
+#if defined(CONFIG_MIPS_HUGE_TLB_SUPPORT)
114132 _PAGE_HUGE_SHIFT,
115133 #endif
116
-
134
+#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
135
+ _PAGE_SPECIAL_SHIFT,
136
+#endif
137
+#if defined(CONFIG_HAVE_ARCH_SOFT_DIRTY)
138
+ _PAGE_SOFT_DIRTY_SHIFT,
139
+#endif
117140 /* Used by TLB hardware (placed in EntryLo*) */
118141 #if defined(CONFIG_CPU_HAS_RIXI)
119142 _PAGE_NO_EXEC_SHIFT,
....@@ -132,8 +155,18 @@
132155 #define _PAGE_WRITE (1 << _PAGE_WRITE_SHIFT)
133156 #define _PAGE_ACCESSED (1 << _PAGE_ACCESSED_SHIFT)
134157 #define _PAGE_MODIFIED (1 << _PAGE_MODIFIED_SHIFT)
135
-#if defined(CONFIG_64BIT) && defined(CONFIG_MIPS_HUGE_TLB_SUPPORT)
158
+#if defined(CONFIG_MIPS_HUGE_TLB_SUPPORT)
136159 # define _PAGE_HUGE (1 << _PAGE_HUGE_SHIFT)
160
+#endif
161
+#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
162
+# define _PAGE_SPECIAL (1 << _PAGE_SPECIAL_SHIFT)
163
+#else
164
+# define _PAGE_SPECIAL 0
165
+#endif
166
+#if defined(CONFIG_HAVE_ARCH_SOFT_DIRTY)
167
+# define _PAGE_SOFT_DIRTY (1 << _PAGE_SOFT_DIRTY_SHIFT)
168
+#else
169
+# define _PAGE_SOFT_DIRTY 0
137170 #endif
138171
139172 /* Used by TLB hardware (placed in EntryLo*) */
....@@ -146,7 +179,7 @@
146179 #define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT)
147180 #define _PAGE_VALID (1 << _PAGE_VALID_SHIFT)
148181 #define _PAGE_DIRTY (1 << _PAGE_DIRTY_SHIFT)
149
-#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
182
+#if defined(CONFIG_CPU_R3K_TLB)
150183 # define _CACHE_UNCACHED (1 << _CACHE_UNCACHED_SHIFT)
151184 # define _CACHE_MASK _CACHE_UNCACHED
152185 # define _PFN_SHIFT PAGE_SHIFT
....@@ -204,7 +237,7 @@
204237 /*
205238 * Cache attributes
206239 */
207
-#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
240
+#if defined(CONFIG_CPU_R3K_TLB)
208241
209242 #define _CACHE_CACHABLE_NONCOHERENT 0
210243 #define _CACHE_UNCACHED_ACCELERATED _CACHE_UNCACHED
....@@ -215,18 +248,6 @@
215248 use it for "noncoherent" spaces, too. Shouldn't hurt. */
216249
217250 #define _CACHE_CACHABLE_NONCOHERENT (5<<_CACHE_SHIFT)
218
-
219
-#elif defined(CONFIG_CPU_LOONGSON3)
220
-
221
-/* Using COHERENT flag for NONCOHERENT doesn't hurt. */
222
-
223
-#define _CACHE_CACHABLE_NONCOHERENT (3<<_CACHE_SHIFT) /* LOONGSON */
224
-#define _CACHE_CACHABLE_COHERENT (3<<_CACHE_SHIFT) /* LOONGSON-3 */
225
-
226
-#elif defined(CONFIG_MACH_INGENIC)
227
-
228
-/* Ingenic uses the WA bit to achieve write-combine memory writes */
229
-#define _CACHE_UNCACHED_ACCELERATED (1<<_CACHE_SHIFT)
230251
231252 #endif
232253
....@@ -259,6 +280,6 @@
259280 #define __WRITEABLE (_PAGE_SILENT_WRITE | _PAGE_WRITE | _PAGE_MODIFIED)
260281
261282 #define _PAGE_CHG_MASK (_PAGE_ACCESSED | _PAGE_MODIFIED | \
262
- _PFN_MASK | _CACHE_MASK)
283
+ _PAGE_SOFT_DIRTY | _PFN_MASK | _CACHE_MASK)
263284
264285 #endif /* _ASM_PGTABLE_BITS_H */