Lines Matching +full:4 +full:- +full:way

1 /* SPDX-License-Identifier: GPL-2.0-only */
5 * Copyright (C) 2004-2006 Hyok S. Choi (hyok.choi@samsung.com)
12 #include <asm/pgtable-hwdef.h>
14 #include "proc-macros.S"
16 /* ARM940T has a 4KB DCache comprising 256 lines of 4 words */
18 #define CACHE_DSEGMENTS 4
37 bic r0, r0, #0x00001000 @ i-cache
38 bic r0, r0, #0x00000004 @ d-cache
52 mcr p15, 0, ip, c7, c10, 4 @ drain WB
55 bic ip, ip, #0x00001000 @ i-cache
66 mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
98 * There is no efficient way to flush a range of cache entries
101 * - start - start address (inclusive)
102 * - end - end address (exclusive)
103 * - flags - vm_flags describing address space
110 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
111 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
115 subs r1, r1, #1 << 4
120 mcrne p15, 0, ip, c7, c10, 4 @ drain WB
127 * region described by start, end. If you have non-snooping
130 * - start - virtual start address
131 * - end - virtual end address
140 * region described by start, end. If you have non-snooping
143 * - start - virtual start address
144 * - end - virtual end address
155 * - addr - kernel address
156 * - size - region size
160 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
161 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
165 subs r1, r1, #1 << 4
168 mcr p15, 0, r0, c7, c10, 4 @ drain WB
174 * There is no efficient way to invalidate a specifid virtual
177 * - start - virtual start address
178 * - end - virtual end address
182 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
183 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
187 subs r1, r1, #1 << 4
189 mcr p15, 0, ip, c7, c10, 4 @ drain WB
195 * There is no efficient way to clean a specifid virtual
198 * - start - virtual start address
199 * - end - virtual end address
205 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
206 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
210 subs r1, r1, #1 << 4
213 mcr p15, 0, ip, c7, c10, 4 @ drain WB
219 * There is no efficient way to clean and invalidate a specifid
222 * - start - virtual start address
223 * - end - virtual end address
227 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
228 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
237 subs r1, r1, #1 << 4
239 mcr p15, 0, ip, c7, c10, 4 @ drain WB
244 * - start - kernel virtual start address
245 * - size - size of region
246 * - dir - DMA direction
258 * - start - kernel virtual start address
259 * - size - size of region
260 * - dir - DMA direction
269 @ define struct cpu_cache_fns (see <asm/cacheflush.h> and proc-macros.S)
277 mcr p15, 0, r0, c7, c10, 4 @ drain WB
291 mov r0, #0x0000003F @ base = 0, size = 4GB
296 ldr r7, =CONFIG_DRAM_SIZE >> 12 @ size of RAM (must be >= 4KB)
302 ldr r7, =CONFIG_FLASH_SIZE @ size of FLASH (must be >= 4KB)
323 orr r0, r0, #0x00001000 @ I-cache
324 orr r0, r0, #0x00000005 @ MPU/D-cache
328 .size __arm940_setup, . - __arm940_setup
332 @ define struct processor (see <asm/proc-fns.h> and proc-macros.S)
359 .size __arm940_proc_info, . - __arm940_proc_info