Lines Matching +full:non +full:- +full:armv7
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * linux/arch/arm/mm/proc-v7.S
7 * This is the "shell" of the ARMv7 processor support.
9 #include <linux/arm-smccc.h>
14 #include <asm/asm-offsets.h>
16 #include <asm/pgtable-hwdef.h>
19 #include "proc-macros.S"
22 #include "proc-v7-3level.S"
24 #include "proc-v7-2level.S"
46 * - loc - location to jump to for soft reset
47 * - hyp - indicate if restart occurs in HYP mode
76 dsb @ WFI may enter a low-power mode
97 stmfd sp!, {r0 - r3}
101 ldmfd sp!, {r0 - r3}
106 stmfd sp!, {r0 - r3}
110 ldmfd sp!, {r0 - r3}
125 string cpu_v7_name, "ARMv7 Processor"
128 /* Suspend/resume support: derived from arch/arm/mach-s5pv210/sleep.S */
133 stmfd sp!, {r4 - r11, lr}
136 stmia r0!, {r4 - r5}
148 mrc p15, 0, r10, c1, c0, 2 @ Co-processor access control
149 stmia r0, {r5 - r11}
150 ldmfd sp!, {r4 - r11, pc}
157 ldmia r0!, {r4 - r5}
160 ldmia r0, {r5 - r11}
182 mcr p15, 0, r10, c1, c0, 2 @ Co-processor access control
194 stmfd sp!, {r4 - r5}
197 stmia r0!, {r4 - r5}
198 ldmfd sp!, {r4 - r5}
203 ldmia r0!, {r4 - r5}
222 dsb @ WFI may enter a low-power mode
233 stmfd sp!, {r6 - r10}
234 mrc p15, 1, r6, c15, c1, 0 @ save CP15 - extra features
235 mrc p15, 1, r7, c15, c2, 0 @ save CP15 - Aux Func Modes Ctrl 0
236 mrc p15, 1, r8, c15, c1, 2 @ save CP15 - Aux Debug Modes Ctrl 2
237 mrc p15, 1, r9, c15, c1, 1 @ save CP15 - Aux Debug Modes Ctrl 1
238 mrc p15, 0, r10, c9, c14, 0 @ save CP15 - PMC
239 stmia r0!, {r6 - r10}
240 ldmfd sp!, {r6 - r10}
245 ldmia r0!, {r6 - r10}
246 mcr p15, 1, r6, c15, c1, 0 @ restore CP15 - extra features
247 mcr p15, 1, r7, c15, c2, 0 @ restore CP15 - Aux Func Modes Ctrl 0
248 mcr p15, 1, r8, c15, c1, 2 @ restore CP15 - Aux Debug Modes Ctrl 2
249 mcr p15, 1, r9, c15, c1, 1 @ restore CP15 - Aux Debug Modes Ctrl 1
250 mcr p15, 0, r10, c9, c14, 0 @ restore CP15 - PMC
267 bl v7_invalidate_l1 @ corrupts {r0-r3, ip, lr}
279 * r1, r2, r4, r5, r9, r13 must be preserved - r13 is not a stack
285 * This should be able to cover all ARMv7 cores.
288 * - cache type register is implemented
319 * r3: contains MIDR rX number in bits 23-20
320 * r6: contains MIDR rXpY as 8-bit XY number
442 #define PJ4B_OUTSDNG_NC (1 << 29) /* Disable outstanding non cacheable rqst */
443 #define PJ4B_L1_REP_RR (1 << 30) /* L1 replacement - Strict round robin */
453 #define PJ4B_WFI_WFE (1 << 22) /* WFI/WFE - serve the DVM and back to idle */
493 orr r6, r6, r3, lsr #20-4 @ combine variant and revision
496 /* Cortex-A8 Errata */
497 ldr r10, =0x00000c08 @ Cortex-A8 primary part number
501 /* Cortex-A9 Errata */
502 ldr r10, =0x00000c09 @ Cortex-A9 primary part number
506 /* Cortex-A12 Errata */
507 ldr r10, =0x00000c0d @ Cortex-A12 primary part number
511 /* Cortex-A17 Errata */
512 ldr r10, =0x00000c0e @ Cortex-A17 primary part number
516 /* Cortex-A15 Errata */
517 ldr r10, =0x00000c0f @ Cortex-A15 primary part number
547 ARM_BE8(orr r6, r6, #1 << 25) @ big-endian page tables
563 @ define struct processor (see <asm/proc-fns.h> and proc-macros.S)
587 @ Cortex-A8 - always needs bpiall switch_mm implementation
602 @ Cortex-A9 - needs more registers preserved across suspend/resume
618 @ Cortex-A15 - needs iciallu switch_mm for hardening
640 string cpu_arch_name, "armv7"
677 .size __v7_ca5mp_proc_info, . - __v7_ca5mp_proc_info
687 .size __v7_ca9mp_proc_info, . - __v7_ca9mp_proc_info
697 .size __v7_ca8_proc_info, . - __v7_ca8_proc_info
710 .size __v7_pj4b_proc_info, . - __v7_pj4b_proc_info
721 .size __v7_cr7mp_proc_info, . - __v7_cr7mp_proc_info
731 .size __v7_cr8mp_proc_info, . - __v7_cr8mp_proc_info
741 .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info
751 .size __v7_ca12mp_proc_info, . - __v7_ca12mp_proc_info
761 .size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info
764 * Broadcom Corporation Brahma-B15 processor.
771 .size __v7_b15mp_proc_info, . - __v7_b15mp_proc_info
781 .size __v7_ca17mp_proc_info, . - __v7_ca17mp_proc_info
789 .size __v7_ca73_proc_info, . - __v7_ca73_proc_info
797 .size __v7_ca75_proc_info, . - __v7_ca75_proc_info
813 .size __krait_proc_info, . - __krait_proc_info
816 * Match any ARMv7 processor core.
823 .size __v7_proc_info, . - __v7_proc_info