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)
13 #include <asm/pgtable-hwdef.h>
15 #include "proc-macros.S"
17 /* ARM940T has a 4KB DCache comprising 256 lines of 4 words */
19 #define CACHE_DSEGMENTS 4
42 bic r0, r0, #0x00001000 @ i-cache
43 bic r0, r0, #0x00000004 @ d-cache
58 mcr p15, 0, ip, c7, c10, 4 @ drain WB
61 bic ip, ip, #0x00001000 @ i-cache
72 mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
105 * There is no efficient way to flush a range of cache entries
108 * - start - start address (inclusive)
109 * - end - end address (exclusive)
110 * - flags - vm_flags describing address space
117 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
118 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
122 subs r1, r1, #1 << 4
127 mcrne p15, 0, ip, c7, c10, 4 @ drain WB
135 * region described by start, end. If you have non-snooping
138 * - start - virtual start address
139 * - end - virtual end address
149 * region described by start, end. If you have non-snooping
152 * - start - virtual start address
153 * - end - virtual end address
167 * - addr - kernel address
168 * - size - region size
172 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
173 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
177 subs r1, r1, #1 << 4
180 mcr p15, 0, r0, c7, c10, 4 @ drain WB
187 * There is no efficient way to invalidate a specifid virtual
190 * - start - virtual start address
191 * - end - virtual end address
195 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
196 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
200 subs r1, r1, #1 << 4
202 mcr p15, 0, ip, c7, c10, 4 @ drain WB
208 * There is no efficient way to clean a specifid virtual
211 * - start - virtual start address
212 * - end - virtual end address
218 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
219 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
223 subs r1, r1, #1 << 4
226 mcr p15, 0, ip, c7, c10, 4 @ drain WB
233 * There is no efficient way to clean and invalidate a specifid
236 * - start - virtual start address
237 * - end - virtual end address
241 mov r1, #(CACHE_DSEGMENTS - 1) << 4 @ 4 segments
242 1: orr r3, r1, #(CACHE_DENTRIES - 1) << 26 @ 64 entries
251 subs r1, r1, #1 << 4
253 mcr p15, 0, ip, c7, c10, 4 @ drain WB
259 * - start - kernel virtual start address
260 * - size - size of region
261 * - dir - DMA direction
273 * - start - kernel virtual start address
274 * - size - size of region
275 * - dir - DMA direction
286 mcr p15, 0, r0, c7, c10, 4 @ drain WB
300 mov r0, #0x0000003F @ base = 0, size = 4GB
305 ldr r7, =CONFIG_DRAM_SIZE >> 12 @ size of RAM (must be >= 4KB)
311 ldr r7, =CONFIG_FLASH_SIZE @ size of FLASH (must be >= 4KB)
332 orr r0, r0, #0x00001000 @ I-cache
333 orr r0, r0, #0x00000005 @ MPU/D-cache
337 .size __arm940_setup, . - __arm940_setup
341 @ define struct processor (see <asm/proc-fns.h> and proc-macros.S)
368 .size __arm940_proc_info, . - __arm940_proc_info